@@ -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