mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-09 22:18:00 +00:00
Fixes
This commit is contained in:
Generated
+23
-2
@@ -713,6 +713,27 @@ dependencies = [
|
||||
"thiserror",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "bp-beefy"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"beefy-merkle-tree",
|
||||
"beefy-primitives",
|
||||
"bp-runtime",
|
||||
"frame-support",
|
||||
"pallet-beefy-mmr",
|
||||
"pallet-mmr",
|
||||
"parity-scale-codec",
|
||||
"scale-info",
|
||||
"serde",
|
||||
"sp-application-crypto",
|
||||
"sp-core",
|
||||
"sp-io",
|
||||
"sp-runtime",
|
||||
"sp-std",
|
||||
"static_assertions",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "bp-bridge-hub-rococo"
|
||||
version = "0.1.0"
|
||||
@@ -763,7 +784,6 @@ dependencies = [
|
||||
name = "bp-messages"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"bitvec",
|
||||
"bp-runtime",
|
||||
"frame-support",
|
||||
"hex",
|
||||
@@ -780,6 +800,7 @@ dependencies = [
|
||||
name = "bp-millau"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"bp-beefy",
|
||||
"bp-messages",
|
||||
"bp-runtime",
|
||||
"fixed-hash 0.7.0",
|
||||
@@ -911,6 +932,7 @@ dependencies = [
|
||||
"sp-finality-grandpa",
|
||||
"sp-runtime",
|
||||
"sp-std",
|
||||
"xcm",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -5966,7 +5988,6 @@ dependencies = [
|
||||
name = "pallet-bridge-messages"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"bitvec",
|
||||
"bp-messages",
|
||||
"bp-runtime",
|
||||
"bp-test-utils",
|
||||
|
||||
@@ -19,7 +19,7 @@ use bp_messages::{
|
||||
target_chain::{DispatchMessage, MessageDispatch},
|
||||
LaneId,
|
||||
};
|
||||
use bp_runtime::{messages::MessageDispatchResult, AccountIdOf, BalanceOf, Chain};
|
||||
use bp_runtime::{messages::MessageDispatchResult, AccountIdOf, Chain};
|
||||
use codec::Encode;
|
||||
use frame_support::{dispatch::Weight, parameter_types};
|
||||
use xcm::latest::prelude::*;
|
||||
@@ -43,38 +43,37 @@ pub struct XcmBlobMessageDispatch<SourceBridgeHubChain, TargetBridgeHubChain, Di
|
||||
}
|
||||
|
||||
impl<SourceBridgeHubChain: Chain, TargetBridgeHubChain: Chain, BlobDispatcher: DispatchBlob>
|
||||
MessageDispatch<AccountIdOf<SourceBridgeHubChain>, BalanceOf<TargetBridgeHubChain>>
|
||||
MessageDispatch<AccountIdOf<SourceBridgeHubChain>>
|
||||
for XcmBlobMessageDispatch<SourceBridgeHubChain, TargetBridgeHubChain, BlobDispatcher>
|
||||
{
|
||||
type DispatchPayload = XcmAsPlainPayload;
|
||||
|
||||
fn dispatch_weight(
|
||||
message: &mut DispatchMessage<Self::DispatchPayload, BalanceOf<TargetBridgeHubChain>>,
|
||||
) -> Weight {
|
||||
fn dispatch_weight(_message: &mut DispatchMessage<Self::DispatchPayload>) -> Weight {
|
||||
log::error!(
|
||||
"[XcmBlobMessageDispatch] TODO: change here to XCMv3 dispatch_weight with XcmExecutor - message: ?...?",
|
||||
);
|
||||
// TODO:check-parameter - setup weight?
|
||||
Weight::zero()
|
||||
}
|
||||
|
||||
fn dispatch(
|
||||
_relayer_account: &AccountIdOf<SourceBridgeHubChain>,
|
||||
message: DispatchMessage<Self::DispatchPayload, BalanceOf<TargetBridgeHubChain>>,
|
||||
message: DispatchMessage<Self::DispatchPayload>,
|
||||
) -> MessageDispatchResult {
|
||||
log::warn!("[XcmBlobMessageDispatch] DispatchBlob::dispatch_blob triggering");
|
||||
log::warn!("[XcmBlobMessageDispatch] DispatchBlob::dispatch_blob triggering - message_nonce: {:?}", message.key.nonce);
|
||||
let payload = match message.data.payload {
|
||||
Ok(payload) => payload,
|
||||
Err(e) => {
|
||||
log::error!("[XcmBlobMessageDispatch] payload error: {:?}", e);
|
||||
log::error!("[XcmBlobMessageDispatch] payload error: {:?} - message_nonce: {:?}", e, message.key.nonce);
|
||||
return MessageDispatchResult {
|
||||
dispatch_result: false,
|
||||
// TODO:check-parameter - setup uspent_weight?
|
||||
unspent_weight: Weight::zero(),
|
||||
dispatch_fee_paid_during_dispatch: false,
|
||||
}
|
||||
},
|
||||
};
|
||||
let dispatch_result = match BlobDispatcher::dispatch_blob(payload) {
|
||||
Ok(_) => true,
|
||||
match BlobDispatcher::dispatch_blob(payload) {
|
||||
Ok(_) => log::debug!("[XcmBlobMessageDispatch] DispatchBlob::dispatch_blob was ok - message_nonce: {:?}", message.key.nonce),
|
||||
Err(e) => {
|
||||
let e = match e {
|
||||
DispatchBlobError::Unbridgable => "DispatchBlobError::Unbridgable",
|
||||
@@ -89,14 +88,13 @@ impl<SourceBridgeHubChain: Chain, TargetBridgeHubChain: Chain, BlobDispatcher: D
|
||||
DispatchBlobError::WrongGlobal => "DispatchBlobError::WrongGlobal",
|
||||
};
|
||||
log::error!(
|
||||
"[XcmBlobMessageDispatch] DispatchBlob::dispatch_blob failed, error: {:?}",
|
||||
e
|
||||
"[XcmBlobMessageDispatch] DispatchBlob::dispatch_blob failed, error: {:?} - message_nonce: {:?}",
|
||||
e, message.key.nonce
|
||||
);
|
||||
false
|
||||
},
|
||||
};
|
||||
}
|
||||
MessageDispatchResult {
|
||||
dispatch_result,
|
||||
// TODO:check-parameter - setup uspent_weight?
|
||||
dispatch_fee_paid_during_dispatch: false,
|
||||
unspent_weight: Weight::zero(),
|
||||
}
|
||||
@@ -106,15 +104,8 @@ impl<SourceBridgeHubChain: Chain, TargetBridgeHubChain: Chain, BlobDispatcher: D
|
||||
/// [`XcmBlobHauler`] is responsible for sending messages to the bridge "point-to-point link" from one side,
|
||||
/// where on the other it can be dispatched by [`XcmBlobMessageDispatch`].
|
||||
pub trait XcmBlobHauler {
|
||||
/// Which chain is sending
|
||||
type SenderChain: Chain;
|
||||
|
||||
/// Runtime message sender adapter.
|
||||
type MessageSender: MessagesBridge<
|
||||
super::RuntimeOrigin,
|
||||
BalanceOf<Self::SenderChain>,
|
||||
XcmAsPlainPayload,
|
||||
>;
|
||||
type MessageSender: MessagesBridge<super::RuntimeOrigin, XcmAsPlainPayload>;
|
||||
|
||||
/// Our location within the Consensus Universe.
|
||||
fn message_sender_origin() -> InteriorMultiLocation;
|
||||
@@ -127,15 +118,10 @@ pub struct XcmBlobHaulerAdapter<XcmBlobHauler>(sp_std::marker::PhantomData<XcmBl
|
||||
impl<H: XcmBlobHauler> HaulBlob for XcmBlobHaulerAdapter<H> {
|
||||
fn haul_blob(blob: sp_std::prelude::Vec<u8>) {
|
||||
let lane = H::xcm_lane();
|
||||
// TODO:check-parameter - fee could be taken from BridgeMessage - or add as optional fo send_message
|
||||
// TODO:check-parameter - or add here something like PriceForSiblingDelivery
|
||||
let fee = <H::SenderChain as Chain>::Balance::from(0u8);
|
||||
|
||||
let result = H::MessageSender::send_message(
|
||||
pallet_xcm::Origin::from(MultiLocation::from(H::message_sender_origin())).into(),
|
||||
lane,
|
||||
blob,
|
||||
fee,
|
||||
);
|
||||
let result = result
|
||||
.map(|artifacts| {
|
||||
|
||||
@@ -27,13 +27,11 @@ use bp_runtime::ChainId;
|
||||
use bridge_runtime_common::{
|
||||
messages,
|
||||
messages::{
|
||||
target::FromBridgedChainMessagesProof, BasicConfirmationTransactionEstimation,
|
||||
BridgedChain, MessageBridge, MessageTransaction, ThisChain, ThisChainWithMessages,
|
||||
target::FromBridgedChainMessagesProof, MessageBridge, ThisChainWithMessages,
|
||||
UnderlyingChainProvider,
|
||||
},
|
||||
};
|
||||
use frame_support::{dispatch::Weight, parameter_types, RuntimeDebug};
|
||||
use sp_runtime::FixedU128;
|
||||
use frame_support::{parameter_types, RuntimeDebug};
|
||||
use xcm::{
|
||||
latest::prelude::*,
|
||||
prelude::{InteriorMultiLocation, NetworkId},
|
||||
@@ -49,6 +47,7 @@ parameter_types! {
|
||||
pub const BridgeHubWococoChainId: bp_runtime::ChainId = bp_runtime::BRIDGE_HUB_WOCOCO_CHAIN_ID;
|
||||
pub BridgeHubRococoUniversalLocation: InteriorMultiLocation = X2(GlobalConsensus(Rococo), Parachain(ParachainInfo::parachain_id().into()));
|
||||
pub WococoGlobalConsensusNetwork: NetworkId = NetworkId::Wococo;
|
||||
pub ActiveOutboundLanesToBridgeHubWococo: &'static [bp_messages::LaneId] = &[DEFAULT_XCM_LANE_TO_BRIDGE_HUB_WOCOCO];
|
||||
}
|
||||
|
||||
/// Dispatches received XCM messages from other bridge
|
||||
@@ -64,7 +63,6 @@ pub type ToBridgeHubWococoHaulBlobExporter = HaulBlobExporter<
|
||||
pub struct ToBridgeHubWococoXcmBlobHauler;
|
||||
pub const DEFAULT_XCM_LANE_TO_BRIDGE_HUB_WOCOCO: LaneId = [0, 0, 0, 2];
|
||||
impl XcmBlobHauler for ToBridgeHubWococoXcmBlobHauler {
|
||||
type SenderChain = bp_bridge_hub_rococo::BridgeHubRococo;
|
||||
type MessageSender =
|
||||
pallet_bridge_messages::Pallet<Runtime, WithBridgeHubWococoMessagesInstance>;
|
||||
|
||||
@@ -80,8 +78,6 @@ impl XcmBlobHauler for ToBridgeHubWococoXcmBlobHauler {
|
||||
/// Messaging Bridge configuration for BridgeHubRococo -> BridgeHubWococo
|
||||
pub struct WithBridgeHubWococoMessageBridge;
|
||||
impl MessageBridge for WithBridgeHubWococoMessageBridge {
|
||||
// TODO:check-parameter - relayers rewards
|
||||
const RELAYER_FEE_PERCENT: u32 = 0;
|
||||
const THIS_CHAIN_ID: ChainId = bp_runtime::BRIDGE_HUB_ROCOCO_CHAIN_ID;
|
||||
const BRIDGED_CHAIN_ID: ChainId = bp_runtime::BRIDGE_HUB_WOCOCO_CHAIN_ID;
|
||||
const BRIDGED_MESSAGES_PALLET_NAME: &'static str =
|
||||
@@ -93,15 +89,6 @@ impl MessageBridge for WithBridgeHubWococoMessageBridge {
|
||||
BridgeParachainWococoInstance,
|
||||
bp_bridge_hub_wococo::BridgeHubWococo,
|
||||
>;
|
||||
|
||||
fn bridged_balance_to_this_balance(
|
||||
bridged_balance: bridge_runtime_common::messages::BalanceOf<BridgedChain<Self>>,
|
||||
bridged_to_this_conversion_rate_override: Option<FixedU128>,
|
||||
) -> bridge_runtime_common::messages::BalanceOf<ThisChain<Self>> {
|
||||
log::info!("[WithBridgeHubWococoMessageBridge] bridged_balance_to_this_balance (returns 0 balance, TODO: fix) - bridged_balance: {:?}, bridged_to_this_conversion_rate_override: {:?}", bridged_balance, bridged_to_this_conversion_rate_override);
|
||||
// TODO:check-parameter - any payment? from sovereign account?
|
||||
0
|
||||
}
|
||||
}
|
||||
|
||||
/// Message verifier for BridgeHubWococo messages sent from BridgeHubRococo
|
||||
@@ -120,14 +107,14 @@ impl UnderlyingChainProvider for BridgeHubWococo {
|
||||
type Chain = bp_bridge_hub_wococo::BridgeHubWococo;
|
||||
}
|
||||
|
||||
impl SourceHeaderChain<crate::Balance> for BridgeHubWococo {
|
||||
impl SourceHeaderChain for BridgeHubWococo {
|
||||
type Error = &'static str;
|
||||
type MessagesProof = FromBridgedChainMessagesProof<crate::Hash>;
|
||||
|
||||
fn verify_messages_proof(
|
||||
proof: Self::MessagesProof,
|
||||
messages_count: u32,
|
||||
) -> Result<ProvedMessages<Message<crate::Balance>>, Self::Error> {
|
||||
) -> Result<ProvedMessages<Message>, Self::Error> {
|
||||
bridge_runtime_common::messages::target::verify_messages_proof::<
|
||||
WithBridgeHubWococoMessageBridge,
|
||||
>(proof, messages_count)
|
||||
@@ -155,40 +142,6 @@ impl messages::BridgedChainWithMessages for BridgeHubWococo {
|
||||
fn verify_dispatch_weight(_message_payload: &[u8]) -> bool {
|
||||
true
|
||||
}
|
||||
|
||||
fn estimate_delivery_transaction(
|
||||
message_payload: &[u8],
|
||||
include_pay_dispatch_fee_cost: bool,
|
||||
message_dispatch_weight: Weight,
|
||||
) -> MessageTransaction<Weight> {
|
||||
let message_payload_len = u32::try_from(message_payload.len()).unwrap_or(u32::MAX);
|
||||
let extra_bytes_in_payload = message_payload_len
|
||||
.saturating_sub(pallet_bridge_messages::EXPECTED_DEFAULT_MESSAGE_LENGTH);
|
||||
|
||||
MessageTransaction {
|
||||
dispatch_weight: bp_bridge_hub_wococo::ADDITIONAL_MESSAGE_BYTE_DELIVERY_WEIGHT
|
||||
.saturating_mul(extra_bytes_in_payload as u64)
|
||||
.saturating_add(bp_bridge_hub_wococo::DEFAULT_MESSAGE_DELIVERY_TX_WEIGHT)
|
||||
.saturating_sub(if include_pay_dispatch_fee_cost {
|
||||
Weight::from_ref_time(0)
|
||||
} else {
|
||||
bp_bridge_hub_wococo::PAY_INBOUND_DISPATCH_FEE_WEIGHT
|
||||
})
|
||||
.saturating_add(message_dispatch_weight),
|
||||
size: message_payload_len
|
||||
.saturating_add(bp_bridge_hub_rococo::EXTRA_STORAGE_PROOF_SIZE)
|
||||
.saturating_add(bp_bridge_hub_wococo::TX_EXTRA_BYTES),
|
||||
}
|
||||
}
|
||||
|
||||
fn transaction_payment(transaction: MessageTransaction<Weight>) -> messages::BalanceOf<Self> {
|
||||
log::info!(
|
||||
"[BridgeHubWococo::BridgedChainWithMessages] transaction_payment (returns 0 balance, TODO: fix) - transaction: {:?}",
|
||||
transaction
|
||||
);
|
||||
// TODO:check-parameter - any payment? from sovereign account?
|
||||
0
|
||||
}
|
||||
}
|
||||
|
||||
/// BridgeHubRococo chain from message lane point of view.
|
||||
@@ -202,12 +155,6 @@ impl UnderlyingChainProvider for BridgeHubRococo {
|
||||
impl ThisChainWithMessages for BridgeHubRococo {
|
||||
type RuntimeOrigin = crate::RuntimeOrigin;
|
||||
type RuntimeCall = crate::RuntimeCall;
|
||||
type ConfirmationTransactionEstimation = BasicConfirmationTransactionEstimation<
|
||||
bp_bridge_hub_rococo::AccountId,
|
||||
{ bp_bridge_hub_rococo::MAX_SINGLE_MESSAGE_DELIVERY_CONFIRMATION_TX_WEIGHT.ref_time() },
|
||||
{ bp_bridge_hub_wococo::EXTRA_STORAGE_PROOF_SIZE },
|
||||
{ bp_bridge_hub_rococo::TX_EXTRA_BYTES },
|
||||
>;
|
||||
|
||||
fn is_message_accepted(origin: &Self::RuntimeOrigin, lane: &LaneId) -> bool {
|
||||
log::info!("[BridgeHubRococo::ThisChainWithMessages] is_message_accepted - origin: {:?}, lane: {:?}", origin, lane);
|
||||
@@ -220,13 +167,4 @@ impl ThisChainWithMessages for BridgeHubRococo {
|
||||
);
|
||||
MessageNonce::MAX / 2
|
||||
}
|
||||
|
||||
fn transaction_payment(transaction: MessageTransaction<Weight>) -> messages::BalanceOf<Self> {
|
||||
log::info!(
|
||||
"[BridgeHubRococo::ThisChainWithMessages] transaction_payment (returns 0 balance, TODO: fix) - transaction: {:?}",
|
||||
transaction
|
||||
);
|
||||
// TODO:check-parameter - any payment? from sovereign account?
|
||||
0
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,13 +27,11 @@ use bp_runtime::ChainId;
|
||||
use bridge_runtime_common::{
|
||||
messages,
|
||||
messages::{
|
||||
target::FromBridgedChainMessagesProof, BasicConfirmationTransactionEstimation,
|
||||
BridgedChain, MessageBridge, MessageTransaction, ThisChain, ThisChainWithMessages,
|
||||
target::FromBridgedChainMessagesProof, MessageBridge, ThisChainWithMessages,
|
||||
UnderlyingChainProvider,
|
||||
},
|
||||
};
|
||||
use frame_support::{dispatch::Weight, parameter_types, RuntimeDebug};
|
||||
use sp_runtime::FixedU128;
|
||||
use frame_support::{parameter_types, RuntimeDebug};
|
||||
use xcm::{
|
||||
latest::prelude::*,
|
||||
prelude::{InteriorMultiLocation, NetworkId},
|
||||
@@ -49,6 +47,7 @@ parameter_types! {
|
||||
pub const BridgeHubRococoChainId: bp_runtime::ChainId = bp_runtime::BRIDGE_HUB_ROCOCO_CHAIN_ID;
|
||||
pub BridgeHubWococoUniversalLocation: InteriorMultiLocation = X2(GlobalConsensus(Wococo), Parachain(ParachainInfo::parachain_id().into()));
|
||||
pub RococoGlobalConsensusNetwork: NetworkId = NetworkId::Rococo;
|
||||
pub ActiveOutboundLanesToBridgeHubRococo: &'static [bp_messages::LaneId] = &[DEFAULT_XCM_LANE_TO_BRIDGE_HUB_ROCOCO];
|
||||
}
|
||||
|
||||
/// Dispatches received XCM messages from other bridge
|
||||
@@ -64,7 +63,6 @@ pub type ToBridgeHubRococoHaulBlobExporter = HaulBlobExporter<
|
||||
pub struct ToBridgeHubRococoXcmBlobHauler;
|
||||
pub const DEFAULT_XCM_LANE_TO_BRIDGE_HUB_ROCOCO: LaneId = [0, 0, 0, 1];
|
||||
impl XcmBlobHauler for ToBridgeHubRococoXcmBlobHauler {
|
||||
type SenderChain = bp_bridge_hub_wococo::BridgeHubWococo;
|
||||
type MessageSender =
|
||||
pallet_bridge_messages::Pallet<Runtime, WithBridgeHubRococoMessagesInstance>;
|
||||
|
||||
@@ -80,8 +78,6 @@ impl XcmBlobHauler for ToBridgeHubRococoXcmBlobHauler {
|
||||
/// Messaging Bridge configuration for BridgeHubWococo -> BridgeHubRococo
|
||||
pub struct WithBridgeHubRococoMessageBridge;
|
||||
impl MessageBridge for WithBridgeHubRococoMessageBridge {
|
||||
// TODO:check-parameter - relayers rewards
|
||||
const RELAYER_FEE_PERCENT: u32 = 0;
|
||||
const THIS_CHAIN_ID: ChainId = bp_runtime::BRIDGE_HUB_WOCOCO_CHAIN_ID;
|
||||
const BRIDGED_CHAIN_ID: ChainId = bp_runtime::BRIDGE_HUB_ROCOCO_CHAIN_ID;
|
||||
const BRIDGED_MESSAGES_PALLET_NAME: &'static str =
|
||||
@@ -93,15 +89,6 @@ impl MessageBridge for WithBridgeHubRococoMessageBridge {
|
||||
BridgeParachainRococoInstance,
|
||||
bp_bridge_hub_rococo::BridgeHubRococo,
|
||||
>;
|
||||
|
||||
fn bridged_balance_to_this_balance(
|
||||
bridged_balance: bridge_runtime_common::messages::BalanceOf<BridgedChain<Self>>,
|
||||
bridged_to_this_conversion_rate_override: Option<FixedU128>,
|
||||
) -> bridge_runtime_common::messages::BalanceOf<ThisChain<Self>> {
|
||||
log::info!("[WithBridgeHubRococoMessageBridge] bridged_balance_to_this_balance (returns 0 balance, TODO: fix) - bridged_balance: {:?}, bridged_to_this_conversion_rate_override: {:?}", bridged_balance, bridged_to_this_conversion_rate_override);
|
||||
// TODO:check-parameter - any payment? from sovereign account?
|
||||
0
|
||||
}
|
||||
}
|
||||
|
||||
/// Message verifier for BridgeHubRococo messages sent from BridgeHubWococo
|
||||
@@ -120,14 +107,14 @@ impl UnderlyingChainProvider for BridgeHubRococo {
|
||||
type Chain = bp_bridge_hub_rococo::BridgeHubRococo;
|
||||
}
|
||||
|
||||
impl SourceHeaderChain<crate::Balance> for BridgeHubRococo {
|
||||
impl SourceHeaderChain for BridgeHubRococo {
|
||||
type Error = &'static str;
|
||||
type MessagesProof = FromBridgedChainMessagesProof<crate::Hash>;
|
||||
|
||||
fn verify_messages_proof(
|
||||
proof: Self::MessagesProof,
|
||||
messages_count: u32,
|
||||
) -> Result<ProvedMessages<Message<crate::Balance>>, Self::Error> {
|
||||
) -> Result<ProvedMessages<Message>, Self::Error> {
|
||||
bridge_runtime_common::messages::target::verify_messages_proof::<
|
||||
WithBridgeHubRococoMessageBridge,
|
||||
>(proof, messages_count)
|
||||
@@ -155,40 +142,6 @@ impl messages::BridgedChainWithMessages for BridgeHubRococo {
|
||||
fn verify_dispatch_weight(_message_payload: &[u8]) -> bool {
|
||||
true
|
||||
}
|
||||
|
||||
fn estimate_delivery_transaction(
|
||||
message_payload: &[u8],
|
||||
include_pay_dispatch_fee_cost: bool,
|
||||
message_dispatch_weight: Weight,
|
||||
) -> MessageTransaction<Weight> {
|
||||
let message_payload_len = u32::try_from(message_payload.len()).unwrap_or(u32::MAX);
|
||||
let extra_bytes_in_payload = message_payload_len
|
||||
.saturating_sub(pallet_bridge_messages::EXPECTED_DEFAULT_MESSAGE_LENGTH);
|
||||
|
||||
MessageTransaction {
|
||||
dispatch_weight: bp_bridge_hub_rococo::ADDITIONAL_MESSAGE_BYTE_DELIVERY_WEIGHT
|
||||
.saturating_mul(extra_bytes_in_payload as u64)
|
||||
.saturating_add(bp_bridge_hub_rococo::DEFAULT_MESSAGE_DELIVERY_TX_WEIGHT)
|
||||
.saturating_sub(if include_pay_dispatch_fee_cost {
|
||||
Weight::from_ref_time(0)
|
||||
} else {
|
||||
bp_bridge_hub_rococo::PAY_INBOUND_DISPATCH_FEE_WEIGHT
|
||||
})
|
||||
.saturating_add(message_dispatch_weight),
|
||||
size: message_payload_len
|
||||
.saturating_add(bp_bridge_hub_wococo::EXTRA_STORAGE_PROOF_SIZE)
|
||||
.saturating_add(bp_bridge_hub_rococo::TX_EXTRA_BYTES),
|
||||
}
|
||||
}
|
||||
|
||||
fn transaction_payment(transaction: MessageTransaction<Weight>) -> messages::BalanceOf<Self> {
|
||||
log::info!(
|
||||
"[BridgeHubRococo::BridgedChainWithMessages] transaction_payment (returns 0 balance, TODO: fix) - transaction: {:?}",
|
||||
transaction
|
||||
);
|
||||
// TODO:check-parameter - any payment? from sovereign account?
|
||||
0
|
||||
}
|
||||
}
|
||||
|
||||
/// BridgeHubWococo chain from message lane point of view.
|
||||
@@ -202,12 +155,6 @@ impl UnderlyingChainProvider for BridgeHubWococo {
|
||||
impl ThisChainWithMessages for BridgeHubWococo {
|
||||
type RuntimeOrigin = crate::RuntimeOrigin;
|
||||
type RuntimeCall = crate::RuntimeCall;
|
||||
type ConfirmationTransactionEstimation = BasicConfirmationTransactionEstimation<
|
||||
bp_bridge_hub_wococo::AccountId,
|
||||
{ bp_bridge_hub_wococo::MAX_SINGLE_MESSAGE_DELIVERY_CONFIRMATION_TX_WEIGHT.ref_time() },
|
||||
{ bp_bridge_hub_rococo::EXTRA_STORAGE_PROOF_SIZE },
|
||||
{ bp_bridge_hub_wococo::TX_EXTRA_BYTES },
|
||||
>;
|
||||
|
||||
fn is_message_accepted(origin: &Self::RuntimeOrigin, lane: &LaneId) -> bool {
|
||||
log::info!("[BridgeHubWococo::ThisChainWithMessages] is_message_accepted - origin: {:?}, lane: {:?}", origin, lane);
|
||||
@@ -220,13 +167,4 @@ impl ThisChainWithMessages for BridgeHubWococo {
|
||||
);
|
||||
MessageNonce::MAX / 2
|
||||
}
|
||||
|
||||
fn transaction_payment(transaction: MessageTransaction<Weight>) -> messages::BalanceOf<Self> {
|
||||
log::info!(
|
||||
"[BridgeHubWococo::ThisChainWithMessages] transaction_payment (returns 0 balance, TODO: fix) - transaction: {:?}",
|
||||
transaction
|
||||
);
|
||||
// TODO:check-parameter - any payment? from sovereign account?
|
||||
0
|
||||
}
|
||||
}
|
||||
|
||||
@@ -216,7 +216,6 @@ pub mod runtime_api {
|
||||
use bp_messages::{
|
||||
InboundMessageDetails, LaneId, MessageNonce, MessagePayload, OutboundMessageDetails,
|
||||
};
|
||||
use frame_support::{sp_runtime::FixedU128, Parameter};
|
||||
use sp_std::prelude::Vec;
|
||||
bp_runtime::decl_bridge_messages_runtime_apis!(bridge_hub_rococo);
|
||||
bp_runtime::decl_bridge_messages_runtime_apis!(bridge_hub_wococo);
|
||||
@@ -522,8 +521,7 @@ impl pallet_bridge_messages::Config<WithBridgeHubWococoMessagesInstance> for Run
|
||||
type RuntimeEvent = RuntimeEvent;
|
||||
type WeightInfo = pallet_bridge_messages::weights::BridgeWeight<Runtime>;
|
||||
type BridgedChainId = bridge_hub_rococo_config::BridgeHubWococoChainId;
|
||||
type Parameter = ();
|
||||
type MaxMessagesToPruneAtOnce = MaxMessagesToPruneAtOnce;
|
||||
type ActiveOutboundLanes = bridge_hub_rococo_config::ActiveOutboundLanesToBridgeHubWococo;
|
||||
type MaxUnrewardedRelayerEntriesAtInboundLane =
|
||||
bridge_hub_rococo_config::MaxUnrewardedRelayerEntriesAtInboundLane;
|
||||
type MaxUnconfirmedMessagesAtInboundLane =
|
||||
@@ -532,17 +530,13 @@ impl pallet_bridge_messages::Config<WithBridgeHubWococoMessagesInstance> for Run
|
||||
type MaximalOutboundPayloadSize =
|
||||
bridge_hub_rococo_config::ToBridgeHubWococoMaximalOutboundPayloadSize;
|
||||
type OutboundPayload = XcmAsPlainPayload;
|
||||
type OutboundMessageFee = Balance;
|
||||
|
||||
type InboundPayload = XcmAsPlainPayload;
|
||||
type InboundMessageFee = Balance;
|
||||
type InboundRelayer = AccountId;
|
||||
|
||||
type TargetHeaderChain = bridge_hub_rococo_config::BridgeHubWococo;
|
||||
type LaneMessageVerifier = bridge_hub_rococo_config::ToBridgeHubWococoMessageVerifier;
|
||||
type MessageDeliveryAndDispatchPayment = ();
|
||||
type OnMessageAccepted = ();
|
||||
type OnDeliveryConfirmed = ();
|
||||
|
||||
type SourceHeaderChain = bridge_hub_rococo_config::BridgeHubWococo;
|
||||
type MessageDispatch = XcmBlobMessageDispatch<
|
||||
@@ -550,6 +544,7 @@ impl pallet_bridge_messages::Config<WithBridgeHubWococoMessagesInstance> for Run
|
||||
bp_bridge_hub_rococo::BridgeHubRococo,
|
||||
OnBridgeHubRococoBlobDispatcher,
|
||||
>;
|
||||
|
||||
}
|
||||
|
||||
/// Add XCM messages support for BrigdeHubWococo to support Wococo->Rococo XCM messages
|
||||
@@ -558,8 +553,7 @@ impl pallet_bridge_messages::Config<WithBridgeHubRococoMessagesInstance> for Run
|
||||
type RuntimeEvent = RuntimeEvent;
|
||||
type WeightInfo = pallet_bridge_messages::weights::BridgeWeight<Runtime>;
|
||||
type BridgedChainId = bridge_hub_wococo_config::BridgeHubRococoChainId;
|
||||
type Parameter = ();
|
||||
type MaxMessagesToPruneAtOnce = MaxMessagesToPruneAtOnce;
|
||||
type ActiveOutboundLanes = bridge_hub_wococo_config::ActiveOutboundLanesToBridgeHubRococo;
|
||||
type MaxUnrewardedRelayerEntriesAtInboundLane =
|
||||
bridge_hub_wococo_config::MaxUnrewardedRelayerEntriesAtInboundLane;
|
||||
type MaxUnconfirmedMessagesAtInboundLane =
|
||||
@@ -568,17 +562,13 @@ impl pallet_bridge_messages::Config<WithBridgeHubRococoMessagesInstance> for Run
|
||||
type MaximalOutboundPayloadSize =
|
||||
bridge_hub_wococo_config::ToBridgeHubRococoMaximalOutboundPayloadSize;
|
||||
type OutboundPayload = XcmAsPlainPayload;
|
||||
type OutboundMessageFee = Balance;
|
||||
|
||||
type InboundPayload = XcmAsPlainPayload;
|
||||
type InboundMessageFee = Balance;
|
||||
type InboundRelayer = AccountId;
|
||||
|
||||
type TargetHeaderChain = bridge_hub_wococo_config::BridgeHubRococo;
|
||||
type LaneMessageVerifier = bridge_hub_wococo_config::ToBridgeHubRococoMessageVerifier;
|
||||
type MessageDeliveryAndDispatchPayment = ();
|
||||
type OnMessageAccepted = ();
|
||||
type OnDeliveryConfirmed = ();
|
||||
|
||||
type SourceHeaderChain = bridge_hub_wococo_config::BridgeHubRococo;
|
||||
type MessageDispatch = XcmBlobMessageDispatch<
|
||||
@@ -797,21 +787,15 @@ impl_runtime_apis! {
|
||||
}
|
||||
}
|
||||
|
||||
// This exposed by BridgeHubRococo
|
||||
impl runtime_api::ToBridgeHubWococoOutboundLaneApi<Block, Balance, XcmAsPlainPayload> for Runtime {
|
||||
fn estimate_message_delivery_and_dispatch_fee(
|
||||
_lane_id: bp_messages::LaneId,
|
||||
payload: XcmAsPlainPayload,
|
||||
conversion_rate: Option<frame_support::sp_runtime::FixedU128>,
|
||||
) -> Option<Balance> {
|
||||
None
|
||||
}
|
||||
// TODO: add here other directions
|
||||
|
||||
// This exposed by BridgeHubRococo
|
||||
impl runtime_api::ToBridgeHubWococoOutboundLaneApi<Block> for Runtime {
|
||||
fn message_details(
|
||||
lane: bp_messages::LaneId,
|
||||
begin: bp_messages::MessageNonce,
|
||||
end: bp_messages::MessageNonce,
|
||||
) -> Vec<bp_messages::OutboundMessageDetails<Balance>> {
|
||||
) -> Vec<bp_messages::OutboundMessageDetails> {
|
||||
bridge_runtime_common::messages_api::outbound_message_details::<
|
||||
Runtime,
|
||||
WithBridgeHubWococoMessagesInstance,
|
||||
@@ -820,10 +804,10 @@ impl_runtime_apis! {
|
||||
}
|
||||
|
||||
// This is exposed by BridgeHubWococo
|
||||
impl runtime_api::FromBridgeHubRococoInboundLaneApi<Block, Balance> for Runtime {
|
||||
impl runtime_api::FromBridgeHubRococoInboundLaneApi<Block> for Runtime {
|
||||
fn message_details(
|
||||
lane: bp_messages::LaneId,
|
||||
messages: Vec<(bp_messages::MessagePayload, bp_messages::OutboundMessageDetails<Balance>)>,
|
||||
messages: Vec<(bp_messages::MessagePayload, bp_messages::OutboundMessageDetails)>,
|
||||
) -> Vec<bp_messages::InboundMessageDetails> {
|
||||
bridge_runtime_common::messages_api::inbound_message_details::<
|
||||
Runtime,
|
||||
|
||||
Reference in New Issue
Block a user