Commit Graph

121 Commits

Author SHA1 Message Date
Sebastian Kunert 9a650c46fd PoV Reclaim (Clawback) Node Side (#1462)
This PR provides the infrastructure for the pov-reclaim mechanism
discussed in #209. The goal is to provide the current proof size to the
runtime so it can be used to reclaim storage weight.

## New Host Function
- A new host function is provided
[here](https://github.com/skunert/polkadot-sdk/blob/5b317fda3be205f4136f10d4490387ccd4f9765d/cumulus/primitives/pov-reclaim/src/lib.rs#L23).
It returns the size of the current proof size to the runtime. If
recording is not enabled, it returns 0.

## Implementation Overview
- Implement option to enable proof recording during import in the
client. This is currently enabled for `polkadot-parachain`,
`parachain-template` and the cumulus test node.
- Make the proof recorder ready for no-std. It was previously only
enabled for std environments, but we need to record the proof size in
`validate_block` too.
- Provide a recorder implementation that only the records the size of
incoming nodes and does not store the nodes itself.
- Fix benchmarks that were broken by async backing changes
- Provide new externalities extension that is registered by default if
proof recording is enabled.
- I think we should discuss the naming, pov-reclaim was more intuitive
to me, but we could also go with clawback like in the issue.

## Impact of proof recording during import
With proof recording: 6.3058 Kelem/s
Without proof recording: 6.3427 Kelem/s

The measured impact on the importing performance is quite low on my
machine using the block import benchmark. With proof recording I am
seeing a performance hit of 0.585%.

---------

Co-authored-by: command-bot <>
Co-authored-by: Davide Galassi <davxy@datawok.net>
Co-authored-by: Bastian Köcher <git@kchr.de>
2023-11-30 15:56:34 +01:00
Bastian Köcher 1bc0885829 validate-block: Fix TrieCache implementation (#2214)
The trie cache implementation was ignoring the `storage_root` when
setting up the value cache. The problem with this is that the value
cache works using `storage_keys` and these keys are not unique across
different tries. A block can actually have different tries (main trie
and multiple child tries). This pull request fixes the issue by not
ignoring the `storage_root` and returning an unique `value_cache` per
`storage_root`. It also adds a test for the seen bug and improves
documentation that this doesn't happen again.
2023-11-08 14:33:19 +01:00
Oliver Tale-Yazdi e1c033ebe1 Use Message Queue as DMP and XCMP dispatch queue (#1246)
(imported from https://github.com/paritytech/cumulus/pull/2157)

## Changes

This MR refactores the XCMP, Parachains System and DMP pallets to use
the [MessageQueue](https://github.com/paritytech/substrate/pull/12485)
for delayed execution of incoming messages. The DMP pallet is entirely
replaced by the MQ and thereby removed. This allows for PoV-bounded
execution and resolves a number of issues that stem from the current
work-around.

All System Parachains adopt this change.  
The most important changes are in `primitives/core/src/lib.rs`,
`parachains/common/src/process_xcm_message.rs`,
`pallets/parachain-system/src/lib.rs`, `pallets/xcmp-queue/src/lib.rs`
and the runtime configs.

### DMP Queue Pallet

The pallet got removed and its logic refactored into parachain-system.
Overweight message management can be done directly through the MQ
pallet.

Final undeployment migrations are provided by
`cumulus_pallet_dmp_queue::UndeployDmpQueue` and `DeleteDmpQueue` that
can be configured with an aux config trait like:

```rust
parameter_types! {
	pub const DmpQueuePalletName: &'static str = \"DmpQueue\" < CHANGE ME;
	pub const RelayOrigin: AggregateMessageOrigin = AggregateMessageOrigin::Parent;
}

impl cumulus_pallet_dmp_queue::MigrationConfig for Runtime {
	type PalletName = DmpQueuePalletName;
	type DmpHandler = frame_support::traits::EnqueueWithOrigin<MessageQueue, RelayOrigin>;
	type DbWeight = <Runtime as frame_system::Config>::DbWeight;
}

// And adding them to your Migrations tuple:
pub type Migrations = (
	...
	cumulus_pallet_dmp_queue::UndeployDmpQueue<Runtime>,
	cumulus_pallet_dmp_queue::DeleteDmpQueue<Runtime>,
);
```

### XCMP Queue pallet

Removed all dispatch queue functionality. Incoming XCMP messages are now
either: Immediately handled if they are Signals, enqueued into the MQ
pallet otherwise.

New config items for the XCMP queue pallet:
```rust
/// The actual queue implementation that retains the messages for later processing.
type XcmpQueue: EnqueueMessage<ParaId>;

/// How a XCM over HRMP from a sibling parachain should be processed.
type XcmpProcessor: ProcessMessage<Origin = ParaId>;

/// The maximal number of suspended XCMP channels at the same time.
#[pallet::constant]
type MaxInboundSuspended: Get<u32>;
```

How to configure those:

```rust
// Use the MessageQueue pallet to store messages for later processing. The `TransformOrigin` is needed since
// the MQ pallet itself operators on `AggregateMessageOrigin` but we want to enqueue `ParaId`s.
type XcmpQueue = TransformOrigin<MessageQueue, AggregateMessageOrigin, ParaId, ParaIdToSibling>;

// Process XCMP messages from siblings. This is type-safe to only accept `ParaId`s. They will be dispatched
// with origin `Junction::Sibling(…)`.
type XcmpProcessor = ProcessFromSibling<
	ProcessXcmMessage<
		AggregateMessageOrigin,
		xcm_executor::XcmExecutor<xcm_config::XcmConfig>,
		RuntimeCall,
	>,
>;

// Not really important what to choose here. Just something larger than the maximal number of channels.
type MaxInboundSuspended = sp_core::ConstU32<1_000>;
```

The `InboundXcmpStatus` storage item was replaced by
`InboundXcmpSuspended` since it now only tracks inbound queue suspension
and no message indices anymore.

Now only sends the most recent channel `Signals`, as all prio ones are
out-dated anyway.

### Parachain System pallet

For `DMP` messages instead of forwarding them to the `DMP` pallet, it
now pushes them to the configured `DmpQueue`. The message processing
which was triggered in `set_validation_data` is now being done by the MQ
pallet `on_initialize`.

XCMP messages are still handed off to the `XcmpMessageHandler`
(XCMP-Queue pallet) - no change here.

New config items for the parachain system pallet:
```rust
/// Queues inbound downward messages for delayed processing. 
///
/// Analogous to the `XcmpQueue` of the XCMP queue pallet.
type DmpQueue: EnqueueMessage<AggregateMessageOrigin>;
``` 

How to configure:
```rust
/// Use the MQ pallet to store DMP messages for delayed processing.
type DmpQueue = MessageQueue;
``` 

## Message Flow

The flow of messages on the parachain side. Messages come in from the
left via the `Validation Data` and finally end up at the `Xcm Executor`
on the right.

![Untitled
(1)](https://github.com/paritytech/cumulus/assets/10380170/6cf8b377-88c9-4aed-96df-baace266e04d)

## Further changes

- Bumped the default suspension, drop and resume thresholds in
`QueueConfigData::default()`.
- `XcmpQueue::{suspend_xcm_execution, resume_xcm_execution}` errors when
they would be a noop.
- Properly validate the `QueueConfigData` before setting it.
- Marked weight files as auto-generated so they wont auto-expand in the
MR files view.
- Move the `hypothetical` asserts to `frame_support` under the name
`experimental_hypothetically`

Questions:
- [ ] What about the ugly `#[cfg(feature = \"runtime-benchmarks\")]` in
the runtimes? Not sure how to best fix. Just having them like this makes
tests fail that rely on the real message processor when the feature is
enabled.
- [ ] Need a good weight for `MessageQueueServiceWeight`. The scheduler
already takes 80% so I put it to 10% but that is quite low.

TODO:
- [x] Remove c&p code after
https://github.com/paritytech/polkadot/pull/6271
- [x] Use `HandleMessage` once it is public in Substrate
- [x] fix `runtime-benchmarks` feature
https://github.com/paritytech/polkadot/pull/6966
- [x] Benchmarks
- [x] Tests
- [ ] Migrate `InboundXcmpStatus` to `InboundXcmpSuspended`
- [x] Possibly cleanup Migrations (DMP+XCMP)
- [x] optional: create `TransformProcessMessageOrigin` in Substrate and
replace `ProcessFromSibling`
- [ ] Rerun weights on ref HW

---------

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Co-authored-by: Liam Aharon <liam.aharon@hotmail.com>
Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com>
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
Co-authored-by: command-bot <>
2023-11-02 15:31:38 +01:00
Bastian Köcher 2d9426f1cc parachain-system: Send same event & digest as a standalone chain (#2064)
This ensures that upgrading a parachain code sends the same event &
digest as when using `set_code` on a standalone chain.

Close: https://github.com/paritytech/polkadot-sdk/issues/2049
2023-10-30 17:37:10 +01:00
Keith Yeung 3dece311be Introduce XcmFeesToAccount fee manager (#1234)
Combination of paritytech/polkadot#7005, its addon PR
paritytech/polkadot#7585 and its companion paritytech/cumulus#2433.

This PR introduces a new XcmFeesToAccount struct which implements the
`FeeManager` trait, and assigns this struct as the `FeeManager` in the
XCM config for all runtimes.

The struct simply deposits all fees handled by the XCM executor to a
specified account. In all runtimes, the specified account is configured
as the treasury account.

XCM __delivery__ fees are now being introduced (unless the root origin
is sending a message to a system parachain on behalf of the originating
chain).

# Note for reviewers

Most file changes are tests that had to be modified to account for the
new fees.
Main changes are in:
- cumulus/pallets/xcmp-queue/src/lib.rs <- To make it track the delivery
fees exponential factor
- polkadot/xcm/xcm-builder/src/fee_handling.rs <- Added. Has the
FeeManager implementation
- All runtime xcm_config files <- To add the FeeManager to the XCM
configuration

# Important note

After this change, instructions that create and send a new XCM (Query*,
Report*, ExportMessage, InitiateReserveWithdraw, InitiateTeleport,
DepositReserveAsset, TransferReserveAsset, LockAsset and RequestUnlock)
will require the corresponding origin account in the origin register to
pay for transport delivery fees, and the onward message will fail to be
sent if the origin account does not have the required amount. This
delivery fee is on top of what we already collect as tx fees in
pallet-xcm and XCM BuyExecution fees!

Wallet UIs that want to expose the new delivery fee can do so using the
formula:

```
delivery_fee_factor * (base_fee + encoded_msg_len * per_byte_fee)
```

where the delivery fee factor can be obtained from the corresponding
pallet based on which transport you are using (UMP, HRMP or bridges),
the base fee is a constant, the encoded message length from the message
itself and the per byte fee is the same as the configured per byte fee
for txs (i.e. `TransactionByteFee`).

---------

Co-authored-by: Branislav Kontur <bkontur@gmail.com>
Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com>
Co-authored-by: Giles Cope <gilescope@gmail.com>
Co-authored-by: command-bot <>
Co-authored-by: Francisco Aguirre <franciscoaguirreperez@gmail.com>
Co-authored-by: Liam Aharon <liam.aharon@hotmail.com>
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com>
2023-10-18 17:22:25 +02:00
asynchronous rob 3ea497b5a0 expose the last relay chain block number as an API from parachain-system (#1761)
re:
https://forum.polkadot.network/t/blocknumber-vs-timestamps-should-we-abandon-blocktimes-altogether/4077

This exposes the `LastRelayChainBlockNumber` storage member of
`cumulus-pallet-parachain-system` with a getter and alters the behavior
of this storage item to only be updated in `on_finalize` to ensure a
consistent value throughout `on_initialize` and within transactions.

Parachains, especially with features such as asynchronous backing and
agile coretime, should not use the parachain block number as a clock.
Any feature of Polkadot intended to optimize core utilization and
parachain coretime consumption is likely to worsen this clock as it is
practically applied.
2023-10-03 16:23:22 +02:00
Chris Sosnin 7cbe0c76ef Migrate polkadot-primitives to v6 (#1543)
- Async-backing related primitives are stable `primitives::v6`
- Async-backing API is now part of `api_version(7)`
- It's enabled on Rococo and Westend runtimes

---------

Signed-off-by: Andrei Sandu <andrei-mihail@parity.io>
Co-authored-by: Andrei Sandu <54316454+sandreim@users.noreply.github.com>
2023-09-27 13:32:02 +03:00
Branislav Kontur 11088bcfc0 Added xcmp_queue_send_xcm_works test (#1422)
This PR adds test case for successful `send_xcm` for `XcmpQueue`
according to the opened HRMP channel to the sibling parachain.
2023-09-15 11:30:20 +03:00
Bastian Köcher a33d7922f8 Rename polkadot-parachain to polkadot-parachain-primitives (#1334)
* Rename `polkadot-parachain` to `polkadot-parachain-primitives`

While doing this it also fixes some last `rustdoc` issues and fixes
another Cargo warning related to `pallet-paged-list`.

* Fix compilation

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

* Fix XCM docs

---------

Co-authored-by: command-bot <>
2023-08-31 23:53:29 +02:00
Juan bdbe982970 Restructure dispatch macro related exports (#1162)
* restructure dispatch macro related exports

* moved Dispatchable to lib.rs

* fix .gitignore final newline

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

* fix rustdocs

* wip

---------

Co-authored-by: Liam Aharon <liam.aharon@hotmail.com>
Co-authored-by: command-bot <>
Co-authored-by: ordian <write@reusable.software>
2023-08-31 14:08:44 +03:00
Przemek Rzad bfb241d7f3 Add missing licenses and tune the scanning workflow (#1288)
* Add missing Cumulus licenses

* Typo

* Add missing Substrate licenses

* Single job checking the sub-repos in steps

* Remove dates

* Remove dates

* Add missing (C)

* Update FRAME UI tests

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

* Update more UI tests

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>
2023-08-30 15:45:49 +03:00
Chris Sosnin bfb8acb5a9 Companion for polkadot/7659 (#3055)
* extend abridged host config

* update lockfile for {"substrate", "polkadot"}

---------

Co-authored-by: parity-processbot <>
2023-08-24 12:56:41 +00:00
Juan 8349c8d18a Companion: restructure macro related exports (#3015)
* restructure macro related exports

* restructure macro related exports

* wip

* wip

* update cargo lock

* refactor RuntimeDebug on unincluded segment

* fmt

* Companion: restructure `benchmarking` macro related exports (#3039)

* wip

* wip

* restructure benchmarking macro related exports

* add cargo lock

---------

Co-authored-by: parity-processbot <>
2023-08-23 11:35:12 +00:00
tmpolaczyk 3288148aa7 Add set_current_relay_chain_state method for benchmarks (#2731) 2023-08-18 22:42:46 +00:00
Chris Sosnin 6ef1117685 Asynchronous backing PR (#2300)
* Update substrate & polkadot

* min changes to make async backing compile

* (async backing) parachain-system: track limitations for unincluded blocks (#2438)

* unincluded segment draft

* read para head from storage proof

* read_para_head -> read_included_para_head

* Provide pub interface

* add errors

* fix unincluded segment update

* BlockTracker -> Ancestor

* add a dmp limit

* Read para head depending on the storage switch

* doc comments

* storage items docs

* add a sanity check on block initialize

* Check watermark

* append to the segment on block finalize

* Move segment update into set_validation_data

* Resolve para head todo

* option watermark

* fix comment

* Drop dmq check

* fix weight

* doc-comments on inherent invariant

* Remove TODO

* add todo

* primitives tests

* pallet tests

* doc comments

* refactor unincluded segment length into a ConsensusHook (#2501)

* refactor unincluded segment length into a ConsensusHook

* add docs

* refactor bandwidth_out calculation

Co-authored-by: Chris Sosnin <48099298+slumber@users.noreply.github.com>

* test for limits from impl

* fmt

* make tests compile

* update comment

* uncomment test

* fix collator test by adding parent to state proof

* patch HRMP watermark rules for unincluded segment

* get consensus-common tests to pass, using unincluded segment

* fix unincluded segment tests

* get all tests passing

* fmt

* rustdoc CI

* aura-ext: limit the number of authored blocks per slot (#2551)

* aura_ext consensus hook

* reverse dependency

* include weight into hook

* fix tests

* remove stray println

Co-authored-by: Chris Sosnin <48099298+slumber@users.noreply.github.com>

* fix test warning

* fix doc link

---------

Co-authored-by: Chris Sosnin <48099298+slumber@users.noreply.github.com>
Co-authored-by: Chris Sosnin <chris125_@live.com>

* parachain-system: ignore go ahead signal once upgrade is processed (#2594)

* handle goahead signal for unincluded segment

* doc comment

* add test

* parachain-system: drop processed messages from inherent data (#2590)

* implement `drop_processed_messages`

* drop messages based on relay parent number

* adjust tests

* drop changes to mqc

* fix comment

* drop test

* drop more dead code

* clippy

* aura-ext: check slot in consensus hook and remove all `CheckInherents` logic (#2658)

* aura-ext: check slot in consensus hook

* convert relay chain slot

* Make relay chain slot duration generic

* use fixed velocity hook for pallets with aura

* purge timestamp inherent

* fix warning

* adjust runtime tests

* fix slots in tests

* Make `xcm-emulator` test pass for new consensus hook (#2722)

* add pallets on_initialize

* tests pass

* add AuraExt on_init

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

---------

Co-authored-by: command-bot <>

---------

Co-authored-by: Ignacio Palacios <ignacio.palacios.santos@gmail.com>

* update polkadot git refs

* CollationGenerationConfig closure is now optional (#2772)

* CollationGenerationConfig closure is now optional

* fix test

* propagate network-protocol-staging feature (#2899)

* Feature Flagging Consensus Hook Type Parameter (#2911)

* First pass

* fmt

* Added as default feature in tomls

* Changed to direct dependency feature

* Dealing with clippy error

* Update pallets/parachain-system/src/lib.rs

Co-authored-by: asynchronous rob <rphmeier@gmail.com>

---------

Co-authored-by: asynchronous rob <rphmeier@gmail.com>

* fmt

* bump deps and remove warning

* parachain-system: update RelevantMessagingState according to the unincluded segment (#2948)

* mostly address 2471 with a bug introduced

* adjust relevant messaging state after computing total

* fmt

* max -> min

* fix test implementation of xcmp source

* add test

* fix test message sending logic

* fix + test

* add more to unincluded segment test

* fmt

---------

Co-authored-by: Chris Sosnin <chris125_@live.com>

* Integrate new Aura / Parachain Consensus Logic in Parachain-Template / Polkadot-Parachain (#2864)

* add a comment

* refactor client/service utilities

* deprecate start_collator

* update parachain-template

* update test-service in the same way

* update polkadot-parachain crate

* fmt

* wire up new SubmitCollation message

* some runtime utilities for implementing unincluded segment runtime APIs

* allow parachains to configure their level of sybil-resistance when starting the network

* make aura-ext compile

* update to specify sybil resistance levels

* fmt

* specify relay chain slot duration in milliseconds

* update Aura to explicitly produce Send futures

also, make relay_chain_slot_duration a Duration

* add authoring duration to basic collator and document params

* integrate new basic collator into parachain-template

* remove assert_send used for testing

* basic-aura: only author when parent included

* update polkadot-parachain-bin

* fmt

* some fixes

* fixes

* add a RelayNumberMonotonicallyIncreases

* add a utility function for initializing subsystems

* some logging for timestamp adjustment

* fmt

* some fixes for lookahead collator

* add a log

* update `find_potential_parents` to account for sessions

* bound the loop

* restore & deprecate old start_collator and start_full_node functions.

* remove unnecessary await calls

* fix warning

* clippy

* more clippy

* remove unneeded logic

* ci

* update comment

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

* (async backing) restore `CheckInherents` for backwards-compatibility (#2977)

* bring back timestamp

* Restore CheckInherents

* revert to empty CheckInherents

* make CheckInherents optional

* attempt

* properly end system blocks

* add some more comments

* ignore failing system parachain tests

* update refs after main feature branch merge

* comment out the offending tests because CI runs ignored tests

* fix warnings

* fmt

* revert to polkadot master

* cargo update -p polkadot-primitives -p sp-io

---------

Co-authored-by: asynchronous rob <rphmeier@gmail.com>
Co-authored-by: Ignacio Palacios <ignacio.palacios.santos@gmail.com>
Co-authored-by: Bradley Olson <34992650+BradleyOlson64@users.noreply.github.com>
Co-authored-by: Marcin S. <marcin@bytedude.com>
Co-authored-by: eskimor <eskimor@users.noreply.github.com>
Co-authored-by: Andronik <write@reusable.software>
2023-08-18 16:57:34 +00:00
Bastian Köcher 02691d94d8 Companion for Substrate#14612 (#2923)
* Companion for Substrate#14612

https://github.com/paritytech/substrate/pull/14612

* Remove patch

* Cargo.lock

* Fix

* Fix compilation

* Fix Fix

* ...

* :face_palm:

* .................

* update lockfile for {"polkadot", "substrate"}

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

---------

Co-authored-by: parity-processbot <>
2023-08-17 12:39:09 +00:00
Oliver Tale-Yazdi 6c79b58567 Use same fmt and clippy configs as in Polkadot (#3004)
* Copy rustfmt.toml from Polkadot master

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

* Format with new config

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

* Add Polkadot clippy config

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

* Update Cargo.lock

Looks like https://github.com/paritytech/polkadot/pull/7611 did not
correctly update the lockfile. Maybe a different Rust Version?!

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

---------

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
2023-08-14 20:30:12 +00:00
Marijn Schouten c1b95feaac change HashFor to HashingFor (#2828)
* change HashFor to HashingFor

* update lockfile for {"substrate", "polkadot"}

---------

Co-authored-by: parity-processbot <>
2023-07-25 17:42:42 +00:00
Sebastian Kunert 5b5942ef60 Use trie-cache for validate_block (#2813)
* Simple cache

* Fix node insertion

* Switch to hashbrown hashmap

* Remove unused phantomdata

* Return error when fetch_node fails

* Remove cargo patches

* Move trie cache to extra module

* Add ReadOnceBackend

* Add readonlybackend

* Improve naming and get_or_insert

* Stylistic improvements

* Improve naming, add docs

* Revert unwanted changes

* Remove unused dependencies

* Improve docs

* Use RefCell

* lockfile

* Remove ReadOnceBackend

* Apply suggestions from code review

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

* Code review

* Do not use value cache when calculating storage roots

* Apply suggestions from code review

Co-authored-by: Davide Galassi <davxy@datawok.net>

* Remove hash-db dep

* Update pallets/parachain-system/src/validate_block/trie_cache.rs

Co-authored-by: Anton <anton.kalyaev@gmail.com>

---------

Co-authored-by: Bastian Köcher <git@kchr.de>
Co-authored-by: Davide Galassi <davxy@datawok.net>
Co-authored-by: Anton <anton.kalyaev@gmail.com>
2023-07-19 11:46:58 +00:00
Juan 3513b7e019 Replace Index for Nonce (#2740)
* replace Index for Nonce

* update lockfile for {"substrate", "polkadot"}

---------

Co-authored-by: parity-processbot <>
2023-07-14 08:46:49 +00:00
gupnik 24d6e46ad0 Moves Block to frame_system instead of construct_runtime and removes Header and BlockNumber (#2790)
* Fixes

* Removes unused import

* Uses Block and removes BlockNumber/Header from Chain

* Fixes bridges

* Fixes

* Removes unused import

* Fixes build

* Uses correct RelayBlock

* Minor fix

* Fixes glutton-kusama

* Uses correct RelayBlock

* Minor fix

* Fixes benchmark for pallet-bridge-parachains

* Adds appropriate constraints

* Minor fixes

* Removes unused import

* Fixes integrity tests

* Minor fixes

* Updates trait bounds

* Uses custom bound for AsPrimitive

* Fixes trait bounds

* Revert "Fixes trait bounds"

This reverts commit 0b0f42f583f3a616a88afe45fcd06d31e7d9a06f.

* Revert "Uses custom bound for AsPrimitive"

This reverts commit 838e5281adf8b6e9632a2abb9cd550db4ae24126.

* No AsPrimitive trait bound for now

* Removes bounds on Number

* update lockfile for {"substrate", "polkadot"}

* Formatting

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

* Minor fix

---------

Co-authored-by: parity-processbot <>
2023-07-13 13:30:28 +00:00
Michal Kucharczyk 94d2e4bc28 GenesisBuild<T,I> deprecated. BuildGenesisConfig added (#2757)
* GenesisBuild<T,I> deprecated. BuildGenesisConfig added

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

* integration-tests/emulated: ..Default::default added to genesis configs

* Cargo.lock updated

* Cargo.lock updated

* update lockfile for {"polkadot", "substrate"}

* clippy fixes

* clippy fixes

* clippy fixes again

---------

Co-authored-by: command-bot <>
2023-07-12 12:00:17 +00:00
Bastian Köcher ae0210c1cc Companion for removal of execution strategies (#2836)
* Companion for removal of execution strategies

https://github.com/paritytech/substrate/pull/14387

* Update Cargo.lock

* Remove patches

* Delete file again

* update lockfile for {"polkadot", "substrate"}

* Fix

* FMT

---------

Co-authored-by: parity-processbot <>
2023-07-11 22:48:51 +00:00
Bradley Olson cc5e0ae9ab Better scoped fallback in read_messaging_state_snapshot() (#2852)
* moved changes to master

* spelling

* one last name change
2023-07-11 13:30:47 +02:00
Branislav Kontur 9486fe9704 Companion for substrate#14435 (BenchmarkHelper for frame-system) (#2766)
* Temporary fix for frame_system::set_code benchmark

* Removed temprary fix

* BenchmarkHelper for frame-system (TODO: add stuff for ParachainSystem OnSetCode)

* BenchmarkHelper for frame-system (TODO: add stuff for ParachainSystem OnSetCode)

* Glutton

* Fix benchmarks for `set_code`

* Changed dummy values to non-zero

* update lockfile for {"polkadot", "substrate"}

---------

Co-authored-by: parity-processbot <>
2023-06-23 12:34:54 +00:00
PG Herveou 005b9d0989 Contracts: Use RuntimeUpgrade hooks instead of Hooks::on_runtime_upgrade (#2570)
* Fixes

* Remove on_runtime_upgrade hook

* remove upgrade_fn / add doc to Migration struct

* Add cumulus_pallet_*::migration to Migrations type

* add docstring

* fix

* Update parachain-template/runtime/src/lib.rs

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

* Update parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/lib.rs

* Update pallets/parachain-system/src/migration.rs

---------

Co-authored-by: Bastian Köcher <git@kchr.de>
2023-06-05 11:56:55 +00:00
Alexandru Vasile 49356f411a docs: Ensure the CI passes for docs (#2666)
* Fix docs

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* Update client/relay-chain-rpc-interface/src/reconnecting_ws_client.rs

Co-authored-by: Davide Galassi <davxy@datawok.net>

* Update cargo.lock with substrate

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

* Update Cargo.lock for polkadot

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>

---------

Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
Co-authored-by: Davide Galassi <davxy@datawok.net>
Co-authored-by: parity-processbot <>
2023-06-02 00:45:16 +01:00
Michal Kucharczyk 2493375159 doc fix (#2676)
fixing error:
```
warning: unresolved link to `well_known_keys::CODE`
   --> pallets/parachain-system/src/lib.rs:560:12
    |
560 |     #[pallet::storage]
    |               ^^^^^^^
    |
    = note: the link appears in this line:
            " As soon as the relay chain gives us the go-ahead signal, we will overwrite the [`:code`][well_known_keys::CODE]"
                                                                                                       ^^^^^^^^^^^^^^^^^^^^^
    = note: no item named `well_known_keys` in scope
    = note: `#[warn(rustdoc::broken_intra_doc_links)]` on by default
```
2023-06-02 00:23:50 +01:00
Bastian Köcher 3a20b3d702 Switch to relay_dispatch_queue_remaining_capacity (#2608)
* Switch to `relay_dispatch_queue_remaining_capacity`

This switches the parachain runtimes to use `relay_dispatch_queue_remaining_capacity` when possible.
If the data is not yet available on the relay chain it falls back to `relay_dispatch_queue_size`. It
will require that all parachains migrate to `relay_dispatch_queue_remaining_capacity` before we can
start removing the call to `relay_dipatch_queue_size`.

Besides that the pr adapts the xcm exumulator to make it work with the message queue.

* Fix test and use correct types

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

---------

Co-authored-by: command-bot <>
2023-05-21 22:23:18 +02:00
asynchronous rob 83de3b7d61 Relay-parent digest logs for parachains (#2552)
* add digest item for relay-parent to primitives

* add a relay-parent-storage-root digest as a workaround

* more docs

* deposit log in pallet-parachain-system

* even more docs

* fix duplicate imports after botched mertge

* fix hyperlinks in docs

* clean up match

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

* improve docs

* fix typo

* add number to the digest item

---------

Co-authored-by: Bastian Köcher <git@kchr.de>
2023-05-13 05:48:32 +00:00
Oliver Tale-Yazdi 299d25ba4b Fix Clippy (#2522)
* Import Clippy config from Polkadot

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

* Auto clippy fix

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

* No tabs in comments

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

* Prefer matches

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

* Dont drop references

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

* Trivial

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

* Refactor

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

* fmt

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

* add clippy to ci

* Clippy reborrow

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

* Update client/pov-recovery/src/lib.rs

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

* Update client/pov-recovery/src/lib.rs

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

* Partially revert 'Prefer matches'

Using matches! instead of match does give less compiler
checks as per review from @chevdor.

Partially reverts 8c0609677f3ea040f77fffd5be6facf7c3fec95c

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

* Update .cargo/config.toml

Co-authored-by: Chevdor <chevdor@users.noreply.github.com>

* Revert revert 💩

Should be fine to use matches! macro since it is an explicit whitelist,
not wildcard matching.

---------

Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
Co-authored-by: alvicsam <alvicsam@gmail.com>
Co-authored-by: Bastian Köcher <git@kchr.de>
Co-authored-by: Chevdor <chevdor@users.noreply.github.com>
Co-authored-by: parity-processbot <>
2023-05-06 08:01:03 +02:00
Branislav Kontur 39aec7c14f BridgeHub Rococo/Wococo runtimes (#2111)
* Fixes

* Fixes

* Fixes

* cargo fmt

* Fixes

* Fixes

* Fixes

* Fixes

* Update BridgeHub runtime version

* Fixes

* Zombienet for bridge-hub setup

* Fixes

* Remove unused import

* Fixes for gav-xcm-v3 (#1835)

* Fix for FungiblesAdapter - trait changes: Contains -> AssetChecking

* Fix for missing weight for `fn unpaid_execution()`

* Used NonLocalMint for all NonZeroIssuance

* Fix

* Fixes

* Fixes

* Fixes

* Fixes

* Fixes

* Fix tests

* Fixes

* Trying to fix sed expression?

* Trying to fix sed expression?

* Use the `relay-headers-and-messages` command (#1913)

* Bridge hubs readme: fixes and additions

* Use the relay-headers-and-messages command

* cargo fmt

* Fix README.md + zombienet

* Parachain ID update of bridge-hub-wococo

* Update bridge-hub-wococo chainspec

* Squashed 'bridges/' content from commit 062554430

git-subtree-dir: bridges
git-subtree-split: 0625544309ff299307f7e110f252f04eac383102

* Add SafeCallFilter

* Add missing config items

* Add TODO

* Fixes (xcm Superuser + DispatchLevelResult)

* Fix cargo

* Change runtime version

* Unit-tests for dispatch bridging messages and XCM routing on BridgeHubs + HRMP

* Removed Sudo pallet

* Use () as the PriceForParentDelivery

* Fixes

* Fixes

* Fixes

* Fixes

* Update transact_origin to transact_origin_and_runtime_call

* Add ReachableDest config item to XCM pallet

* Add BridgeRejectObsoleteHeadersAndMessages to bridge hubs (#1972)

* Update SafeCallFilter to allow remark_with_event in runtime benchmarks

* cargo fmt

* Update substrate

* Fix worst_case_holding

* Fix DMQ queue unit tests

* Remove unused label

* cargo fmt

* Actually process incoming XCMs

* Fixes

* Fixes

* Fixes

* Fixes - return back Weightless

* Simplify local run + readme

* Added measured benchmarks for `pallet_xcm` (#1968)

* Fix

Fix

Fix

* Fix

* Fixes for transact benchmark

* Fixes add pallet_xcm to benchmarks

* Revert remark_with_event

* ".git/.scripts/bench-bot.sh" xcm statemine assets pallet_xcm_benchmarks::generic

* Fixes

* TMP

* Fix for reserve_asset_deposited

* ".git/.scripts/bench-bot.sh" pallet statemine assets pallet_xcm

* Fix

* ".git/.scripts/bench-bot.sh" pallet statemint assets pallet_xcm

* Fix

* ".git/.scripts/bench-bot.sh" pallet westmint assets pallet_xcm

* Fix westmint

* ".git/.scripts/bench-bot.sh" xcm statemine assets pallet_xcm_benchmarks::generic

* Fix

* ".git/.scripts/bench-bot.sh" xcm westmint assets pallet_xcm_benchmarks::generic

* ".git/.scripts/bench-bot.sh" xcm statemint assets pallet_xcm_benchmarks::generic

* ".git/.scripts/bench-bot.sh" pallet collectives-polkadot collectives pallet_xcm

* Fix for collectives

* ".git/.scripts/bench-bot.sh" pallet bridge-hub-kusama bridge-hubs pallet_xcm

* ".git/.scripts/bench-bot.sh" pallet bridge-hub-rococo bridge-hubs pallet_xcm

* Fixes for bridge-hubs

* Fixes - return back Weightless

* Fix - removed MigrateToTrackInactive for contracts-rococo

Co-authored-by: command-bot <>

* cargo fmt

* Fix benchmarks

* Bko gav xcm v3 (#1993)

* Fix

* ".git/.scripts/bench-bot.sh" xcm statemint assets pallet_xcm_benchmarks::fungible

* ".git/.scripts/bench-bot.sh" xcm statemine assets pallet_xcm_benchmarks::fungible

* ".git/.scripts/bench-bot.sh" xcm westmint assets pallet_xcm_benchmarks::fungible

* ".git/.scripts/bench-bot.sh" xcm statemine assets pallet_xcm_benchmarks::generic

* ".git/.scripts/bench-bot.sh" xcm statemint assets pallet_xcm_benchmarks::generic

* ".git/.scripts/bench-bot.sh" xcm westmint assets pallet_xcm_benchmarks::generic

* ".git/.scripts/bench-bot.sh" pallet statemine assets pallet_xcm

* ".git/.scripts/bench-bot.sh" pallet westmint assets pallet_xcm

* ".git/.scripts/bench-bot.sh" pallet statemint assets pallet_xcm

* ".git/.scripts/bench-bot.sh" pallet collectives-polkadot collectives pallet_xcm

* ".git/.scripts/bench-bot.sh" pallet bridge-hub-kusama bridge-hubs pallet_xcm

* ".git/.scripts/bench-bot.sh" pallet bridge-hub-rococo bridge-hubs pallet_xcm

Co-authored-by: command-bot <>

* Change AllowUnpaidExecutionFrom to be explicit

* Turn on more xcm logs for parachains

* Added polkadot-parachain-mint binary instructions

* xcm-v3 benchmarks, weights, fixes for bridge-hubs (#2035)

* Dumy weights to get compile

* Change UniversalLocation according to https://github.com/paritytech/polkadot/pull/4097 (Location Inversion Removed)

* Fix bridge-hubs weights

* ".git/.scripts/bench-bot.sh" pallet statemine assets pallet_xcm

* ".git/.scripts/bench-bot.sh" pallet statemint assets pallet_xcm

* ".git/.scripts/bench-bot.sh" pallet collectives-polkadot collectives pallet_xcm

* ".git/.scripts/bench-bot.sh" pallet westmint assets pallet_xcm

* ".git/.scripts/bench-bot.sh" xcm bridge-hub-kusama bridge-hubs pallet_xcm_benchmarks::generic

* ".git/.scripts/bench-bot.sh" xcm bridge-hub-kusama bridge-hubs pallet_xcm_benchmarks::fungible

* ".git/.scripts/bench-bot.sh" pallet bridge-hub-kusama bridge-hubs pallet_xcm

* ".git/.scripts/bench-bot.sh" pallet bridge-hub-rococo bridge-hubs pallet_xcm

* ".git/.scripts/bench-bot.sh" xcm bridge-hub-rococo bridge-hubs pallet_xcm_benchmarks::fungible

* ".git/.scripts/bench-bot.sh" xcm bridge-hub-rococo bridge-hubs pallet_xcm_benchmarks::generic

* Change NetworkId to Option<NetworkId>

Co-authored-by: command-bot <>
Co-authored-by: Keith Yeung <kungfukeith11@gmail.com>

* remove shift session manager from bridge-hub-rococo (#2047)

* remove shift session manager from bridge-hub-rococo

* also remove from Cargo.toml

* Add event for showing the hash of an UMP sent message (#1228)

* Add UpwardMessageSent event in parachain-system

* additional fixes

* Message Id

* Fix errors from merge

* fmt

* more fmt

* Remove todo

* more formatting

* Fixes

* Fixes

* Fixes

* Fixes

* Updated README.md and scripts/bridges_rococo_wococo.sh for sending messages (local, live)

* Allow explicit unpaid executions from the relay chains for system parachains (#2060)

* Allow explicit unpaid executions from the relay chains for system parachains

* Put origin-filtering barriers into WithComputedOrigin

* Use ConstU32<8>

* Small nits

* formatting

* cargo fmt

* Align laneId to 00000001

* Allow receiving XCMs from any relay chain plurality

* Fixes

* Use Rococo/Wococo runtime APIs defined in bridge primitives (#2080)

* Patched dependencies (polkadot, substrate) for xcm-v3 (compiles + tests work)

* Replace serial_test and fix with thread_local

* Very init of script for bumping bridges repo

* Squashed 'bridges/' changes from 062554430..984749ba0

984749ba0 Define separate signed extension for BHR/BHW (#1776)
72b03d463 update Substrate/Polkadot/Cumulus deps to master (#1775)
3065c7903 Added crate-level docs for the parachains pallet (#1772)
a0f41b2d8 added/updated pallet level docs to grandpa and messages pallets (#1771)
6d69d1f4d docs: add Security Policy doc (#1770)
ff8c0f727 Fix cargo deny issues (#1769)
6fc931d07 Bump xcm-v3 + substrate (#1767)
5840197c3 Define method for checking message lane weights (#1766)
881af0219 increase MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX and MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX for RBH/WBH (#1765)
41d91e961 fixed receive_delivery_proof_for_two_messages_by_two_relayers (#1764)
ac0cf7b78 Fix some cargo-deny issues (#1763)
6d9dc6367 `cargo machete` removed unused deps (#1761)
c265b5430 Remove sp-version dependency from bin-substrate (#1758)
1327c9d97 Set `R/WococoBridgeHub` bundle runtime version (#1756)
a3a2a06ae Expose relay version metric (#1750)
13f4a0164 Use indirect runtime calls for RialtoParachain (#1753)
9563f9eee fix nightly clippy again (#1752)
21b75b893 no-grafana-startup-delay option in run.sh (#1751)
a5fe0dfc4 Remove TODO (#1749)
6c826a6c3 Deduplicate pallet call structs used for indirect runtime calls (#1744)
e575269e5 fix nightly clippy (#1746)
209cba353 Update project level docs (#1734)
b05cef5b4 Improve relayer initialization behaviour (#1743)
c7b6bae9d Make debug display of LaneId compatible with its previous version (#1740)
221e4e80c Remove CliChain::KeyPair (#1741)
3d9d2907f Use TypedLaneId instead of LaneId (#1738)
6683b8136 Simplify read_client_state() (#1739)
3f7353b82 Expose metrics of on-demand relay chain headers sync from with-parachain complex relays (#1737)
ab65d84e0 Handle `SIGTERM` for the docker containers + relay (#1735)
b9050e90c Replace `BATCH_CALL_SUPPORTED` (#1733)
c28b3ff66 Updated db weights and some experiments (#1732)
023689c6c Do not require new headers if lane is empty (#1725)
bddf1fa19 remove messages pallet owner relay argument (#1728)
ef55226c6 more traces + remove signer override (#1727)
4d50df6ed remove BatchDeliveryTransaction::new and BatchConfirmationTransaction::new to avoid expects (#1726)
15244e53e Batch transactions in complex relays (#1669)
c209bb9ac fix pallet names at bridge hubs (#1722)
036e6696e tests (#1720)
3d56e2089 Check origin? (#1718)
af9abbeb8 Remove SOURCE_PARACHAIN_PARA_ID (#1716)
d1cb5d1a8 fix parachains benchmarks (#1717)
84bdf864b Changed docker image name for substrate-relay (#1714)
5698fb465 Remove WeightToFee (#1713)
9f4106bc1 Fix bridge hub rococo/wococo weights (#1712)
114b1502f Only store header state root (pallet-bridge-parachains) (#1701)
92e86f07b New relayer rewards scheme integration (#1652)
8649d12af Signed extension to refund relayer at the target chain (#1657)
ec6bafaf0 DeliveryConfirmationPayments trait for paying relayer rewards at the source chain (#1653)
fab2344f4 only store header state root (pallet-bridge-grandpa) (#1699)
b5e916f64 fixed benchmarks of relayers pallet (#1700)
5cce3e86d fix clippy (#1698)
f78e8867b removed MintReward and added PayLaneRewardFromAccount (#1693)
0c19db305 added version guards to RBH<>WBH GRANDPA finality (and complex) relay (#1697)
c003b951d removed ESTIMATE_MESSAGE_FEE_METHOD (#1696)
4903b7929 refund_pay_dispatch_fee removed (#1695)
61c3b22ca Replace const parameters types (#1691)

git-subtree-dir: bridges
git-subtree-split: 984749ba021b5b8ec16f65cd1e50b234640d838b

* Fixes after merge

* Fixes

* Use auto runtime version for local runs (#2113)

* Squashed 'bridges/' changes from 984749ba0..fb3c5ef5d

fb3c5ef5d Add integrity check for signed extensions (#1780)
3959628ff add try-runtime feature to pallets (#1779)
be36ff00c Default impl for some methods in messages benchmarking pallet config (#1777)
68344e329 Relayer reward metric (#1742)
6b455597b Crate-level documentation on finality relays and relayers pallet (#1773)

git-subtree-dir: bridges
git-subtree-split: fb3c5ef5dae42553522c7eff37678de9bf4f6c67

* Fixed try-runtime

* Fix cargo.lock

* Fix BridgePalletIsNotInitialized (#2114)

* Squashed 'bridges/' changes from fb3c5ef5d..e2e9fa7f9

e2e9fa7f9 Expose EXTRA_STORAGE_PROOF_SIZE in bp-bridge-hub-cumulus (#1788)
ba85532b1 Removed unecesserry test + substrate/polkadot (#1787)

git-subtree-dir: bridges
git-subtree-split: e2e9fa7f94d2f105c1816402a9ae4b85bfc34145

* Fix cargo.toml

* Squashed 'bridges/' changes from e2e9fa7f9..d5f95c14a

d5f95c14a use wss to connect to the Rialto node in test deployments (#1809)
722d47b06 fix compilation
a48732676 Bump sysinfo from 0.15.9 to 0.27.7
9a6e8bb1d Bump env_logger from 0.8.4 to 0.10.0
89c5e7981 Bump async-trait from 0.1.61 to 0.1.62
ddd0a5742 Bump fixed-hash from 0.7.0 to 0.8.0
e8b0b8192 Bump impl-serde from 0.3.2 to 0.4.0
c5227460f Bump jsonpath_lib from 0.2.6 to 0.3.0
9f4771d38 Bump parking_lot from 0.11.2 to 0.12.1
dab5d72ae Bump backoff from 0.2.1 to 0.4.0
d7dd3acce Bump strum from 0.21.0 to 0.24.1
c49799017 Bump tokio from 1.24.1 to 1.24.2
db614681e Bump clap from 4.1.0 to 4.1.1
3c155214d update ignored dependencies for dependabot (#1790)
4c791472c No wildcard patterns in Cargo.toml (#1789)
33632313d Remove chain-specific dependencies from crates that will be used in Cumulus (#1783)

git-subtree-dir: bridges
git-subtree-split: d5f95c14a2771d7ad51db95670d08a5d0da526a0

* Fix `send-remark-local` script because of new xcm-v3

* Refactor haul/dispatch xcm stuff

* Add Rococo <> Wococo integrity tests (#1975)

* Remove 1 integrity test

In sync with https://github.com/paritytech/parity-bridges-common/pull/1816

* use TargetHeaderChainAdapter and SourceHeaderChainAdapter

* Rococo <-> Wococo integrity tests

* Add message lane weights tests

* Add signed extension integrity test

* Bridge benchmarks for bridge hub rococo/wococo (#2107)

* fix benchmarks compilation and add bridges benchmarks (prototype) to RBH/WBH

* post-merge fixes

* remove duplicate "pallet-collator-selection/runtime-benchmarks"

* ".git/.scripts/commands/bench/bench.sh" pallet bridge-hub-rococo bridge-hubs pallet_bridge_grandpa

* ".git/.scripts/commands/bench/bench.sh" pallet bridge-hub-rococo bridge-hubs pallet_bridge_parachains

* remove methods that are no longer required

* fixed helpers used in bridge hub messages palelt benchmarks

* unused imports

* compilation

* compilation

* benchmarks-ci.sh

* ".git/.scripts/commands/bench/bench.sh" pallet bridge-hub-rococo bridge-hubs pallet_bridge_messages

* use generated weights in pallets configuration

* add mod for new weights

* impl WeightInfoExt

Co-authored-by: command-bot <>

* Ensure governance can call `initialize` with `xcm:Transact` bridge grandpa pallets

* Just in case changed spec_version

* Some scripts for enabling asset transfer on local statemine->westmint

* script

* Squashed 'bridges/' changes from d5f95c14a..b39cb0dea

b39cb0dea MaxValues limit for storage maps in the pallet-bridge-grandpa (#1861)
11b3a611d fixed TODOs for weights v2 (#1860)
5a44f9fea Message delivery transaction is not free!!! (#1859)
59a42bd58 fixed BEEFY genesis (#1858)
ab7c7ad0f Use parity-util-mem 0.12.0 (#1856)
8fd346e5a changed some tests for weights v2 (#1855)
c438b9f74 Add separate Cargo.lock for `tools/runtime-codegen` (#1854)
fc55a97d7 Fix `HeadersToKeep` and `MaxBridgedAuthorities` in Millau benchmarks (#1851)
72e64a3d7 Decrease number of GRANDPA authorities in Polkadot-like chains from 100_000 to 2_048 (#1852)
d60a331ed Update Substrate/Polkadot/Cumulus dependencies + weights v2 (#1850)
61b229b65 Bump async-trait from 0.1.63 to 0.1.64
366333108 Bump serde_json from 1.0.91 to 1.0.92 (#1845)
4d917bb3a Bump trie-db from 0.24.0 to 0.25.0
8d919eac9 Bump anyhow from 1.0.68 to 1.0.69
ef9364dd0 Bump proc-macro2 from 1.0.49 to 1.0.51
9ddeebed5 Bump futures from 0.3.25 to 0.3.26
e02eb7573 connect using wss under flag condition (#1843)
99754a07f remove extra tracing on test deployments (#1842)
bdb84cea6 Add tool for auto generating runtime code from metadata (#1812)
86662f263 fix bridge-runtime-common build (#1839)
f656ac77d Change some macro names (#1837)
50f2980e9 Verify partial repo build on CI (#1832)
f70f8231b fix bridge hubs blocks interval (#1836)
ddbe5cddf [ci] change runners (#1833)
45a68ad39 Fix on demand parachains relay when no parachain head at target (#1834)
6dbce7258 Use GitLab env vars to get git commit (#1831)
b1a8161e8 bump bridge hub versions (#1830)
e909595e0 Use specific error for case when para head is missing from the bridge pallet (#1829)
d517da8a2 Do not read parachain heads from ancient relay headers (#1827)
217bc72f5 Reconnect source client (#1826)
47bf5f693 Bump tokio from 1.24.2 to 1.25.0
6b307b48a Bump clap from 4.1.3 to 4.1.4
90bc29a17 Use named parameters for indirect calls (#1823)
986eeb556 Fix: typos (#1822)
450823b01 docs: fix broken link and minor nits (#1821)
3ed01ae31 do not call best_finalized_para_block_at_source for ancient block (#1819)
001956290 Functions to benchmark messages pallet with linked to parachain (#1817)
e9b0a1c48 Remove InboundPayload check (#1816)
873ea4e40 Bump clap from 4.1.1 to 4.1.3
97eccaa8b also ignore the base xcm crate (#1798)
2d3dcd00b Update bundled runtime version for bridge hub r/wococo (#1814)
7167c0067 Bump bumpalo from 3.10.0 to 3.12.0 in /fuzz/storage-proof
067687520 Bump async-trait from 0.1.62 to 0.1.63 (#1811)

git-subtree-dir: bridges
git-subtree-split: b39cb0dea5751847ea73ab9946667003625eaf1a

* Squashed 'bridges/' changes from b39cb0dea..4c4a7eae1

4c4a7eae1 Small stuff from Cumulus integration (#1865)

git-subtree-dir: bridges
git-subtree-split: 4c4a7eae1503aa63a84fb65d56d67599d362d645

* Squashed 'bridges/' changes from 4c4a7eae1..dcaec27aa

dcaec27aa RefundRelayerForMessagesFromParachain improvements (#1879)
5457f0672 clippy fixes (#1880)
29e8a305c MaxValues for OutboundLanes map (#1871)
5219b56f8 More tests for message pallet weights (#1870)
c4c0c7a1b Bump signal-hook from 0.3.14 to 0.3.15
0ff597b96 Bump serde_json from 1.0.92 to 1.0.93
1c5132eb1 Bump subxt from `20adb19` to `9e2acff`
adb07816b update parachains relay doc (#1874)
972ef3133 Update README.md (#1872)
94648061b MaxValues for maps in parachain maps (#1868)
662267a6f "refund" proof size in GRANDPa pallet (#1863)

git-subtree-dir: bridges
git-subtree-split: dcaec27aaa6f41070fbdfbfd4fde2029697eb85f

* Squashed 'bridges/' changes from dcaec27aa..91e66cfb9

91e66cfb9 Fix clippy issues (#1884)
0bd77f457 Reject storage proofs with unused nodes: begin (#1878)
77a3672f9 Refund extra proof bytes in message delivery transaction (#1864)

git-subtree-dir: bridges
git-subtree-split: 91e66cfb99c1a7b247e435515dd0f62b4058974e

* Fix tests

* Squashed 'bridges/' changes from 91e66cfb9..d39f563be

d39f563be Make `weights::WeightInfo` pub (#1886)
c67d06aa5 ChainWithGrandpa in primitives (#1885)

git-subtree-dir: bridges
git-subtree-split: d39f563bea57528c16763f458af3036842a0ea5f

* Merge fix

* Squashed 'bridges/' changes from d39f563be..78e3357c0

78e3357c0 RefundRelayerForMessagesFromParachain improvements (#1895)
131b17359 optimize justification before submit (#1887)
5bc279ebb use complex transactions on RBH/WBH bridge hubs (#1893)
8f0c09ab9 Bump clap from 4.1.4 to 4.1.6
66429b06a Bump sysinfo from 0.27.7 to 0.28.0
8b329ee8f Bump trie-db from 0.25.0 to 0.25.1
635cfccfd Bump time from 0.3.17 to 0.3.19

git-subtree-dir: bridges
git-subtree-split: 78e3357c0387c95317b8c3e5c4d9316f3a9f3ef4

* Squashed 'bridges/' changes from 78e3357c0..5b5627e90

5b5627e90 Rewards refund for relaying BridgeHubRococo/BridgeHubWococo (#1894)

git-subtree-dir: bridges
git-subtree-split: 5b5627e9081640ed5691eb2891182843563fb99a

* Rewards for relayers setup (#2194)

* Rewards for relayers setup

* ".git/.scripts/commands/bench/bench.sh" pallet bridge-hub-rococo bridge-hubs pallet_bridge_relayers

* Setup weight for relayer

* Setup `DeliveryConfirmationPayments` + `RefundRelayerForMessagesFromParachain`

* No need to have more than one collator per parachain

* Setup multi refund signed extensions

* Rewards sign ext test

* test

* fixes

---------

Co-authored-by: command-bot <>

* Squashed 'bridges/' changes from 5b5627e90..3c15c3645

3c15c3645 get rid of ChainWithMessages::WeightInfo, because we can't have exact weights for "external chains" (#1899)
8ccaa0213 Wrap confirmation and finality transactions into batch_all in Millau -> RialtoParachain bridge (#1898)
9b7285edb Weight+size limits for bridge GRANDPA pallet calls (#1882)

git-subtree-dir: bridges
git-subtree-split: 3c15c36455f2ad944df6a492a8d82f7e0aaf7e9f

* Squashed 'bridges/' changes from 3c15c3645..d05a98473

d05a98473 Refund messages confirmation tx (#1904)
e2e8a7198 Relayers pallet: extend payment source id (#1907)
cccf73b3f fix nightly clippy issues (#1915)
a33a91e79 Bump tempfile from 3.3.0 to 3.4.0
1df768a2e Bump time from 0.3.17 to 0.3.20
cf17b424f Bump sysinfo from 0.28.0 to 0.28.1
0b6276b41 Bump jsonrpsee from 0.15.1 to 0.16.2
328dde02b Bump rand from 0.7.3 to 0.8.5
2f302a4b6 Bump trie-db from 0.25.1 to 0.26.0
b5d5d03ab CI add jobs to publish Docker images description to hub.docker.com (#1906)
db5168f18 Do not stall on lost transaction (#1903)
2d83d6389 Fix init-bridge (#1900)

git-subtree-dir: bridges
git-subtree-split: d05a98473dc933cfed9e5f59023efa2ec811f03c

* Rewards adjustments

* Update RBH/WBH spec version

* Squashed 'bridges/' changes from d05a98473..ce7cf9a49

ce7cf9a49 Removed deprecated `#[pallet::generate_store(pub(super) trait Store)]` according to latest Cumulus (#1964)
897b1c0b2 Bump substrate/polkadot/cumulus (#1962)
7b946da2d Backport xcm bridging extensions to the bridge repo (#1813)
88c1114ec Bump futures from 0.3.26 to 0.3.27
8668f73bf Bump serde from 1.0.152 to 1.0.155
3df8823e1 Bump subxt from `a7b45ef` to `d4545de`
ef1b1bcd0 Some error improvements (#1956)
434c5e014 optimize justifications before they're included into complex transaction (#1949)
7bac365a6 Actually clone client data by reference when cloning the client (#1941)
764ddd4a8 remove lock file after checks are done (#1942)
c18a758f8 Fix invalid messages relay delivery transactions (#1940)
8ad152b06 fix nightly benchmarks test (#1939)
d451b4f84 Bump tokio from 1.25.0 to 1.26.0
8019c50aa Bump async-trait from 0.1.64 to 0.1.66
aa055fcee Bump serde_json from 1.0.93 to 1.0.94
ec2ef31c4 Bump subxt from `1c5faf3` to `a7b45ef`
20026366f Bump sysinfo from 0.28.1 to 0.28.2
fe246d1e3 Bump thiserror from 1.0.38 to 1.0.39
c95e0cf02 Fix deploy step in CI (#1931)
15b41c2dd Improve some relay errors readability (#1930)
792deae5e Added deploy Job (#1929)
d86c3ce21 Reconnect on-demand clients from MessagesSource::reconnect and MessagesTarget::reconnect (#1927)
4161b51f0 get rid of obsolete weight functions (#1926)
9b3b00e0f cargo update -p clap@4.1.6 (#1925)
13ab28c37 Bump subxt from `9e2acff` to `1c5faf3`
bb6171a05 Remove subxt dependency features (#1924)
66d200abb Verify with-parachain message benchmarks on CI (#1923)
b6af2116f Update BHR and BHW spec version (#1922)
d464e78d9 Fix benchmarks (#1919)
74574d53e fix master compilation (#1920)
1b373dff9 Fix multiple parachain headers submission for single message delivery (#1916)

git-subtree-dir: bridges
git-subtree-split: ce7cf9a4977fe614d35b6a7a84d5057e2c4ccaf5

* fixed npm install call (#2323)

* New weights (#2315)

* New weights

* Fix compile benchmarks

* Fix import

* Fix all weights

* Remove bridge_common_config replaced by bridges impl

* Cargo.lock

* fixed bridge pallets compilation

* Cargo.lock

* fix bridge pallets compilation after substrate+polkadot bump

* BridgeHubs: XCM ExportMessage benchmark - just Rococo now

* bench export_message()

* include Bridge::haul_blob() weight in ExportMessage weight

* fix import

* more build fixes

* Squashed 'bridges/' changes from ce7cf9a49..6343a7d37

6343a7d37 bump substrate+polkadot refs and fix builds (#1989)
8efc2b3cc Added receive_single_message_proof_with_dispatch benchmark (#1990)
6540f74dc Remove deprecated code from bridge-runtime-common (#1983)
c4f368be3 minor cosmetic updates (#1985)
bef11ac43 remove invalid weight, returned by send_message (#1984)
28cf5c957 Kusama <> Polkadot relay prototype (#1982)
b195223d1 Bump serde from 1.0.156 to 1.0.157
70caa75d7 ignore binary-merkle-tree (#1980)
3dc640d30 Bump thiserror from 1.0.39 to 1.0.40
8a2729101 Bump subxt from `d4545de` to `ae63d3d`
40937e8a3 Bump clap from 4.1.8 to 4.1.11
d72394c4e Bump finality-grandpa from 0.16.1 to 0.16.2
54147603d Bump serde from 1.0.155 to 1.0.156
b513193e6 Bump anyhow from 1.0.69 to 1.0.70
20867abd9 Bump sysinfo from 0.28.2 to 0.28.3
4d9a45305 Bump async-trait from 0.1.66 to 0.1.67
8a88a7536 Bump trie-db from 0.26.0 to 0.27.1
0add06edd move signed extension stuff from prolkadot-core primitives to bridge-hub-cumulus-primitives (#1968)
7481ce6eb added UpdatedBestFinalizedHeader event to pallet-bridge-grandpa (#1967)
6787cd0cb RBH <> WBH dashboards and alerts (#1966)
036f7be76 enable relayer rewards metrics at bridge hubs (#1965)
a3f07d5dd Fix invalid batch transaction (#1957)

git-subtree-dir: bridges
git-subtree-split: 6343a7d37c32191413be91afb537b8bc6c770285

* dispatch message weight for bridge messages (#2378)

Co-authored-by: Svyatoslav Nikolsky <svyatonik@gmail.com>

* Fixes

* Squashed 'bridges/' changes from 6343a7d37..c1d5990e8

c1d5990e8 Try check-rustdoc pipeline (#1782)

git-subtree-dir: bridges
git-subtree-split: c1d5990e840b8ee4981beb61a8099271ee629ae5

* Removed imports

* Fix compile

* fixed benchmarks compilation

* fix rustdoc

* Squashed 'bridges/' changes from c1d5990e8..ecddd4a31

ecddd4a31 Rust cargo doc for all features (#1995)
e0997c14d Fix gitlab-check (#1994)
5284850ef Bump clap from 4.1.11 to 4.1.13
743cd60df Bump sysinfo from 0.28.3 to 0.28.4
dc322bae2 Bump async-trait from 0.1.67 to 0.1.68

git-subtree-dir: bridges
git-subtree-split: ecddd4a315470d85135aafbdb96753af9b07b854

* Updated scripts for transfer assets

* Cargo.lock

* Script updates for `ping-via-bridge-from-statemine-rococo`

* Added `transfer-asset-from-statemine-rococo`

* Finished scripts

* README.md

* Compile fix + log xcm trace all

* Initial version of bridges pallet as subtree of https://github.com/paritytech/parity-bridges-common
Added `Bridges subtree files` pr review rule

* Squashed 'bridges/' changes from ecddd4a31..d30927c08

d30927c08 Revert dispatch-results (#2048)
fa454c3b4 Remove unneeded files (#2044)
956a2c687 Bump clap from 4.2.1 to 4.2.2
91951583a Bump serde_json from 1.0.95 to 1.0.96
fcf462051 Bump h2 from 0.3.16 to 0.3.17 in /tools/runtime-codegen
b751fb24f Bump h2 from 0.3.16 to 0.3.17
0bf31ab78 update refs (#2041)
a490ecbd3 Fix CI build (#2039)
01139ebbc Define `RangeInclusiveExt` (#2037)
2db2f3fe3 Impl review suggestions from #2021 (#2036)
36292760f fix build step on CI (#2034)
3a2311b7a refund extra weight in receive_messages_delivery_proof call (#2031)
77f1641d1 Boost message delivery transaction priority (#2023)
c23c4e441 Reject delivery transactions with at least one obsolete message (#2021)
68ba699b7 Reintroduce msg dispatch status reporting (#2027)
d1e852cc3 Bump hex-literal from 0.4.0 to 0.4.1
16f25d613 Relay node down alert (#2002)
4bb1a6406 only refund if all bundled messages have been delivered (#2019)
b9acf52bc fail with InsufficientDispatchWeight if dispatch_weight doesn't cover weight of all bundled messages (#2018)
e10097fe2 Remove unneeded error debug strings (#2017)
f5e38f057 enable metrics on all validator nodes (#2016)
c35f1a187 Bump scale-info from 2.4.0 to 2.5.0
04c56977c Bump clap from 4.1.13 to 4.2.1
481371f3c Bump hex-literal from 0.3.4 to 0.4.0
6b9c1400d Bump serde from 1.0.158 to 1.0.159
e71877a2e Bump futures from 0.3.27 to 0.3.28
c019f4faa Bump tempfile from 3.4.0 to 3.5.0
2e6e79ef6 Bump serde_json from 1.0.94 to 1.0.95
0698b1ff9 Bump tokio from 1.26.0 to 1.27.0
35b149830 fix test step on CI (#2003)
0c3acc858 cleanup removed lane traces (#2001)
8bf81749e bump BridgeHubRococo/BridgeHubWococo versions (#2000)
e53bb7f36 MaxRequests -> MaxFreeMandatoryHeadersPerBlock in pallet-bridge-grandpa (#1997)
dfcc09043 Run tests for `runtime-benchmarks` feature only (#1998)
efcc8db17 Run benchmarks for mock runtimes (#1996)

git-subtree-dir: bridges
git-subtree-split: d30927c089bd9e73092d1ec1a62895603cb277a3

* Fixes

* Squashed 'bridges/' content from commit d30927c08

git-subtree-dir: bridges
git-subtree-split: d30927c089bd9e73092d1ec1a62895603cb277a3

* Updated REAMDE.md and BRIDGES.md (inspired by original https://github.com/paritytech/polkadot/blob/d22eb62fe40e55e15eb91d375f48cc540d83a47e/BRIDGES.md)

* Squashed 'bridges/' changes from d30927c08..d3970944b

d3970944b Small simplifications (#2050)

git-subtree-dir: bridges
git-subtree-split: d3970944b0cfc4ea5226225e1ca07dab234c3556

* Squashed 'bridges/' changes from d3970944b..2180797fb

2180797fb Removed CODEOWNERS (#2051)

git-subtree-dir: bridges
git-subtree-split: 2180797fbf8a990490c67853dcffd81bc8dd083c

* Reused `teleports_for_native_asset_works` test to all bridge-hub runtime
Extract runtime_para_id for test
Fix test
Typos
Added helper for `execute_as_governance`

* Added test case `initialize_bridge_by_governance_works`

* Added test case `handle_export_message_from_system_parachain_to_outbound_queue_works`
fix script
Removed BridgeGrandpaRococoInstance

* Added test-case `message_dispatch_routing_works`

* Squashed 'bridges/' changes from 2180797fbf..4850aac8ce

4850aac8ce Removed relayer_account: &AccountId from MessageDispatch  (#2080)
8c8adafd54 Revert "Fix max-size messages at test chains (#2064)" (#2077)
c01a63efd8 Fixed off-by-one when confirming rewards in messages pallet (#2075)
a298be96aa Update subxt dependencies (#2072)
c0eef51eab Fix max-size messages at test chains (#2064)
3a658e3697 Messages relay fixes (#2073)
0022b5ab22 Slash relayers for invalid transactions (#2025)
198104007f Bump enumflags2 from 0.7.5 to 0.7.7
9229b257e5 [ci] Fix rules for docker build (#2069)
660d791390 [ci] Update buildah command and version (#2058)
e4535c0ca4 fix the way latest_confirmed_nonce_at_source is "calculated" (#2067)
dbc2d37590 select nothing if we have already selected nonces to submit or have submitted something (#2065)
a7eedd21fe [relay-substrate-client] Bump jsonrpsee (#2066)
8875d5aeae Bump clap from 4.2.2 to 4.2.4
25f9cf55e2 Another use of RangeInclusiveExt::checked_len() (#2060)
4942c12a5f submit lane unblock transactions from relay (#2030)
c0325d3c9c Test deployments fixes (#2057)
fc7b9b7ed7 Use the new matrix server (#2056)
63bcb5c10b Fixed delivery alert rule (#2052)

git-subtree-dir: bridges
git-subtree-split: 4850aac8ce6c34e5ca6246b88cd14c873a879cba

* Fmt

* Squashed 'bridges/' changes from 4850aac8ce..66aaf0dd23

66aaf0dd23 Nits (#2083)

git-subtree-dir: bridges
git-subtree-split: 66aaf0dd239dde40b64264061a77c921e2c82568

* Cleaning

* bridge-hub-rococo: minor fixes

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

* Squashed 'bridges/' changes from 66aaf0dd23..557ecbcecc

557ecbcecc Fix sized messages (Follow-up on #2064) (#2103)
54f587a066 Add weight of refund extension post_dispatch to the weights of messages pallet (#2089)
5b1626f8c4 fix pallet param for nightly benchmarks check (#2099)
ae44c6b7a1 Add millau specific messages weights (#2097)
6ad0bd1f1e Add integrity tests to rialto parachain runtiime (#2096)
6919556de5 Bump tokio from 1.27.0 to 1.28.0
58795fcb75 Bump clap from 4.2.4 to 4.2.5
01bf31085b Bump scale-info from 2.5.0 to 2.6.0
8fe383240d Bump anyhow from 1.0.70 to 1.0.71
8d94e82ad5 deployments: add new BEEFY metrics and alarms (#2090)
e9a4749e7e Bump wasmtime from 6.0.1 to 6.0.2
9d9936c0d9 Bump wasmtime from 6.0.1 to 6.0.2 in /tools/runtime-codegen
5d77cd7bee Add more logs to relayer and message pallets (#2082)
75fbb9d3ef Update comment (#2081)
9904d09cf6 Benchmarks for new relayers pallet calls (#2040)

git-subtree-dir: bridges
git-subtree-split: 557ecbcecc585547b744a5ac9fb8d7f3b9de4521

* fmt

* Fix compile

* Fix benchmark

* Squashed 'bridges/' changes from 557ecbcecc..04b3dda6aa

04b3dda6aa Remove from subtree (#2111)
f8ff15e7e7 Add `MessagesPalletInstance` for integrity tests (#2107)
92ccef58e6 Use generated runtimes for BHR/BHW (#2106)
b33e0a585b Fix comment (#2105)

git-subtree-dir: bridges
git-subtree-split: 04b3dda6aa38599e612ff637710b6d2cff275ef3

* Fix

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

* ".git/.scripts/commands/bench/bench.sh" pallet bridge-hub-rococo bridge-hubs pallet_bridge_grandpa

* ".git/.scripts/commands/bench/bench.sh" pallet bridge-hub-rococo bridge-hubs pallet_bridge_parachains

* ".git/.scripts/commands/bench/bench.sh" pallet bridge-hub-rococo bridge-hubs pallet_bridge_messages

* ".git/.scripts/commands/bench/bench.sh" pallet bridge-hub-rococo bridge-hubs pallet_bridge_relayers

---------

Signed-off-by: Adrian Catangiu <adrian@parity.io>
Co-authored-by: Keith Yeung <kungfukeith11@gmail.com>
Co-authored-by: Anthony Lazam <xlzm.tech@gmail.com>
Co-authored-by: Serban Iorga <serban300@gmail.com>
Co-authored-by: Svyatoslav Nikolsky <svyatonik@gmail.com>
Co-authored-by: girazoki <gorka.irazoki@gmail.com>
Co-authored-by: parity-processbot <>
Co-authored-by: Serban Iorga <serban@parity.io>
Co-authored-by: acatangiu <adrian@parity.io>
2023-05-04 07:08:05 +00:00
Branislav Kontur 4e3f0857ab Align BridgeHub runtimes with other SP runtimes + reused test for teleport native tokens + some nits (#2449)
* Align BridgeHub runtimes with other SP runtimes

* Reused `teleports_for_native_asset_works` test to all bridge-hub runtime

* Fix import vs doc

* Removed unnecessery deps

* DealWithFees + ToAuthor->ToStakingPot for BH according to the other runtimes

* Update parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/xcm_config.rs

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

* Update parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/xcm_config.rs

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

* Update parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/xcm_config.rs

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

* Align all desc

* Extract runtime_para_id for test

* Fix test

---------

Co-authored-by: parity-processbot <>
Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com>
2023-04-24 13:43:16 +00:00
Oliver Tale-Yazdi aa567e0d5b Co #13699: Remove old calls (#2431)
* Remove old calls

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

* update lockfile for {"substrate", "polkadot"}

* Ignore warning in pallet ping

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

* Ignore more warnings...

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

* ...

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 <>
2023-04-04 20:31:39 +00:00
Vivek Pandya 9f09109eaf Remove use of trait Store (#2286)
* Remove use of Store trait from xcmp-queue pallet

* Remove Store trait usage from dmp-queue pallet

* Remove Store trait usage from parachain-system pallet

* Remove use of Store trait from cumulus

* Run cargo fmt
2023-03-13 22:30:20 +01:00
Web3 Philosopher ae5f334fd9 introduce RelaychainStateProvider to parachain-system (#2268)
* introduce RelaychainStateProvider to parachain-system

* bring back RelaychainBlockNumberProvider, adds some docs and derives

* allow deprecated

* Apply suggestions from code review

Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com>
Co-authored-by: Bastian Köcher <git@kchr.de>

* deprecation message

---------

Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com>
Co-authored-by: Bastian Köcher <git@kchr.de>
2023-03-05 22:43:15 +01:00
joe petrowski c301b64894 Add Version Checks on Para Upgrade (#2261)
* add version checks on para ugprade

* Apply suggestions from code review

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

* remove unneeded imports and errors

* fix test error path

---------

Co-authored-by: Bastian Köcher <git@kchr.de>
2023-03-02 15:48:14 +00:00
Marcin S 9691acacd4 Polkadot companion #6603: Use a BoundedVec in ValidationResult (#2161)
* Convert message `Vec`s into `BoundedVec`s

* cargo fmt

* Fix missing conversions in collator

* Fix the fix

* Fix the fix to the fix

* Fix tests

* Fix^4

* Avoid use of unwrap

* update lockfile for {"substrate", "polkadot"}

---------

Co-authored-by: parity-processbot <>
2023-02-16 15:50:00 +00:00
Gavin Wood 3a459e8fcf XCM v3 Companion (#697)
* Fixes

* Undiener

* Undiener

* Undiener

* Lockfile

* Changes for send returning hash

* Include message ID as params to execute_xcm

* Fixes

* Fixes

* Fixes

* Fixes

* Fixes

* Fixes

* Companion fixes

* Formatting

* Fixes

* Formatting

* Bump

* Bump

* Fixes

* Formatting

* Make the price of UMP/XCMP message sending configurable

* cargo fmt

* Remove InvertLocation

* Formatting

* Use ConstantPrice from polkadot-runtime-common

* Fix naming

* cargo fmt

* Fixes

* Fixes

* Fixes

* Add CallDispatcher

* Fixes

* Fixes

* Fixes

* Fixes

* Fixes

* Fixes

* Fixes

* Fixes

* Fixes

* Fixes

* Fixes

* Fixes

* Fixes

* Fixes

* Fixes

* Fixes

* Fixes

* Fixes

* Fixes

* Remove unused import

* Remove unused import

* XCMv3 fixes (#1710)

* Fixes XCMv3 related
Fixes XCMv3 (removed query_holding)
Fixes XCMv3 - should use _depositable_count?
Fixes XCMv3 - removed TrustedReserve
Fixes - missing weights for statemine/statemint/westmint
[DO-NOT-CHERRY-PICK] tmp return query_holding to aviod conficts to master
Fixes - missing functions for pallet_xcm_benchmarks::generic::Config
Fixes for XCMv3 benchmarking
Fix xcm - removed query_holding

* ".git/.scripts/bench-bot.sh" xcm statemine assets pallet_xcm_benchmarks::generic

* ".git/.scripts/bench-bot.sh" xcm statemint assets pallet_xcm_benchmarks::generic

* ".git/.scripts/bench-bot.sh" xcm westmint assets pallet_xcm_benchmarks::generic

* Fix imports

* Avoid consuming XCM message for NotApplicable scenario (#1787)

* Avoid consuming message for NotApplicable scenario

* Avoid consuming message for NotApplicable scenario tests

* Add 10 message processing limit to DMP queue

* Add 10 message limit to XCMP queue

* Always increment the message_processed count whenever a message is processed

* Fix formatting

* Set an upper limit to the overweight message DMP queue

* Add upper limit to XCMP overweight message queue

* Fix for missing weight for `fn unpaid_execution()`

* Fix - usage of `messages_processed`

* Fixes

* Fixes

* Fixes

* cargo fmt

* Fixes

* Fixes

* Fixes

* Fixes

* Remove unused import

* Fixes for gav-xcm-v3 (#1835)

* Fix for FungiblesAdapter - trait changes: Contains -> AssetChecking

* Fix for missing weight for `fn unpaid_execution()`

* Used NonLocalMint for all NonZeroIssuance

* Fix

* Fixes

* Fixes

* Fixes

* Fixes

* Fixes

* Fix tests

* Fixes

* Add SafeCallFilter

* Add missing config items

* Add TODO

* Use () as the PriceForParentDelivery

* Fixes

* Fixes

* Fixes

* Fixes

* Update transact_origin to transact_origin_and_runtime_call

* Add ReachableDest config item to XCM pallet

* Update SafeCallFilter to allow remark_with_event in runtime benchmarks

* cargo fmt

* Update substrate

* Fix worst_case_holding

* Fix DMQ queue unit tests

* Remove unused label

* cargo fmt

* Actually process incoming XCMs

* Fixes

* Fixes

* Fixes

* Fixes - return back Weightless

* Added measured benchmarks for `pallet_xcm` (#1968)

* Fix

Fix

Fix

* Fix

* Fixes for transact benchmark

* Fixes add pallet_xcm to benchmarks

* Revert remark_with_event

* ".git/.scripts/bench-bot.sh" xcm statemine assets pallet_xcm_benchmarks::generic

* Fixes

* TMP

* Fix for reserve_asset_deposited

* ".git/.scripts/bench-bot.sh" pallet statemine assets pallet_xcm

* Fix

* ".git/.scripts/bench-bot.sh" pallet statemint assets pallet_xcm

* Fix

* ".git/.scripts/bench-bot.sh" pallet westmint assets pallet_xcm

* Fix westmint

* ".git/.scripts/bench-bot.sh" xcm statemine assets pallet_xcm_benchmarks::generic

* Fix

* ".git/.scripts/bench-bot.sh" xcm westmint assets pallet_xcm_benchmarks::generic

* ".git/.scripts/bench-bot.sh" xcm statemint assets pallet_xcm_benchmarks::generic

* ".git/.scripts/bench-bot.sh" pallet collectives-polkadot collectives pallet_xcm

* Fix for collectives

* ".git/.scripts/bench-bot.sh" pallet bridge-hub-kusama bridge-hubs pallet_xcm

* ".git/.scripts/bench-bot.sh" pallet bridge-hub-rococo bridge-hubs pallet_xcm

* Fixes for bridge-hubs

* Fixes - return back Weightless

* Fix - removed MigrateToTrackInactive for contracts-rococo

Co-authored-by: command-bot <>

* cargo fmt

* Fix benchmarks

* Bko gav xcm v3 (#1993)

* Fix

* ".git/.scripts/bench-bot.sh" xcm statemint assets pallet_xcm_benchmarks::fungible

* ".git/.scripts/bench-bot.sh" xcm statemine assets pallet_xcm_benchmarks::fungible

* ".git/.scripts/bench-bot.sh" xcm westmint assets pallet_xcm_benchmarks::fungible

* ".git/.scripts/bench-bot.sh" xcm statemine assets pallet_xcm_benchmarks::generic

* ".git/.scripts/bench-bot.sh" xcm statemint assets pallet_xcm_benchmarks::generic

* ".git/.scripts/bench-bot.sh" xcm westmint assets pallet_xcm_benchmarks::generic

* ".git/.scripts/bench-bot.sh" pallet statemine assets pallet_xcm

* ".git/.scripts/bench-bot.sh" pallet westmint assets pallet_xcm

* ".git/.scripts/bench-bot.sh" pallet statemint assets pallet_xcm

* ".git/.scripts/bench-bot.sh" pallet collectives-polkadot collectives pallet_xcm

* ".git/.scripts/bench-bot.sh" pallet bridge-hub-kusama bridge-hubs pallet_xcm

* ".git/.scripts/bench-bot.sh" pallet bridge-hub-rococo bridge-hubs pallet_xcm

Co-authored-by: command-bot <>

* Change AllowUnpaidExecutionFrom to be explicit

* xcm-v3 benchmarks, weights, fixes for bridge-hubs (#2035)

* Dumy weights to get compile

* Change UniversalLocation according to https://github.com/paritytech/polkadot/pull/4097 (Location Inversion Removed)

* Fix bridge-hubs weights

* ".git/.scripts/bench-bot.sh" pallet statemine assets pallet_xcm

* ".git/.scripts/bench-bot.sh" pallet statemint assets pallet_xcm

* ".git/.scripts/bench-bot.sh" pallet collectives-polkadot collectives pallet_xcm

* ".git/.scripts/bench-bot.sh" pallet westmint assets pallet_xcm

* ".git/.scripts/bench-bot.sh" xcm bridge-hub-kusama bridge-hubs pallet_xcm_benchmarks::generic

* ".git/.scripts/bench-bot.sh" xcm bridge-hub-kusama bridge-hubs pallet_xcm_benchmarks::fungible

* ".git/.scripts/bench-bot.sh" pallet bridge-hub-kusama bridge-hubs pallet_xcm

* ".git/.scripts/bench-bot.sh" pallet bridge-hub-rococo bridge-hubs pallet_xcm

* ".git/.scripts/bench-bot.sh" xcm bridge-hub-rococo bridge-hubs pallet_xcm_benchmarks::fungible

* ".git/.scripts/bench-bot.sh" xcm bridge-hub-rococo bridge-hubs pallet_xcm_benchmarks::generic

* Change NetworkId to Option<NetworkId>

Co-authored-by: command-bot <>
Co-authored-by: Keith Yeung <kungfukeith11@gmail.com>

* Add event for showing the hash of an UMP sent message (#1228)

* Add UpwardMessageSent event in parachain-system

* additional fixes

* Message Id

* Fix errors from merge

* fmt

* more fmt

* Remove todo

* more formatting

* Fixes

* Fixes

* Fixes

* Fixes

* Allow explicit unpaid executions from the relay chains for system parachains (#2060)

* Allow explicit unpaid executions from the relay chains for system parachains

* Put origin-filtering barriers into WithComputedOrigin

* Use ConstU32<8>

* Small nits

* formatting

* cargo fmt

* Allow receiving XCMs from any relay chain plurality

* Fixes

* update lockfile for {"polkadot", "substrate"}

* Update polkadot

* Add runtime-benchmarks feature

Co-authored-by: Keith Yeung <kungfukeith11@gmail.com>
Co-authored-by: Branislav Kontur <bkontur@gmail.com>
Co-authored-by: girazoki <gorka.irazoki@gmail.com>
Co-authored-by: parity-processbot <>
2023-01-17 09:26:34 +00:00
s0me0ne-unkn0wn 7871193f79 Use primitives reexported from polkadot_primitives crate root (#2067)
* Use primitives reexported from `polkadot_primitives` crate root

* restart CI

* Fixes after merge

* update lockfile for {"polkadot", "substrate"}

Co-authored-by: parity-processbot <>
2023-01-11 12:06:58 +00:00
Bastian Köcher ee02f48ded Refactor validate_block (#2069)
* Refactor `validate_block`

This pull request changes the `validate_block` implementation. One of the key changes are that we
free data structures as early as possible. The memory while validating the block is scarce and we
need to give as much as possible to the actual execution of the block. Besides that the pr moves the
validation of the `validation_data` into the `validate_block` implementation completely instead of
using this machinery with putting the data into some global variable that would then be read while
executing the block. There are also some new docs to explain the internals of `validate_block`.

* No clone wars!!

* Integrate more feedback

* FMT

* Delay the header encoding
2023-01-10 16:42:41 +00:00
Michal Kucharczyk 19ad8c8b38 BlockId removal: refactor: HeaderBackend::header (#1977)
* BlockId removal: refactor: HeaderBackend::header

It changes the arguments of:
- `HeaderBackend::header`,
- `Client::header`

methods from: `BlockId<Block>` to: `Block::Hash`

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

* update lockfile for {"polkadot", "substrate"}

Co-authored-by: parity-processbot <>
2022-12-20 12:46:44 +00:00
Squirrel fbce6fe120 Expect less chaos: use explicit call indices (#1984)
* Expect less chaos: set call index explicitly.

* mark test pallet as dev mode so explicit call indicies are not required.

* Fix 'dev_mode' syntax

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>
2022-12-20 12:04:56 +00:00
Keith Yeung 7ad763f9bd Fix a few migration issues with 2D weights (#1755)
* Give a max proof size to DMP individual weight processing during migration

* Fix a few migration issues with 2D weights

* Update substrate

* Fixes

* cargo fmt

* Re-add v1 migration

* Set DEFAULT_POV_SIZE to 64 KB

* Use Weight::from_parts

* Update Polkadot

* Fixes
2022-10-24 15:03:02 +00:00
Branislav Kontur 86bdaec2ea Small cosmetic nits (#1679) 2022-09-23 14:53:31 +02:00
Bastian Köcher a9e3f09a82 Ensure that inherents are first and unsigned (#1654)
* Ensure that inherents are first and unsigned

* Update pallets/parachain-system/src/validate_block/tests.rs

Co-authored-by: Sergei Shulepov <sergei@parity.io>

Co-authored-by: Sergei Shulepov <sergei@parity.io>
2022-09-21 14:08:41 +02:00
Sergej Sakac d53444ef81 Rename Origin (#1628)
* Rename Origin

* more renaming

* fixes

* fix errors

* last fix?

* rename

* Update mock.rs

* update lockfile for {"polkadot", "substrate"}

Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
Co-authored-by: parity-processbot <>
2022-09-20 23:17:31 +00:00
Keith Yeung 2072bdf777 Companion for paritytech/substrate#12219 (#1610)
* Remove CanAuthorWith trait

CanAuthotWith trait removed. Also all dependencies, parameters, type
paramers were removed. This is related to removal of native runtime.

* Companion for paritytech/substrate#12219

* Fixes

* polkadot-runtime-common updated

cargo update -p polkadot-runtime-common

* warning fixed

* Update cid

* update lockfile for {"polkadot", "substrate"}

* Update substrate

* update lockfile for {"polkadot", "substrate"}

* Update polkadot

* Fix tests

* 🤦

Co-authored-by: Michal Kucharczyk <1728078+michalkucharczyk@users.noreply.github.com>
Co-authored-by: parity-processbot <>
Co-authored-by: Bastian Köcher <info@kchr.de>
2022-09-14 07:59:03 +00:00
Sergej Sakac 68ba7e544d Companion for #11981 (#1563)
* Companion for #11981

* rename

* Event to RuntimeEvent in imports

* missed rename

* undo

* revert

* rename type Call & Event

* commit

* ...

* fix

* fix errors

* fixes

* fmt

* fix imports

* final fix?

* fmt

* fix?

* fixes after merge

* small fix

* cargo update -p polkadot-runtime-common

* cargo +nightly fmt

* update lockfile for {"polkadot", "substrate"}

* fix

Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
Co-authored-by: parity-processbot <>
2022-09-12 23:55:33 +00:00
Shawn Tabrizi 2c1e88522c Companion for Weight v1.5 Follow Up (#1584)
* fixes

* oopsie

* [ci] Apply cargo-fmt

* fixes

* [ci] Apply cargo-fmt

* fixes

* fix cumulus template

* fix merge

* update lockfile for {"polkadot", "substrate"}

Co-authored-by: paritytech-ci <paritytech-ci@parity.io>
Co-authored-by: parity-processbot <>
2022-09-01 19:25:05 +00:00