Skip to content

Commit

Permalink
Backport recent changes from polkadot staging (#2590)
Browse files Browse the repository at this point in the history
* fiox overflow when computing priority boost (#2587)

* Backport changes from polkadot-sdk (#2588)

* backport paritytech/polkadot-sdk#1543

* another backport

* https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/3833103
  • Loading branch information
svyatonik authored Sep 28, 2023
1 parent 95a7f53 commit 0422e96
Show file tree
Hide file tree
Showing 5 changed files with 43 additions and 7 deletions.
43 changes: 40 additions & 3 deletions modules/relayers/src/extension/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -404,9 +404,10 @@ mod tests {
use bp_header_chain::SubmitFinalityProofInfo;
use bp_messages::{
source_chain::FromBridgedChainMessagesDeliveryProof,
target_chain::FromBridgedChainMessagesProof, BaseMessagesProofInfo, InboundLaneData,
LaneId, MessageNonce, MessagesCallInfo, OutboundLaneData, ReceiveMessagesDeliveryProofInfo,
ReceiveMessagesProofInfo, UnrewardedRelayerOccupation, UnrewardedRelayersState,
target_chain::FromBridgedChainMessagesProof, BaseMessagesProofInfo, DeliveredMessages,
InboundLaneData, LaneId, MessageNonce, MessagesCallInfo, OutboundLaneData,
ReceiveMessagesDeliveryProofInfo, ReceiveMessagesProofInfo, UnrewardedRelayer,
UnrewardedRelayerOccupation, UnrewardedRelayersState,
};
use bp_parachains::{BestParaHeadHash, ParaInfo, SubmitParachainHeadsInfo};
use bp_polkadot_core::parachains::{ParaHeadsProof, ParaId};
Expand Down Expand Up @@ -1782,4 +1783,40 @@ mod tests {
);
});
}

#[test]
fn does_not_panic_on_boosting_priority_of_empty_message_delivery_transaction() {
run_test(|| {
let best_delivered_message =
BridgedUnderlyingChain::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX;
initialize_environment(100, 100, best_delivered_message);

// register relayer so it gets priority boost
BridgeRelayers::register(RuntimeOrigin::signed(relayer_account_at_this_chain()), 1000)
.unwrap();

// allow empty message delivery transactions
let lane_id = TestLaneId::get();
let in_lane_data = InboundLaneData {
last_confirmed_nonce: 0,
relayers: vec![UnrewardedRelayer {
relayer: relayer_account_at_bridged_chain(),
messages: DeliveredMessages { begin: 1, end: best_delivered_message },
}]
.into(),
..Default::default()
};
pallet_bridge_messages::InboundLanes::<TestRuntime>::insert(lane_id, in_lane_data);

// now check that the priority of empty tx is the same as priority of 1-message tx
let priority_of_zero_messages_delivery =
run_validate(message_delivery_call(best_delivered_message)).unwrap().priority;
let priority_of_one_messages_delivery =
run_validate(message_delivery_call(best_delivered_message + 1))
.unwrap()
.priority;

assert_eq!(priority_of_zero_messages_delivery, priority_of_one_messages_delivery);
});
}
}
2 changes: 1 addition & 1 deletion modules/relayers/src/extension/priority.rs
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ where
PriorityBoostPerMessage: Get<TransactionPriority>,
{
// we don't want any boost for transaction with single message => minus one
PriorityBoostPerMessage::get().saturating_mul(messages - 1)
PriorityBoostPerMessage::get().saturating_mul(messages.saturating_sub(1))
}

#[cfg(not(feature = "integrity-test"))]
Expand Down
2 changes: 1 addition & 1 deletion primitives/chain-bridge-hub-cumulus/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ pub const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(75);
/// This is a copy-paste from the cumulus repo's `parachains-common` crate.
const MAXIMUM_BLOCK_WEIGHT: Weight = Weight::from_parts(constants::WEIGHT_REF_TIME_PER_SECOND, 0)
.saturating_div(2)
.set_proof_size(polkadot_primitives::v5::MAX_POV_SIZE as u64);
.set_proof_size(polkadot_primitives::MAX_POV_SIZE as u64);

/// All cumulus bridge hubs assume that about 5 percent of the block weight is consumed by
/// `on_initialize` handlers. This is used to limit the maximal weight of a single extrinsic.
Expand Down
2 changes: 1 addition & 1 deletion primitives/chain-polkadot-bulletin/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ sp-runtime = { git = "https://github.com/paritytech/polkadot-sdk", branch = "mas
sp-std = { git = "https://github.com/paritytech/polkadot-sdk", branch = "master", default-features = false }

[features]
default = ["std"]
default = [ "std" ]
std = [
"bp-header-chain/std",
"bp-messages/std",
Expand Down
1 change: 0 additions & 1 deletion primitives/test-utils/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ version = "0.1.0"
authors.workspace = true
edition.workspace = true
license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
publish = false

[dependencies]
bp-header-chain = { path = "../header-chain", default-features = false }
Expand Down

0 comments on commit 0422e96

Please sign in to comment.