Added Rococo BH <> Rococo Bulletin bridge (#2724)

* added Rococo BH <> Rococo Bulletin bridge

* init-bridge support

* allow customising finality-related runtime APIs

* revert me

* use Rococo/BridgeHubRococo pretending to be a Polkadot/BridgeHubPolkadot in Rococo <> RococoBulletin bridge

* Revert "revert me"

This reverts commit 90c598d9d50a25e7182c97eee7818bf8d4bc404c.

* Revert "allow customising finality-related runtime APIs"

This reverts commit b39c32c34acddfd0b919042122e0e667470bd0a4.

* fmt

* WITH_BRIDGE_ROCOCO_TO_BULLETIN_MESSAGES_PALLET_INDEX

* regenerate bulletin chain runtime (pallet indices have changed)

* fx WITH_BRIDGE_ROCOCO_TO_BULLETIN_MESSAGES_PALLET_INDEX constant because of latest changes

* also change indices in runtime

* fmt

* clippy
This commit is contained in:
Svyatoslav Nikolsky
2023-12-14 17:03:35 +03:00
committed by Bastian Köcher
parent e711c9a5d5
commit 59882a7343
24 changed files with 2037 additions and 455 deletions
@@ -16,12 +16,16 @@
//! Autogenerated runtime API
//! THIS FILE WAS AUTOGENERATED USING parity-bridges-common::runtime-codegen
//! EXECUTED COMMAND: target/debug/runtime-codegen --from-node-url ws://127.0.0.1:9944
//! EXECUTED COMMAND: target/debug/runtime-codegen --from-node-url ws://127.0.0.1:10000
#[allow(dead_code, unused_imports, non_camel_case_types)]
#[allow(clippy::all)]
#[allow(rustdoc::broken_intra_doc_links)]
pub mod api {
use super::api as root_mod;
#[allow(unused_imports)]
mod root_mod {
pub use super::*;
}
pub mod runtime_types {
use super::runtime_types;
pub mod bounded_collections {
@@ -78,6 +82,10 @@ pub mod api {
pub last_confirmed_nonce: ::core::primitive::u64,
}
#[derive(:: codec :: Decode, :: codec :: Encode, Clone, Debug, PartialEq)]
pub struct InboundMessageDetails {
pub dispatch_weight: ::sp_weights::Weight,
}
#[derive(:: codec :: Decode, :: codec :: Encode, Clone, Debug, PartialEq)]
pub struct LaneId(pub [::core::primitive::u8; 4usize]);
#[derive(:: codec :: Decode, :: codec :: Encode, Clone, Debug, PartialEq)]
pub struct MessageKey {
@@ -98,6 +106,12 @@ pub mod api {
pub latest_generated_nonce: ::core::primitive::u64,
}
#[derive(:: codec :: Decode, :: codec :: Encode, Clone, Debug, PartialEq)]
pub struct OutboundMessageDetails {
pub nonce: ::core::primitive::u64,
pub dispatch_weight: ::sp_weights::Weight,
pub size: ::core::primitive::u32,
}
#[derive(:: codec :: Decode, :: codec :: Encode, Clone, Debug, PartialEq)]
pub enum ReceivalResult<_0> {
#[codec(index = 0)]
Dispatched(runtime_types::bp_runtime::messages::MessageDispatchResult<_0>),
@@ -205,6 +219,21 @@ pub mod api {
#[derive(:: codec :: Decode, :: codec :: Encode, Clone, Debug, PartialEq)]
pub struct StrippableError;
}
pub mod bridge_runtime_common {
use super::runtime_types;
pub mod messages_xcm_extension {
use super::runtime_types;
#[derive(:: codec :: Decode, :: codec :: Encode, Clone, Debug, PartialEq)]
pub enum XcmBlobMessageDispatchResult {
#[codec(index = 0)]
InvalidPayload,
#[codec(index = 1)]
Dispatched,
#[codec(index = 2)]
NotDispatched,
}
}
}
pub mod finality_grandpa {
use super::runtime_types;
#[derive(:: codec :: Decode, :: codec :: Encode, Clone, Debug, PartialEq)]
@@ -405,9 +434,9 @@ pub mod api {
#[derive(:: codec :: Decode, :: codec :: Encode, Clone, Debug, PartialEq)]
pub struct AccountInfo<_0, _1> {
pub nonce: _0,
pub consumers: _0,
pub providers: _0,
pub sufficients: _0,
pub consumers: ::core::primitive::u32,
pub providers: ::core::primitive::u32,
pub sufficients: ::core::primitive::u32,
pub data: _1,
}
#[derive(:: codec :: Decode, :: codec :: Encode, Clone, Debug, PartialEq)]
@@ -588,49 +617,13 @@ pub mod api {
use super::runtime_types;
#[derive(:: codec :: Decode, :: codec :: Encode, Clone, Debug, PartialEq)]
pub enum Call {
#[codec(index = 0)]
set_owner { new_owner: ::core::option::Option<::sp_core::crypto::AccountId32> },
#[codec(index = 1)]
set_operating_mode {
operating_mode: runtime_types::bp_messages::MessagesOperatingMode,
},
#[codec(index = 2)]
receive_messages_proof {
relayer_id_at_bridged_chain: ::sp_core::crypto::AccountId32,
proof: bridge_runtime_common::messages::target::FromBridgedChainMessagesProof<
::subxt::utils::H256,
>,
messages_count: ::core::primitive::u32,
dispatch_weight: ::sp_weights::Weight,
},
#[codec(index = 3)]
receive_messages_delivery_proof {
proof: bridge_runtime_common::messages::source::FromBridgedChainMessagesDeliveryProof<
::subxt::utils::H256,
>,
relayers_state: ::bp_messages::UnrewardedRelayersState,
},
}
# [codec (index = 0)] set_owner { new_owner : :: core :: option :: Option < :: sp_core :: crypto :: AccountId32 > , } , # [codec (index = 1)] set_operating_mode { operating_mode : runtime_types :: bp_messages :: MessagesOperatingMode , } , # [codec (index = 2)] receive_messages_proof { relayer_id_at_bridged_chain : :: sp_core :: crypto :: AccountId32 , proof : :: bridge_runtime_common :: messages :: target :: FromBridgedChainMessagesProof < :: subxt :: utils :: H256 > , messages_count : :: core :: primitive :: u32 , dispatch_weight : :: sp_weights :: Weight , } , # [codec (index = 3)] receive_messages_delivery_proof { proof : :: bridge_runtime_common :: messages :: source :: FromBridgedChainMessagesDeliveryProof < :: subxt :: utils :: H256 > , relayers_state : :: bp_messages :: UnrewardedRelayersState , } , }
#[derive(:: codec :: Decode, :: codec :: Encode, Clone, Debug, PartialEq)]
pub enum Error {
# [codec (index = 0)] NotOperatingNormally , # [codec (index = 1)] InactiveOutboundLane , # [codec (index = 2)] MessageDispatchInactive , # [codec (index = 3)] MessageRejectedByChainVerifier (runtime_types :: bp_messages :: VerificationError ,) , # [codec (index = 4)] MessageRejectedByLaneVerifier (runtime_types :: bp_messages :: VerificationError ,) , # [codec (index = 5)] MessageRejectedByPallet (runtime_types :: bp_messages :: VerificationError ,) , # [codec (index = 6)] FailedToWithdrawMessageFee , # [codec (index = 7)] TooManyMessagesInTheProof , # [codec (index = 8)] InvalidMessagesProof , # [codec (index = 9)] InvalidMessagesDeliveryProof , # [codec (index = 10)] InvalidUnrewardedRelayersState , # [codec (index = 11)] InsufficientDispatchWeight , # [codec (index = 12)] MessageIsNotYetSent , # [codec (index = 13)] ReceivalConfirmation (runtime_types :: pallet_bridge_messages :: outbound_lane :: ReceivalConfirmationError ,) , # [codec (index = 14)] BridgeModule (runtime_types :: bp_runtime :: OwnedBridgeModuleError ,) , }
#[derive(:: codec :: Decode, :: codec :: Encode, Clone, Debug, PartialEq)]
pub enum Event {
#[codec(index = 0)]
MessageAccepted {
lane_id: runtime_types::bp_messages::LaneId,
nonce: ::core::primitive::u64,
},
#[codec(index = 1)]
MessagesReceived(
::std::vec::Vec<runtime_types::bp_messages::ReceivedMessages<()>>,
),
#[codec(index = 2)]
MessagesDelivered {
lane_id: runtime_types::bp_messages::LaneId,
messages: runtime_types::bp_messages::DeliveredMessages,
},
}
# [codec (index = 0)] MessageAccepted { lane_id : runtime_types :: bp_messages :: LaneId , nonce : :: core :: primitive :: u64 , } , # [codec (index = 1)] MessagesReceived (:: std :: vec :: Vec < runtime_types :: bp_messages :: ReceivedMessages < runtime_types :: bridge_runtime_common :: messages_xcm_extension :: XcmBlobMessageDispatchResult > > ,) , # [codec (index = 2)] MessagesDelivered { lane_id : runtime_types :: bp_messages :: LaneId , messages : runtime_types :: bp_messages :: DeliveredMessages , } , }
}
}
pub mod pallet_bridge_parachains {
@@ -834,9 +827,9 @@ pub mod api {
#[derive(:: codec :: Decode, :: codec :: Encode, Clone, Debug, PartialEq)]
pub struct Heartbeat<_0> {
pub block_number: _0,
pub session_index: _0,
pub authority_index: _0,
pub validators_len: _0,
pub session_index: ::core::primitive::u32,
pub authority_index: ::core::primitive::u32,
pub validators_len: ::core::primitive::u32,
}
}
pub mod pallet_offences {
@@ -853,6 +846,30 @@ pub mod api {
}
}
}
pub mod pallet_relayer_set {
use super::runtime_types;
pub mod pallet {
use super::runtime_types;
#[derive(:: codec :: Decode, :: codec :: Encode, Clone, Debug, PartialEq)]
pub enum Error {
#[codec(index = 0)]
Duplicate,
#[codec(index = 1)]
NotARelayer,
}
#[derive(:: codec :: Decode, :: codec :: Encode, Clone, Debug, PartialEq)]
pub enum Event {
#[codec(index = 0)]
RelayerAdded(::sp_core::crypto::AccountId32),
#[codec(index = 1)]
RelayerRemoved(::sp_core::crypto::AccountId32),
}
}
#[derive(:: codec :: Decode, :: codec :: Encode, Clone, Debug, PartialEq)]
pub struct Relayer<_0> {
pub min_bridge_tx_block: _0,
}
}
pub mod pallet_session {
use super::runtime_types;
pub mod pallet {
@@ -1064,13 +1081,6 @@ pub mod api {
pub mod pallet {
use super::runtime_types;
#[derive(:: codec :: Decode, :: codec :: Encode, Clone, Debug, PartialEq)]
pub enum Call {
#[codec(index = 0)]
add_validator { who: ::sp_core::crypto::AccountId32 },
#[codec(index = 1)]
remove_validator { who: ::sp_core::crypto::AccountId32 },
}
#[derive(:: codec :: Decode, :: codec :: Encode, Clone, Debug, PartialEq)]
pub enum Error {
#[codec(index = 0)]
Duplicate,
@@ -1104,6 +1114,8 @@ pub mod api {
}
}
#[derive(:: codec :: Decode, :: codec :: Encode, Clone, Debug, PartialEq)]
pub struct BridgeRejectObsoleteHeadersAndMessages;
#[derive(:: codec :: Decode, :: codec :: Encode, Clone, Debug, PartialEq)]
pub struct Runtime;
#[derive(:: codec :: Decode, :: codec :: Encode, Clone, Debug, PartialEq)]
pub enum RuntimeCall {
@@ -1113,53 +1125,76 @@ pub mod api {
Babe(runtime_types::pallet_babe::pallet::Call),
#[codec(index = 2)]
Timestamp(runtime_types::pallet_timestamp::pallet::Call),
#[codec(index = 6)]
ValidatorSet(runtime_types::pallet_validator_set::pallet::Call),
#[codec(index = 7)]
Session(runtime_types::pallet_session::pallet::Call),
#[codec(index = 8)]
ImOnline(runtime_types::pallet_im_online::pallet::Call),
#[codec(index = 9)]
Grandpa(runtime_types::pallet_grandpa::pallet::Call),
#[codec(index = 10)]
Sudo(runtime_types::pallet_sudo::pallet::Call),
#[codec(index = 11)]
TransactionStorage(runtime_types::pallet_transaction_storage::pallet::Call),
#[codec(index = 12)]
BridgePolkadotGrandpa(runtime_types::pallet_bridge_grandpa::pallet::Call),
#[codec(index = 13)]
BridgePolkadotParachains(runtime_types::pallet_bridge_parachains::pallet::Call),
#[codec(index = 14)]
BridgePolkadotBridgeHubMessages(
runtime_types::pallet_bridge_messages::pallet::Call,
),
Session(runtime_types::pallet_session::pallet::Call),
#[codec(index = 15)]
ImOnline(runtime_types::pallet_im_online::pallet::Call),
#[codec(index = 16)]
Grandpa(runtime_types::pallet_grandpa::pallet::Call),
#[codec(index = 40)]
TransactionStorage(runtime_types::pallet_transaction_storage::pallet::Call),
#[codec(index = 51)]
BridgePolkadotGrandpa(runtime_types::pallet_bridge_grandpa::pallet::Call),
#[codec(index = 52)]
BridgePolkadotParachains(runtime_types::pallet_bridge_parachains::pallet::Call),
#[codec(index = 53)]
BridgePolkadotMessages(runtime_types::pallet_bridge_messages::pallet::Call),
#[codec(index = 255)]
Sudo(runtime_types::pallet_sudo::pallet::Call),
}
#[derive(:: codec :: Decode, :: codec :: Encode, Clone, Debug, PartialEq)]
pub enum RuntimeError {
#[codec(index = 0)]
System(runtime_types::frame_system::pallet::Error),
#[codec(index = 1)]
Babe(runtime_types::pallet_babe::pallet::Error),
#[codec(index = 13)]
ValidatorSet(runtime_types::pallet_validator_set::pallet::Error),
#[codec(index = 14)]
Session(runtime_types::pallet_session::pallet::Error),
#[codec(index = 15)]
ImOnline(runtime_types::pallet_im_online::pallet::Error),
#[codec(index = 16)]
Grandpa(runtime_types::pallet_grandpa::pallet::Error),
#[codec(index = 40)]
TransactionStorage(runtime_types::pallet_transaction_storage::pallet::Error),
#[codec(index = 50)]
RelayerSet(runtime_types::pallet_relayer_set::pallet::Error),
#[codec(index = 51)]
BridgePolkadotGrandpa(runtime_types::pallet_bridge_grandpa::pallet::Error),
#[codec(index = 52)]
BridgePolkadotParachains(runtime_types::pallet_bridge_parachains::pallet::Error),
#[codec(index = 53)]
BridgePolkadotMessages(runtime_types::pallet_bridge_messages::pallet::Error),
#[codec(index = 255)]
Sudo(runtime_types::pallet_sudo::pallet::Error),
}
#[derive(:: codec :: Decode, :: codec :: Encode, Clone, Debug, PartialEq)]
pub enum RuntimeEvent {
#[codec(index = 0)]
System(runtime_types::frame_system::pallet::Event),
#[codec(index = 4)]
Offences(runtime_types::pallet_offences::pallet::Event),
#[codec(index = 6)]
ValidatorSet(runtime_types::pallet_validator_set::pallet::Event),
#[codec(index = 7)]
Session(runtime_types::pallet_session::pallet::Event),
#[codec(index = 8)]
ImOnline(runtime_types::pallet_im_online::pallet::Event),
#[codec(index = 9)]
Grandpa(runtime_types::pallet_grandpa::pallet::Event),
#[codec(index = 10)]
Sudo(runtime_types::pallet_sudo::pallet::Event),
#[codec(index = 11)]
TransactionStorage(runtime_types::pallet_transaction_storage::pallet::Event),
#[codec(index = 12)]
BridgePolkadotGrandpa(runtime_types::pallet_bridge_grandpa::pallet::Event),
Offences(runtime_types::pallet_offences::pallet::Event),
#[codec(index = 13)]
BridgePolkadotParachains(runtime_types::pallet_bridge_parachains::pallet::Event),
ValidatorSet(runtime_types::pallet_validator_set::pallet::Event),
#[codec(index = 14)]
BridgePolkadotBridgeHubMessages(
runtime_types::pallet_bridge_messages::pallet::Event,
),
Session(runtime_types::pallet_session::pallet::Event),
#[codec(index = 15)]
ImOnline(runtime_types::pallet_im_online::pallet::Event),
#[codec(index = 16)]
Grandpa(runtime_types::pallet_grandpa::pallet::Event),
#[codec(index = 40)]
TransactionStorage(runtime_types::pallet_transaction_storage::pallet::Event),
#[codec(index = 50)]
RelayerSet(runtime_types::pallet_relayer_set::pallet::Event),
#[codec(index = 51)]
BridgePolkadotGrandpa(runtime_types::pallet_bridge_grandpa::pallet::Event),
#[codec(index = 52)]
BridgePolkadotParachains(runtime_types::pallet_bridge_parachains::pallet::Event),
#[codec(index = 53)]
BridgePolkadotMessages(runtime_types::pallet_bridge_messages::pallet::Event),
#[codec(index = 255)]
Sudo(runtime_types::pallet_sudo::pallet::Event),
}
#[derive(:: codec :: Decode, :: codec :: Encode, Clone, Debug, PartialEq)]
pub struct ValidateSigned;
@@ -1232,10 +1267,36 @@ pub mod api {
PrimaryAndSecondaryVRFSlots,
}
#[derive(:: codec :: Decode, :: codec :: Encode, Clone, Debug, PartialEq)]
pub struct BabeConfiguration {
pub slot_duration: ::core::primitive::u64,
pub epoch_length: ::core::primitive::u64,
pub c: (::core::primitive::u64, ::core::primitive::u64),
pub authorities: ::std::vec::Vec<(
runtime_types::sp_consensus_babe::app::Public,
::core::primitive::u64,
)>,
pub randomness: [::core::primitive::u8; 32usize],
pub allowed_slots: runtime_types::sp_consensus_babe::AllowedSlots,
}
#[derive(:: codec :: Decode, :: codec :: Encode, Clone, Debug, PartialEq)]
pub struct BabeEpochConfiguration {
pub c: (::core::primitive::u64, ::core::primitive::u64),
pub allowed_slots: runtime_types::sp_consensus_babe::AllowedSlots,
}
#[derive(:: codec :: Decode, :: codec :: Encode, Clone, Debug, PartialEq)]
pub struct Epoch {
pub epoch_index: ::core::primitive::u64,
pub start_slot: runtime_types::sp_consensus_slots::Slot,
pub duration: ::core::primitive::u64,
pub authorities: ::std::vec::Vec<(
runtime_types::sp_consensus_babe::app::Public,
::core::primitive::u64,
)>,
pub randomness: [::core::primitive::u8; 32usize],
pub config: runtime_types::sp_consensus_babe::BabeEpochConfiguration,
}
#[derive(:: codec :: Decode, :: codec :: Encode, Clone, Debug, PartialEq)]
pub struct OpaqueKeyOwnershipProof(pub ::std::vec::Vec<::core::primitive::u8>);
}
pub mod sp_consensus_grandpa {
use super::runtime_types;
@@ -1265,6 +1326,8 @@ pub mod api {
>,
),
}
#[derive(:: codec :: Decode, :: codec :: Encode, Clone, Debug, PartialEq)]
pub struct OpaqueKeyOwnershipProof(pub ::std::vec::Vec<::core::primitive::u8>);
}
pub mod sp_consensus_slots {
use super::runtime_types;
@@ -1319,11 +1382,37 @@ pub mod api {
#[derive(:: codec :: Decode, :: codec :: Encode, Clone, Debug, PartialEq)]
pub struct Signature(pub [::core::primitive::u8; 64usize]);
}
#[derive(:: codec :: Decode, :: codec :: Encode, Clone, Debug, PartialEq)]
pub struct OpaqueMetadata(pub ::std::vec::Vec<::core::primitive::u8>);
}
pub mod sp_inherents {
use super::runtime_types;
#[derive(:: codec :: Decode, :: codec :: Encode, Clone, Debug, PartialEq)]
pub struct CheckInherentsResult {
pub okay: ::core::primitive::bool,
pub fatal_error: ::core::primitive::bool,
pub errors: runtime_types::sp_inherents::InherentData,
}
#[derive(:: codec :: Decode, :: codec :: Encode, Clone, Debug, PartialEq)]
pub struct InherentData {
pub data: ::subxt::utils::KeyedVec<
[::core::primitive::u8; 8usize],
::std::vec::Vec<::core::primitive::u8>,
>,
}
}
pub mod sp_runtime {
use super::runtime_types;
pub mod generic {
use super::runtime_types;
pub mod block {
use super::runtime_types;
#[derive(:: codec :: Decode, :: codec :: Encode, Clone, Debug, PartialEq)]
pub struct Block<_0, _1> {
pub header: _0,
pub extrinsics: ::std::vec::Vec<_1>,
}
}
pub mod digest {
use super::runtime_types;
#[derive(:: codec :: Decode, :: codec :: Encode, Clone, Debug, PartialEq)]
@@ -1349,13 +1438,66 @@ pub mod api {
RuntimeEnvironmentUpdated,
}
}
pub mod unchecked_extrinsic {
use super::runtime_types;
#[derive(:: codec :: Decode, :: codec :: Encode, Clone, Debug, PartialEq)]
pub struct UncheckedExtrinsic<_0, _1, _2, _3>(
pub ::std::vec::Vec<::core::primitive::u8>,
#[codec(skip)] pub ::core::marker::PhantomData<(_1, _0, _2, _3)>,
);
}
pub mod transaction_validity {
use super::runtime_types;
#[derive(:: codec :: Decode, :: codec :: Encode, Clone, Debug, PartialEq)]
pub enum InvalidTransaction {
#[codec(index = 0)]
Call,
#[codec(index = 1)]
Payment,
#[codec(index = 2)]
Future,
#[codec(index = 3)]
Stale,
#[codec(index = 4)]
BadProof,
#[codec(index = 5)]
AncientBirthBlock,
#[codec(index = 6)]
ExhaustsResources,
#[codec(index = 7)]
Custom(::core::primitive::u8),
#[codec(index = 8)]
BadMandatory,
#[codec(index = 9)]
MandatoryValidation,
#[codec(index = 10)]
BadSigner,
}
#[derive(:: codec :: Decode, :: codec :: Encode, Clone, Debug, PartialEq)]
pub enum TransactionSource {
#[codec(index = 0)]
InBlock,
#[codec(index = 1)]
Local,
#[codec(index = 2)]
External,
}
#[derive(:: codec :: Decode, :: codec :: Encode, Clone, Debug, PartialEq)]
pub enum TransactionValidityError {
#[codec(index = 0)]
Invalid(runtime_types::sp_runtime::transaction_validity::InvalidTransaction),
#[codec(index = 1)]
Unknown(runtime_types::sp_runtime::transaction_validity::UnknownTransaction),
}
#[derive(:: codec :: Decode, :: codec :: Encode, Clone, Debug, PartialEq)]
pub enum UnknownTransaction {
#[codec(index = 0)]
CannotLookup,
#[codec(index = 1)]
NoUnsignedValidator,
#[codec(index = 2)]
Custom(::core::primitive::u8),
}
#[derive(:: codec :: Decode, :: codec :: Encode, Clone, Debug, PartialEq)]
pub struct ValidTransaction {
pub priority: ::core::primitive::u64,
pub requires: ::std::vec::Vec<::std::vec::Vec<::core::primitive::u8>>,
pub provides: ::std::vec::Vec<::std::vec::Vec<::core::primitive::u8>>,
pub longevity: ::core::primitive::u64,
pub propagate: ::core::primitive::bool,
}
}
#[derive(:: codec :: Decode, :: codec :: Encode, Clone, Debug, PartialEq)]
@@ -44,7 +44,7 @@ pub type BridgePolkadotGrandpaCall = runtime_types::pallet_bridge_grandpa::palle
/// Call of the with-PolkadotBridgeHub bridge parachains pallet.
pub type BridgePolkadotParachainsCall = runtime_types::pallet_bridge_parachains::pallet::Call;
/// Call of the with-PolkadotBridgeHub bridge messages pallet.
pub type BridgePolkadotBridgeHubMessagesCall = runtime_types::pallet_bridge_messages::pallet::Call;
pub type BridgePolkadotMessagesCall = runtime_types::pallet_bridge_messages::pallet::Call;
/// Polkadot header id.
pub type HeaderId =