forked from paritytech/polkadot-sdk
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Rococo/Wococo bridge hub relay integration (paritytech#1565)
* [BridgeHub] Added bridge-hub-rococo/wococo clients with bridge-hub-rococo-runtime * [BridgeHub] Add init-bridge stuff for bridge-hub-rococo/wococo * [BridgeHub] Add init-bridge stuff for bridge-hub-rococo/wococo * [BridgeHub] Fixed Call-encoding for init-bridge rococo runtime wrapper * Final index update to runtime calls * [BridgeHub] Add init-bridge stuff for bridge-hub-rococo/wococo (otherside) * Added runtime best_finalized functions + relay-headers init * Renaming and change BridgeHubRococo/Wococo to Rococo/Wococo config * [BridgeHub] Add relay-parachains (Rococo/Wococo) * Missing stuff for adding xcm messaging to BridgeHub * extracted parachain IDs to the primitives * fix compilation * Fixes * Init setup for Rococo->Wococo messaging support * Removed unused AccountId from `trait MessagesBridge` * Removed unused trait SenderOrigin * Small fixes * Cleaning after master-merge * Fixes * Fixes * Fixes * Fixes * Fixes: - align WeightToFee with BridgeHubRococo runtime - MAX_HEADER_SIZE - updated TODOs * Added relay_messages cfg for BridgeHubWococo -> BridgeHubRococo Co-authored-by: Svyatoslav Nikolsky <svyatonik@gmail.com>
- Loading branch information
Showing
36 changed files
with
1,549 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
[package] | ||
name = "bp-bridge-hub-rococo" | ||
description = "Primitives of BridgeHubRococo parachain runtime." | ||
version = "0.1.0" | ||
authors = ["Parity Technologies <admin@parity.io>"] | ||
edition = "2021" | ||
license = "GPL-3.0-or-later WITH Classpath-exception-2.0" | ||
|
||
[dependencies] | ||
smallvec = "1.10.0" | ||
|
||
# Bridge Dependencies | ||
|
||
bp-polkadot-core = { path = "../../primitives/polkadot-core", default-features = false } | ||
bp-runtime = { path = "../../primitives/runtime", default-features = false } | ||
bp-messages = { path = "../../primitives/messages", default-features = false } | ||
|
||
# Substrate Based Dependencies | ||
|
||
frame-support = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } | ||
sp-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } | ||
sp-std = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } | ||
|
||
# Polkadot Dependencies | ||
polkadot-runtime-constants = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "master" } | ||
|
||
[features] | ||
default = ["std"] | ||
std = [ | ||
"bp-polkadot-core/std", | ||
"bp-messages/std", | ||
"bp-runtime/std", | ||
"frame-support/std", | ||
"sp-api/std", | ||
"sp-std/std", | ||
"polkadot-runtime-constants/std", | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
// Copyright 2019-2021 Parity Technologies (UK) Ltd. | ||
// This file is part of Parity Bridges Common. | ||
|
||
// Parity Bridges Common is free software: you can redistribute it and/or modify | ||
// it under the terms of the GNU General Public License as published by | ||
// the Free Software Foundation, either version 3 of the License, or | ||
// (at your option) any later version. | ||
|
||
// Parity Bridges Common is distributed in the hope that it will be useful, | ||
// but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
// GNU General Public License for more details. | ||
|
||
// You should have received a copy of the GNU General Public License | ||
// along with Parity Bridges Common. If not, see <http://www.gnu.org/licenses/>. | ||
|
||
//! Module with configuration which reflects BridgeHubRococo runtime setup (AccountId, Headers, | ||
//! Hashes...) | ||
|
||
#![cfg_attr(not(feature = "std"), no_std)] | ||
|
||
use bp_messages::*; | ||
pub use bp_polkadot_core::*; | ||
use bp_runtime::{decl_bridge_finality_runtime_apis, decl_bridge_messages_runtime_apis}; | ||
use frame_support::{ | ||
parameter_types, | ||
sp_runtime::{FixedU128, MultiAddress, MultiSigner}, | ||
weights::{ | ||
constants::ExtrinsicBaseWeight, WeightToFeeCoefficient, WeightToFeeCoefficients, | ||
WeightToFeePolynomial, | ||
}, | ||
Parameter, | ||
}; | ||
use sp_std::prelude::*; | ||
|
||
pub type BridgeHubRococo = PolkadotLike; | ||
|
||
/// [`WeightToFee`] should reflect cumulus/bridge-hub-rococo-runtime [`WeightToFee`] | ||
pub struct WeightToFee; | ||
impl WeightToFeePolynomial for WeightToFee { | ||
type Balance = Balance; | ||
fn polynomial() -> WeightToFeeCoefficients<Self::Balance> { | ||
pub const CENTS: Balance = polkadot_runtime_constants::currency::CENTS; | ||
|
||
// in Rococo, extrinsic base weight (smallest non-zero weight) is mapped to 1/10 CENT: | ||
// in BridgeHub, we map to 1/10 of that, or 1/100 CENT | ||
let p = CENTS; | ||
let q = 100 * Balance::from(ExtrinsicBaseWeight::get().ref_time()); | ||
smallvec::smallvec![WeightToFeeCoefficient { | ||
degree: 1, | ||
negative: false, | ||
coeff_frac: Perbill::from_rational(p % q, q), | ||
coeff_integer: p / q, | ||
}] | ||
} | ||
} | ||
|
||
/// Public key of the chain account that may be used to verify signatures. | ||
pub type AccountSigner = MultiSigner; | ||
|
||
/// The address format for describing accounts. | ||
pub type Address = MultiAddress<AccountId, ()>; | ||
|
||
/// Identifier of BridgeHubRococo in the Rococo relay chain. | ||
pub const BRIDGE_HUB_ROCOCO_PARACHAIN_ID: u32 = 1013; | ||
|
||
/// Name of the With-BridgeHubRococo messages pallet instance that is deployed at bridged chains. | ||
pub const WITH_BRIDGE_HUB_ROCOCO_MESSAGES_PALLET_NAME: &str = "BridgeRococoMessages"; | ||
|
||
parameter_types! { | ||
pub const SS58Prefix: u16 = 42; | ||
} | ||
|
||
decl_bridge_finality_runtime_apis!(bridge_hub_rococo); | ||
decl_bridge_messages_runtime_apis!(bridge_hub_rococo); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
[package] | ||
name = "bp-bridge-hub-wococo" | ||
description = "Primitives of BridgeHubWococo parachain runtime." | ||
version = "0.1.0" | ||
authors = ["Parity Technologies <admin@parity.io>"] | ||
edition = "2021" | ||
license = "GPL-3.0-or-later WITH Classpath-exception-2.0" | ||
|
||
[dependencies] | ||
|
||
# Bridge Dependencies | ||
|
||
bp-bridge-hub-rococo = { path = "../chain-bridge-hub-rococo", default-features = false } | ||
bp-runtime = { path = "../../primitives/runtime", default-features = false } | ||
bp-messages = { path = "../../primitives/messages", default-features = false } | ||
|
||
# Substrate Based Dependencies | ||
|
||
frame-support = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } | ||
sp-api = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } | ||
sp-std = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false } | ||
|
||
[features] | ||
default = ["std"] | ||
std = [ | ||
"bp-runtime/std", | ||
"bp-messages/std", | ||
"frame-support/std", | ||
"sp-api/std", | ||
"sp-std/std", | ||
"bp-bridge-hub-rococo/std", | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
// Copyright 2019-2021 Parity Technologies (UK) Ltd. | ||
// This file is part of Parity Bridges Common. | ||
|
||
// Parity Bridges Common is free software: you can redistribute it and/or modify | ||
// it under the terms of the GNU General Public License as published by | ||
// the Free Software Foundation, either version 3 of the License, or | ||
// (at your option) any later version. | ||
|
||
// Parity Bridges Common is distributed in the hope that it will be useful, | ||
// but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
// GNU General Public License for more details. | ||
|
||
// You should have received a copy of the GNU General Public License | ||
// along with Parity Bridges Common. If not, see <http://www.gnu.org/licenses/>. | ||
|
||
//! Module with configuration which reflects BridgeHubWococo runtime setup | ||
//! (AccountId, Headers, Hashes...) | ||
//! | ||
//! but actually this is just reexported BridgeHubRococo stuff, because they are supposed to be | ||
//! identical, at least uses the same parachain runtime | ||
|
||
#![cfg_attr(not(feature = "std"), no_std)] | ||
|
||
// Re-export only what is really needed | ||
pub use bp_bridge_hub_rococo::{ | ||
account_info_storage_key, AccountId, AccountPublic, AccountSigner, Address, Balance, | ||
BlockNumber, Hash, Hashing, Header, Nonce, SS58Prefix, Signature, SignedBlock, | ||
SignedExtensions, UncheckedExtrinsic, WeightToFee, ADDITIONAL_MESSAGE_BYTE_DELIVERY_WEIGHT, | ||
DEFAULT_MESSAGE_DELIVERY_TX_WEIGHT, EXTRA_STORAGE_PROOF_SIZE, | ||
MAX_SINGLE_MESSAGE_DELIVERY_CONFIRMATION_TX_WEIGHT, | ||
MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX, MAX_UNREWARDED_RELAYERS_IN_CONFIRMATION_TX, | ||
PAY_INBOUND_DISPATCH_FEE_WEIGHT, TX_EXTRA_BYTES, | ||
}; | ||
use bp_messages::*; | ||
use bp_runtime::{decl_bridge_finality_runtime_apis, decl_bridge_messages_runtime_apis}; | ||
use frame_support::{sp_runtime::FixedU128, Parameter}; | ||
use sp_std::prelude::*; | ||
|
||
pub type BridgeHubWococo = bp_bridge_hub_rococo::BridgeHubRococo; | ||
|
||
/// Identifier of BridgeHubWococo in the Wococo relay chain. | ||
pub const BRIDGE_HUB_WOCOCO_PARACHAIN_ID: u32 = 1013; | ||
|
||
/// Name of the With-BridgeHubWococo messages pallet instance that is deployed at bridged chains. | ||
pub const WITH_BRIDGE_HUB_WOCOCO_MESSAGES_PALLET_NAME: &str = "BridgeWococoMessages"; | ||
|
||
decl_bridge_finality_runtime_apis!(bridge_hub_wococo); | ||
decl_bridge_messages_runtime_apis!(bridge_hub_wococo); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.