Skip to content

Commit 2119b50

Browse files
svyatonikbkontur
authored andcommitted
Backport recent changes from polkadot staging (#2590)
* fiox overflow when computing priority boost (#2587) * Backport changes from polkadot-sdk (#2588) * backport #1543 * another backport * https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/3833103
1 parent 49ca177 commit 2119b50

1 file changed

Lines changed: 40 additions & 4 deletions

File tree

  • bridges/modules/relayers/src/extension

bridges/modules/relayers/src/extension/mod.rs

Lines changed: 40 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -426,10 +426,10 @@ mod tests {
426426
use bp_header_chain::{StoredHeaderDataBuilder, SubmitFinalityProofInfo};
427427
use bp_messages::{
428428
source_chain::FromBridgedChainMessagesDeliveryProof,
429-
target_chain::FromBridgedChainMessagesProof, BaseMessagesProofInfo, InboundLaneData,
430-
LaneId, MessageNonce, MessagesCallInfo, MessagesOperatingMode, OutboundLaneData,
431-
ReceiveMessagesDeliveryProofInfo, ReceiveMessagesProofInfo, UnrewardedRelayerOccupation,
432-
UnrewardedRelayersState,
429+
target_chain::FromBridgedChainMessagesProof, BaseMessagesProofInfo, DeliveredMessages,
430+
InboundLaneData, LaneId, MessageNonce, MessagesCallInfo, MessagesOperatingMode,
431+
OutboundLaneData, ReceiveMessagesDeliveryProofInfo, ReceiveMessagesProofInfo,
432+
UnrewardedRelayer, UnrewardedRelayerOccupation, UnrewardedRelayersState,
433433
};
434434
use bp_parachains::{BestParaHeadHash, ParaInfo, SubmitParachainHeadsInfo};
435435
use bp_polkadot_core::parachains::{ParaHeadsProof, ParaId};
@@ -2301,4 +2301,40 @@ mod tests {
23012301
);
23022302
});
23032303
}
2304+
2305+
#[test]
2306+
fn does_not_panic_on_boosting_priority_of_empty_message_delivery_transaction() {
2307+
run_test(|| {
2308+
let best_delivered_message =
2309+
BridgedUnderlyingParachain::MAX_UNCONFIRMED_MESSAGES_IN_CONFIRMATION_TX;
2310+
initialize_environment(100, 100, best_delivered_message);
2311+
2312+
// register relayer so it gets priority boost
2313+
BridgeRelayers::register(RuntimeOrigin::signed(relayer_account_at_this_chain()), 1000)
2314+
.unwrap();
2315+
2316+
// allow empty message delivery transactions
2317+
let lane_id = TestLaneId::get();
2318+
let in_lane_data = InboundLaneData {
2319+
last_confirmed_nonce: 0,
2320+
relayers: vec![UnrewardedRelayer {
2321+
relayer: relayer_account_at_bridged_chain(),
2322+
messages: DeliveredMessages { begin: 1, end: best_delivered_message },
2323+
}]
2324+
.into(),
2325+
..Default::default()
2326+
};
2327+
pallet_bridge_messages::InboundLanes::<TestRuntime>::insert(lane_id, in_lane_data);
2328+
2329+
// now check that the priority of empty tx is the same as priority of 1-message tx
2330+
let priority_of_zero_messages_delivery =
2331+
run_validate(message_delivery_call(best_delivered_message)).unwrap().priority;
2332+
let priority_of_one_messages_delivery =
2333+
run_validate(message_delivery_call(best_delivered_message + 1))
2334+
.unwrap()
2335+
.priority;
2336+
2337+
assert_eq!(priority_of_zero_messages_delivery, priority_of_one_messages_delivery);
2338+
});
2339+
}
23042340
}

0 commit comments

Comments
 (0)