Skip to content
This repository has been archived by the owner on Nov 15, 2023. It is now read-only.

Remove Default, HasCompact, and TypeInfo trait bounds on AssetId #12740

Merged
merged 17 commits into from
Nov 28, 2022

Conversation

joepetrowski
Copy link
Contributor

@joepetrowski joepetrowski commented Nov 19, 2022

Fixes #12738 for an XCMv3 MultiLocation-friendly AssetId.

Default and HasCompact are not necessary, and TypeInfo is implied by Parameter.

Breaks transaction version for Statemint runtimes.

Cumulus companion: paritytech/cumulus#1898

@joepetrowski joepetrowski added A0-please_review Pull request needs code review. B3-apinoteworthy C1-low PR touches the given topic and has a low impact on builders. D3-trivial 🧸 PR contains trivial changes in a runtime directory that do not require an audit labels Nov 19, 2022
@joepetrowski
Copy link
Contributor Author

bot rebase

@paritytech-processbot
Copy link

Rebased

Copy link
Contributor

@gilescope gilescope left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, but this will require a storage migration won't require a storage migration as the u32 keys are definitely not hashed using the compact encoding.

@gavofyork
Copy link
Member

gavofyork commented Nov 22, 2022

This won't need a migration as long as no calls representing one of these dispatchables are stored on-chain. This is a bit questionable. To protect against this, we could replace all these dispatchables with something with a dummy undecodable signature. All the dispatchables with the new signature can then use fresh indices.

@joepetrowski
Copy link
Contributor Author

Do we need to give the undecodable calls a dummy signature, or can we just move the indices into a new range with #[pallet::call_index]? Adding a commit for the latter.

