Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add tool for auto generating runtime code from metadata #1812

Merged
merged 5 commits into from
Feb 3, 2023

Conversation

serban300
Copy link
Collaborator

Addresses: #1781 + TODOs / comments in the code like for example this one

Generating the wrapped runtime code for RialtoParachain using subxt-codegen instead of manually defining it.

Posting this only as a draft to gather feedback on the high-level idea.

I would say there are 2 main issues here:

  1. subxt-codegen generates shadow structures for everything that is in the runtime (for example everything that's in sp_runtime, bp_millau, etc). There are 2 solutions to this:

  2. subxt-codegen generates a lot more code than a manually defined runtime wrapper would contain (and a lot of things we don't need). This doesn't seem to increase the compile time by much, just a couple of seconds. But other runtimes (Polkadot for examples) might be even bigger. Not sure. Also from what I understand subxt-codegen might add some features for generating less code in the future (specifying only a couple of Pallets for which to generate code, specifyong only certain sections i.e. Calls / Storage / Events ). So this might be partially addressed in the future.

However overall to me it seems like this might be usable.

@svyatonik @bkontur @acatangiu do you think it would be worth adding the possibility of generating wrapped runtimes with this approach instead of manually defining them ?

@svyatonik
Copy link
Contributor

IMO the generated code looks good - we don't need to look at it anyway (most of time). But let's talk about when to use the codegen - are you planning to do that manually/with CI, right? Like when chain upgrade happens? Or do you actually want to do it during build?

Also - iiuc we don't need this code most of time, only when we prepare some transaction. So the rest of code will still use data types, defined in our code (types from bp_header_chain instead of api::runtime_types::bp_header_chain). That looks perfect.

Also - it looks like a good prototype of what we need to do when one of bridge hubs (and possibly relay chains) is upgraded. Like part of release docker publish needs to be this step that regenerates runtime types and checks compatibility.

@serban300
Copy link
Collaborator Author

serban300 commented Jan 25, 2023

@svyatonik thanks for the feedback !

But let's talk about when to use the codegen - are you planning to do that manually/with CI, right? Like when chain upgrade happens? Or do you actually want to do it during build?

Yes, I would say manually when needed. I would try to add a special build command/flag for this. Not sure if possible. I have to check what are the options.

Also - iiuc we don't need this code most of time, only when we prepare some transaction. So the rest of code will still use data types, defined in our code (types from bp_header_chain instead of api::runtime_types::bp_header_chain). That looks perfect.

Yes, exactly. We would only use this code to build calls mostly. And we can also access storage values with it. But apart from that we'll use the data types defined in our code.

Also - it looks like a good prototype of what we need to do when one of bridge hubs (and possibly relay chains) is upgraded. Like part of release docker publish needs to be this step that regenerates runtime types and checks compatibility.

Sounds good. I'll try to polish it a bit and see if we can regenerate the code only on some custom build command so that it could be used as a step in the upgrade process.

@bkontur
Copy link
Contributor

bkontur commented Jan 25, 2023

@serban300
looks cool,
so now you run node locally (&"http://localhost:20433") and download metadata, which you use to generate runtime_codegen.rs,

I dont know if it is even possible now, but maybe it would be cool, if we could (re)generate this runtime_codegen.rs from the downloaded wasm from the cumulus releases: https://github.com/paritytech/cumulus/releases/tag/parachains-v9360
maybe with srtool - but I dont know if it is possible to extract metadata from the runtime wasm

generate_runtime_api_from_bytes
generate_runtime_api_from_path

@serban300
Copy link
Collaborator Author

@serban300 looks cool, so now you run node locally (&"http://localhost:20433") and download metadata, which you use to generate runtime_codegen.rs,

I dont know if it is even possible now, but maybe it would be cool, if we could (re)generate this runtime_codegen.rs from the downloaded wasm from the cumulus releases: https://github.com/paritytech/cumulus/releases/tag/parachains-v9360 maybe with srtool - but I dont know if it is possible to extract metadata from the runtime wasm

generate_runtime_api_from_bytes generate_runtime_api_from_path

Yes, I don't know if it's possible. But it would be nice. I'll try.

@bkontur
Copy link
Contributor

bkontur commented Jan 25, 2023

@serban300 looks cool, so now you run node locally (&"http://localhost:20433") and download metadata, which you use to generate runtime_codegen.rs,
I dont know if it is even possible now, but maybe it would be cool, if we could (re)generate this runtime_codegen.rs from the downloaded wasm from the cumulus releases: https://github.com/paritytech/cumulus/releases/tag/parachains-v9360 maybe with srtool - but I dont know if it is possible to extract metadata from the runtime wasm
generate_runtime_api_from_bytes generate_runtime_api_from_path

Yes, I don't know if it's possible. But it would be nice. I'll try.

looks like, this should be possible with subxt-cli see here

@serban300 serban300 changed the title [RFC] Use autogenerated code for RialtoParachain wrapped runtime Add tool for auto generating runtime code from metadata Jan 27, 2023
@serban300 serban300 marked this pull request as ready for review January 27, 2023 14:33
@serban300
Copy link
Collaborator Author

@svyatonik @bkontur

I polished this PR and transformed it into a CLI tool for generating runtime code for metadata. Also added the posibility to generate the runtime code from the wasm binary as suggested by @bkontur .

PTAL when you have time.

@bkontur
Copy link
Contributor

bkontur commented Jan 27, 2023

cool, that it is possible with cli for wasm file,
I could imagine, for example:

  • Cumulus releases new runtimes
  • we can add to Cumulus some trigger (auto or manual) that will ping our CI, that will run this cli tool and will create a PR with new codegen-runtime.rs
  • so we can see directly from PR, that new codegen is relevant for redeploying relayer or not, if not we just close PR and dont care, if relevant, we will wait for version guard and then just merge PR and release :)
    • also we can have some test for encodings, if anything is changed

I think, if we want to go this way, I would try it for Rococo/Wococo/Kusama/Polkadot stuff asap,
the only disadvatage is the bit codegen-runtime.rs where we need just small stuff from this file

Copy link
Contributor

@svyatonik svyatonik left a comment

Choose a reason for hiding this comment

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

Looks very promising! Thanks!

derives.extend_for_all(vec![syn::parse_quote!(Clone)]);
// Type substitutes
let mut type_substitutes = TypeSubstitutes::new(&CratePath::default());
type_substitutes.extend(
Copy link
Contributor

Choose a reason for hiding this comment

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

Not an issue - just a question. I can see that the generated code has something like mod sp_runtime. That's why we need those substitutions, right? But why only for several types? Are they types that we use in relay?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Yes, exactly. I added type subsitutites only for the types that we use to build the indirect calls. In order to avoid using std::mem::transmute().

@serban300
Copy link
Collaborator Author

Trying to make spellcheck to ignore the codegen files

@serban300 serban300 requested a review from a team as a code owner February 3, 2023 08:51
@serban300
Copy link
Collaborator Author

I added a small change to avoid autogenerated code files when running cargo spellcheck. Now spellcheck will check all the rust files except for the ones named codegen_runtime.rs. Not sure if before it was checking only the rust files, but it seemed so.

@svyatonik could you PTAL on this change ?

Copy link
Contributor

@svyatonik svyatonik left a comment

Choose a reason for hiding this comment

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

afaik it was only checking rs files, right. Everything is fine, thank you!

@serban300 serban300 merged commit bdb84ce into paritytech:master Feb 3, 2023
[[package]]
name = "sp-version-proc-macro"
version = "4.0.0-dev"
source = "git+https://github.com/paritytech/substrate?tag=monthly-2022-07#279593d87f103fa5e10c9751a97b1584f3ad79d6"
Copy link
Contributor

Choose a reason for hiding this comment

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

@serban300 Is that intended or just some accidental change? I mean - we now have many duplicate crates here (in lock file) - half of those are referencing Substrate master and the other half referencing this tag (ag=monthly-2022-07). I was going to update Substrate refs && found this :) Could fix in my PR if that was an accidental change

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

@svyatonik sorry, yes it was by mistake. Thanks !

svyatonik added a commit that referenced this pull request Jul 17, 2023
* 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 0625544

git-subtree-dir: bridges
git-subtree-split: 0625544

* 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 paritytech/polkadot#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 0625544..984749b

984749b Define separate signed extension for BHR/BHW (#1776)
72b03d4 update Substrate/Polkadot/Cumulus deps to master (#1775)
3065c79 Added crate-level docs for the parachains pallet (#1772)
a0f41b2 added/updated pallet level docs to grandpa and messages pallets (#1771)
6d69d1f docs: add Security Policy doc (#1770)
ff8c0f7 Fix cargo deny issues (#1769)
6fc931d Bump xcm-v3 + substrate (#1767)
5840197 Define method for checking message lane weights (#1766)
881af02 increase MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX and MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX for RBH/WBH (#1765)
41d91e9 fixed receive_delivery_proof_for_two_messages_by_two_relayers (#1764)
ac0cf7b Fix some cargo-deny issues (#1763)
6d9dc63 `cargo machete` removed unused deps (#1761)
c265b54 Remove sp-version dependency from bin-substrate (#1758)
1327c9d Set `R/WococoBridgeHub` bundle runtime version (#1756)
a3a2a06 Expose relay version metric (#1750)
13f4a01 Use indirect runtime calls for RialtoParachain (#1753)
9563f9e fix nightly clippy again (#1752)
21b75b8 no-grafana-startup-delay option in run.sh (#1751)
a5fe0df Remove TODO (#1749)
6c826a6 Deduplicate pallet call structs used for indirect runtime calls (#1744)
e575269 fix nightly clippy (#1746)
209cba3 Update project level docs (#1734)
b05cef5 Improve relayer initialization behaviour (#1743)
c7b6bae Make debug display of LaneId compatible with its previous version (#1740)
221e4e8 Remove CliChain::KeyPair (#1741)
3d9d290 Use TypedLaneId instead of LaneId (#1738)
6683b81 Simplify read_client_state() (#1739)
3f7353b Expose metrics of on-demand relay chain headers sync from with-parachain complex relays (#1737)
ab65d84 Handle `SIGTERM` for the docker containers + relay (#1735)
b9050e9 Replace `BATCH_CALL_SUPPORTED` (#1733)
c28b3ff Updated db weights and some experiments (#1732)
023689c Do not require new headers if lane is empty (#1725)
bddf1fa remove messages pallet owner relay argument (#1728)
ef55226 more traces + remove signer override (#1727)
4d50df6 remove BatchDeliveryTransaction::new and BatchConfirmationTransaction::new to avoid expects (#1726)
15244e5 Batch transactions in complex relays (#1669)
c209bb9 fix pallet names at bridge hubs (#1722)
036e669 tests (#1720)
3d56e20 Check origin? (#1718)
af9abbe Remove SOURCE_PARACHAIN_PARA_ID (#1716)
d1cb5d1 fix parachains benchmarks (#1717)
84bdf86 Changed docker image name for substrate-relay (#1714)
5698fb4 Remove WeightToFee (#1713)
9f4106b Fix bridge hub rococo/wococo weights (#1712)
114b150 Only store header state root (pallet-bridge-parachains) (#1701)
92e86f0 New relayer rewards scheme integration (#1652)
8649d12 Signed extension to refund relayer at the target chain (#1657)
ec6bafa DeliveryConfirmationPayments trait for paying relayer rewards at the source chain (#1653)
fab2344 only store header state root (pallet-bridge-grandpa) (#1699)
b5e916f fixed benchmarks of relayers pallet (#1700)
5cce3e8 fix clippy (#1698)
f78e886 removed MintReward and added PayLaneRewardFromAccount (#1693)
0c19db3 added version guards to RBH<>WBH GRANDPA finality (and complex) relay (#1697)
c003b95 removed ESTIMATE_MESSAGE_FEE_METHOD (#1696)
4903b79 refund_pay_dispatch_fee removed (#1695)
61c3b22 Replace const parameters types (#1691)

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

* Fixes after merge

* Fixes

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

* Squashed 'bridges/' changes from 984749b..fb3c5ef

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

git-subtree-dir: bridges
git-subtree-split: fb3c5ef

* Fixed try-runtime

* Fix cargo.lock

* Fix BridgePalletIsNotInitialized (#2114)

* Squashed 'bridges/' changes from fb3c5ef..e2e9fa7

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

git-subtree-dir: bridges
git-subtree-split: e2e9fa7

* Fix cargo.toml

* Squashed 'bridges/' changes from e2e9fa7..d5f95c1

d5f95c1 use wss to connect to the Rialto node in test deployments (#1809)
722d47b fix compilation
a487326 Bump sysinfo from 0.15.9 to 0.27.7
9a6e8bb Bump env_logger from 0.8.4 to 0.10.0
89c5e79 Bump async-trait from 0.1.61 to 0.1.62
ddd0a57 Bump fixed-hash from 0.7.0 to 0.8.0
e8b0b81 Bump impl-serde from 0.3.2 to 0.4.0
c522746 Bump jsonpath_lib from 0.2.6 to 0.3.0
9f4771d Bump parking_lot from 0.11.2 to 0.12.1
dab5d72 Bump backoff from 0.2.1 to 0.4.0
d7dd3ac Bump strum from 0.21.0 to 0.24.1
c497990 Bump tokio from 1.24.1 to 1.24.2
db61468 Bump clap from 4.1.0 to 4.1.1
3c15521 update ignored dependencies for dependabot (#1790)
4c79147 No wildcard patterns in Cargo.toml (#1789)
3363231 Remove chain-specific dependencies from crates that will be used in Cumulus (#1783)

git-subtree-dir: bridges
git-subtree-split: d5f95c1

* 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 #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 d5f95c1..b39cb0d

b39cb0d MaxValues limit for storage maps in the pallet-bridge-grandpa (#1861)
11b3a61 fixed TODOs for weights v2 (#1860)
5a44f9f Message delivery transaction is not free!!! (#1859)
59a42bd fixed BEEFY genesis (#1858)
ab7c7ad Use parity-util-mem 0.12.0 (#1856)
8fd346e changed some tests for weights v2 (#1855)
c438b9f Add separate Cargo.lock for `tools/runtime-codegen` (#1854)
fc55a97 Fix `HeadersToKeep` and `MaxBridgedAuthorities` in Millau benchmarks (#1851)
72e64a3 Decrease number of GRANDPA authorities in Polkadot-like chains from 100_000 to 2_048 (#1852)
d60a331 Update Substrate/Polkadot/Cumulus dependencies + weights v2 (#1850)
61b229b Bump async-trait from 0.1.63 to 0.1.64
3663331 Bump serde_json from 1.0.91 to 1.0.92 (#1845)
4d917bb Bump trie-db from 0.24.0 to 0.25.0
8d919ea Bump anyhow from 1.0.68 to 1.0.69
ef9364d Bump proc-macro2 from 1.0.49 to 1.0.51
9ddeebe Bump futures from 0.3.25 to 0.3.26
e02eb75 connect using wss under flag condition (#1843)
99754a0 remove extra tracing on test deployments (#1842)
bdb84ce Add tool for auto generating runtime code from metadata (#1812)
86662f2 fix bridge-runtime-common build (#1839)
f656ac7 Change some macro names (#1837)
50f2980 Verify partial repo build on CI (#1832)
f70f823 fix bridge hubs blocks interval (#1836)
ddbe5cd [ci] change runners (#1833)
45a68ad Fix on demand parachains relay when no parachain head at target (#1834)
6dbce72 Use GitLab env vars to get git commit (#1831)
b1a8161 bump bridge hub versions (#1830)
e909595 Use specific error for case when para head is missing from the bridge pallet (#1829)
d517da8 Do not read parachain heads from ancient relay headers (#1827)
217bc72 Reconnect source client (#1826)
47bf5f6 Bump tokio from 1.24.2 to 1.25.0
6b307b4 Bump clap from 4.1.3 to 4.1.4
90bc29a Use named parameters for indirect calls (#1823)
986eeb5 Fix: typos (#1822)
450823b docs: fix broken link and minor nits (#1821)
3ed01ae do not call best_finalized_para_block_at_source for ancient block (#1819)
0019562 Functions to benchmark messages pallet with linked to parachain (#1817)
e9b0a1c Remove InboundPayload check (#1816)
873ea4e Bump clap from 4.1.1 to 4.1.3
97eccaa also ignore the base xcm crate (#1798)
2d3dcd0 Update bundled runtime version for bridge hub r/wococo (#1814)
7167c00 Bump bumpalo from 3.10.0 to 3.12.0 in /fuzz/storage-proof
0676875 Bump async-trait from 0.1.62 to 0.1.63 (#1811)

git-subtree-dir: bridges
git-subtree-split: b39cb0d

* Squashed 'bridges/' changes from b39cb0d..4c4a7ea

4c4a7ea Small stuff from Cumulus integration (#1865)

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

* Squashed 'bridges/' changes from 4c4a7ea..dcaec27

dcaec27 RefundRelayerForMessagesFromParachain improvements (#1879)
5457f06 clippy fixes (#1880)
29e8a30 MaxValues for OutboundLanes map (#1871)
5219b56 More tests for message pallet weights (#1870)
c4c0c7a Bump signal-hook from 0.3.14 to 0.3.15
0ff597b Bump serde_json from 1.0.92 to 1.0.93
1c5132e Bump subxt from `20adb19` to `9e2acff`
adb0781 update parachains relay doc (#1874)
972ef31 Update README.md (#1872)
9464806 MaxValues for maps in parachain maps (#1868)
662267a "refund" proof size in GRANDPa pallet (#1863)

git-subtree-dir: bridges
git-subtree-split: dcaec27

* Squashed 'bridges/' changes from dcaec27..91e66cf

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

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

* Fix tests

* Squashed 'bridges/' changes from 91e66cf..d39f563

d39f563 Make `weights::WeightInfo` pub (#1886)
c67d06a ChainWithGrandpa in primitives (#1885)

git-subtree-dir: bridges
git-subtree-split: d39f563

* Merge fix

* Squashed 'bridges/' changes from d39f563..78e3357

78e3357 RefundRelayerForMessagesFromParachain improvements (#1895)
131b173 optimize justification before submit (#1887)
5bc279e use complex transactions on RBH/WBH bridge hubs (#1893)
8f0c09a Bump clap from 4.1.4 to 4.1.6
66429b0 Bump sysinfo from 0.27.7 to 0.28.0
8b329ee Bump trie-db from 0.25.0 to 0.25.1
635cfcc Bump time from 0.3.17 to 0.3.19

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

* Squashed 'bridges/' changes from 78e3357..5b5627e

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

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

* 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 5b5627e..3c15c36

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

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

* Squashed 'bridges/' changes from 3c15c36..d05a984

d05a984 Refund messages confirmation tx (#1904)
e2e8a71 Relayers pallet: extend payment source id (#1907)
cccf73b fix nightly clippy issues (#1915)
a33a91e Bump tempfile from 3.3.0 to 3.4.0
1df768a Bump time from 0.3.17 to 0.3.20
cf17b42 Bump sysinfo from 0.28.0 to 0.28.1
0b6276b Bump jsonrpsee from 0.15.1 to 0.16.2
328dde0 Bump rand from 0.7.3 to 0.8.5
2f302a4 Bump trie-db from 0.25.1 to 0.26.0
b5d5d03 CI add jobs to publish Docker images description to hub.docker.com (#1906)
db5168f Do not stall on lost transaction (#1903)
2d83d63 Fix init-bridge (#1900)

git-subtree-dir: bridges
git-subtree-split: d05a984

* Rewards adjustments

* Update RBH/WBH spec version

* Squashed 'bridges/' changes from d05a984..ce7cf9a

ce7cf9a Removed deprecated `#[pallet::generate_store(pub(super) trait Store)]` according to latest Cumulus (#1964)
897b1c0 Bump substrate/polkadot/cumulus (#1962)
7b946da Backport xcm bridging extensions to the bridge repo (#1813)
88c1114 Bump futures from 0.3.26 to 0.3.27
8668f73 Bump serde from 1.0.152 to 1.0.155
3df8823 Bump subxt from `a7b45ef` to `d4545de`
ef1b1bc Some error improvements (#1956)
434c5e0 optimize justifications before they're included into complex transaction (#1949)
7bac365 Actually clone client data by reference when cloning the client (#1941)
764ddd4 remove lock file after checks are done (#1942)
c18a758 Fix invalid messages relay delivery transactions (#1940)
8ad152b fix nightly benchmarks test (#1939)
d451b4f Bump tokio from 1.25.0 to 1.26.0
8019c50 Bump async-trait from 0.1.64 to 0.1.66
aa055fc Bump serde_json from 1.0.93 to 1.0.94
ec2ef31 Bump subxt from `1c5faf3` to `a7b45ef`
2002636 Bump sysinfo from 0.28.1 to 0.28.2
fe246d1 Bump thiserror from 1.0.38 to 1.0.39
c95e0cf Fix deploy step in CI (#1931)
15b41c2 Improve some relay errors readability (#1930)
792deae Added deploy Job (#1929)
d86c3ce Reconnect on-demand clients from MessagesSource::reconnect and MessagesTarget::reconnect (#1927)
4161b51 get rid of obsolete weight functions (#1926)
9b3b00e cargo update -p clap@4.1.6 (#1925)
13ab28c Bump subxt from `9e2acff` to `1c5faf3`
bb6171a Remove subxt dependency features (#1924)
66d200a Verify with-parachain message benchmarks on CI (#1923)
b6af211 Update BHR and BHW spec version (#1922)
d464e78 Fix benchmarks (#1919)
74574d5 fix master compilation (#1920)
1b373df Fix multiple parachain headers submission for single message delivery (#1916)

git-subtree-dir: bridges
git-subtree-split: ce7cf9a

* 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 ce7cf9a..6343a7d

6343a7d bump substrate+polkadot refs and fix builds (#1989)
8efc2b3 Added receive_single_message_proof_with_dispatch benchmark (#1990)
6540f74 Remove deprecated code from bridge-runtime-common (#1983)
c4f368b minor cosmetic updates (#1985)
bef11ac remove invalid weight, returned by send_message (#1984)
28cf5c9 Kusama <> Polkadot relay prototype (#1982)
b195223 Bump serde from 1.0.156 to 1.0.157
70caa75 ignore binary-merkle-tree (#1980)
3dc640d Bump thiserror from 1.0.39 to 1.0.40
8a27291 Bump subxt from `d4545de` to `ae63d3d`
40937e8 Bump clap from 4.1.8 to 4.1.11
d72394c Bump finality-grandpa from 0.16.1 to 0.16.2
5414760 Bump serde from 1.0.155 to 1.0.156
b513193 Bump anyhow from 1.0.69 to 1.0.70
20867ab Bump sysinfo from 0.28.2 to 0.28.3
4d9a453 Bump async-trait from 0.1.66 to 0.1.67
8a88a75 Bump trie-db from 0.26.0 to 0.27.1
0add06e move signed extension stuff from prolkadot-core primitives to bridge-hub-cumulus-primitives (#1968)
7481ce6 added UpdatedBestFinalizedHeader event to pallet-bridge-grandpa (#1967)
6787cd0 RBH <> WBH dashboards and alerts (#1966)
036f7be enable relayer rewards metrics at bridge hubs (#1965)
a3f07d5 Fix invalid batch transaction (#1957)

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

* dispatch message weight for bridge messages (#2378)

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

* Fixes

* Squashed 'bridges/' changes from 6343a7d..c1d5990

c1d5990 Try check-rustdoc pipeline (#1782)

git-subtree-dir: bridges
git-subtree-split: c1d5990

* Removed imports

* Fix compile

* fixed benchmarks compilation

* fix rustdoc

* Squashed 'bridges/' changes from c1d5990..ecddd4a

ecddd4a Rust cargo doc for all features (#1995)
e0997c1 Fix gitlab-check (#1994)
5284850 Bump clap from 4.1.11 to 4.1.13
743cd60 Bump sysinfo from 0.28.3 to 0.28.4
dc322ba Bump async-trait from 0.1.67 to 0.1.68

git-subtree-dir: bridges
git-subtree-split: ecddd4a

* 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 ecddd4a..d30927c

d30927c Revert dispatch-results (#2048)
fa454c3 Remove unneeded files (#2044)
956a2c6 Bump clap from 4.2.1 to 4.2.2
9195158 Bump serde_json from 1.0.95 to 1.0.96
fcf4620 Bump h2 from 0.3.16 to 0.3.17 in /tools/runtime-codegen
b751fb2 Bump h2 from 0.3.16 to 0.3.17
0bf31ab update refs (#2041)
a490ecb Fix CI build (#2039)
01139eb Define `RangeInclusiveExt` (#2037)
2db2f3f Impl review suggestions from #2021 (#2036)
3629276 fix build step on CI (#2034)
3a2311b refund extra weight in receive_messages_delivery_proof call (#2031)
77f1641 Boost message delivery transaction priority (#2023)
c23c4e4 Reject delivery transactions with at least one obsolete message (#2021)
68ba699 Reintroduce msg dispatch status reporting (#2027)
d1e852c Bump hex-literal from 0.4.0 to 0.4.1
16f25d6 Relay node down alert (#2002)
4bb1a64 only refund if all bundled messages have been delivered (#2019)
b9acf52 fail with InsufficientDispatchWeight if dispatch_weight doesn't cover weight of all bundled messages (#2018)
e10097f Remove unneeded error debug strings (#2017)
f5e38f0 enable metrics on all validator nodes (#2016)
c35f1a1 Bump scale-info from 2.4.0 to 2.5.0
04c5697 Bump clap from 4.1.13 to 4.2.1
481371f Bump hex-literal from 0.3.4 to 0.4.0
6b9c140 Bump serde from 1.0.158 to 1.0.159
e71877a Bump futures from 0.3.27 to 0.3.28
c019f4f Bump tempfile from 3.4.0 to 3.5.0
2e6e79e Bump serde_json from 1.0.94 to 1.0.95
0698b1f Bump tokio from 1.26.0 to 1.27.0
35b1498 fix test step on CI (#2003)
0c3acc8 cleanup removed lane traces (#2001)
8bf8174 bump BridgeHubRococo/BridgeHubWococo versions (#2000)
e53bb7f MaxRequests -> MaxFreeMandatoryHeadersPerBlock in pallet-bridge-grandpa (#1997)
dfcc090 Run tests for `runtime-benchmarks` feature only (#1998)
efcc8db Run benchmarks for mock runtimes (#1996)

git-subtree-dir: bridges
git-subtree-split: d30927c

* Fixes

* Squashed 'bridges/' content from commit d30927c

git-subtree-dir: bridges
git-subtree-split: d30927c

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

* Squashed 'bridges/' changes from d30927c..d397094

d397094 Small simplifications (#2050)

git-subtree-dir: bridges
git-subtree-split: d397094

* Squashed 'bridges/' changes from d397094..2180797

2180797 Removed CODEOWNERS (#2051)

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

* 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 2180797..4850aac

4850aac Removed relayer_account: &AccountId from MessageDispatch  (#2080)
8c8adaf Revert "Fix max-size messages at test chains (#2064)" (#2077)
c01a63e Fixed off-by-one when confirming rewards in messages pallet (#2075)
a298be9 Update subxt dependencies (#2072)
c0eef51 Fix max-size messages at test chains (#2064)
3a658e3 Messages relay fixes (#2073)
0022b5a Slash relayers for invalid transactions (#2025)
1981040 Bump enumflags2 from 0.7.5 to 0.7.7
9229b25 [ci] Fix rules for docker build (#2069)
660d791 [ci] Update buildah command and version (#2058)
e4535c0 fix the way latest_confirmed_nonce_at_source is "calculated" (#2067)
dbc2d37 select nothing if we have already selected nonces to submit or have submitted something (#2065)
a7eedd2 [relay-substrate-client] Bump jsonrpsee (#2066)
8875d5a Bump clap from 4.2.2 to 4.2.4
25f9cf5 Another use of RangeInclusiveExt::checked_len() (#2060)
4942c12 submit lane unblock transactions from relay (#2030)
c0325d3 Test deployments fixes (#2057)
fc7b9b7 Use the new matrix server (#2056)
63bcb5c Fixed delivery alert rule (#2052)

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

* Fmt

* Squashed 'bridges/' changes from 4850aac..66aaf0d

66aaf0d Nits (#2083)

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

* Cleaning

* bridge-hub-rococo: minor fixes

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

* Squashed 'bridges/' changes from 66aaf0d..557ecbc

557ecbc Fix sized messages (Follow-up on #2064) (#2103)
54f587a Add weight of refund extension post_dispatch to the weights of messages pallet (#2089)
5b1626f fix pallet param for nightly benchmarks check (#2099)
ae44c6b Add millau specific messages weights (#2097)
6ad0bd1 Add integrity tests to rialto parachain runtiime (#2096)
6919556 Bump tokio from 1.27.0 to 1.28.0
58795fc Bump clap from 4.2.4 to 4.2.5
01bf310 Bump scale-info from 2.5.0 to 2.6.0
8fe3832 Bump anyhow from 1.0.70 to 1.0.71
8d94e82 deployments: add new BEEFY metrics and alarms (#2090)
e9a4749 Bump wasmtime from 6.0.1 to 6.0.2
9d9936c Bump wasmtime from 6.0.1 to 6.0.2 in /tools/runtime-codegen
5d77cd7 Add more logs to relayer and message pallets (#2082)
75fbb9d Update comment (#2081)
9904d09 Benchmarks for new relayers pallet calls (#2040)

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

* fmt

* Fix compile

* Fix benchmark

* Squashed 'bridges/' changes from 557ecbc..04b3dda

04b3dda Remove from subtree (#2111)
f8ff15e Add `MessagesPalletInstance` for integrity tests (#2107)
92ccef5 Use generated runtimes for BHR/BHW (#2106)
b33e0a5 Fix comment (#2105)

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

* 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>
@serban300 serban300 deleted the runtime_codegen branch September 5, 2023 11:06
serban300 added a commit to serban300/parity-bridges-common that referenced this pull request Mar 27, 2024
)

* Create CLI tool for generating indirect runtimes code

* Use the generated runtime for rialto parachain

* Avoid autogenerated files when executing cargo spellcheck

* Fix clippy warning
serban300 added a commit to serban300/parity-bridges-common that referenced this pull request Apr 8, 2024
)

* Create CLI tool for generating indirect runtimes code

* Use the generated runtime for rialto parachain

* Avoid autogenerated files when executing cargo spellcheck

* Fix clippy warning
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants