- Apr 13, 2024
-
-
Serban Iorga authored
Fixes https://github.com/paritytech/polkadot-sdk/issues/3999 --------- Co-authored-by: Branislav Kontur <[email protected]>
-
- Apr 10, 2024
-
-
* Add two new zombienet tests for bridges (manual run) (#3072) extracted useful code from #2982 This PR: - adds test 2 for Rococo <> Westend bridge: checks that relayer doesn't submit any extra headers while there are no any messages; - adds test 3 for Rococo <> Westend bridge: checks that relayer doesn't submit any extra headers when there are messages; - fixes most of comments from #2439 (like: log names, ability to run specify test number when calling `run-tests.sh`). Right now of all our tests, only test 2 is working (until BHs will be upgraded to use async backing), so you can test it with `./bridges/zombienet/run-tests.sh --test 2` locally. (cherry picked from commit 2e6067d7) * [cumulus] Improved check for sane bridge fees calculations (#3175) - [x] change constants when CI fails (should fail :) ) On the AssetHubRococo: 1701175800126 -> 1700929825257 = 0.15 % decreased. ``` Feb 02 12:59:05.520 ERROR bridges::estimate: `bridging::XcmBridgeHubRouterBaseFee` actual value: 1701175800126 for runtime: statemine-1006000 (statemine-0.tx14.au1) Feb 02 13:02:40.647 ERROR bridges::estimate: `bridging::XcmBridgeHubRouterBaseFee` actual value: 1700929825257 for runtime: statemine-1006000 (statemine-0.tx14.au1) ``` On the AssetHubWestend: 2116038876326 -> 1641718372993 = 22.4 % decreased. ``` Feb 02 12:56:00.880 ERROR bridges::estimate: `bridging::XcmBridgeHubRouterBaseFee` actual value: 2116038876326 for runtime: westmint-1006000 (westmint-0.tx14.au1) Feb 02 13:04:42.515 ERROR bridges::estimate: `bridging::XcmBridgeHubRouterBaseFee` actual value: 1641718372993 for runtime: westmint-1006000 (westmint-0.tx14.au1) ``` (cherry picked from commit 74b597fc) * Enable async backing on all testnet system chains (#2949) Built on top of https://github.com/paritytech/polkadot-sdk/pull/2826/ which was a trial run. Guide: https://github.com/w3f/polkadot-wiki/blob/master/docs/maintain/maintain-guides-async-backing.md --------- Signed-off-by: georgepisaltu <[email protected]> Co-authored-by: Branislav Kontur <[email protected]> Co-authored-by: Dónal Murray <[email protected]> Co-authored-by: Dmitry Sinyavin <[email protected]> Co-authored-by: s0me0ne-unkn0wn <[email protected]> Co-authored-by: Svyatoslav Nikolsky <[email protected]> Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: georgepisaltu <[email protected]> (cherry picked from commit 700d5f85) * Introduce submit_finality_proof_ex call to bridges GRANDPA pallet (#3225) backport of https://github.com/paritytech/parity-bridges-common/pull/2821 (see detailed description there) (cherry picked from commit a4622071) * Bridge zombienet tests refactoring (#3260) Related to https://github.com/paritytech/polkadot-sdk/issues/3242 Reorganizing the bridge zombienet tests in order to: - separate the environment spawning from the actual tests - offer better control over the tests and some possibility to orchestrate them as opposed to running everything from the zndsl file Only rewrote the asset transfer test using this new "framework". The old logic and old tests weren't functionally modified or deleted. The plan is to get feedback on this approach first and if this is agreed upon, migrate the other 2 tests later in separate PRs and also do other improvements later. (cherry picked from commit dfc8e469) * Bridges: add test 0002 to CI (#3310) Bridges: add test 0002 to CI (cherry picked from commit 1b66bb51) * Bridge zombienet tests - move all test scripts to the same folder (#3333) Related to https://github.com/paritytech/polkadot-sdk/issues/3242 (cherry picked from commit 5fc7622c ) * Lift dependencies to the workspace (Part 2/x) (#3366) Lifting some more dependencies to the workspace. Just using the most-often updated ones for now. It can be reproduced locally. ```sh $ zepter transpose dependency lift-to-workspace --ignore-errors syn quote thiserror "regex:^serde.*" $ zepter transpose dependency lift-to-workspace --version-resolver=highest syn quote thiserror "regex:^serde.*" --fix $ taplo format --config .config/taplo.toml ``` --------- Signed-off-by: Oliver Tale-Yazdi <[email protected]> (cherry picked from commit e89d0fca) * Add support for BHP local and BHK local (#3443) Related to https://github.com/paritytech/polkadot-sdk/issues/3400 Extracting small parts of https://github.com/paritytech/polkadot-sdk/pull/3429 into separate PR: - Add support for BHP local and BHK local - Increase the timeout for the bridge zomienet tests (cherry picked from commit e4b6b8cd) * Bridge zombienet tests: move all "framework" files under one folder (#3462) Related to https://github.com/paritytech/polkadot-sdk/issues/3400 Moving all bridges testing "framework" files under one folder in order to be able to download the entire folder when we want to add tests in other repos No significant functional changes (cherry picked from commit 6fc1d41d) * Bridge zombienet tests: Check amount received at destination (#3490) Related to https://github.com/paritytech/polkadot-sdk/issues/3475 (cherry picked from commit 2cdda0e6) * FRAME: Create `TransactionExtension` as a replacement for `SignedExtension` (#2280) Closes #2160 First part of [Extrinsic Horizon](https://github.com/paritytech/polkadot-sdk/issues/2415 ) Introduces a new trait `TransactionExtension` to replace `SignedExtension`. Introduce the idea of transactions which obey the runtime's extensions and have according Extension data (né Extra data) yet do not have hard-coded signatures. Deprecate the terminology of "Unsigned" when used for transactions/extrinsics owing to there now being "proper" unsigned transactions which obey the extension framework and "old-style" unsigned which do not. Instead we have __*General*__ for the former and __*Bare*__ for the latter. (Ultimately, the latter will be phased out as a type of transaction, and Bare will only be used for Inherents.) Types of extrinsic are now therefore: - Bare (no hardcoded signature, no Extra data; used to be known as "Unsigned") - Bare transactions (deprecated): Gossiped, validated with `ValidateUnsigned` (deprecated) and the `_bare_compat` bits of `TransactionExtension` (deprecated). - Inherents: Not gossiped, validated with `ProvideInherent`. - Extended (Extra data): Gossiped, validated via `TransactionExtension`. - Signed transactions (with a hardcoded signature). - General transactions (without a hardcoded signature). `TransactionExtension` differs from `SignedExtension` because: - A signature on the underlying transaction may validly not be present. - It may alter the origin during validation. - `pre_dispatch` is renamed to `prepare` and need not contain the checks present in `validate`. - `validate` and `prepare` is passed an `Origin` rather than a `AccountId`. - `validate` may pass arbitrary information into `prepare` via a new user-specifiable type `Val`. - `AdditionalSigned`/`additional_signed` is renamed to `Implicit`/`implicit`. It is encoded *for the entire transaction* and passed in to each extension as a new argument to `validate`. This facilitates the ability of extensions to acts as underlying crypto. There is a new `DispatchTransaction` trait which contains only default function impls and is impl'ed for any `TransactionExtension` impler. It provides several utility functions which reduce some of the tedium from using `TransactionExtension` (indeed, none of its regular functions should now need to be called directly). Three transaction version discriminator ("versions") are now permissible: - 0b000000100: Bare (used to be called "Unsigned"): contains Signature or Extra (extension data). After bare transactions are no longer supported, this will strictly identify an Inherents only. - 0b100000100: Old-school "Signed" Transaction: contains Signature and Extra (extension data). - 0b010000100: New-school "General" Transaction: contains Extra (extension data), but no Signature. For the New-school General Transaction, it becomes trivial for authors to publish extensions to the mechanism for authorizing an Origin, e.g. through new kinds of key-signing schemes, ZK proofs, pallet state, mutations over pre-authenticated origins or any combination of the above. Wrap your `SignedExtension`s in `AsTransactionExtension`. This should be accompanied by renaming your aggregate type in line with the new terminology. E.g. Before: ```rust /// The SignedExtension to the basic transaction logic. pub type SignedExtra = ( /* snip */ MySpecialSignedExtension, ); /// Unchecked extrinsic type as expected by this runtime. pub type UncheckedExtrinsic = generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, SignedExtra>; ``` After: ```rust /// The extension to the basic transaction logic. pub type TxExtension = ( /* snip */ AsTransactionExtension<MySpecialSignedExtension>, ); /// Unchecked extrinsic type as expected by this runtime. pub type UncheckedExtrinsic = generic::UncheckedExtrinsic<Address, RuntimeCall, Signature, TxExtension>; ``` You'll also need to alter any transaction building logic to add a `.into()` to make the conversion happen. E.g. Before: ```rust fn construct_extrinsic( /* snip */ ) -> UncheckedExtrinsic { let extra: SignedExtra = ( /* snip */ MySpecialSignedExtension::new(/* snip */), ); let payload = SignedPayload::new(call.clone(), extra.clone()).unwrap(); let signature = payload.using_encoded(|e| sender.sign(e)); UncheckedExtrinsic::new_signed( /* snip */ Signature::Sr25519(signature), extra, ) } ``` After: ```rust fn construct_extrinsic( /* snip */ ) -> UncheckedExtrinsic { let tx_ext: TxExtension = ( /* snip */ MySpecialSignedExtension::new(/* snip */).into(), ); let payload = SignedPayload::new(call.clone(), tx_ext.clone()).unwrap(); let signature = payload.using_encoded(|e| sender.sign(e)); UncheckedExtrinsic::new_signed( /* snip */ Signature::Sr25519(signature), tx_ext, ) } ``` Most `SignedExtension`s can be trivially converted to become a `TransactionExtension`. There are a few things to know. - Instead of a single trait like `SignedExtension`, you should now implement two traits individually: `TransactionExtensionBase` and `TransactionExtension`. - Weights are now a thing and must be provided via the new function `fn weight`. This trait takes care of anything which is not dependent on types specific to your runtime, most notably `Call`. - `AdditionalSigned`/`additional_signed` is renamed to `Implicit`/`implicit`. - Weight must be returned by implementing the `weight` function. If your extension is associated with a pallet, you'll probably want to do this via the pallet's existing benchmarking infrastructure. Generally: - `pre_dispatch` is now `prepare` and you *should not reexecute the `validate` functionality in there*! - You don't get an account ID any more; you get an origin instead. If you need to presume an account ID, then you can use the trait function `AsSystemOriginSigner::as_system_origin_signer`. - You get an additional ticket, similar to `Pre`, called `Val`. This defines data which is passed from `validate` into `prepare`. This is important since you should not be duplicating logic from `validate` to `prepare`, you need a way of passing your working from the former into the latter. This is it. - This trait takes two type parameters: `Call` and `Context`. `Call` is the runtime call type which used to be an associated type; you can just move it to become a type parameter for your trait impl. `Context` is not currently used and you can safely implement over it as an unbounded type. - There's no `AccountId` associated type any more. Just remove it. Regarding `validate`: - You get three new parameters in `validate`; all can be ignored when migrating from `SignedExtension`. - `validate` returns a tuple on success; the second item in the tuple is the new ticket type `Self::Val` which gets passed in to `prepare`. If you use any information extracted during `validate` (off-chain and on-chain, non-mutating) in `prepare` (on-chain, mutating) then you can pass it through with this. For the tuple's last item, just return the `origin` argument. Regarding `prepare`: - This is renamed from `pre_dispatch`, but there is one change: - FUNCTIONALITY TO VALIDATE THE TRANSACTION NEED NOT BE DUPLICATED FROM `validate`!! - (This is different to `SignedExtension` which was required to run the same checks in `pre_dispatch` as in `validate`.) Regarding `post_dispatch`: - Since there are no unsigned transactions handled by `TransactionExtension`, `Pre` is always defined, so the first parameter is `Self::Pre` rather than `Option<Self::Pre>`. If you make use of `SignedExtension::validate_unsigned` or `SignedExtension::pre_dispatch_unsigned`, then: - Just use the regular versions of these functions instead. - Have your logic execute in the case that the `origin` is `None`. - Ensure your transaction creation logic creates a General Transaction rather than a Bare Transaction; this means having to include all `TransactionExtension`s' data. - `ValidateUnsigned` can still be used (for now) if you need to be able to construct transactions which contain none of the extension data, however these will be phased out in stage 2 of the Transactions Horizon, so you should consider moving to an extension-centric design. - [x] Introduce `CheckSignature` impl of `TransactionExtension` to ensure it's possible to have crypto be done wholly in a `TransactionExtension`. - [x] Deprecate `SignedExtension` and move all uses in codebase to `TransactionExtension`. - [x] `ChargeTransactionPayment` - [x] `DummyExtension` - [x] `ChargeAssetTxPayment` (asset-tx-payment) - [x] `ChargeAssetTxPayment` (asset-conversion-tx-payment) - [x] `CheckWeight` - [x] `CheckTxVersion` - [x] `CheckSpecVersion` - [x] `CheckNonce` - [x] `CheckNonZeroSender` - [x] `CheckMortality` - [x] `CheckGenesis` - [x] `CheckOnlySudoAccount` - [x] `WatchDummy` - [x] `PrevalidateAttests` - [x] `GenericSignedExtension` - [x] `SignedExtension` (chain-polkadot-bulletin) - [x] `RefundSignedExtensionAdapter` - [x] Implement `fn weight` across the board. - [ ] Go through all pre-existing extensions which assume an account signer and explicitly handle the possibility of another kind of origin. - [x] `CheckNonce` should probably succeed in the case of a non-account origin. - [x] `CheckNonZeroSender` should succeed in the case of a non-account origin. - [x] `ChargeTransactionPayment` and family should fail in the case of a non-account origin. - [ ] - [x] Fix any broken tests. --------- Signed-off-by: georgepisaltu <[email protected]> Signed-off-by: Alexandru Vasile <[email protected]> Signed-off-by: dependabot[bot] <[email protected]> Signed-off-by: Oliver Tale-Yazdi <[email protected]> Signed-off-by: Alexandru Gheorghe <[email protected]> Signed-off-by: Andrei Sandu <[email protected]> Co-authored-by: Nikhil Gupta <[email protected]> Co-authored-by: georgepisaltu <[email protected]> Co-authored-by: Chevdor <[email protected]> Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: Maciej <[email protected]> Co-authored-by: Javier Viola <[email protected]> Co-authored-by: Marcin S. <[email protected]> Co-authored-by: Tsvetomir Dimitrov <[email protected]> Co-authored-by: Javier Bullrich <[email protected]> Co-authored-by: Koute <[email protected]> Co-authored-by: Adrian Catangiu <[email protected]> Co-authored-by: Vladimir Istyufeev <[email protected]> Co-authored-by: Ross Bulat <[email protected]> Co-authored-by: Gonçalo Pestana <[email protected]> Co-authored-by: Liam Aharon <[email protected]> Co-authored-by: Svyatoslav Nikolsky <[email protected]> Co-authored-by: André Silva <[email protected]> Co-authored-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: s0me0ne-unkn0wn <[email protected]> Co-authored-by: ordian <[email protected]> Co-authored-by: Sebastian Kunert <[email protected]> Co-authored-by: Aaro Altonen <[email protected]> Co-authored-by: Dmitry Markin <[email protected]> Co-authored-by: Alexandru Vasile <[email protected]> Co-authored-by: Alexander Samusev <[email protected]> Co-authored-by: Julian Eager <[email protected]> Co-authored-by: Michal Kucharczyk <[email protected]> Co-authored-by: Davide Galassi <[email protected]> Co-authored-by: Dónal Murray <[email protected]> Co-authored-by: yjh <[email protected]> Co-authored-by: Tom Mi <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Will | Paradox | ParaNodes.io <[email protected]> Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: Joshy Orndorff <[email protected]> Co-authored-by: Joshy Orndorff <[email protected]> Co-authored-by: PG Herveou <[email protected]> Co-authored-by: Alexander Theißen <[email protected]> Co-authored-by: Kian Paimani <[email protected]> Co-authored-by: Juan Girini <[email protected]> Co-authored-by: bader y <[email protected]> Co-authored-by: James Wilson <[email protected]> Co-authored-by: joe petrowski <[email protected]> Co-authored-by: asynchronous rob <[email protected]> Co-authored-by: Parth <[email protected]> Co-authored-by: Andrew Jones <[email protected]> Co-authored-by: Jonathan Udd <[email protected]> Co-authored-by: Serban Iorga <[email protected]> Co-authored-by: Egor_P <[email protected]> Co-authored-by: Branislav Kontur <[email protected]> Co-authored-by: Evgeny Snitko <[email protected]> Co-authored-by: Just van Stam <[email protected]> Co-authored-by: Francisco Aguirre <[email protected]> Co-authored-by: gupnik <[email protected]> Co-authored-by: dzmitry-lahoda <[email protected]> Co-authored-by: zhiqiangxu <[email protected]> Co-authored-by: Nazar Mokrynskyi <[email protected]> Co-authored-by: Anwesh <[email protected]> Co-authored-by: cheme <[email protected]> Co-authored-by: Sam Johnson <[email protected]> Co-authored-by: kianenigma <[email protected]> Co-authored-by: Jegor Sidorenko <[email protected]> Co-authored-by: Muharem <[email protected]> Co-authored-by: joepetrowski <[email protected]> Co-authored-by: Alexandru Gheorghe <[email protected]> Co-authored-by: Gabriel Facco de Arruda <[email protected]> Co-authored-by: Squirrel <[email protected]> Co-authored-by: Andrei Sandu <[email protected]> Co-authored-by: georgepisaltu <[email protected]> Co-authored-by: command-bot <> (cherry picked from commit fd5f9292) * Revert "FRAME: Create `TransactionExtension` as a replacement for `SignedExtension` (#2280)" (#3665) This PR reverts #2280 which introduced `TransactionExtension` to replace `SignedExtension`. As a result of the discussion [here](https://github.com/paritytech/polkadot-sdk/pull/3623#issuecomment-1986789700 ), the changes will be reverted for now with plans to reintroduce the concept in the future. --------- Signed-off-by: georgepisaltu <[email protected]> (cherry picked from commit bbd51ce8) * Increase timeout for assertions (#3680) Prevents timeouts in ci like https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/5516019 (cherry picked from commit c4c92573) * Removes `as [disambiguation_path]` from `derive_impl` usage (#3652) Step in https://github.com/paritytech/polkadot-sdk/issues/171 This PR removes `as [disambiguation_path]` syntax from `derive_impl` usage across the polkadot-sdk as introduced in https://github.com/paritytech/polkadot-sdk/pull/3505 (cherry picked from commit 7099f6e1) * Fix typo (#3691) (cherry picked from commit 6b1179f1) * Bridge zombienet tests: remove unneeded accounts (#3700) Bridge zombienet tests: remove unneeded accounts (cherry picked from commit 0c6c837f) * Fix typos (#3753) (cherry picked from commit 7241a8db ) * Update polkadot-sdk refs * Fix dependency conflicts * Fix build * cargo fmt * Fix spellcheck test --------- Co-authored-by: Svyatoslav Nikolsky <[email protected]> Co-authored-by: Branislav Kontur <[email protected]> Co-authored-by: Marcin S <[email protected]> Co-authored-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Gavin Wood <[email protected]> Co-authored-by: georgepisaltu <[email protected]> Co-authored-by: Javier Viola <[email protected]> Co-authored-by: gupnik <[email protected]> Co-authored-by: jokess123 <[email protected]> Co-authored-by: slicejoke <[email protected]>
-
-
- Mar 18, 2024
-
-
Serban Iorga authored
Bridge zombienet tests: remove unneeded accounts
-
- Feb 27, 2024
-
-
Serban Iorga authored
Related to https://github.com/paritytech/polkadot-sdk/issues/3475
-
- Feb 23, 2024
-
-
Serban Iorga authored
Related to https://github.com/paritytech/polkadot-sdk/issues/3400 Moving all bridges testing "framework" files under one folder in order to be able to download the entire folder when we want to add tests in other repos No significant functional changes
-
- Feb 15, 2024
-
-
Serban Iorga authored
Related to https://github.com/paritytech/polkadot-sdk/issues/3242
-
- Feb 12, 2024
-
-
Serban Iorga authored
Related to https://github.com/paritytech/polkadot-sdk/issues/3242 Reorganizing the bridge zombienet tests in order to: - separate the environment spawning from the actual tests - offer better control over the tests and some possibility to orchestrate them as opposed to running everything from the zndsl file Only rewrote the asset transfer test using this new "framework". The old logic and old tests weren't functionally modified or deleted. The plan is to get feedback on this approach first and if this is agreed upon, migrate the other 2 tests later in separate PRs and also do other improvements later.
-
- Jan 12, 2024
-
-
Svyatoslav Nikolsky authored
Brridges zombienet tests are non-standard - zombienet currently missing multiple relay chains support (see e.g. https://github.com/paritytech/zombienet/pull/796), so we need to go live with two relay networks, their parachains + custom test runner (which e.g. doesn't shutdown net when its tests are finished and instead waits for both networks tests to complete). So we are stuck with native zombienet provider => this PR is an attempt to gather everything in a single docker container and run tests there ~Draft, because it is far from finishing - what I want now is to see how it works on CI~
-
- Dec 20, 2023
-
-
Svyatoslav Nikolsky authored
I think I broke it in https://github.com/paritytech/polkadot-sdk/pull/2139 - fees has increased and amounts that we send are no longer enough to cover fees. Also changed a consts (test + 33%) using latest weights. --------- Co-authored-by: Branislav Kontur <[email protected]>
-
- Dec 12, 2023
-
-
Branislav Kontur authored
## Summary This pull request proposes a solution for improved control of the versioned XCM flow over the bridge (across different consensus chains) and resolves the situation where the sending chain/consensus has already migrated to a higher XCM version than the receiving chain/consensus. ## Problem/Motivation The current flow over the bridge involves a transfer from AssetHubRococo (AHR) to BridgeHubRococo (BHR) to BridgeHubWestend (BHW) and finally to AssetHubWestend (AHW), beginning with a reserve-backed transfer on AHR. In this process: 1. AHR sends XCM `ExportMessage` through `XcmpQueue`, incorporating XCM version checks using the `WrapVersion` feature, influenced by `pallet_xcm::SupportedVersion` (managed by `pallet_xcm::force_xcm_version` or version discovery). 2. BHR handles the `ExportMessage` instruction, utilizing the latest XCM version. The `HaulBlobExporter` converts the inner XCM to [`VersionedXcm::from`](https://github.com/paritytech/polkadot-sdk/blob/63ac2471aa0210f0ac9903bdd7d8f9351f9a635f/polkadot/xcm/xcm-builder/src/universal_exports.rs#L465-L467), also using the latest XCM version. However, challenges arise: - Incompatibility when BHW uses a different version than BHR. For instance, if BHR migrates to **XCMv4** while BHW remains on **XCMv3**, BHR's `VersionedXcm::from` uses `VersionedXcm::V4` variant, causing encoding issues for BHW. ``` /// Just a simulation of possible error, which could happen on BHW /// (this code is based on actual master without XCMv4) let encoded = hex_literal::hex!("0400"); println!("{:?}", VersionedXcm::<()>::decode(&mut &encoded[..])); Err(Error { cause: None, desc: "Could not decode `VersionedXcm`, variant doesn't exist" }) ``` - Similar compatibility issues exist between AHR and AHW. ## Solution This pull request introduces the following solutions: 1. **New trait `CheckVersion`** - added to the `xcm` module and exposing `pallet_xcm::SupportedVersion`. This enhancement allows checking the actual XCM version for desired destinations outside of the `pallet_xcm` module. 2. **Version Check in `HaulBlobExporter`** uses `CheckVersion` to check known/configured destination versions, ensuring compatibility. For example, in the scenario mentioned, BHR can store the version `3` for BHW. If BHR is on XCMv4, it will attempt to downgrade the message to version `3` instead of using the latest version `4`. 3. **Version Check in `pallet-xcm-bridge-hub-router`** - this check ensures compatibility with the real destination's XCM version, preventing the unnecessary sending of messages to the local bridge hub if versions are incompatible. These additions aim to improve the control and compatibility of XCM flows over the bridge and addressing issues related to version mismatches. ## Possible alternative solution _(More investigation is needed, and at the very least, it should extend to XCMv4/5. If this proves to be a viable option, I can open an RFC for XCM.)._ Add the `XcmVersion` attribute to the `ExportMessage` so that the sending chain can determine, based on what is stored in `pallet_xcm::SupportedVersion`, the version the destination is using. This way, we may not need to handle the version in `HaulBlobExporter`. ``` ExportMessage { network: NetworkId, destination: InteriorMultiLocation, xcm: Xcm<()> destination_xcm_version: Version, // <- new attritbute }, ``` ``` pub trait ExportXcm { fn validate( network: NetworkId, channel: u32, universal_source: &mut Option<InteriorMultiLocation>, destination: &mut Option<InteriorMultiLocation>, message: &mut Option<Xcm<()>>, destination_xcm_version: Version, , // <- new attritbute ) -> SendResult<Self::Ticket>; ``` ## Future Directions This PR does not fix version discovery over bridge, further investigation will be conducted here: https://github.com/paritytech/polkadot-sdk/issues/2417. ## TODO - [x] `pallet_xcm` mock for tests uses hard-coded XCM version `2` - change to 3 or lastest? - [x] fix `pallet-xcm-bridge-hub-router` - [x] fix HaulBlobExporter with version determination [here](https://github.com/paritytech/polkadot-sdk/blob/2183669d05f9b510f979a0cc3c7847707bacba2e/polkadot/xcm/xcm-builder/src/universal_exports.rs#L465) - [x] add unit-tests to the runtimes - [x] run benchmarks for `ExportMessage` - [x] extend local run scripts about `force_xcm_version(dest, version)` - [ ] when merged, prepare governance calls for Rococo/Westend - [ ] add PRDoc Part of: https://github.com/paritytech/parity-bridges-common/issues/2719 --------- Co-authored-by: command-bot <>
-
- Nov 15, 2023
-
-
Branislav Kontur authored
Rococo<>Wococo bridge is replaced by Rococo<Westend bridge, so this PR removes unneeded code. - [x] update bridges subtree after https://github.com/paritytech/parity-bridges-common/pull/2692 --------- Co-authored-by: command-bot <> Co-authored-by: Svyatoslav Nikolsky <[email protected]>
-
- Nov 13, 2023
-
-
Adrian Catangiu authored
## Motivation `pallet-xcm` is the main user-facing interface for XCM functionality, including assets manipulation functions like `teleportAssets()` and `reserve_transfer_assets()` calls. While `teleportAsset()` works both ways, `reserve_transfer_assets()` works only for sending reserve-based assets to a remote destination and beneficiary when the reserve is the _local chain_. ## Solution This PR enhances `pallet_xcm::(limited_)reserve_withdraw_assets` to support transfers when reserves are other chains. This will allow complete, **bi-directional** reserve-based asset transfers user stories using `pallet-xcm`. Enables following scenarios: - transferring assets with local reserve (was previously supported iff asset used as fee also had local reserve - now it works in all cases), - transferring assets with reserve on destination, - transferring assets with reserve on remote/third-party chain (iff assets and fees have same remote reserve), - transferring assets with reserve different than the reserve of the asset to be used as fees - meaning can be used to transfer random asset with local/dest reserve while using DOT for fees on all involved chains, even if DOT local/dest reserve doesn't match asset reserve, - transferring assets with any type of local/dest reserve while using fees which can be teleported between involved chains. All of the above is done by pallet inner logic without the user having to specify which scenario/reserves/teleports/etc. The correct scenario and corresponding XCM programs are identified, and respectively, built automatically based on runtime configuration of trusted teleporters and trusted reserves. #### Current limitations: - while `fees` and "non-fee" `assets` CAN have different reserves (or fees CAN be teleported), the remaining "non-fee" `assets` CANNOT, among themselves, have different reserve locations (this is also implicitly enforced by `MAX_ASSETS_FOR_TRANSFER=2`, but this can be safely increased in the future). - `fees` and "non-fee" `assets` CANNOT have **different remote** reserves (this could also be supported in the future, but adds even more complexity while possibly not being worth it - we'll see what the future holds). Fixes https://github.com/paritytech/polkadot-sdk/issues/1584 Fixes https://github.com/paritytech/polkadot-sdk/issues/2055 --------- Co-authored-by: Francisco Aguirre <[email protected]> Co-authored-by: Branislav Kontur <[email protected]>
-
- Nov 01, 2023
-
-
Branislav Kontur authored
## Summary Asset bridging support for AssetHub**Rococo** <-> AssetHub**Wococo** was added [here](https://github.com/paritytech/polkadot-sdk/pull/1215), so now we aim to bridge AssetHub**Rococo** and AssetHub**Westend**. (And perhaps retire AssetHubWococo and the Wococo chains). ## Solution **bridge-hub-westend-runtime** - added new runtime as a copy of `bridge-hub-rococo-runtime` - added support for bridging to `BridgeHubRococo` - added tests and benchmarks **bridge-hub-rococo-runtime** - added support for bridging to `BridgeHubWestend` - added tests and benchmarks - internal refactoring by splitting bridge configuration per network, e.g., `bridge_to_whatevernetwork_config.rs`. **asset-hub-rococo-runtime** - added support for asset bridging to `AssetHubWestend` (allows to receive only WNDs) - added new xcm router for `Westend` - added tests and benchmarks **asset-hub-westend-runtime** - added support for asset bridging to `AssetHubRococo` (allows to receive only ROCs) - added new xcm router for `Rococo` - added tests and benchmarks ## Deployment All changes will be deployed as a part of https://github.com/paritytech/polkadot-sdk/issues/1988. ## TODO - [x] benchmarks for all pallet instances - [x] integration tests - [x] local run scripts Relates to: https://github.com/paritytech/parity-bridges-common/issues/2602 Relates to: https://github.com/paritytech/polkadot-sdk/issues/1988 --------- Co-authored-by: command-bot <> Co-authored-by: Adrian Catangiu <[email protected]> Co-authored-by: joe petrowski <[email protected]>
-
- Oct 20, 2023
-
-
Branislav Kontur authored
This PR addresses several minor issues: - Fixes the symlink for `asset-hub-rococo.json` chainspec. - Corrects the `asset-hub-rococo-genesis` invulnerables setup. - Relocates common bash functions for bridge testing to a separate file `bridges_common.sh`.
-
- Oct 18, 2023
-
-
Adrian Catangiu authored
cumulus: add asset-hub-rococo runtime based on asset-hub-kusama and add asset-bridging support to it (#1215) This commit adds Rococo Asset Hub dedicated runtime so we can test new features here, before merging them in Kusama Asset Hub. Also adds one such feature: asset transfer over bridge (Rococo AssetHub <> Wococo AssetHub) - clone `asset-hub-kusama-runtime` -> `asset-hub-rococo-runtime` - make it use Rococo primitives, names, assets, constants, etc - add asset-transfer-over-bridge support to Rococo AssetHub <> Wococo AssetHub Fixes #1128 --------- Co-authored-by: Branislav Kontur <[email protected]> Co-authored-by: joe petrowski <[email protected]> Co-authored-by: Francisco Aguirre <[email protected]>
-
- Jun 02, 2023
-
-
joe petrowski authored
* change dir names * cargo toml updates * fix crate imports for build * change chain spec names and PR review rule * update cli to accept asset-hub * find/replace benchmark commands * integration tests * bridges docs * more integration tests * AuraId * other statemint tidying * rename statemint mod * chain spec mod * rename e2e test dirs * one more Runtime::Statemine * benchmark westmint * rename chain spec name and id * rename chain spec files * more tidying in scripts/docs/tests * rename old dir if exists * Force people to manually do the move. (Safer as there could be additional considerations with their setup) * review touchups * more renaming * Update polkadot-parachain/src/command.rs Co-authored-by: Bastian Köcher <[email protected]> * better error message * do not break on-chain spec_name * log info message that path has been renamed * better penpal docs --------- Co-authored-by: gilescope <[email protected]> Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: parity-processbot <>
-
- May 23, 2023
-
-
Branislav Kontur authored
-
- May 16, 2023
-
-
Branislav Kontur authored
* Nits (merge before separatelly) * Small cosmetics for Rococo/Wococo bridge local run * Squashed 'bridges/' changes from 04b3dda6aa..5fc377ab34 5fc377ab34 Support for kusama-polkadot relaying (#2128) 01f4b7f1ba Fix clippy warnings (#2127) 696ff1c368 BHK/P alignments (#2115) 2a66aa3248 Small fixes (#2126) 7810f1a988 Cosmetics (#2124) daf250f69c Remove some `expect()` statements (#2123) 1c5fba8274 temporarily remove balance guard (#2121) 3d0e547361 Propagate message receival confirmation errors (#2116) 1c33143f07 Propagate message verification errors (#2114) b075b00910 Bump time from 0.3.20 to 0.3.21 51a3a51618 Bump serde from 1.0.160 to 1.0.162 da88d044a6 Bump clap from 4.2.5 to 4.2.7 cdca322cd6 Bump sysinfo from 0.28.4 to 0.29.0 git-subtree-dir: bridges git-subtree-split: 5fc377ab34f7dfd3293099c5feec49255e827812 * Fix * Allow to change storage constants (DeliveryReward, RequiredStakeForStakeAndSlash) + tests * Clippy * New SA for RO/WO * Squashed 'bridges/' changes from 5fc377ab34..0f6091d481 0f6091d481 Bump polkadot/substrate (#2134) 9233f0a337 Bump tokio from 1.28.0 to 1.28.1 a29c1caa93 Bump serde from 1.0.162 to 1.0.163 git-subtree-dir: bridges git-subtree-split: 0f6091d48184ebb4f75cb3089befa6b92cf37335
-
- May 04, 2023
-
-
Branislav Kontur authored
* 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 <[email protected]> * 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 [email protected] (#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 <[email protected]> * 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 <[email protected]> * 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 <[email protected]> Co-authored-by: Keith Yeung <[email protected]> Co-authored-by: Anthony Lazam <[email protected]> Co-authored-by: Serban Iorga <[email protected]> Co-authored-by: Svyatoslav Nikolsky <[email protected]> Co-authored-by: girazoki <[email protected]> Co-authored-by: parity-processbot <> Co-authored-by: Serban Iorga <[email protected]> Co-authored-by: acatangiu <[email protected]>
-