frame/assets/src/lib.rs Outdated Show resolved Hide resolved
frame/assets/src/lib.rs Outdated Show resolved Hide resolved
@@ -544,9 +551,10 @@ pub mod pallet {
///
/// Weight: `O(1)`
#[pallet::weight(T::WeightInfo::create())]
#[pallet::call_index(30)]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I get why you have done this and don't have any better proposal than writing like a migration that can remove calls that are from this pallet. However, your solution is here is "easier" and it can not be fucked up. Still, feels dirty.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

writing like a migration that can remove calls that are from this pallet.

The problem with this is, it has no guarantee of actually working. The only two pallets in Statemint that (almost) store calls are Proxy and Multisig, but these just track call hashes. So there's no way by looking at a call hash and saying it will be broken, because the system does not know the preimage for it.

In addition, other chains could have XCM dispatches scheduled for the future that would call into assets. There's no way that a migration can check every other chain to see if they have messages to Statemint scheduled that would be broken.

I agree it feels a bit dirty, open to a better solution. The other option (discussed with @gilescope) was to add type LegacyAssetId: AssetId + HasCompact;, include the old interface, and just have it pass the call to the new functions using AssetId. Then we have 2x calls in the pallet though with the same logic.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

store calls are Proxy and Multisig, but these just track call hashes

Good point 👍

was to add type LegacyAssetId: AssetId + HasCompact;

Then we would never get rid off these calls.

We should probably start to store transaction_version inside multisig, proxy etc. Then we could deny calls that were stored using an old transaction version.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why don't we implement a MaybeCompact trait so that there is no breaking change and the id can still be compact when it can

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know enough about Compactness in encoding, but how would that work if any of the arguments to a call are not fixed-length? Then you still have to add some bytes to tell the decoder that something is compact or the length of each input argument, which will break the format :p

I think storing transaction_version with approved multisig/delayed proxy approvals is the better direction to go.

Copy link
Contributor

@xlc xlc Nov 23, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No. The compact or not resolution should be done at compile time. I can code a PoC if you think this is the right direction.

Having transaction_version in the storage makes perfect sense but still, it will be better if we can avoid breaking changes at first place.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it need to be part of this PR? I don't think I know enough about the traits to say if this is the right direction or not.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let me make a PoC PR to this branch. There are few ways I can think of to avoid the breaking change but will do the simple way just to proof feasibility.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fwiw, I think making sure a pallet x is responsible for fixing all potential stored instances of its calls everywhere is probably a battle not worth fighting, because it is impossible. For known cases where we know something is used in combination with e.g. Multisig, then perhaps we can do something, otherwise I think the right course of action is to make sure pallets that store calls are capable of handing this.

An easy start is to handle failed decode. But this is not enough. Decoding might have worked, but the tx semantics might have changed. The ugly to this is to always store a (spec_version, Call) and if the former is outdated, drop the call.

The sophisticated solution would be to attach a version to every single call, and make sure that the this particular call has not changed.

I think the ugly solution is actually not too bad. As someone who decides to put a Call onchain, I am given the option to chose if this call should be deemed invalid if the spec_version changes.

@gavofyork
Copy link
Member

Looks reasonable.

Copy link
Contributor

@xlc xlc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

+ MaybeSerializeDeserialize
+ MaxEncodedLen
+ TypeInfo;
+ From<Self::AssetId>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we remove the From<Self::AssetId> bound and only keep Into<Self::AssetId> here?

Copy link
Contributor Author

@joepetrowski joepetrowski Nov 28, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is possible, made a branch here: https://github.com/paritytech/substrate/compare/joe-assetid-bounds...joe-assetid-bounds-no-from?expand=1 EDIT: found a less hacky way.

Let me know if this is better and I will merge it into this.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added a commit (46dfc28) to do this, but I'm not sure if it's the right idea. On one hand, it makes sense to go only from the param to everything else, without the need to go "backwards".

But some runtimes might have pallets tightly coupled with Assets, and call these functions directly. In those cases, they'd want to be able to go from an ID to a param.

Can you explain more why you think we should do this?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Including From for this PR as it's the safer (although more restrictive) configuration for coupling.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you explain more why you think we should do this?

At first, I thought that From<Self::AssetId> and Into<Self::AssetId> were duplicates and thought that it would be enough to just keep From<Self::AssetId>. However, after looking through the documentation, I think you're right. they are two different things.

According to From docs:

One should always prefer implementing From over Into because implementing From automatically provides one with an implementation of Into thanks to the blanket implementation in the standard library.

@joepetrowski
Copy link
Contributor Author

bot merge

@paritytech-processbot paritytech-processbot bot merged commit a0e00dc into master Nov 28, 2022
@paritytech-processbot paritytech-processbot bot deleted the joe-assetid-bounds branch November 28, 2022 18:52
jiguantong pushed a commit to darwinia-network/darwinia-2.0 that referenced this pull request Jan 17, 2023
jiguantong pushed a commit to darwinia-network/darwinia-2.0 that referenced this pull request Jan 28, 2023
jiguantong pushed a commit to darwinia-network/darwinia-2.0 that referenced this pull request Jan 28, 2023
AurevoirXavier added a commit to darwinia-network/darwinia-2.0 that referenced this pull request Feb 7, 2023
* Anchor polkadot-v0.9.36

* Companion for paritytech/cumulus#1860

* Companion for paritytech/cumulus#1876

* Companion for paritytech/cumulus#1904

* Companion for paritytech/substrate#12310

* Companion for paritytech/substrate#12740

* Bump array-bytes to 6.0.0

* Companion for paritytech/substrate#12868

* Companion for paritytech/cumulus#1930

* Companion for paritytech/cumulus#1905

* Companion for paritytech/cumulus#1880

* Companion for paritytech/cumulus#1997

* Companion for paritytech/cumulus#1559

* Prepare messages-substrate

* Companion for paritytech/substrate#12684

* Companion for paritytech/substrate#12740

* Fix compile  paritytech/substrate#12740

* Compile done

* Format

* Add call index

* Compile done

* Fix CI

* Bump moonbeam

* Fix CI

* Try fix tests

* Use into instead of `Compact`

* Patch substrate & Fix compile

* Fix try-runtime

* Remove parity-util-mem

* Format

* Format

* Opt

* Format

* Use `codec::Compact<AssetId>`

* Format

---------

Co-authored-by: Xavier Lau <xavier@inv.cafe>
AurevoirXavier pushed a commit to darwinia-network/darwinia-2.0 that referenced this pull request Feb 8, 2023
* Anchor polkadot-v0.9.36

* Companion for paritytech/cumulus#1860

* Companion for paritytech/cumulus#1876

* Companion for paritytech/cumulus#1904

* Companion for paritytech/substrate#12310

* Companion for paritytech/substrate#12740

* Bump array-bytes to 6.0.0

* Companion for paritytech/substrate#12868

* Companion for paritytech/cumulus#1930

* Companion for paritytech/cumulus#1905

* Companion for paritytech/cumulus#1880

* Companion for paritytech/cumulus#1997

* Companion for paritytech/cumulus#1559

* Prepare messages-substrate

* Companion for paritytech/substrate#12684

* Companion for paritytech/substrate#12740

* Fix compile  paritytech/substrate#12740

* Compile done

* Format

* Add call index

* Compile done

* Fix CI

* Bump moonbeam

* Fix CI

* Try fix tests

* Use into instead of `Compact`

* Patch substrate & Fix compile

* Fix try-runtime

* Remove parity-util-mem

* Companion for paritytech/substrate#12310

* Update state processor

* Add type link

* Fix review issues

* Format

---------

Co-authored-by: Guantong <i@guantong.io>
devdanco added a commit to gasp-xyz/substrate that referenced this pull request Feb 14, 2023
* BlockId removal: refactor: ProofProvider (#12519)

* BlockId removal: refactor: ProofProvider

It changes the arguments of methods of `ProofProvider` trait from:
block: `BlockId<Block>` to: hash: `&Block::Hash`

This PR is part of BlockId::Number refactoring analysis (paritytech/substrate#11292)

* LightClientRequestHandler: excessive BlockIdTo bound removed

* imports cleanup

* formatting

* args tyeps cleanup

* registrar: Avoid freebies in provide_judgement (#12465)

* evaluate repatriate reserved error in pallet identity

* fix benchmarks

* add repatriate reserved error test

* benchmark fix

* undo lock

* include balance to use for benchmarks

* rename test

* Update frame/identity/src/benchmarking.rs

* Update frame/identity/src/benchmarking.rs

Co-authored-by: Bastian Köcher <git@kchr.de>

* EPM: allow duplicate submissions (#12237)

* allow for duplicate signed submissions

* Fix a bunch of things, seems all good now

* fmt

* Fix

* Update frame/election-provider-multi-phase/src/signed.rs

Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com>

* Update frame/election-provider-multi-phase/src/signed.rs

Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com>

* add migratin

* fmt

* comment typo

* some review comments

* fix bench

Co-authored-by: Niklas Adolfsson <niklasadolfsson1@gmail.com>
Co-authored-by: Ross Bulat <ross@parity.io>

* CI check against Rust feature bleed (#12341)

* CI check for rust feature bleed

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Cargo not available

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Handle missing programs

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Check for deps

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Add doc

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Use correct CI image

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Remove --offline

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Install cargo-workspaces

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Remove cargo-workspaces dep

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Fix try-runtime feature

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Fix features

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Fix features

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Fix more features...

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Use pipeline-script

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* 🤡

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Make stupid change to test the CI

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* This reverts commit ad2746aa117fa7cb473521113a9bec89aaf26484.

* Use correct branch

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Allow failure

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Make stupid change to test the CI

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Revert "Make stupid change to test the CI"

This reverts commit 16ec00e1675c7ec57c988315549ff71e832a3093.

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* contracts: Decrease the interation count on slow benchmarks (#12526)

* Decrease amount of benchmark iterations for long slow ones

* ".git/.scripts/bench-bot.sh" pallet dev pallet_contracts

Co-authored-by: command-bot <>

* BlockId removal: refactor: Finalizer (#12528)

* BlockId removal: refactor: Finalizer

It changes the arguments of methods of `Finalizer` trait from:
block: `BlockId<Block>` to: hash: `&Block::Hash`

This PR is part of BlockId::Number refactoring analysis (paritytech/substrate#11292)

* minor corrections

* failing test corrected

* minor rework

* BlockId removal: refactor: BlockImportOperation+Bknd::finalize_block (#12535)

* BlockId removal: refactor: BlockImportOperation+Bknd::finalize_block

It changes the arguments of methods of `BlockImportOperation` trait
from: block: `BlockId<Block>` to: hash: `&Block::Hash`
`Backend::finalize_block` was also changed.

This PR is part of BlockId::Number refactoring analysis (paritytech/substrate#11292)

* Review suggestion applied

thx to @davxy

* trigger CI job

* Remove multiple DHTs support from `Discovery` (#12524)

* CI: Enable debug assertions in Wasmer sandbox test (#12540)

* CI: Enable debug assertions in Wasmer sandbox test

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Fix feature dependant import

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Force base weights to be the minimum only when the intercept is negative (#12482)

* Force base weights to be the minimum only when the intercept is negative; emit minimum execution times

* Add an `assert` making sure the intercept is zero when it's supposed to be zero

* Fix template

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* ".git/.scripts/bench-bot.sh" pallet dev pallet_assets

* ".git/.scripts/bench-bot.sh" pallet dev pallet_uniques

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Co-authored-by: command-bot <>

* Add `DefensiveTruncateFrom` (#12515)

* Add DefensiveTruncateFrom

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Add tests

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Fix tests

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Map_err in preimage

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Map_err in beefy

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Make test dependant in debug-assertions

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Co-authored-by: parity-processbot <>

* Refactor service tests in `sc-network` (#12517)

* Refactor service tests in `sc-network`

Create a separate directory for the tests and move common network
instantion related code to `mod.rs` from where it can be used by both
service and chainsync tests.

Use the builder pattern when creating the `TestNetwork` object to reduce
code duplication between the test files.

* Update client/network/src/service/tests/mod.rs

Co-authored-by: Dmitrii Markin <dmitry@markin.tech>

Co-authored-by: Dmitrii Markin <dmitry@markin.tech>
Co-authored-by: parity-processbot <>

* Actually fix major sync detection (#12114)

* Actually fix major sync detection

* Introduce `SyncState::Importing` state

* Add target to SyncState enum variants and add `is_major_syncing` method on it

* Remove unnecessary duplicated `best_seen_block` from `SyncState` struct

* Revert "Remove unnecessary duplicated `best_seen_block` from `SyncState` struct"

This reverts commit bb8abd458c939881c049f69d59f3acba47c97c5c.

* Add missing `websocket` feature to `libp2p`

Co-authored-by: parity-processbot <>

* BlockId removal: refactor: Backend::begin_state_operation (#12541)

It changes the arguments of `Backend::begin_state_operation`
from: block: `BlockId<Block>` to: hash: `&Block::Hash`

This PR is part of BlockId::Number refactoring analysis (paritytech/substrate#11292)

* use headers on templates (#12546)

* Make `NetworkService` callable for `ChainSync` (#12542)

Introduce a middleware called `NetworkServiceProvider` which the
`ChainSync` can use to communicate with `NetworkService`. `ChainSync` is
given a `NetworkServiceHandle` which it uses to call `NetworkServiceProvider`
which then dispatches the calls to `NetworkService` on behalf of `ChainSync`.

This change will allow `ChainSync` to disconnect and report peers and
in the future it'll be possible to send requests and notifications
through the `NetworkServiceProvider`.

`NetworkServiceProvider` is needed only until the `ChainSync` object
has been removed from `Protocol`. After that, a normal `NetworkService`
handle can be passed onto `ChainSync` and these changes can be
deprecated.

Co-authored-by: parity-processbot <>

* Base Kademlia protocol name on genesis hash and fork ID (#12545)

* contracts: Allow indeterministic instructions off-chain (#12469)

* Allow indetermistic instructions off-chain

* Apply suggestions from code review

Co-authored-by: Sasha Gryaznov <hi@agryaznov.com>

* fmt

Co-authored-by: Sasha Gryaznov <hi@agryaznov.com>

* Normalize keystore type and its usage across tests (#12553)

* Normalize keystore type and usage across tests

* Extract peer index from array index

* Update template pallet to latest enum syntax (#12552)

* feat: generalize some functions in sp-trie (#12376)

* feat: add to_memory_db to StorageProof

* feat: add iter method and generalize iter_nodes

* fmt

* feat: generalize `encode_compact` like `decode_compact`, add to_compact_proof to StorageProof

* fix to_compact_proof

* improve by suggestions

* improve by suggestions

Co-authored-by: Bastian Köcher <git@kchr.de>

* Make Multisig Pallet Bounded (#12457)

* Bounded multisig

* just use u32

Co-authored-by: parity-processbot <>

* Fix error during build: failed to run custom build command for sc-network-bitswap (#12494)

* Update `pallet-multisig` benches (#12558)

* Typo

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* ".git/.scripts/bench-bot.sh" pallet dev pallet_multisig

* remove functions

* ".git/.scripts/bench-bot.sh" pallet dev pallet_multisig

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Co-authored-by: command-bot <>
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>

* [ci] cargo-check-benches against different base branches (#12557)

* Fix typo (#12571)

* replaced println with log Closes #12338 (#12348)

* replaced println with log Closes #12338

* fixed println

* Apply suggestions from code review

Co-authored-by: Bastian Köcher <git@kchr.de>

* Update utils/frame/benchmarking-cli/src/pallet/command.rs

* Apply suggestions from code review

* ".git/.scripts/fmt.sh" 1

Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
Co-authored-by: Bastian Köcher <git@kchr.de>
Co-authored-by: command-bot <>

* Aura: Adds some compatibility mode to support old chains (#12492)

* Aura: Adds some compatibility mode to support old chains

In https://github.com/paritytech/substrate/pull/9132 we changed the way how we get the authorities
from the runtime. Before this mentioned pr we would call `initialize_block` before calling the
authorities runtime function. The problem with this was that when you have a block X that would
switch the authority set, it would already be signed by an authority of the new set. This was wrong,
as a block should only be signed by the current authority set. As this change is a hard fork, this
pr brings back the possibility for users that have a chain running with this old logic to upgrade.

They will need to use:
```
CompatibilityMode::UseInitializeBlock { until: some_block_in_the_future }
```

Using this compatibility mode will make the node behave like the old nodes, aka calling
`initialize_block` before doing the actual runtime call to `authorities`. Then when the given
`until` block is being build/imported the node switches to the new behaviour of not calling
`initialize_block` before. This is a hard fork, so the `until` block should be chosen wisely as a
point where all nodes in the network have upgraded.

* Fixes

* Make docs ready

* Update client/consensus/aura/src/lib.rs

Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>

* Update client/consensus/aura/src/lib.rs

Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>

* Update client/consensus/aura/src/lib.rs

Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>

* FMT

Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>

* bump ed25519-zebra; fixes `full_crypto` feature flag in `no_std` (#12576)

* Utility: add more tests for batch/batchAll/forceBatch (#12506)

* Utility: add more tests for batch/batchAll/forceBatch

* remove unnecessary

* batch works with council

* add more tests

* better call examples

* shorter code

* Update frame/utility/src/lib.rs

Co-authored-by: Bastian Köcher <git@kchr.de>

* Update frame/utility/src/lib.rs

Co-authored-by: Bastian Köcher <git@kchr.de>

* Update frame/utility/src/lib.rs

Co-authored-by: Bastian Köcher <git@kchr.de>

* update TestBaseCallFilter

* fix

* fix?

* fix

Co-authored-by: Bastian Köcher <git@kchr.de>

* Treat near-zero intercept values as zero when calculating weights (#12573)

* Treat near-zero intercept values as zero when calculating weights

* Simplify comparison

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Update contract weights

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* [Enhancement] Convert fast-unstake to use StakingInterface, decouplin… (#12424)

* [Enhancement] Convert fast-unstake to use StakingInterface, decoupling it from Staking

* Update primitives/staking/src/lib.rs

Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>

* Update primitives/staking/src/lib.rs

Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>

* fix validator comment

* remove todo

* ideas from Kian (#12474)

Co-authored-by: kianenigma <kian@parity.io>

* Rename StakingInterface -> Staking for nomination-pools

* Staking fixes

* StakingInterface changes

* fix fast-unstake

* fix nomination-pools

* Fix fast-unstake tests

* Fix benches for fast-unstake

* fix is_unbonding

* fix nomination pools

* fix node code

* add mock comments

* fix imports

* remove todo

* more fixes

* more fixes

* bench fixes

* more fixes

* more fixes

* import fix

* more fixes

* more bench fix

* refix

* refix

* Update primitives/staking/src/lib.rs

Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>

* is_unbonding returns a result

* fix

* review fixes

* more review fixes

* more fixes

* more fixes

* Update frame/fast-unstake/src/benchmarking.rs

Co-authored-by: Squirrel <gilescope@gmail.com>

* remove redundant CurrencyBalance from nom-pools

* remove CB

* rephrase

* Apply suggestions from code review

* Update frame/nomination-pools/src/tests.rs

* finish damn renamed

* clippy fix

* fix

Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
Co-authored-by: kianenigma <kian@parity.io>
Co-authored-by: parity-processbot <>
Co-authored-by: Squirrel <gilescope@gmail.com>

* nomination-pools: allow pool-ids to be reused (#12407)

* initial

* logic check

* do_create

* cargo fmt

* fixes

* ensure_signed

* update

* cargo fmt

* remove unused import

* WIP: Replace `wasm-gc` with `wasm-opt` (#12280)

* Use wasm-opt on runtime

* Optimize for size

* Simplify fn compact_wasm_file

* Run a lighter pass for non production builds

* Disable optimizations and keep name section

* Update wasm-opt

* Remove dward sections

* Update wasm-opt

* Update wasm-opt

* Use minimum_nominator_bond instead of nominator_bond (#12585)

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* BlockId removal: refactor: Backend::append_justification (#12551)

* BlockId removal: refactor: Backend::append_justification

It changes the arguments of `Backend::append_justification`
from: block: `BlockId<Block>` to: hash: `&Block::Hash`

This PR is part of `BlockId::Number` refactoring analysis (paritytech/substrate#11292)

* Error message improved

Co-authored-by: Adrian Catangiu <adrian@parity.io>

* single error message in beefy::finalize

* println removed

Co-authored-by: Adrian Catangiu <adrian@parity.io>

* fix some typos (#12584)

* Added test for Client::block (#12590)

* client/beefy: fix incorrect BEEFY justifications import test (#12593)

Signed-off-by: Adrian Catangiu <adrian@parity.io>

* BlockId removal: refactor: Backend::body (#12587)

It changes the arguments of `Backend::body` method from: `BlockId<Block>` to: `&Block::Hash`

This PR is part of BlockId::Number refactoring analysis (paritytech/substrate#11292)

Co-authored-by: parity-processbot <>

* fix: construct_runtime multiple features (#12594)

* fix: construct_runtime multiple features

* Update frame/support/procedural/src/construct_runtime/mod.rs

Co-authored-by: Bastian Köcher <git@kchr.de>

* Fix fungible unbalanced trait (#12569)

* Fix fungible unbalanced trait

* Add simple decrease_balance test

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Fix decrease_balance_at_most

* Fix decrease_balance_at_most in fungibles

* Rename free_balanceto balance_on_free

* Use reducible_balance instead of balance_on_free

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* [ci] allow fail skip-if-draft job (#12604)

* BlockId removal: refactor: Backend::justifications (#12602)

* BlockId removal: refactor: Backend::justifications

It changes the arguments of `Backend::justifications` method from: `BlockId<Block>` to: `&Block::Hash`

This PR is part of BlockId::Number refactoring analysis (paritytech/substrate#11292)

* trigger CI job

* trigger CI job

* bug fix

* match -> if

Co-authored-by: Adrian Catangiu <adrian@parity.io>

Co-authored-by: Adrian Catangiu <adrian@parity.io>

* use associated iterator types for InspectEnumerable (#12389)

* use associated iterator types for InspectEnumerable

* Update frame/uniques/src/impl_nonfungibles.rs

Co-authored-by: parity-processbot <>
Co-authored-by: Bastian Köcher <git@kchr.de>

* Add map and try_map methods (#12581)

Co-authored-by: parity-processbot <>

* stabilize 4 storage host funcs (#12611)

* Collective benchmark respects DefaultVote configuration (#12612)

* Collective benchmark respects DefaultVote configuration

* ".git/.scripts/bench-bot.sh" pallet dev pallet_collective

Co-authored-by: command-bot <>

* BlockId removal: refactor: Backend::block_indexed_body (#12609)

* BlockId removal: refactor: Backend::block_indexed_body

It changes the arguments of `Backend::block_indexed_body` method from: `BlockId<Block>` to: `&Block::Hash`

This PR is part of BlockId::Number refactoring analysis (paritytech/substrate#11292)

* trigger CI job

* Introduce DefensiveMin and DefensiveMax (#12554)

* traits for defensive min and defensive max

* defensive min and strict min with tests

* defensive max and strict max with tests

* include docs

* implement partial ord on defensive min and max

* Update frame/support/src/traits/misc.rs

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* wrap lines

* Fix traits

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Update frame/support/src/traits/misc.rs

* Update frame/support/src/traits/misc.rs

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Co-authored-by: parity-processbot <>

* pallet-sudo: add `CheckOnlySudoAccount` signed extension (#12496)

* pallet-sudo: add `CheckSudoKey` signed extension

Signed-off-by: koushiro <koushiro.cqx@gmail.com>

* Rename CheckSudoKey => CheckOnlySudo

Signed-off-by: koushiro <koushiro.cqx@gmail.com>

* Rename extension name and Add some docs

* Apply review suggestions

* Update frame/sudo/src/extension.rs

Co-authored-by: Jegor Sidorenko <5252494+jsidorenko@users.noreply.github.com>

* Update frame/sudo/src/extension.rs

Signed-off-by: koushiro <koushiro.cqx@gmail.com>
Co-authored-by: Bastian Köcher <git@kchr.de>
Co-authored-by: Jegor Sidorenko <5252494+jsidorenko@users.noreply.github.com>

* Move Throughput into `sc-sysinfo` (#12368)

* move Throughput to sc-sysinfo

* replace u64

* fix in tests

* change Throughput

* refactored Throughput

* fixes

* moved tests & fixes

* custom serializer

* note

* fix serializer

* forgot to remove

* deserialize

* functioning deserialization :)

* try to make clipply happy

* Serialize as function

* test HwBench

* rename

* fix serialization

* deserialize as function

* unused import

* move serialize/deserialize

* don't serialize none

* remove nonsense

* remove nonsense comment :P

* fixes

* remove all the todos

* return enum

* fixes

* fix nit

* improve docs & readability

* Update client/sysinfo/src/sysinfo.rs

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* fix all the nits

* rename

* fix

* Update client/sysinfo/src/sysinfo.rs

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* remove unit from serialization

* Update utils/frame/benchmarking-cli/src/machine/hardware.rs

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Bump `k256` from `0.10.4` to `0.11.4` (#12085)

* Bump `k256` from `0.10.4` to `0.11.4`

* Update Cargo.lock

* Update

Co-authored-by: Bastian Köcher <info@kchr.de>
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Guard some invalid node for proof decoding. (#12417)

* Guard some invalid node for proof decoding.

* only forbid bitmap with no children.

* change format

* scale error.

* small test

Co-authored-by: parity-processbot <>

* Bump regex from 1.5.5 to 1.6.0 (#12117)

Bumps [regex](https://github.com/rust-lang/regex) from 1.5.5 to 1.6.0.
- [Release notes](https://github.com/rust-lang/regex/releases)
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/regex/compare/1.5.5...1.6.0)

---
updated-dependencies:
- dependency-name: regex
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: parity-processbot <>

* Make `--db` case insensitive again (#12630)

This was broken in the switch to Clap v4.

* txpool: enactment state forced update (#12632)

* txpool: enactment state forced update

When `tree_route` computation fails, we still need to update the
`enactment_state` to be aligned with last known finalized/best block.

We do not execute enactment phase of maintain procedure, but we do
update the state.

* error -> debug

* test added

* Add pallet dev mode (#12536)

* stub for construct_dev_runtime!

* revert

* stub for dev_mode proc macro

* preliminary docs for pallet::dev_mode (attribute) proc macro

* add dev_mode to pallet_macros module

* add docs item for dev_mode to frame_support

* parsing of #[pallet(dev_mode)]

* strip out dev_mode stub since it will be an arg for pallet instead

* make pallet Def struct aware of dev mode

* WIP

* revert changes to call.rs

* pass dev_mode to pallet parsing code

* auto-specify default weights when in dev mode if not specified

* add proof / expect for syn::parse in dev mode weight processing

* set all storages to unbounded when in dev mode

* just use 0

Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>

* add invalid pallet arg test

* add passing dev mode pallet test

* add test confirming that dev mode features only work in dev mode

* cargo fmt + clean up

* bump CI

* fix pallet ui test

* add docs for dev mode

* add warning about using dev mode in production circumstances

* remove comment about no other attributes being supported

* fix unneeded assignment

* make warning more explicit

* more explicit warning about using dev mode in production

* simpler assignment for dev_mode boolean

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* add note about MEL requirement

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* add comment specifying why weights can be omitted in example

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* tweak wording of comments

* bump ci

Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* BlockId removal: &Hash to Hash (#12626)

It changes &Block::Hash argument to Block::Hash.

This PR is part of BlockId::Number refactoring analysis (paritytech/substrate#11292)

* Do not update peer information if ancestor search is in progress (#12631)

* Do not update peer information if ancestor search is in progress

If block announcement is received from a peer while ancestor search
for that same peer is still in progress, do not update the peer's best
hash and best number as that causes the ancestor search to yield
different information from what was expected and can cause, for example,
a fork of lower height not be be downloaded.

* Block until peers are in sync

* Pipeline with ci image with rust 1.65 (#12628)

* Pipeline with ci image with rust 1.65

* fix tests

* use image with sha

* `sp_trie::Recorder`: Fix recording the same key for different tries (#12636)

With `StateVersion::V1` values over a certain size are not inlined and being put into the backend
with their own hash. When accessing a value in the trie with a recorder, we check if the value is maybe already
recorded and thus, we can check the cache. To check if a value is already recorded, we use the key
of the value to differentiate them. The problem is when there are multiple tries, like multiple
child tries that all have different values under the same key. Before this pull request we didn't
have differentiated for which trie we already had recorded a (key, value) pair. This is now done by also taking
the storage root into account in the recorder to differentiate the different (key, value) pair in
the tries.

* Fix UI tests (#12642)

* `payment_queryInfo`: Make it work with `WeightV2` (#12633)

* `payment_queryInfo`: Make it work with `WeighV2`

The runtime api for querying the payment info depends on the `Weight` type and broke for old
runtimes that still use the `WeighV1`. This pull requests fixes this by:

1. Bumping the version of the runtime api.
2. Making the node side code use the correct runtime api function depending on the version of the
runtime api.
3. Make the RPC always return `WeighV1`.

Users of the api should switch to `state_call` and decide based on the version of the runtime api
which `Weight` type is being returned.

* Fix tests

* Review comment

* State-db refactoring (#12239)

* Prune discarded blocks immediately

* state-db refactoring part 1

* Some renames

* Get rid of pending state

* Revert "Prune discarded blocks immediately"

This reverts commit 790f54038b52ff379a573ed0806f38d09af098ec.

* Cleanup

* Make clippy happy

* Minor changes

* Remove duplicate units (#12634)

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Add batching to fast-unstake pallet (#12394)

* implement a brand new batch with all tests passing.

* fix benchmarks as well

* make benchmarks more or less work

* fix migration

* add some testing

* Update frame/fast-unstake/src/benchmarking.rs

Co-authored-by: Roman Useinov <roman.useinov@gmail.com>

* review comments

* some fixes

* fix review comments

* fix build

* fmt

* fix benchmarks

* fmt

* update

Co-authored-by: Roman Useinov <roman.useinov@gmail.com>

* [ci] Use ci-linux:production image in ci (#12648)

* New Weights for All Pallets (#12325)

* new weights for everything

* fix

* fmt

* new batch

* fmt

* new batch

* Update run_all_benchmarks.sh

* add headers

* update weights

* Update lib.rs

* block and extrinsic weight

* Remove partial key size limit from trie codec (#12566)

* remove size limit from trie codec

* test previous upper limit is not enforced anymore

* fmt

* restore test

* Keep the same name (#12616)

Co-authored-by: x <x@localhost.localdomain>

* Do not finalize parent twice (#12653)

If the parent block is alread finalized, we don't need to do this again.

* update paritydb and remove dev deps on rocksdb (#12641)

* update paritydb and remove dev deps on rocksdb

* feature rocksdb for node testing

* feature decl in node-bench

* revert change to rocksdb inclusion logic

* Update bin/node/bench/Cargo.toml

Co-authored-by: Bastian Köcher <git@kchr.de>

Co-authored-by: parity-processbot <>
Co-authored-by: Bastian Köcher <git@kchr.de>

* Epoch-Changes tree pruning was lagging by one epoch (#12567)

* Remove all not required nodes from the epoch-changes tree

Some outdated nodes were left there because of the predicate

* Test to excercise the fix

* Add a fork on genesis to the test

* Fix typo in comments

* Bound Election and Staking by MaxActiveValidators (#12436)

* bounding election provider with kian

* multi phase implement bounded election provider

* election provider blanket implementation

* staking compiles

* fix test for election provider support

* fmt

* fixing epmp tests, does not compile yet

* fix epmp tests

* fix staking tests

* fmt

* fix runtime tests

* fmt

* remove outdated wip tags

* add enum error

* sort and truncate supports

* comment

* error when unsupported number of election winners

* compiling wip after kian's suggestions

* fix TODOs

* remove,fix tags

* ensure validator count does not exceed maxwinners

* clean up

* some more clean up and todos

* handle too many winners

* rename parameter for mock

* todo

* add sort and truncate rule if there are too many winners

* fmt

* fail, not swallow emergency result bound not met

* remove too many winners resolution as it can be guaranteed to be bounded

* fix benchmark

* give MaxWinners more contextual name

* make ready solution generic over T

* kian feedback

* fix stuff

* Kian's way of solvign this

* comment fix

* fix compile

* remove use of BoundedExecution

* fmt

* comment out failing integrity test

* cap validator count increment to max winners

* dont panic

* add test for bad data provider

* Update frame/staking/src/pallet/impls.rs

Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>

* fix namespace conflict and add test for onchain max winners less than desired targets

* defensive unwrap

* early convert to bounded vec

* fix syntax

* fmt

* fix doc

* fix rustdoc

* fmt

* fix maxwinner count for benchmarking

* add instant election for noelection

* fmt

* fix compile

* pr feedbacks

* always error at validator count exceeding max winners

* add useful error message

* pr comments

* import fix

* add checked_desired_targets

* fmt

* fmt

* fix rust doc

Co-authored-by: parity-processbot <>
Co-authored-by: kianenigma <kian@parity.io>
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>

* Update some dependencies to prune duplicated crates with different version (#12560)

* sc-client-babe/sp-arithmetic-fuzzer: update num-bigint and num-rational to v0.4

* update lru 0.7.5 ==> v0.8.1

* pallet-example-offchain-worker: update lite-json v0.1.3 ==> v0.2.0

* update hyper 0.14.16 ==> 0.14.20, num-fromat 0.4.0 ==> 0.4.3

* pallet-mmr: update ckb-merkle-mountain-range v0.3.2 ==> v0.5.2

* update handlebars v4.2.2 ==> v4.3.5

* `runtime_cache_size` must always be at least 1

Signed-off-by: koushiro <koushiro.cqx@gmail.com>

* default cache size with .min(1)

Signed-off-by: koushiro <koushiro.cqx@gmail.com>

* update hyper 0.14.20 ==> 0.14.22

Signed-off-by: koushiro <koushiro.cqx@gmail.com>

* update lru 0.8.0 ==> 0.8.1

Signed-off-by: koushiro <koushiro.cqx@gmail.com>

* Apply suggestions from code review

* Apply suggestions from code review

* Fix Cargo.lock

Signed-off-by: koushiro <koushiro.cqx@gmail.com>
Co-authored-by: Bastian Köcher <git@kchr.de>
Co-authored-by: Bastian Köcher <info@kchr.de>

* Consolidate and deduplicate MMR API methods (#12530)

* histor. batch proof: make best block arg optional

* correct testing range

* make generate_batch_proof stub for historical

* merge generate_{historical_}batch_proof functions

* merge generate_{batch_}proof functions

* merge verify_{batch_}proof functions

* merge verify_{batch_}proof_stateless functions

* remove {Leaf}Proof

Not utilized by API anymore, so superfluous.
Removal consistent with prior changes to just use "batch" proof API.

* rename BatchProof->Proof

no need to qualify if only one universal proof type.

* cleanup

* expose verify_proof rpc api

* document verify_proof

* expose verify_proof_stateless rpc api

* add optional BlockHash to mmr_root rpc api

* fixup! expose verify_proof rpc api

* fix documentation phrasing

Co-authored-by: Adrian Catangiu <adrian@parity.io>

* documentation grammar

Co-authored-by: Adrian Catangiu <adrian@parity.io>

* define mmr error msgs together with error enum

Co-authored-by: Serban Iorga <serban@parity.io>

* fixup! define mmr error msgs together with error enum

* map decoding errors to CallError::InvalidParams

Co-authored-by: Serban Iorga <serban@parity.io>

* fixup! map decoding errors to CallError::InvalidParams

Co-authored-by: Adrian Catangiu <adrian@parity.io>
Co-authored-by: parity-processbot <>
Co-authored-by: Serban Iorga <serban@parity.io>

* Bump ss58-registry from 1.29.0 to 1.34.0 (#12659)

Bumps [ss58-registry](https://github.com/paritytech/ss58-registry) from 1.29.0 to 1.34.0.
- [Release notes](https://github.com/paritytech/ss58-registry/releases)
- [Changelog](https://github.com/paritytech/ss58-registry/blob/main/CHANGELOG.md)
- [Commits](https://github.com/paritytech/ss58-registry/compare/v1.29.0...v1.34.0)

---
updated-dependencies:
- dependency-name: ss58-registry
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Add `CreateOrigin` to Assets Pallet (#12586)

* add CreateOrigin to Assets pallet

* fix asset-tx-payment test

* use AccountId > u64 in test

* Update frame/assets/src/benchmarking.rs

Co-authored-by: Jegor Sidorenko <5252494+jsidorenko@users.noreply.github.com>

Co-authored-by: Jegor Sidorenko <5252494+jsidorenko@users.noreply.github.com>

* `sp-runtime`: make `parity-util-mem` dependency optional (#12657)

* `sp-runtime`: make `parity-util-mem` dependency optional

* Use default-features = false for sp-runtime in sp-keyring

* Remove parity-util-mem from sp-core

* Cargo.lock

* Restore default-features for keyring dependency

* GrandpaJustification: Feature gate `Debug` (#12664)

The grandpa crate is deriving `Debug` only when the `std` feature is enabled. `RuntimeDebug` can be
forced to derive `Debug` also in `no_std` and that doesn't work together. So, we should feature gate
`Debug` on `no_std`.

* More testing and fuzzing and docs for pools (#12624)

* move pools fuzzing to hongfuzz

* merge more small fixes

* fix all tests

* Update frame/nomination-pools/fuzzer/src/call.rs

Co-authored-by: Gonçalo Pestana <g6pestana@gmail.com>

* remove transactional

* fmt

* fix CI

* fmt

* fix build again

* fix CI

Co-authored-by: Gonçalo Pestana <g6pestana@gmail.com>

* Remove `sp_tasks::spawn` API and related code + host functions (#12639)

* Remove `sp_tasks::spawn` API and related code

* Remove `RuntimeTasks::{spawn, join}` host functions

* remove unused

* Remove a few more tests that I forgot to remove

Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>

* Contracts pallet: Bump Runtime API (#12677)

* Fix typo (#12680)

* Move `WeightCounter` to `sp-weights` (#12603)

* Move WeightCounter to sp_weights

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Rename to WeightMeter and test

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Fix pallet-scheduler for new usage

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Update primitives/weights/src/weight_meter.rs

Co-authored-by: David <dvdplm@gmail.com>

* More tests for can_accrue

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Clippy

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Remove defensive_accrue and fixup consumed_ratio

I dont think there is a good use-case for defensive_accrue
without saturation. Only in tests maybe, will remove for now
until we have a use-case.

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Test

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Co-authored-by: David <dvdplm@gmail.com>
Co-authored-by: Gavin Wood <gavin@parity.io>

* Allow other pallets to check asset ids. (#12666)

* Make it easier for other pallets to check asset ids.

* Avoid boxing

* cargo fmt

* derive type info for some grandpa types (#12683)

* Safe TreeRoute constructor (#12691)

* Safe TreeRoute constructor
* Remove test duplicate
* Better tree route error info

* New `root_testing` pallet (#12451)

* Move fill_block to RootOffences

* docs

* new pallet

* new line

* fix

* Update frame/root-testing/src/lib.rs

Co-authored-by: Bastian Köcher <git@kchr.de>

* Update frame/root-testing/src/lib.rs

Co-authored-by: Bastian Köcher <git@kchr.de>

* Update bin/node/runtime/src/lib.rs

Co-authored-by: Bastian Köcher <git@kchr.de>

* Update frame/root-testing/src/lib.rs

Co-authored-by: Bastian Köcher <git@kchr.de>

* Update frame/root-testing/src/lib.rs

Co-authored-by: Bastian Köcher <git@kchr.de>

* Update frame/root-testing/src/lib.rs

Co-authored-by: Bastian Köcher <git@kchr.de>

* fixes

* problem solved

* revert

* fix dependency

* hopefully making the CI happy

* ...

* dummy call

* remove dummy

* fix warning

Co-authored-by: Bastian Köcher <git@kchr.de>

* [ci] Add DAG for build-rustdoc and check-dependent-project (#12687)

* [ci] Debug ci runner

* try gha

* allow mac jobs fail

* add dags

* install protoc

* fix protobuf name

* fix dags

* remove allow fail for mac jobs

* remove gha

* adjust cargo-check-macos

* Collective: Benchmark with greater `MaxProposals` (#12454)

* Collective: Benchmark with greated

* fix

* remove bs

* id_to_remark_data

* fix

* remove hardcoded

* clean up

* simplify

* questionable renaming

* better variable name

* better solution

* no need for large length

* better solution

* Update frame/collective/src/benchmarking.rs

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* fix

* test

* remove test

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* [ci] fix buildah for publishing docker (#12703)

* Make public is_passing and ReferendumStatus (#12667)

* init

* clean

* remove manual getter for ReferendumStatus in favor of changing pub crate to pub for ReferendumStatus DecidingStatus Deposit types

* rm status getters because fields are pub now

* Asset Pallet: Support repeated destroys to safely destroy large assets (#12310)

* Support repeated destroys to safely destroy large assets

* require freezing accounts before destroying

* support only deleting asset as final stage when there's no assets left

* pre: introduce the RemoveKeyLimit config parameter

* debug_ensure empty account in the right if block

* update to having separate max values for accounts and approvals

* add tests and use RemoveKeyLimit constant

* add useful comments to the extrinsics, and calculate returned weight

* add benchmarking for start_destroy and finish destroy

* push failing benchmark logic

* add benchmark tests for new functions

* update weights via local benchmarks

* remove extra weight file

* Update frame/assets/src/lib.rs

Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com>

* Update frame/assets/src/types.rs

Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com>

* Update frame/assets/src/lib.rs

Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com>

* effect some changes from codereview

* use NotFrozen error

* remove origin checks, as anyone can complete destruction after owner has begun the process; Add live check for other extrinsics

* fix comments about Origin behaviour

* add AssetStatus docs

* modularize logic to allow calling logic in on_idle and on_initialize hooks

* introduce simple migration for assets details

* reintroduce logging in the migrations

* move deposit_Event out of the mutate block

* Update frame/assets/src/functions.rs

Co-authored-by: Muharem Ismailov <ismailov.m.h@gmail.com>

* Update frame/assets/src/migration.rs

Co-authored-by: Muharem Ismailov <ismailov.m.h@gmail.com>

* move AssetNotLive checkout out of the mutate blocks

* rename RemoveKeysLimit to RemoveItemsLimit

* update docs

* fix event name in benchmark

* fix cargo fmt.

* fix lint in benchmarking

* Empty commit to trigger CI

* Update frame/assets/src/lib.rs

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Update frame/assets/src/lib.rs

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Update frame/assets/src/functions.rs

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Update frame/assets/src/functions.rs

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Update frame/assets/src/functions.rs

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Update frame/assets/src/lib.rs

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Update frame/assets/src/functions.rs

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* effect change suggested during code review

* move limit to a single location

* Update frame/assets/src/functions.rs

Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com>

* rename events

* fix weight typo, using rocksdb instead of T::DbWeight. Pending generating weights

* switch to using dead_account.len()

* rename event in the benchmarks

* empty to retrigger CI

* trigger CI to check cumulus dependency

* trigger CI for dependent cumulus

* Update frame/assets/src/migration.rs

Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* move is-frozen to the assetStatus enum (#12547)

* add pre and post migration hooks

* update do_transfer logic to add new assert for more correct error messages

* trigger CI

* switch checking AssetStatus from checking Destroying state to checking live state

* fix error type in tests from Frozen to AssetNotLive

* trigger CI

* change ensure check for fn reducible_balance()

* change the error type to Error:<T,I>::IncorrectStatus to be clearer

* Trigger CI

Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com>
Co-authored-by: parity-processbot <>
Co-authored-by: Muharem Ismailov <ismailov.m.h@gmail.com>
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* `seal_reentrant_count` returns contract reentrant count (#12695)

* Add logic, test, broken benchmark

* account_entrance_count

* Addressing comments

* Address @agryaznov's comments

* Add test for account_entrance_count, fix ci

* Cargo fmt

* Fix tests

* Fix tests

* Remove delegated call from test, address comments

* Minor fixes and indentation in wat files

* Update test for account_entrance_count

* Update reentrant_count_call test

* Delegate call test

* Cargo +nightly fmt

* Address comments

* Update reentrant_count_works test

* Apply weights diff

* Add fixture descriptions

* Update comments as suggested

* Update reentrant_count_call test to use seal_address

* add missing code

* cargo fmt

* account_entrance_count -> account_reentrance_count

* fix tests

* fmt

* normalize signatures

Co-authored-by: yarikbratashchuk <yarik.bratashchuk@gmail.com>

* Assets Pallet: reintroduce fungibles::Destroy trait  (#12708)

* update docs formatting

* reintroduce the destroy trait

* copy changes from original PR

* remove witness

* Trigger CI

* Trigger CI

* release `sp-core 7.0.0` and `sp-runtime 7.0.0` (#12599)

* chore(release): sp-core v7.0.0

* chore(release): sp-runtime v7.0.0

* fix bad merge

* Release `sp-keyring` and `pallet-contracts-primitives` `7.0.0` (#12716)

* Bump sp-keyring

* Bump pallet-contracts-primitives

* Cargo.lock

* Fix `cargo check` for `pallet-contracts-proc-macro` (#12706)

* fix `cargo check` for pallet-contracts-proc-macro

* add test for cargo-check of pallet-contracts-proc-macro

* remove cargo-check-contracts-proc-macro

https://github.com/paritytech/substrate/pull/12706/files#r1022783937

* [ci] Improve pipeline stopper (#12717)

* [ci] Improve pipeline stopper

* break test-linux-stable 1/3

* break test-linux-stable 2/3

* break test-linux-stable 3/3

* break cargo-check-benches 1/2

* break cargo-check-benches 2/2

* fix benches

* sc-chainspec: Switch to `assimilate_storage` (#12720)

Before it was using `build_storage` and `assimilate_storage` was returning an error. However, there
was no real reason for `assimilate_storage` to return an error. This pr implements
`assimilate_storage` and uses the default `build_storage` of the trait.

* [Cleanup] Remove obsolete event from fast-unstake (#12725)

Trivial, just removing unused code.

* [Fix] Deposit for fast-unstake has to be define as pallet::constant (#12729)

Fixes https://github.com/paritytech/substrate/issues/12618

* Add event testing example to pallet template (#12722)

Add an example of how to test for events into the example pallet. Right now, the information is pretty hard to find without looking into pallet tests or finding some particular posts on the stackoverflow.

* Remove the `wasmtime` feature flag (#12684)

* Remove the `wasmtime` feature flag

* rustfmt

* Fix the light client protocol protobuf schema (#12732)

* Fix the light client protocol protobuf schema

* Add another test

* Remove unused protobuf struct

* Ok you have to use the nightly rustfmt apparently

* Update template to remove clippy warnings (#12670)

* Update template to remove clippy warnings

* ".git/.scripts/bench-bot.sh" pallet dev pallet_lottery

* Update templates from child project

This should remove clippy warnings on generated files

* Update after review

* Update frame-weight-template.hbs

Commit suggestion

* ".git/.scripts/bench-bot.sh" pallet dev pallet_lottery

* Rerun linter on linked project

Updates from child project

* ".git/.scripts/bench-bot.sh" pallet dev pallet_lottery

Co-authored-by: command-bot <>

* Check all crates (#12709)

* check all crates individually

It's relevant to check workspace crates individually because otherwise their compilation problems
due to feature misconfigurations won't be caught, as exemplified by
https://github.com/paritytech/substrate/issues/12705

* adapt to lack of multiple macos runners

https://github.com/paritytech/substrate/pull/12709#discussion_r1022868752

* fix cancel-pipeline-cargo-check-each-crate-macos

* fix cargo-check-each-crate-macos again

* time command execution

* fix YAML anchors

* add explanation for rounding division

* ensure the minimum of one crate per group

* collect artifacts for pipeline stopper

* revert hardcoded crates_per_group

* re-add crates_per_group=1

* client/beefy: persist voter state (#12712)

* client/beefy: prepare worker for persisting state

* client/beefy: persist voter state

* client/beefy: initialize persistent state

* client/beefy: try to vote from the very beginning

Now that voter is initialized from persistent state, it makes
sense that it can attempt voting right away. This also helps
the genesis case when we consider block `One` as mandatory.

* client/beefy: add tests for voter state db
* client/beefy: persist voter state as soon as initialized
* client/beefy: make sure min-block-delta is at least 1
* client/beefy: persist state after voting

Persist state after handling self vote to avoid double voting in case
of voter restarts.

* client/beefy: persist state after handling mandatory block vote

For mandatory blocks we want to make sure we're not losing votes
in case of crashes or restarts, since voter will not make further
progress without finalizing them.

* frame/beefy: use GENESIS_AUTHORITY_SET_ID on pallet genesis

* client/beefy: initialize voter at either genesis or last finalized
To guarantee unbroken chain of mandatory blocks justifications, voter
will always resume from either last BEEFY-justified block or
`pallet-beefy` genesis, whichever is more recent.

Initialization walks back the chain from latest GRANDPA finalized
block looking for one of the above. Along the way, it also records
and enqueues for processing any BEEFY mandatory blocks that have
been already GRANDPA finalized but not BEEFY finalized.

* client/beefy: decouple voter init from aux db state load
* client/beefy: fix voter init tests
* remove debug prints
* gadget future must be type ()
* fix init from last justification

Signed-off-by: Adrian Catangiu <adrian@parity.io>

* [Fix] Get target count from TargetList instead of storage (#12748)

Co-authored-by: parity-processbot <>

* Move block/state/warpc sync requests/responses to `ChainSync` (#12739)

* Move block/state/warpc sync requests/responses to `ChainSync`

* Apply suggestions from code review

Co-authored-by: Bastian Köcher <git@kchr.de>

* Apply review suggestions

* cargo-fmt + doc fix

* Fix tests

Co-authored-by: Bastian Köcher <git@kchr.de>

* perf: generate_initial_session_keys: load runtime only if its relevant (#12651)

* perf: generate_initial_session_keys: load runtime only if its relevant

* apply review suggestion

* Update primitives/session/src/lib.rs

Co-authored-by: Bastian Köcher <git@kchr.de>

Co-authored-by: Bastian Köcher <git@kchr.de>

* Prevent epochs pruning while finalizing blocks on epoch 0 (#12758)

* Prevent epochs pruning while on epoch 0

* return error instead of expect in `feasibility_check` (#12745)

* Update lib.rs

* make defensive

* fmt

* fix batching migration

* fix

* fix

Co-authored-by: parity-processbot <>

* BEEFY: optimize voter event loop for fewer 'active' wakeups (#12760)

* client/beefy: remove high-freq network events from main loop

Network events are many and very frequent, remove the net-event-stream
from the main voter loop and drastically reduce BEEFY voter task
'wakeups'.

Instead have the `GossipValidator` track known peers as it already
has callbacks for that coming from `GossipEngine`.

Signed-off-by: acatangiu <adrian@parity.io>

* Sort crates before splitting them into groups (+ some improvements) (#12755)

* sort crates before splitting them into groups

this is useful so that crates always get routed to a specific group for a given version of the source code, which means that jobs for each batch can be reliably retried individually

* more verbose output

* misc improvements

* put uniq after sort

uniq filters by adjacent lines

* shellcheck

* rm useless backlashes

* handle edge case of no crates detected

* contracts: Replace `sp-sandbox` and `wasmi-validation` by newest wasmi (#12501)

* Replace sp-sandbox and wasmi-validation by just wasmi

* ".git/.scripts/bench-bot.sh" pallet dev pallet_contracts

* Re-check original code on re-instrumentation

* Fix clippy

* ".git/.scripts/bench-bot.sh" pallet dev pallet_contracts

* Apply suggestions from code review

Co-authored-by: Robin Freyler <robin.freyler@gmail.com>

* Replace wasmi by ::wasmi

* Bump wasmi to 0.20

* Add explanation for `unreachable`

* Change proof

* Fixup master merge

* ".git/.scripts/bench-bot.sh" pallet dev pallet_contracts

* Fixup naming inconsistencies introduced by reentrancy PR

* Fix `scan_imports` docs

* Apply suggestions from code review

Co-authored-by: Sasha Gryaznov <hi@agryaznov.com>

* Fixup suggestions

* Remove unnecessary &mut

* Fix test

* ".git/.scripts/bench-bot.sh" pallet dev pallet_contracts

* Fix benchmark merge fail

* ".git/.scripts/bench-bot.sh" pallet dev pallet_contracts

* Fix docs as suggested by code review

* Improve docs for `CodeRejected`

* Apply suggestions from code review

Co-authored-by: Sasha Gryaznov <hi@agryaznov.com>

* Fix logic bug when setting `deterministic_only`

* Don't panic when module fails to compile

* Apply suggestions from code review

Co-authored-by: Robin Freyler <robin.freyler@gmail.com>

Co-authored-by: command-bot <>
Co-authored-by: Robin Freyler <robin.freyler@gmail.com>
Co-authored-by: Sasha Gryaznov <hi@agryaznov.com>

* update DefaultNoBound derive macro (#12723)

fix derive for empty enums

Update derive & ui tests

clean up

Apply suggestions from code review

Co-authored-by: Bastian Köcher <git@kchr.de>

rename variable

formatting & clippy

formatting

Co-authored-by: parity-processbot <>

* Fix rustdoc (#12777)

* Fix table formatting

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Fix sp-runtime-interface table

Using HTML now since multi-line tables are not a thing and fmt
destroys them.

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* More rustdoc fixes

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Fix tags

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* More fixes...

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Use Bastis patch

Co-authored-by: Bastian Köcher <git@kchr.de>
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Add more backticks

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* change ci image

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Co-authored-by: Bastian Köcher <git@kchr.de>
Co-authored-by: alvicsam <alvicsam@gmail.com>

* Allow Alliance Fellows to Give Up Voting Rights (#12730)

* allow fellows to abdicate voting rights

* rename founders to founding fellows, give equal power

* Drop FoundingFellow role and veto call (#12762)

* drop FoundingFellow role

* drop veto call

* Storage migration to remove founder role (#12766)

* storage migration to remove founder role

* skip migration if no members

* truncate the final fellows set if overflows

* change log - action order

* MemberAbdicated -> FellowAbdicated

Co-authored-by: Muharem Ismailov <ismailov.m.h@gmail.com>

* Add total nb to trie migration rpc (#12770)

* Add total nb to trie migration rpc

* fix and format

* Use struct instead of tuple

* fixes

Co-authored-by: parity-processbot <>

* add EnsureWithSuccess (#12775)

* add EnsureWithSuccess

* Apply suggestions from code review

Co-authored-by: Bastian Köcher <git@kchr.de>

* add docs

Co-authored-by: Bastian Köcher <git@kchr.de>
Co-authored-by: parity-processbot <>

* Explicitly unset RUSTC_WRAPPER=sccache environment variable (#12771)

* CI: Explicitly unset RUSTC_WRAPPER=sccache environment variable

* Try with `rusty-cachier` disabled

* Re-enable `rusty-cachier` and try with the staging image

* Bring back `production` image

* Sort crates before splitting them into groups (+ some improvements) (#12755)

* sort crates before splitting them into groups

this is useful so that crates always get routed to a specific group for a given version of the source code, which means that jobs for each batch can be reliably retried individually

* more verbose output

* misc improvements

* put uniq after sort

uniq filters by adjacent lines

* shellcheck

* rm useless backlashes

* handle edge case of no crates detected

* Revert "Sort crates before splitting them into groups (+ some improvements) (#12755)"

This reverts commit fde839183a12a2bd51efc7143ebcddeed81ea6fa.

Co-authored-by: João Paulo Silva de Souza <77391175+joao-paulo-parity@users.noreply.github.com>

* contracts: Don't put unstable functions in special module (#12781)

* Don't put unstable functions in special module

* Apply suggestions from code review

Co-authored-by: Sasha Gryaznov <hi@agryaznov.com>

* cargo fmt

Co-authored-by: Sasha Gryaznov <hi@agryaznov.com>

* ed25519_verify: Support using dalek for historical blocks (#12661)

* ed25519_verify: Support using dalek for historical blocks

The switch from `ed25519-dalek` to `ed25519-zebra` was actually a breaking change. `ed25519-zebra`
is more permissive. To support historical blocks when syncing a chain this pull request introduces
an externalities extension `UseDalekExt`. This extension is just used as a signaling mechanism to
`ed25519_verify` to use `ed25519-dalek` when it is present. Together with `ExtensionBeforeBlock` it
can be used to setup a node in way to sync historical blocks that require `ed25519-dalek`, because
they included a transaction that verified differently as when using `ed25519-zebra`.

This feature can be enabled in the following way. In the chain service file, directly after the
client is created, the following code should be added:

```
use sc_client_api::ExecutorProvider;
client.execution_extensions().set_extensions_factory(
	sc_client_api::execution_extensions::ExtensionBeforeBlock::<Block, sp_io::UseDalekExt>::new(BLOCK_NUMBER_UNTIL_DALEK_SHOULD_BE_USED)
);
```

* Fix doc

* More fixes

* Update client/api/src/execution_extensions.rs

Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>

* Fix merge and warning

* Fix docs

Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>

* client/beefy: fix on-demand justifications sync for old blocks (#12767)

* client/beefy: fix on-demand justif sync for old blocks

When receiving BEEFY justifications for old blocks the state might
be pruned for them, in which case justification verification fails
because BEEFY validator set cannot be retrieved from runtime state.

Fix this by having the voter give the validator set to the
`OnDemandJustificationsEngine` as request information. On receiving
a BEEFY justification for requested block, the provided validator
set will be used to validate the justification.

Signed-off-by: acatangiu <adrian@parity.io>

* Apply suggestions from code review

Co-authored-by: Bastian Köcher <git@kchr.de>

* impl review suggestions

* client/beefy: fail initialization if state unavailable

* beefy: remove spammy log

Signed-off-by: acatangiu <adrian@parity.io>
Co-authored-by: parity-processbot <>
Co-authored-by: Bastian Köcher <git@kchr.de>

* Remove Default, HasCompact, and TypeInfo trait bounds on AssetId (#12740)

* Remove Default, HasCompact, and TypeInfo trait bounds on AssetId

* don't use default in benchmarking

* add helper trait

* add helper to assets tx payment test

* docs fixes

* i'm confused

* aha, cargo

* move affected dispatchable calls into new indices

* Helper -> BenchmarkHelper

* benchmark use of helper

* actually, don't break every call interface

* use into on AssetIdParameter

* Remove From from AssetIdParameter and use it in BenchmarkHelper

* include from

Co-authored-by: parity-processbot <>

* pallet-mmr: move offchain logic to client-side gadget (#12753)

* Move MMR utils methods from pallet to primitives

Signed-off-by: Serban Iorga <serban@parity.io>

* Add method to MmrApi

* Move forks expanding logic from babe to primitives

* Implement MMR gadget

* Remove prunning logic from the MMR pallet

* Code review changes: 1st iteration

* Replace MaybeCanonEngine with CanonEngineBuilder

* fix mmr_leaves_count() for kitchen sink demo

* Update client/merkle-mountain-range/src/canon_engine.rs

Co-authored-by: Adrian Catangiu <adrian@parity.io>

* Code review changes: 2nd iteration

* fix INDEXING_PREFIX

* impl review comments

* add documentation and minor rename

Signed-off-by: Serban Iorga <serban@parity.io>
Co-authored-by: Adrian Catangiu <adrian@parity.io>

* Require rust-features check (#12796)

* Typo

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Move rust feature check to docker and require not to fail

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Add .docker-env

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Move test-rust-features check back to kubernetes

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* MMR: move RPC code from frame/ to client/ (#12805)

* mmr: move MMR RPC from frame/ to client/

Signed-off-by: Adrian Catangiu <adrian@parity.io>

* client/mmr: adjust logging levels to avoid spam

* cargo fmt

* remove unused imports

Signed-off-by: Adrian Catangiu <adrian@parity.io>

* chore: remove unused traits for wasm interface (#12792)

* sc-transaction-handler: Fix potential crashes on exit (#12807)

This fixes some potential crashes in the stream handling in `sc-transaction-handler`.

* Don't announce blocks in `sync_to_tip_when_we_sync_together_with_multiple_peers` (#12783)

* Fix syncing test

* cargo fmt

* Fix test

* contracts: Replace cargo feature `unstable-interface` with config (#12787)

* Replace cargo feature with config

* Update frame/contracts/proc-macro/src/lib.rs

Co-authored-by: Sasha Gryaznov <hi@agryaznov.com>

Co-authored-by: Sasha Gryaznov <hi@agryaznov.com>

* Bounties use SpendOrigin (#12808)

* Bounties use SpendOrigin

* Fix tests

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* fmt

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* tests: increase spend limits

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* fix benchmarks

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* Fix child-bounties tests

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>

* ".git/.scripts/bench-bot.sh" pallet dev pallet_bounties

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Co-authored-by: command-bot <>

* Reduce provisioner work (#12749)

* Move create_inherent_data call to use side

* Make provide_inherent_data async

* Fix tests

* Apply suggestions from code review

Co-authored-by: Bastian Köcher <git@kchr.de>

* Log errors

* Fix test

* Fix test

* fix

* Deduplicate test code

* fix

* flag

* Update client/consensus/slots/src/lib.rs

Co-authored-by: Bastian Köcher <git@kchr.de>

* Revert "Deduplicate test code"

This reverts commit ba46adbe089329c78cd69ccdb08e27ed67bd77cf.

* Fix test

* remove commented out code

* minor to start CI run

* start CI

* Update client/consensus/slots/src/lib.rs

Co-authored-by: Marcin S. <marcin@bytedude.com>

* Apply PR suggestions

* Apply PR suggestions

* Update client/consensus/slots/src/lib.rs

Co-authored-by: Bastian Köcher <git@kchr.de>

* minor

* kickoff CI

* PR suggestions

* Compute remaining duration instead of using slot_info.duration

* Don't rely on sub implementat…
ltfschoen pushed a commit to ltfschoen/substrate that referenced this pull request Feb 22, 2023
…itytech#12740)

* Remove Default, HasCompact, and TypeInfo trait bounds on AssetId

* don't use default in benchmarking

* add helper trait

* add helper to assets tx payment test

* docs fixes

* i'm confused

* aha, cargo

* move affected dispatchable calls into new indices

* Helper -> BenchmarkHelper

* benchmark use of helper

* actually, don't break every call interface

* use into on AssetIdParameter

* Remove From from AssetIdParameter and use it in BenchmarkHelper

* include from

Co-authored-by: parity-processbot <>
ark0f pushed a commit to gear-tech/substrate that referenced this pull request Feb 27, 2023
…itytech#12740)

* Remove Default, HasCompact, and TypeInfo trait bounds on AssetId

* don't use default in benchmarking

* add helper trait

* add helper to assets tx payment test

* docs fixes

* i'm confused

* aha, cargo

* move affected dispatchable calls into new indices

* Helper -> BenchmarkHelper

* benchmark use of helper

* actually, don't break every call interface

* use into on AssetIdParameter

* Remove From from AssetIdParameter and use it in BenchmarkHelper

* include from

Co-authored-by: parity-processbot <>
@zqhxuyuan zqhxuyuan mentioned this pull request Mar 20, 2023
12 tasks
AurevoirXavier added a commit to darwinia-network/darwinia that referenced this pull request Mar 28, 2023
* Darwinia 2.0

* Darwinia shell chain (#27)

* Skeleton

* XCM configs

* Bump toolchain

* Code cleaning part.1

* Code cleaning part.2

* Update SS58

* Rename

* Update token decimals

* Format

* Extract darwinia core primitives

* License

* Benchmarks

* Extract constants

* Docs

* CI part.1

* Adjust the runtime pallets structure (#29)

* frame-system

* pallet-timestamp

* pallet-authorship

* pallet-balances

* pallet-transaction-payment

* pallet-parachain-system

* pallet-parachain-info

* pallet-aura-ext

* pallet-xcmp-queue

* pallet-dmp-queue

* pallet-session

* pallet-aura

* pallet-collator-selection

* format

* deal ambiguous name

* fix compile

* clear imports

* update visibility for pallets

* add license for pallets

* update darwinia comments

* CI part.2

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* CI part.3

* CI part.4

* Add missing features

* Case

* Setup build environment

* CI part.5

* Enable `kusama-native`, `rococo-native`

Signed-off-by: Xavier Lau <xavier@inv.cafe>
Co-authored-by: Guantong <04637@163.com>

* Docs & formatting (#33)

* Add EVM stuff (#30)

* Skeleton

* XCM configs

* Bump toolchain

* Code cleaning part.1

* Code cleaning part.2

* Update SS58

* Rename

* Update token decimals

* Format

* Extract darwinia core primitives

* Add frontier deps without fork!

* License

* Add pallets to runtime

* Benchmarks

* Append command part

* Extract constants

* Docs

* CI part.1

* Adjust the runtime pallets structure (#29)

* frame-system

* pallet-timestamp

* pallet-authorship

* pallet-balances

* pallet-transaction-payment

* pallet-parachain-system

* pallet-parachain-info

* pallet-aura-ext

* pallet-xcmp-queue

* pallet-dmp-queue

* pallet-session

* pallet-aura

* pallet-collator-selection

* format

* deal ambiguous name

* fix compile

* clear imports

* update visibility for pallets

* add license for pallets

* update darwinia comments

* Adapt main

* Delete duplicated consts

* Hack rpc

* Client compile fix

* Fix client

* Move to ethereum mod

* Add more precompile

* Fix some issue

* Solve conflict

* Merge issues

* Format

* Add basic code for precompiles

* Update EthRpcConfig

* Use Hashing type

* Foramt issue

* Adjust service config

* Add evm, ethereum feature

* Add missing features

* Move const

* Doc

* Format

* Format

* Format

* Format

* Format

* Safer truncated

* Clean importing

* Suppress warnings

* Remove empty line

* Clean importing

* Clean importing

* Format

* Clean importing

* Restructure

Co-authored-by: Xavier Lau <xavier@inv.cafe>
Co-authored-by: Guantong <04637@163.com>

* Polish RPC & service (#36)

* Use full path

* Abstract APIs & types

* Format

* Extract darwinia-runtime (#32)

* Skeleton

* XCM configs

* Bump toolchain

* Code cleaning part.1

* Code cleaning part.2

* Update SS58

* Rename

* Update token decimals

* Format

* Extract darwinia core primitives

* License

* Benchmarks

* Extract constants

* Docs

* CI part.1

* Adjust the runtime pallets structure (#29)

* frame-system

* pallet-timestamp

* pallet-authorship

* pallet-balances

* pallet-transaction-payment

* pallet-parachain-system

* pallet-parachain-info

* pallet-aura-ext

* pallet-xcmp-queue

* pallet-dmp-queue

* pallet-session

* pallet-aura

* pallet-collator-selection

* format

* deal ambiguous name

* fix compile

* clear imports

* update visibility for pallets

* add license for pallets

* update darwinia comments

* CI part.2

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* CI part.3

* CI part.4

* Add missing features

* Case

* Setup build environment

* CI part.5

* init

* adjust structure & fix compile

* Move`type Barrier` out of `common` because of different runtimes may require different barriers

* Add required xcm barriers

* format

* remove redundant files

* format

* format

* try fix ci

* merge main

* fix ci

* Format

* remove unused dependencies

* format

* format

* format

* Format

Signed-off-by: Xavier Lau <xavier@inv.cafe>
Co-authored-by: Xavier Lau <xavier@inv.cafe>

* Polish service (#38)

* use full path

* RuntimeApi

Co-authored-by: Xavier Lau <xavier@inv.cafe>

* Enable `FrontierDb` subcommand (#37)

* Refactor `new_partial`

* Try fix compile

* Update `new_partial`

* Yeah, make compiler happy

* Code clean

* Something about command

* Resolve conflict

* Adapt for main style

* Self review

* Ready for review

* Revert full-path in command mod

* Code cleaning

Co-authored-by: Xavier Lau <xavier@inv.cafe>

* Use zero existential deposit (#48)

* Update ED

* Update `candidacy_bond`

* Add messages-substrate deps (#49)

* add messages-substrate deps

* fix ci

* add messages-substrate deps

* fix ci

* update messages-substrate deps

* update cargo.lock

* Format

Co-authored-by: Xavier Lau <xavier@inv.cafe>

* Process system and balances state (#39)

* Process state part.1

* More detail

* Take storages

* Take KV

* Merge balances

* Extract balance lock

* Format

* Flatten account

* Preprocess storage key

* Fix properties

* Add shell config

* Modularize processor

* Calculate total issuance

* Recover nonce

* Add darwinia's precompiles (#50)

* Use `H160` as `AccountId` (#55)

* Configure `H160` for runtime

* Configure `H160` genesis

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* Docs

* Improve code

* Add missing features

* Format and enable missing features for #50

* Format

* Fix evm config

* Revert the rename

Signed-off-by: Xavier Lau <xavier@inv.cafe>
Co-authored-by: bear <boundless.forest@outlook.com>

* Testnet preparation (#57)

* More testing tokens

* Update runtime version

* Correct name

* Adjust genesis accounts (#59)

* Adjust genesis accounts

* Docs

* Typo

* Adjust runtime and add pallets (#60)

* Adjust runtime and add sudo

* Adjust parameter types and add vesting

* Fix compile

* Add utility

* Add collective, elections-phragmen, identity and treasury

* Add preimage and scheduler

* Add democracy and membership

* Add multisig and proxy

* License

* License

* Set balances's index to 5

* Code cleaning

* Crab & Pangolin Runtime (#56)

* Add assets component (#69)

* Add asset pallet

* Add asset precompile

* Add precompile interface

* Impl all asset precompile interfaces

* Self review

* Code clean

* Add mock file

* Fix test compile

* Add test 1

* Add test 2

* Add test 3

* Add test 4

* Finish test

* Add another type

* Update asset origin

* Fix CI

* Move out from Others

* Add asset to other runtimes

* Bridge related pallets (#70)

* Copy from Crab Parachain

* Replace Crab Parachain > Darwinia

* bridge pallets, many errors need to fix

� Conflicts:
�	Cargo.lock
�	runtime/common/Cargo.toml
�	runtime/darwinia/src/pallets/mod.rs

* Add fee_market

� Conflicts:
�	runtime/common/Cargo.toml

* Update deps

* Update deps

* Add bridge related pallets to darwinia

* Add bridge related pallets to crab

* format

* Update deps

* review

* comment

Co-authored-by: bear <boundless.forest@outlook.com>

* Fix #72 (#79)

* Add `message-transact` back (#74)

* Update chain id (#85)

* Update parachain IDs (#89)

* Change paraId 1000 > 2105

* Darwinia paraId 2046

* Correct block time (#93)

* Add parachain staking (#68)

* Avoid large enum variant (#98)

* Avoid large enum variant

* Fix tests

Co-authored-by: bear <boundless.forest@outlook.com>

* Add account migration pallet (#86)

* Init commit

* Add todos

* Add `ValidateUnsigned`

* Add signature verify

* Add event

* Add comment

* Update message hash

* Add mock file

* Compile mock

* Add basic tests

* Add more tests

* Code clean

* Clean toml

* Format

* Install it to the runtimes

* Rename

Co-authored-by: HackFisher <denny.wang@itering.io>
Co-authored-by: Xavier Lau <xavier@inv.cafe>

* Handle reference count (#102)

* Handle reference count

* Fix test

* Housekeeping (#105)

* Housekeeping

* Format

* Adjust path style (#99)

* Bridge related pallets

* fee market

* format

* evm

* xcm

* format

* MaxMessagesToPruneAtOnce

* move ByteArray

* move AccountToAssetId

* move UniqueSaturatedInto

* Const

* format

* Add sudo key (#107)

* Update XCM filter (#88)

* Improve code (#111)

* Update AssetId (#109)

* Update asset id

* Rename

* Release collator staking restriction (#114)

* Account migration (#108)

* Add `staking` and `deposit` pre-compiles (#81)

* Some optimization (#116)

* Change sudo to Alith

* Format

* Doc

* Security

* Security

* Opt

* Grammar

* Add staking & deposit to Crab & Pangolin (#112)

* Some adjustment (#120)

* Fast runtime

* Valid genesis exposure

* Assets genesis

* Add `bridge_parachains` pallet (#122)

* Update Grandpa Name

* Add bridge parachain pallet

* Correct bridge message verify

* type HeadersToKeep

* Fix CI

* Fix CI

* Account genesis (#123)

* Handle EVM accounts and pruge locks

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* Refactor account genesis

* Purge locks

* Update scope

* Update special accounts list

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* Vesting genesis (#127)

* Handle EVM accounts and pruge locks

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* Refactor account genesis

* Purge locks

* Update scope

* Update special accounts list

* Vesting genesis

* Improve state management

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* Merge balance after update decimal (#128)

* Update order

* Update README

* Update reserve transfer filter (#130)

* Frontier pallets storage process (#121)

* Build test

* Add licenses

* Add ethereum schema process

* Add evm state process

* Self review

* Delte useless file

* Bump deps

* Free license

* Refactor

* Correct prefixes

Signed-off-by: Xavier Lau <xavier@inv.cafe>

Signed-off-by: Xavier Lau <xavier@inv.cafe>
Co-authored-by: Xavier Lau <xavier@inv.cafe>

* Configure instant sealing for dev chains (#119)

* Add start_dev_node

* Add start_dev_node to command
Fix compile

* Don't check relay chain for dev node

* Correct chain spec Identify

* Add instant finalize

* Clean

* Add tip

* Fix CI

* opt

* format

* Revert "Fix CI"

This reverts commit 63ae56a8a4ff329a708de8ae7287b3a2133fac19.

* Format

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* Remove redundant clone

Signed-off-by: Xavier Lau <xavier@inv.cafe>
Co-authored-by: bear <boundless.forest@outlook.com>
Co-authored-by: fisher <denny.wang@itering.io>
Co-authored-by: Xavier Lau <xavier@inv.cafe>

* Optimize storage (#132)

* Update bridge deps (#134)

* Update bridge deps

* Correct version of cfg-if for `twox-hash`

* Fix account insert key (#139)

* Fix account insert bug

* Code clean

* Delete empty line

* Correct `RuntimeApi` & `RuntimeExecutor` (#141)

* Convert the rest locations to H160 by hashing it (#138)

* Convert the rest locations to H160 by hashing it

* format

* fix review

* Process staking (#133)

* Process staking

* Correct type

* Refactor

* Introduce `Adjust` trait

* Refactor

* Format

* Update links

* Doc

* Fix

* Doc

* Fix vesting processor (#144)

* Fix vesting processor

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* Format

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* Update KTON owner (#145)

* Add genesis (#148)

* Add genesis

* Fix compile

* Clippy (#150)

* Fix revert (#149)

Co-authored-by: Xavier Lau <xavier@inv.cafe>

* Fix hash key (#152)

* Process indices & more utility fns (#151)

* More tools

* Process indices

* More error logs

Signed-off-by: Xavier Lau <xavier@inv.cafe>

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* Fix contract account `sufficients`  (#146)

* Update sufficient

* Inc sufficient for contract account

* Fix

* Use new style

* Fix type & code optimization (#154)

* Fix type & code optimization

* Use `u16` to bypass the polkadot-js/apps#8591

* Fix bonded prefix (#155)

* Fix bonded prefix

* Restore

* Fix

* Update type (#156)

* Kton state migrate (#137)

* Step 1

* Step 2

* Step 3

* Step 4

* Finish processor side

* Add runtime side

* Add metadata insert

* Fix approvals inc

* Fresh new details

* Use Vec

* Adapt new way

* Code clean

* Remove `sp-core`

* Fix todo and review

* Fix link and format

* Cross compile support (#159)

* Improve deposit (#160)

* Improve deposit

* Test more cases

* Fix tests

* Some fixes (#162)

* Improve config for pallet_bridge_grandpa (#161)

* Update max bridged authorities follow https://github.com/paritytech/parity-bridges-common/blob/c28b3ff66c29c6c9d9955583b50c2114de14e98c/primitives/chain-rococo/src/lib.rs#L45-L48

* Update max bridged header size to 65536

* Update weight info follow https://github.com/paritytech/parity-bridges-common/blob/c28b3ff66c29c6c9d9955583b50c2114de14e98c/bin/millau/runtime/src/lib.rs#L431

* Keep WeightInfo to ()

* Code Clean

* Improve kton migration (#163)

* Improve kton migration

* Typo

* Doc

* Name

* Fix

* Fix

* Use `DealWithFees` in `transaction_payment` (#164)

* Add `claim_with_penalty` interface (#165)

* Handle different account types (#168)

* Handle different account types

* Format

* State process test (#153)

* First commit

* Add balance test

* Try fix

* test total_issuance

* Test the kton part removed

* Add evm related test

* Assert evm account storages

* Update evm storage tests

* Add vesting info test

* Add indices test

* Add staking test

* Add staking test 2

* Fix tests

* Add deposit items test

* Finish staking test

* Add tests for assets

* Test kton transfer to asset pallet

* Test kton total issuance

* Fix todo

* Add parachain support

* Remove ignored case

* Add combine solo,para account tests

* Code clean

* Add filter

* Refactor the test

* Ignore two cases

* Rwrite all tests

* Update evm codes test

* Code format

* Fix indices tests

* Remove debug line

* Format

* Format

* Fix review

Co-authored-by: Xavier Lau <xavier@inv.cafe>

* Happy new year (#170)

* Happy new year

* Fix

* Process proxy and support generic runtime (#172)

* Format

* Process proxy and support generic runtime

* Format

* Format

* Fixes

* Adjust XCM trader (#143)

* init LocalAssetTrader

* LocalAssetTrader

* Update trader for pangolin & crab

* format

* Update comments

* Update logs

* format

* Format

* Simplify code

Co-authored-by: fisher <denny.wang@itering.io>
Co-authored-by: Xavier Lau <xavier@inv.cafe>

* Adjust common functions (#167)

* WeightToFee

* darwinia_deposit

* Move darwinia_deposit to primitives

* fix review

* remove unused smallvec

* Pangolin2 preparation (#174)

* New data path

* Simplify staking migration

* Refactor

* Build spec automatically

* Download specs automatically

* Use `take`

* Remove unnecessary doc

* Add darwinia dispatch precompile (#173)

* Add darwinia dispatch

* Fix test

Co-authored-by: Xavier Lau <xavier@inv.cafe>
Co-authored-by: fisher <denny.wang@itering.io>

* Process sudo (#177)

* Process sudo

* Add testing key

* Fixes (#179)

* Fix

* Bump to fix

* Fix genesis

* Fix build spec

* Test env

* Fund Alith (#182)

* Fund Alith

* Use local chain type

* Optional download (#183)

* Fix processor tests (#175)

* Fix test

* Fix test

* Delete sudo and metadata

* ECDSA authority (#184)

* Add message gadget

* Fix compile

* Fix mock

* Fix test

* Add ecdsa-authority

* License

* Add `restake` and fix some bugs (#188)

* Add `restake` and fix some bugs

* More tests

* More tests

* Doc

* Add restake interface (#189)

* Add `Proxy` tests (#190)

* Check key prefix

* Add tests

* Use `any`

* Improve existing check (#191)

* Improve existing check

* Remove unused variable

* Modify testnet time (#192)

* Improve tips

* Clippy

* Set testnet time to 5 mins

* `account-migration` runtime tests (#169)

* Add validate unsigned test

* Add validation tests

* Account migrate test

* Fix redundant encode

* Kton asset

* prepare accounts

* Remove migration

* Pass tests

* kton tests

* Add staking test

* Fix test

* Staking test

* Finish pangolin tests

* Add crab and darwinia tests

* Revert changes

Co-authored-by: Xavier Lau <xavier@inv.cafe>

* Human readable sign message (#195)

* Human readable sign message

* Update spec

* Update proxy filter (#197)

* Use features check action (#198)

Signed-off-by: Xavier Lau <xavier@inv.cafe>

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* Merge collator payout (#200)

* Merge collator payout

* Bump runtime version

* Improve code

* Doc

* Refactor runtime tests (#204)

* Test only code (#206)

* Fix precompiles genesis (#207)

* Tweak the genesis config

* Add tests

* Use check runtime action (#208)

* Use check runtime action

* Try

* Try

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* Test all runtimes

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* Done

* Remove compress step

* Remove unused env var

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* To `polkadot-v0.9.33` and some other changes (#171)

* Anchor polkadot-v0.9.33

* Companion for paritytech/cumulus#1685

* Companion for paritytech/cumulus#1585

* Companion for paritytech/cumulus#1745

* Companion for paritytech/cumulus#1759

* Companion for paritytech/cumulus#1782

* Companion for paritytech/cumulus#1793

* Companion for paritytech/cumulus#1808

* Temp use prepare branch of messages-substrate

* Use darwinia fork frontier

* Use correct moonbeam substrate commit

* Correct bp-darwinia-core std

* Use prepare moonbeam v0.9.33

* Update ethereum to 0.14.0

* Companion for paritytech/substrate#11649, paritytech/polkadot#5729 democracy

* Companion for paritytech/substrate#11649, paritytech/polkadot#5729 scheduler

* Companion for paritytech/substrate#11649, paritytech/polkadot#5729 preimage

* Companion for paritytech/substrate#12109

* Type create origin

* Format

* Fix type CreateOrigin

* Format

* Companion for polkadot-evm/frontier#935

* Fix compile

* Fix service

* Format

* `Frontier` upgrade (#196)

* Delete BaseFee

* Fix todo

* Update prepare branch

* Fix mock

* Add pallet-evm-precompile-dispatch/std

* Format

* Format

* Correct version after merge

* Fix review

* Fix review

* Fix CI test

* Fix compile after merge

Co-authored-by: bear <boundless.forest@outlook.com>

* pallet-identity state process (#124)

* Add types folder

* Read storage out

* Decimal update

* Add remove subsOf and superOf

* Remove useless file

* Add README

* Process in runtime side

* Format

* Add SUDO back

* Fix doc link

* Identity migrate

* Fix runtime

* Add tests

* Add tests

* Code clean

* Remove sp-runtime

* Code format

* Delete useless reserve

* Reset the judgements

* Self review

* Fix

* Add identities runtime tests

* Fix tests

* Just format

* Tiny updates

* Update doc

Co-authored-by: Xavier Lau <xavier@inv.cafe>

* Keep identity judgments (#210)

* Keep identity judgments

* Doc

* Bump toolchain to `nightly-2022-11-15` (#212)

* Add metadata for front end (#219)

* Burn parachain backing RING (#218)

* Fix state judgement (#222)

* Fix judgement

* Use adjust()

* Format

* Readable address (#224)

* Add missing field (#226)

* Fix `try-runtime` (#223)

* Try fix

* Try fix

* Adjust toml file

* Fix compile

* Foramat

* Adjust session consumer part.1 (#229)

* Clean unused deps (#228)

* Clean unused deps

* Update messages-substrate deps

* Try fix CI

* Adapt PolkadotJS (#231)

* Release Pangolin2 (#225)

* Reorder

* Adjust genesis

* Typo

* State types check (#230)

* Check

* Use type

* Update processor files

* Find others

* Format

* Default pangolin

* Fix review

* Account migration signer tool (#235)

* Doc

* Bump version for devnet

* Account migration signer tool

* Doc

* Update docs (#237)

Co-authored-by: Xavier Lau <xavier@inv.cafe>

* Fix call indexes (#238)

* Fix signer cli (#239)

* Improve testing (#241)

* Improve testing

* Fix formula

* Opt

* State processor CI

* Unset

* Try

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* Opt

* Opt

* Try

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* Opt

* Opt

* Final test

* Fix

* Bump

* Fix

* Fix

---------

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* Rebuild accounts' reservation (#242)

* Set reservation to zero

* Configure genesis collator

* Rebuild accounts' reservation and update tests

* Update tests

* Add EVM tests (#234)

* Support Ethereum for dev node

* Add first test

* Add rpc constants test

* Add balance test

* Add contract test

* Finish balance and contract basic tests

* Add bloom filter test

* Test `eth_getCode`

* Test nonce update

* Test opcodes

* Add event test

* Finally, basic tests are covered.

* Use `impl_self_contained_call` (#250)

* Rebuild account reference counters (#249)

* Rebuild account reference counters part.1

* part.2

* part.3

* TODO

* Fix

* Fixes

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* Doc

---------

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* Add evm checks (#252)

* Add evm checks

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* Fix

---------

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* Clean empty ledger (#253)

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* Add bridge extension validation (#251)

* Add bridger extension validatioin

* Update comments

* Revert changes

* Fix review

* Add `reserve` and `references count` tests (#259)

* Fix TODO

* Add reserve test

* Add another case

* Add more samples

* Code clean

* Fix local test error

* Handle special accounts (#265)

* Handle special accounts

* Refactor

* More readable

* Doc

* Add staging workflow (#258)

* Add staging workflow

* Test CI

* CI

* Add deps

* CI

* CI

* CI

* Updte trigger

---------

Co-authored-by: Xavier Lau <xavier@inv.cafe>

* To `polkadot-v0.9.36` (#213)

* Anchor polkadot-v0.9.36

* Companion for paritytech/cumulus#1860

* Companion for paritytech/cumulus#1876

* Companion for paritytech/cumulus#1904

* Companion for paritytech/substrate#12310

* Companion for paritytech/substrate#12740

* Bump array-bytes to 6.0.0

* Companion for paritytech/substrate#12868

* Companion for paritytech/cumulus#1930

* Companion for paritytech/cumulus#1905

* Companion for paritytech/cumulus#1880

* Companion for paritytech/cumulus#1997

* Companion for paritytech/cumulus#1559

* Prepare messages-substrate

* Companion for paritytech/substrate#12684

* Companion for paritytech/substrate#12740

* Fix compile  paritytech/substrate#12740

* Compile done

* Format

* Add call index

* Compile done

* Fix CI

* Bump moonbeam

* Fix CI

* Try fix tests

* Use into instead of `Compact`

* Patch substrate & Fix compile

* Fix try-runtime

* Remove parity-util-mem

* Format

* Format

* Opt

* Format

* Use `codec::Compact<AssetId>`

* Format

---------

Co-authored-by: Xavier Lau <xavier@inv.cafe>

* Migrate `pallet-assets` (#260)

* Anchor polkadot-v0.9.36

* Companion for paritytech/cumulus#1860

* Companion for paritytech/cumulus#1876

* Companion for paritytech/cumulus#1904

* Companion for paritytech/substrate#12310

* Companion for paritytech/substrate#12740

* Bump array-bytes to 6.0.0

* Companion for paritytech/substrate#12868

* Companion for paritytech/cumulus#1930

* Companion for paritytech/cumulus#1905

* Companion for paritytech/cumulus#1880

* Companion for paritytech/cumulus#1997

* Companion for paritytech/cumulus#1559

* Prepare messages-substrate

* Companion for paritytech/substrate#12684

* Companion for paritytech/substrate#12740

* Fix compile  paritytech/substrate#12740

* Compile done

* Format

* Add call index

* Compile done

* Fix CI

* Bump moonbeam

* Fix CI

* Try fix tests

* Use into instead of `Compact`

* Patch substrate & Fix compile

* Fix try-runtime

* Remove parity-util-mem

* Companion for paritytech/substrate#12310

* Update state processor

* Add type link

* Fix review issues

* Format

---------

Co-authored-by: Guantong <i@guantong.io>

* Clean imports (#271)

* Clean imports

* Fix tests

* Migrate multisig (#272)

* Migrate multisig

* Unit tests

* Doc

* Fix

* More checks

* Doc

* Reject duplicative submission

* Add special accounts migration test (#268)

* Part 1

* Part 2

* Rename

* Better function names

* Update state storage filter (#273)

* Let ethereum go

* Update pallet name

* Fix

---------

Co-authored-by: Xavier Lau <xavier@inv.cafe>

* Manage runtime through features (#274)

* Format

* Manage runtime through features

* Total issuance assertions (#276)

* Process parachain system (#278)

* Try workspace's new feature (#277)

* Update crate info

* Update deps 1

* Update deps 2

* Update deps 3

* Update deps 4

* Format

* Fix review

* Rename `Staking` to `DarwiniaStaking` (#279)

* Rename to `DarwiniaStaking`

* Rename

* Format (#280)

* Add Pangoro2 (#281)

* Format

* Deduplicate

* Add Pangoro2

* Rename

* Fix

* Fix

* Rename

* Doc

* Set SS58 in runtime and remove from chain spec

* To `polkadot-v0.9.37` (#266)

* Anchor polkadot-v0.9.37

* Companion for paritytech/substrate#12307

* Companion for paritytech/cumulus#2057

* Use prepare branch for test

* Companion for polkadot-evm/frontier#981

* Remove collator selection in bench

* Fix BenchmarkHelper

* Fix compile

* Format

* Fix compile

* Fix compile feature benchmark

* Fix test

* Format toml

* Format

* Pangoro2 0.9.37

* Fix try-runtime

* Fix try-runtime cmd

* Format

* Fix review

* Use `Vec`

* Typo

---------

Co-authored-by: Xavier Lau <xavier@inv.cafe>

* Pangolin2 `6005` runtime upgrade (#283)

* Update Pangolin CI

* Bump runtime version

* Set payout fraction to 40% (#284)

* Set payout fraction to 40%

* Format

Signed-off-by: Xavier Lau <xavier@inv.cafe>

---------

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* Add evm estimate gas tests (#282)

* Add estimate gas tests

* Fix CI

* Fix ethereum block author (#286)

* Fix ethereum block author

* Move some structs to the common folder

* Fix CI test

* Clean

* Pangolin2 <> Pangoro2 bridge (#285)

* Copy darwinia bm => pangoro bm
Copy crab bm => pangolin bm

* Add pangolin&pangoro bridge-messages

* Add bridge related pallets for pangolin&pangoro

* Add bridge palles to runtime for pangolin & pangoro

* Fix compile

* Missing changes

* Correct bridge-dispatch

* Format

* Update genesis

* Update nonce test (#288)

* Remove assertions in HRMP&DMP (#290)

* Patch cumulus

* Bump darwinia/cumulus

* Preparation of Pangoro2 (#291)

* Correct command

* Some fixes

* Update evm module runtime name (#293)

* Fix evm runtime name

* Format toml

* Add migration

* Fix state processor

* Use latest polkadot-v0.9.37 commit

* Fix tests

* Bench upstream pallets (#292)

* Fix balances benchmark

* Add bridge related bench

* Benchmark with steps 50 repeat 20

* Update weights for bridge pallets

* Pangolin bench pallets

* Bench s2 r1 for all runtimes

* Update weights for all runtime

* Add benchmarking items and bench darwinia-deposit (#294)

* Add benchmarking items and bench darwinia-deposit

* Format

* Doc

* Fix and update CI

* Re-cache

* Opt

* Opt

* Correct URI

---------

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* Auto load large genesis (#295)

* Auto load large genesis

* Remove unused feature

* Format

* Opt

* Fix broken CI (#296)

* Try fix

* Fix it!

* Remove multisig (#299)

* Update Pangoro2 parachain id (#304)

* Update cross compile docker image (#303)

* Update cross compile docker image

* Fix compile

* Easy make (#305)

* Easy make

* Format

* Update EthBlockGasLimit (#306)

* Update pangolin's max gas limit

* Update other runtimes

* Move evm tests

* Self review

* Anchor v0.9.38

* Companion for paritytech/cumulus#2067

* Companion for paritytech/cumulus#697 XCM v3

* Companion for paritytech/cumulus#2096

* Companion for paritytech/cumulus#1863

* Companion for paritytech/cumulus#2073

* Companion for paritytech/cumulus#2126

* Use prepare branch

* Companion for paritytech/substrate#13216

* Companion for darwinia-messages-substrate#254

* Companion for paritytech/polkadot#4097

* Part companion for paritytech/cumulus#2067

* Correct companion for cumulus#2073

* Fix xcm compilation

* Fix compilation done

* Fix compilation with benchmark

* Replace prepare branch

* Format

* Fix compile

* Format

* Fix CI check features

* Format

* Patch cumulus assertion branch v0.9.38

* Companion for paritytech/cumulus#2287

* Remove unused polkadot-service

* Revert changes

* Format

---------

Signed-off-by: Xavier Lau <xavier@inv.cafe>
Co-authored-by: Xavier Lau <xavier@inv.cafe>
Co-authored-by: bear <boundless.forest@outlook.com>
Co-authored-by: HackFisher <denny.wang@itering.io>
Co-authored-by: fewensa <37804932+fewensa@users.noreply.github.com>
Co-authored-by: Guantong <i@guantong.io>
AurevoirXavier added a commit to darwinia-network/darwinia that referenced this pull request Mar 30, 2023
* Darwinia 2.0

* Darwinia shell chain (#27)

* Skeleton

* XCM configs

* Bump toolchain

* Code cleaning part.1

* Code cleaning part.2

* Update SS58

* Rename

* Update token decimals

* Format

* Extract darwinia core primitives

* License

* Benchmarks

* Extract constants

* Docs

* CI part.1

* Adjust the runtime pallets structure (#29)

* frame-system

* pallet-timestamp

* pallet-authorship

* pallet-balances

* pallet-transaction-payment

* pallet-parachain-system

* pallet-parachain-info

* pallet-aura-ext

* pallet-xcmp-queue

* pallet-dmp-queue

* pallet-session

* pallet-aura

* pallet-collator-selection

* format

* deal ambiguous name

* fix compile

* clear imports

* update visibility for pallets

* add license for pallets

* update darwinia comments

* CI part.2

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* CI part.3

* CI part.4

* Add missing features

* Case

* Setup build environment

* CI part.5

* Enable `kusama-native`, `rococo-native`

Signed-off-by: Xavier Lau <xavier@inv.cafe>
Co-authored-by: Guantong <04637@163.com>

* Docs & formatting (#33)

* Add EVM stuff (#30)

* Skeleton

* XCM configs

* Bump toolchain

* Code cleaning part.1

* Code cleaning part.2

* Update SS58

* Rename

* Update token decimals

* Format

* Extract darwinia core primitives

* Add frontier deps without fork!

* License

* Add pallets to runtime

* Benchmarks

* Append command part

* Extract constants

* Docs

* CI part.1

* Adjust the runtime pallets structure (#29)

* frame-system

* pallet-timestamp

* pallet-authorship

* pallet-balances

* pallet-transaction-payment

* pallet-parachain-system

* pallet-parachain-info

* pallet-aura-ext

* pallet-xcmp-queue

* pallet-dmp-queue

* pallet-session

* pallet-aura

* pallet-collator-selection

* format

* deal ambiguous name

* fix compile

* clear imports

* update visibility for pallets

* add license for pallets

* update darwinia comments

* Adapt main

* Delete duplicated consts

* Hack rpc

* Client compile fix

* Fix client

* Move to ethereum mod

* Add more precompile

* Fix some issue

* Solve conflict

* Merge issues

* Format

* Add basic code for precompiles

* Update EthRpcConfig

* Use Hashing type

* Foramt issue

* Adjust service config

* Add evm, ethereum feature

* Add missing features

* Move const

* Doc

* Format

* Format

* Format

* Format

* Format

* Safer truncated

* Clean importing

* Suppress warnings

* Remove empty line

* Clean importing

* Clean importing

* Format

* Clean importing

* Restructure

Co-authored-by: Xavier Lau <xavier@inv.cafe>
Co-authored-by: Guantong <04637@163.com>

* Polish RPC & service (#36)

* Use full path

* Abstract APIs & types

* Format

* Extract darwinia-runtime (#32)

* Skeleton

* XCM configs

* Bump toolchain

* Code cleaning part.1

* Code cleaning part.2

* Update SS58

* Rename

* Update token decimals

* Format

* Extract darwinia core primitives

* License

* Benchmarks

* Extract constants

* Docs

* CI part.1

* Adjust the runtime pallets structure (#29)

* frame-system

* pallet-timestamp

* pallet-authorship

* pallet-balances

* pallet-transaction-payment

* pallet-parachain-system

* pallet-parachain-info

* pallet-aura-ext

* pallet-xcmp-queue

* pallet-dmp-queue

* pallet-session

* pallet-aura

* pallet-collator-selection

* format

* deal ambiguous name

* fix compile

* clear imports

* update visibility for pallets

* add license for pallets

* update darwinia comments

* CI part.2

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* CI part.3

* CI part.4

* Add missing features

* Case

* Setup build environment

* CI part.5

* init

* adjust structure & fix compile

* Move`type Barrier` out of `common` because of different runtimes may require different barriers

* Add required xcm barriers

* format

* remove redundant files

* format

* format

* try fix ci

* merge main

* fix ci

* Format

* remove unused dependencies

* format

* format

* format

* Format

Signed-off-by: Xavier Lau <xavier@inv.cafe>
Co-authored-by: Xavier Lau <xavier@inv.cafe>

* Polish service (#38)

* use full path

* RuntimeApi

Co-authored-by: Xavier Lau <xavier@inv.cafe>

* Enable `FrontierDb` subcommand (#37)

* Refactor `new_partial`

* Try fix compile

* Update `new_partial`

* Yeah, make compiler happy

* Code clean

* Something about command

* Resolve conflict

* Adapt for main style

* Self review

* Ready for review

* Revert full-path in command mod

* Code cleaning

Co-authored-by: Xavier Lau <xavier@inv.cafe>

* Use zero existential deposit (#48)

* Update ED

* Update `candidacy_bond`

* Add messages-substrate deps (#49)

* add messages-substrate deps

* fix ci

* add messages-substrate deps

* fix ci

* update messages-substrate deps

* update cargo.lock

* Format

Co-authored-by: Xavier Lau <xavier@inv.cafe>

* Process system and balances state (#39)

* Process state part.1

* More detail

* Take storages

* Take KV

* Merge balances

* Extract balance lock

* Format

* Flatten account

* Preprocess storage key

* Fix properties

* Add shell config

* Modularize processor

* Calculate total issuance

* Recover nonce

* Add darwinia's precompiles (#50)

* Use `H160` as `AccountId` (#55)

* Configure `H160` for runtime

* Configure `H160` genesis

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* Docs

* Improve code

* Add missing features

* Format and enable missing features for #50

* Format

* Fix evm config

* Revert the rename

Signed-off-by: Xavier Lau <xavier@inv.cafe>
Co-authored-by: bear <boundless.forest@outlook.com>

* Testnet preparation (#57)

* More testing tokens

* Update runtime version

* Correct name

* Adjust genesis accounts (#59)

* Adjust genesis accounts

* Docs

* Typo

* Adjust runtime and add pallets (#60)

* Adjust runtime and add sudo

* Adjust parameter types and add vesting

* Fix compile

* Add utility

* Add collective, elections-phragmen, identity and treasury

* Add preimage and scheduler

* Add democracy and membership

* Add multisig and proxy

* License

* License

* Set balances's index to 5

* Code cleaning

* Crab & Pangolin Runtime (#56)

* Add assets component (#69)

* Add asset pallet

* Add asset precompile

* Add precompile interface

* Impl all asset precompile interfaces

* Self review

* Code clean

* Add mock file

* Fix test compile

* Add test 1

* Add test 2

* Add test 3

* Add test 4

* Finish test

* Add another type

* Update asset origin

* Fix CI

* Move out from Others

* Add asset to other runtimes

* Bridge related pallets (#70)

* Copy from Crab Parachain

* Replace Crab Parachain > Darwinia

* bridge pallets, many errors need to fix

� Conflicts:
�	Cargo.lock
�	runtime/common/Cargo.toml
�	runtime/darwinia/src/pallets/mod.rs

* Add fee_market

� Conflicts:
�	runtime/common/Cargo.toml

* Update deps

* Update deps

* Add bridge related pallets to darwinia

* Add bridge related pallets to crab

* format

* Update deps

* review

* comment

Co-authored-by: bear <boundless.forest@outlook.com>

* Fix #72 (#79)

* Add `message-transact` back (#74)

* Update chain id (#85)

* Update parachain IDs (#89)

* Change paraId 1000 > 2105

* Darwinia paraId 2046

* Correct block time (#93)

* Add parachain staking (#68)

* Avoid large enum variant (#98)

* Avoid large enum variant

* Fix tests

Co-authored-by: bear <boundless.forest@outlook.com>

* Add account migration pallet (#86)

* Init commit

* Add todos

* Add `ValidateUnsigned`

* Add signature verify

* Add event

* Add comment

* Update message hash

* Add mock file

* Compile mock

* Add basic tests

* Add more tests

* Code clean

* Clean toml

* Format

* Install it to the runtimes

* Rename

Co-authored-by: HackFisher <denny.wang@itering.io>
Co-authored-by: Xavier Lau <xavier@inv.cafe>

* Handle reference count (#102)

* Handle reference count

* Fix test

* Housekeeping (#105)

* Housekeeping

* Format

* Adjust path style (#99)

* Bridge related pallets

* fee market

* format

* evm

* xcm

* format

* MaxMessagesToPruneAtOnce

* move ByteArray

* move AccountToAssetId

* move UniqueSaturatedInto

* Const

* format

* Add sudo key (#107)

* Update XCM filter (#88)

* Improve code (#111)

* Update AssetId (#109)

* Update asset id

* Rename

* Release collator staking restriction (#114)

* Account migration (#108)

* Add `staking` and `deposit` pre-compiles (#81)

* Some optimization (#116)

* Change sudo to Alith

* Format

* Doc

* Security

* Security

* Opt

* Grammar

* Add staking & deposit to Crab & Pangolin (#112)

* Some adjustment (#120)

* Fast runtime

* Valid genesis exposure

* Assets genesis

* Add `bridge_parachains` pallet (#122)

* Update Grandpa Name

* Add bridge parachain pallet

* Correct bridge message verify

* type HeadersToKeep

* Fix CI

* Fix CI

* Account genesis (#123)

* Handle EVM accounts and pruge locks

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* Refactor account genesis

* Purge locks

* Update scope

* Update special accounts list

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* Vesting genesis (#127)

* Handle EVM accounts and pruge locks

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* Refactor account genesis

* Purge locks

* Update scope

* Update special accounts list

* Vesting genesis

* Improve state management

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* Merge balance after update decimal (#128)

* Update order

* Update README

* Update reserve transfer filter (#130)

* Frontier pallets storage process (#121)

* Build test

* Add licenses

* Add ethereum schema process

* Add evm state process

* Self review

* Delte useless file

* Bump deps

* Free license

* Refactor

* Correct prefixes

Signed-off-by: Xavier Lau <xavier@inv.cafe>

Signed-off-by: Xavier Lau <xavier@inv.cafe>
Co-authored-by: Xavier Lau <xavier@inv.cafe>

* Configure instant sealing for dev chains (#119)

* Add start_dev_node

* Add start_dev_node to command
Fix compile

* Don't check relay chain for dev node

* Correct chain spec Identify

* Add instant finalize

* Clean

* Add tip

* Fix CI

* opt

* format

* Revert "Fix CI"

This reverts commit 63ae56a8a4ff329a708de8ae7287b3a2133fac19.

* Format

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* Remove redundant clone

Signed-off-by: Xavier Lau <xavier@inv.cafe>
Co-authored-by: bear <boundless.forest@outlook.com>
Co-authored-by: fisher <denny.wang@itering.io>
Co-authored-by: Xavier Lau <xavier@inv.cafe>

* Optimize storage (#132)

* Update bridge deps (#134)

* Update bridge deps

* Correct version of cfg-if for `twox-hash`

* Fix account insert key (#139)

* Fix account insert bug

* Code clean

* Delete empty line

* Correct `RuntimeApi` & `RuntimeExecutor` (#141)

* Convert the rest locations to H160 by hashing it (#138)

* Convert the rest locations to H160 by hashing it

* format

* fix review

* Process staking (#133)

* Process staking

* Correct type

* Refactor

* Introduce `Adjust` trait

* Refactor

* Format

* Update links

* Doc

* Fix

* Doc

* Fix vesting processor (#144)

* Fix vesting processor

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* Format

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* Update KTON owner (#145)

* Add genesis (#148)

* Add genesis

* Fix compile

* Clippy (#150)

* Fix revert (#149)

Co-authored-by: Xavier Lau <xavier@inv.cafe>

* Fix hash key (#152)

* Process indices & more utility fns (#151)

* More tools

* Process indices

* More error logs

Signed-off-by: Xavier Lau <xavier@inv.cafe>

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* Fix contract account `sufficients`  (#146)

* Update sufficient

* Inc sufficient for contract account

* Fix

* Use new style

* Fix type & code optimization (#154)

* Fix type & code optimization

* Use `u16` to bypass the polkadot-js/apps#8591

* Fix bonded prefix (#155)

* Fix bonded prefix

* Restore

* Fix

* Update type (#156)

* Kton state migrate (#137)

* Step 1

* Step 2

* Step 3

* Step 4

* Finish processor side

* Add runtime side

* Add metadata insert

* Fix approvals inc

* Fresh new details

* Use Vec

* Adapt new way

* Code clean

* Remove `sp-core`

* Fix todo and review

* Fix link and format

* Cross compile support (#159)

* Improve deposit (#160)

* Improve deposit

* Test more cases

* Fix tests

* Some fixes (#162)

* Improve config for pallet_bridge_grandpa (#161)

* Update max bridged authorities follow https://github.com/paritytech/parity-bridges-common/blob/c28b3ff66c29c6c9d9955583b50c2114de14e98c/primitives/chain-rococo/src/lib.rs#L45-L48

* Update max bridged header size to 65536

* Update weight info follow https://github.com/paritytech/parity-bridges-common/blob/c28b3ff66c29c6c9d9955583b50c2114de14e98c/bin/millau/runtime/src/lib.rs#L431

* Keep WeightInfo to ()

* Code Clean

* Improve kton migration (#163)

* Improve kton migration

* Typo

* Doc

* Name

* Fix

* Fix

* Use `DealWithFees` in `transaction_payment` (#164)

* Add `claim_with_penalty` interface (#165)

* Handle different account types (#168)

* Handle different account types

* Format

* State process test (#153)

* First commit

* Add balance test

* Try fix

* test total_issuance

* Test the kton part removed

* Add evm related test

* Assert evm account storages

* Update evm storage tests

* Add vesting info test

* Add indices test

* Add staking test

* Add staking test 2

* Fix tests

* Add deposit items test

* Finish staking test

* Add tests for assets

* Test kton transfer to asset pallet

* Test kton total issuance

* Fix todo

* Add parachain support

* Remove ignored case

* Add combine solo,para account tests

* Code clean

* Add filter

* Refactor the test

* Ignore two cases

* Rwrite all tests

* Update evm codes test

* Code format

* Fix indices tests

* Remove debug line

* Format

* Format

* Fix review

Co-authored-by: Xavier Lau <xavier@inv.cafe>

* Happy new year (#170)

* Happy new year

* Fix

* Process proxy and support generic runtime (#172)

* Format

* Process proxy and support generic runtime

* Format

* Format

* Fixes

* Adjust XCM trader (#143)

* init LocalAssetTrader

* LocalAssetTrader

* Update trader for pangolin & crab

* format

* Update comments

* Update logs

* format

* Format

* Simplify code

Co-authored-by: fisher <denny.wang@itering.io>
Co-authored-by: Xavier Lau <xavier@inv.cafe>

* Adjust common functions (#167)

* WeightToFee

* darwinia_deposit

* Move darwinia_deposit to primitives

* fix review

* remove unused smallvec

* Pangolin2 preparation (#174)

* New data path

* Simplify staking migration

* Refactor

* Build spec automatically

* Download specs automatically

* Use `take`

* Remove unnecessary doc

* Add darwinia dispatch precompile (#173)

* Add darwinia dispatch

* Fix test

Co-authored-by: Xavier Lau <xavier@inv.cafe>
Co-authored-by: fisher <denny.wang@itering.io>

* Process sudo (#177)

* Process sudo

* Add testing key

* Fixes (#179)

* Fix

* Bump to fix

* Fix genesis

* Fix build spec

* Test env

* Fund Alith (#182)

* Fund Alith

* Use local chain type

* Optional download (#183)

* Fix processor tests (#175)

* Fix test

* Fix test

* Delete sudo and metadata

* ECDSA authority (#184)

* Add message gadget

* Fix compile

* Fix mock

* Fix test

* Add ecdsa-authority

* License

* Add `restake` and fix some bugs (#188)

* Add `restake` and fix some bugs

* More tests

* More tests

* Doc

* Add restake interface (#189)

* Add `Proxy` tests (#190)

* Check key prefix

* Add tests

* Use `any`

* Improve existing check (#191)

* Improve existing check

* Remove unused variable

* Modify testnet time (#192)

* Improve tips

* Clippy

* Set testnet time to 5 mins

* `account-migration` runtime tests (#169)

* Add validate unsigned test

* Add validation tests

* Account migrate test

* Fix redundant encode

* Kton asset

* prepare accounts

* Remove migration

* Pass tests

* kton tests

* Add staking test

* Fix test

* Staking test

* Finish pangolin tests

* Add crab and darwinia tests

* Revert changes

Co-authored-by: Xavier Lau <xavier@inv.cafe>

* Human readable sign message (#195)

* Human readable sign message

* Update spec

* Update proxy filter (#197)

* Use features check action (#198)

Signed-off-by: Xavier Lau <xavier@inv.cafe>

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* Merge collator payout (#200)

* Merge collator payout

* Bump runtime version

* Improve code

* Doc

* Refactor runtime tests (#204)

* Test only code (#206)

* Fix precompiles genesis (#207)

* Tweak the genesis config

* Add tests

* Use check runtime action (#208)

* Use check runtime action

* Try

* Try

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* Test all runtimes

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* Done

* Remove compress step

* Remove unused env var

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* To `polkadot-v0.9.33` and some other changes (#171)

* Anchor polkadot-v0.9.33

* Companion for paritytech/cumulus#1685

* Companion for paritytech/cumulus#1585

* Companion for paritytech/cumulus#1745

* Companion for paritytech/cumulus#1759

* Companion for paritytech/cumulus#1782

* Companion for paritytech/cumulus#1793

* Companion for paritytech/cumulus#1808

* Temp use prepare branch of messages-substrate

* Use darwinia fork frontier

* Use correct moonbeam substrate commit

* Correct bp-darwinia-core std

* Use prepare moonbeam v0.9.33

* Update ethereum to 0.14.0

* Companion for paritytech/substrate#11649, paritytech/polkadot#5729 democracy

* Companion for paritytech/substrate#11649, paritytech/polkadot#5729 scheduler

* Companion for paritytech/substrate#11649, paritytech/polkadot#5729 preimage

* Companion for paritytech/substrate#12109

* Type create origin

* Format

* Fix type CreateOrigin

* Format

* Companion for polkadot-evm/frontier#935

* Fix compile

* Fix service

* Format

* `Frontier` upgrade (#196)

* Delete BaseFee

* Fix todo

* Update prepare branch

* Fix mock

* Add pallet-evm-precompile-dispatch/std

* Format

* Format

* Correct version after merge

* Fix review

* Fix review

* Fix CI test

* Fix compile after merge

Co-authored-by: bear <boundless.forest@outlook.com>

* pallet-identity state process (#124)

* Add types folder

* Read storage out

* Decimal update

* Add remove subsOf and superOf

* Remove useless file

* Add README

* Process in runtime side

* Format

* Add SUDO back

* Fix doc link

* Identity migrate

* Fix runtime

* Add tests

* Add tests

* Code clean

* Remove sp-runtime

* Code format

* Delete useless reserve

* Reset the judgements

* Self review

* Fix

* Add identities runtime tests

* Fix tests

* Just format

* Tiny updates

* Update doc

Co-authored-by: Xavier Lau <xavier@inv.cafe>

* Keep identity judgments (#210)

* Keep identity judgments

* Doc

* Bump toolchain to `nightly-2022-11-15` (#212)

* Add metadata for front end (#219)

* Burn parachain backing RING (#218)

* Fix state judgement (#222)

* Fix judgement

* Use adjust()

* Format

* Readable address (#224)

* Add missing field (#226)

* Fix `try-runtime` (#223)

* Try fix

* Try fix

* Adjust toml file

* Fix compile

* Foramat

* Adjust session consumer part.1 (#229)

* Clean unused deps (#228)

* Clean unused deps

* Update messages-substrate deps

* Try fix CI

* Adapt PolkadotJS (#231)

* Release Pangolin2 (#225)

* Reorder

* Adjust genesis

* Typo

* State types check (#230)

* Check

* Use type

* Update processor files

* Find others

* Format

* Default pangolin

* Fix review

* Account migration signer tool (#235)

* Doc

* Bump version for devnet

* Account migration signer tool

* Doc

* Update docs (#237)

Co-authored-by: Xavier Lau <xavier@inv.cafe>

* Fix call indexes (#238)

* Fix signer cli (#239)

* Improve testing (#241)

* Improve testing

* Fix formula

* Opt

* State processor CI

* Unset

* Try

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* Opt

* Opt

* Try

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* Opt

* Opt

* Final test

* Fix

* Bump

* Fix

* Fix

---------

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* Rebuild accounts' reservation (#242)

* Set reservation to zero

* Configure genesis collator

* Rebuild accounts' reservation and update tests

* Update tests

* Add EVM tests (#234)

* Support Ethereum for dev node

* Add first test

* Add rpc constants test

* Add balance test

* Add contract test

* Finish balance and contract basic tests

* Add bloom filter test

* Test `eth_getCode`

* Test nonce update

* Test opcodes

* Add event test

* Finally, basic tests are covered.

* Use `impl_self_contained_call` (#250)

* Rebuild account reference counters (#249)

* Rebuild account reference counters part.1

* part.2

* part.3

* TODO

* Fix

* Fixes

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* Doc

---------

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* Add evm checks (#252)

* Add evm checks

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* Fix

---------

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* Clean empty ledger (#253)

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* Add bridge extension validation (#251)

* Add bridger extension validatioin

* Update comments

* Revert changes

* Fix review

* Add `reserve` and `references count` tests (#259)

* Fix TODO

* Add reserve test

* Add another case

* Add more samples

* Code clean

* Fix local test error

* Handle special accounts (#265)

* Handle special accounts

* Refactor

* More readable

* Doc

* Add staging workflow (#258)

* Add staging workflow

* Test CI

* CI

* Add deps

* CI

* CI

* CI

* Updte trigger

---------

Co-authored-by: Xavier Lau <xavier@inv.cafe>

* To `polkadot-v0.9.36` (#213)

* Anchor polkadot-v0.9.36

* Companion for paritytech/cumulus#1860

* Companion for paritytech/cumulus#1876

* Companion for paritytech/cumulus#1904

* Companion for paritytech/substrate#12310

* Companion for paritytech/substrate#12740

* Bump array-bytes to 6.0.0

* Companion for paritytech/substrate#12868

* Companion for paritytech/cumulus#1930

* Companion for paritytech/cumulus#1905

* Companion for paritytech/cumulus#1880

* Companion for paritytech/cumulus#1997

* Companion for paritytech/cumulus#1559

* Prepare messages-substrate

* Companion for paritytech/substrate#12684

* Companion for paritytech/substrate#12740

* Fix compile  paritytech/substrate#12740

* Compile done

* Format

* Add call index

* Compile done

* Fix CI

* Bump moonbeam

* Fix CI

* Try fix tests

* Use into instead of `Compact`

* Patch substrate & Fix compile

* Fix try-runtime

* Remove parity-util-mem

* Format

* Format

* Opt

* Format

* Use `codec::Compact<AssetId>`

* Format

---------

Co-authored-by: Xavier Lau <xavier@inv.cafe>

* Migrate `pallet-assets` (#260)

* Anchor polkadot-v0.9.36

* Companion for paritytech/cumulus#1860

* Companion for paritytech/cumulus#1876

* Companion for paritytech/cumulus#1904

* Companion for paritytech/substrate#12310

* Companion for paritytech/substrate#12740

* Bump array-bytes to 6.0.0

* Companion for paritytech/substrate#12868

* Companion for paritytech/cumulus#1930

* Companion for paritytech/cumulus#1905

* Companion for paritytech/cumulus#1880

* Companion for paritytech/cumulus#1997

* Companion for paritytech/cumulus#1559

* Prepare messages-substrate

* Companion for paritytech/substrate#12684

* Companion for paritytech/substrate#12740

* Fix compile  paritytech/substrate#12740

* Compile done

* Format

* Add call index

* Compile done

* Fix CI

* Bump moonbeam

* Fix CI

* Try fix tests

* Use into instead of `Compact`

* Patch substrate & Fix compile

* Fix try-runtime

* Remove parity-util-mem

* Companion for paritytech/substrate#12310

* Update state processor

* Add type link

* Fix review issues

* Format

---------

Co-authored-by: Guantong <i@guantong.io>

* Clean imports (#271)

* Clean imports

* Fix tests

* Migrate multisig (#272)

* Migrate multisig

* Unit tests

* Doc

* Fix

* More checks

* Doc

* Reject duplicative submission

* Add special accounts migration test (#268)

* Part 1

* Part 2

* Rename

* Better function names

* Update state storage filter (#273)

* Let ethereum go

* Update pallet name

* Fix

---------

Co-authored-by: Xavier Lau <xavier@inv.cafe>

* Manage runtime through features (#274)

* Format

* Manage runtime through features

* Total issuance assertions (#276)

* Process parachain system (#278)

* Try workspace's new feature (#277)

* Update crate info

* Update deps 1

* Update deps 2

* Update deps 3

* Update deps 4

* Format

* Fix review

* Rename `Staking` to `DarwiniaStaking` (#279)

* Rename to `DarwiniaStaking`

* Rename

* Format (#280)

* Add Pangoro2 (#281)

* Format

* Deduplicate

* Add Pangoro2

* Rename

* Fix

* Fix

* Rename

* Doc

* Set SS58 in runtime and remove from chain spec

* To `polkadot-v0.9.37` (#266)

* Anchor polkadot-v0.9.37

* Companion for paritytech/substrate#12307

* Companion for paritytech/cumulus#2057

* Use prepare branch for test

* Companion for polkadot-evm/frontier#981

* Remove collator selection in bench

* Fix BenchmarkHelper

* Fix compile

* Format

* Fix compile

* Fix compile feature benchmark

* Fix test

* Format toml

* Format

* Pangoro2 0.9.37

* Fix try-runtime

* Fix try-runtime cmd

* Format

* Fix review

* Use `Vec`

* Typo

---------

Co-authored-by: Xavier Lau <xavier@inv.cafe>

* Pangolin2 `6005` runtime upgrade (#283)

* Update Pangolin CI

* Bump runtime version

* Set payout fraction to 40% (#284)

* Set payout fraction to 40%

* Format

Signed-off-by: Xavier Lau <xavier@inv.cafe>

---------

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* Add evm estimate gas tests (#282)

* Add estimate gas tests

* Fix CI

* Fix ethereum block author (#286)

* Fix ethereum block author

* Move some structs to the common folder

* Fix CI test

* Clean

* Pangolin2 <> Pangoro2 bridge (#285)

* Copy darwinia bm => pangoro bm
Copy crab bm => pangolin bm

* Add pangolin&pangoro bridge-messages

* Add bridge related pallets for pangolin&pangoro

* Add bridge palles to runtime for pangolin & pangoro

* Fix compile

* Missing changes

* Correct bridge-dispatch

* Format

* Update genesis

* Update nonce test (#288)

* Remove assertions in HRMP&DMP (#290)

* Patch cumulus

* Bump darwinia/cumulus

* Preparation of Pangoro2 (#291)

* Correct command

* Some fixes

* Update evm module runtime name (#293)

* Fix evm runtime name

* Format toml

* Add migration

* Fix state processor

* Use latest polkadot-v0.9.37 commit

* Fix tests

* Bench upstream pallets (#292)

* Fix balances benchmark

* Add bridge related bench

* Benchmark with steps 50 repeat 20

* Update weights for bridge pallets

* Pangolin bench pallets

* Bench s2 r1 for all runtimes

* Update weights for all runtime

* Add benchmarking items and bench darwinia-deposit (#294)

* Add benchmarking items and bench darwinia-deposit

* Format

* Doc

* Fix and update CI

* Re-cache

* Opt

* Opt

* Correct URI

---------

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* Auto load large genesis (#295)

* Auto load large genesis

* Remove unused feature

* Format

* Opt

* Fix broken CI (#296)

* Try fix

* Fix it!

* Remove multisig (#299)

* Update Pangoro2 parachain id (#304)

* Update cross compile docker image (#303)

* Update cross compile docker image

* Fix compile

* Easy make (#305)

* Easy make

* Format

* Update EthBlockGasLimit (#306)

* Update pangolin's max gas limit

* Update other runtimes

* Move evm tests

* Self review

* Anchor v0.9.38

* Companion for paritytech/cumulus#2067

* Companion for paritytech/cumulus#697 XCM v3

* Companion for paritytech/cumulus#2096

* Companion for paritytech/cumulus#1863

* Companion for paritytech/cumulus#2073

* Companion for paritytech/cumulus#2126

* Use prepare branch

* Companion for paritytech/substrate#13216

* Companion for darwinia-messages-substrate#254

* Companion for paritytech/polkadot#4097

* Part companion for paritytech/cumulus#2067

* Correct companion for cumulus#2073

* Fix xcm compilation

* Fix compilation done

* Fix compilation with benchmark

* Replace prepare branch

* Format

* Add EthereumXcm and XcmTransactor

* Some fix

* Fix compile 2

* Compile done

* Format

* Fix compilation done

* Format

* Add DarwiniaCall

* Patch moonbeam debug branch

* Patch polkadot debug branch

* Patch frontier debug branch

* Add many logs

* Patch substrate debug branch

* Update frontier&moonbeam debug logs

* Add `EthereumXcm` and `XcmTransactor` for pangolin

* Optimize bls precompile by arkworks lib (#993)

* Optimize bls precompile by arkworks lib

* Pin bls-test precompose at `address(2017)`

* Fmt

* Update deps

* Add openssl deps in nix

* Remove empty line

* Format and fix compile

* Fix

* Resolve conv

* Fix

* Use rustup on nixos

* Fix

* Disable in the crab and darwinia network

* Add `shell.nix` to .gitigore

* Format

* Format

---------

Co-authored-by: Xavier Lau <xavier@inv.cafe>
Co-authored-by: bear <boundless.forest@outlook.com>

* Opt `deserialize_compressed` -> `deserialize_compressed_unchecked` (#1009)

* Remove frontier log

* Debug log in ecdsa

* XcmTransactor weight v2

* Correct barrier

* Remove xcmTransactor from Pangolin

* Remove xcmTransactor from Pangoro

* Message root record should be updated correctly (#1048)

* Adjustable collator count (#1012)

* Fix compile

* Add missed bls commit

* Remove moonbeam-relay-encoder

* Refactor

* Bench

* Unused log

* Revert "Update ecdsa-authority spec (#1022)"

This reverts commit 3c07f7b.

* Fix

* Fix corner cases and add more unit tests

Signed-off-by: Xavier Lau <xavier@inv.cafe>

* Add ethereum-xcm to darwinia runtime

* Companion for polkadot-evm/frontier#1011, #1014

* Remove debug patch

* Fix merging

* Revert "Revert "Update ecdsa-authority spec (#1022)""

This reverts commit 2b1a07b.

* Fix tests

* Fix benchmark compile

* Fix try-runtime features

* GITHUB_CACHE_VERSION

* Format

* Move ethereumXcm pallet to EVM stuff

* Disable transactThroughProxy

* Fix runtime benchmarks

* Fix review

* Format

---------

Signed-off-by: Xavier Lau <xavier@inv.cafe>
Co-authored-by: Xavier Lau <xavier@inv.cafe>
Co-authored-by: bear <boundless.forest@outlook.com>
Co-authored-by: HackFisher <denny.wang@itering.io>
Co-authored-by: fewensa <37804932+fewensa@users.noreply.github.com>
Co-authored-by: Guantong <i@guantong.io>
Co-authored-by: echo <hujw77@gmail.com>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
A0-please_review Pull request needs code review. C1-low PR touches the given topic and has a low impact on builders. D3-trivial 🧸 PR contains trivial changes in a runtime directory that do not require an audit
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Trait Bounds for AssetId vs. MultiLocation
8 participants