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 #1543

* another backport

* https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/3833103
  • Loading branch information
svyatonik authored and bkontur committed Jun 7, 2024
1 parent 90e5578 commit e375835
Showing 1 changed file with 40 additions and 4 deletions.
44 changes: 40 additions & 4 deletions bridges/modules/relayers/src/extension/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -426,10 +426,10 @@ mod tests {
use bp_header_chain::{StoredHeaderDataBuilder, SubmitFinalityProofInfo};
use bp_messages::{
source_chain::FromBridgedChainMessagesDeliveryProof,
target_chain::FromBridgedChainMessagesProof, BaseMessagesProofInfo, InboundLaneData,
LaneId, MessageNonce, MessagesCallInfo, MessagesOperatingMode, OutboundLaneData,
ReceiveMessagesDeliveryProofInfo, ReceiveMessagesProofInfo, UnrewardedRelayerOccupation,
UnrewardedRelayersState,
target_chain::FromBridgedChainMessagesProof, BaseMessagesProofInfo, DeliveredMessages,
InboundLaneData, LaneId, MessageNonce, MessagesCallInfo, MessagesOperatingMode,
OutboundLaneData, ReceiveMessagesDeliveryProofInfo, ReceiveMessagesProofInfo,
UnrewardedRelayer, UnrewardedRelayerOccupation, UnrewardedRelayersState,
};
use bp_parachains::{BestParaHeadHash, ParaInfo, SubmitParachainHeadsInfo};
use bp_polkadot_core::parachains::{ParaHeadsProof, ParaId};
Expand Down Expand Up @@ -2301,4 +2301,40 @@ mod tests {
);
});
}

#[test]
fn does_not_panic_on_boosting_priority_of_empty_message_delivery_transaction() {
run_test(|| {
let best_delivered_message =
BridgedUnderlyingParachain::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);
});
}
}

0 comments on commit e375835

Please sign in to comment.