Signed extension for rejecting obsolete messages pallet transactions (#1446)

* BridgeRejectObsoleteMessages

* add obsolete confirmations verification to the BridgeRejectObsoleteMessages

* move tests where they belong
This commit is contained in:
Svyatoslav Nikolsky
2022-06-09 14:37:36 +03:00
committed by Bastian Köcher
parent ee5b692f72
commit 19c73ce0b7
13 changed files with 345 additions and 10 deletions
+2
View File
@@ -117,6 +117,7 @@ impl TransactionSignScheme for Millau {
pallet_transaction_payment::ChargeTransactionPayment::<millau_runtime::Runtime>::from(param.unsigned.tip),
millau_runtime::BridgeRejectObsoleteGrandpaHeader,
millau_runtime::BridgeRejectObsoleteParachainHeader,
millau_runtime::BridgeRejectObsoleteMessages,
),
(
(),
@@ -129,6 +130,7 @@ impl TransactionSignScheme for Millau {
(),
(),
(),
(),
),
);
let signature = raw_payload.using_encoded(|payload| param.signer.sign(payload));
@@ -474,6 +474,7 @@ fn prepare_dummy_messages_delivery_proof<SC: Chain, TC: Chain>(
unrewarded_relayer_entries: 1,
messages_in_oldest_entry: 1,
total_messages: 1,
last_delivered_nonce: 1,
},
FromBridgedChainMessagesDeliveryProof {
bridged_header_hash: Default::default(),
@@ -191,11 +191,10 @@ where
id: TargetHeaderIdOf<MessageLaneAdapter<P>>,
) -> Result<(TargetHeaderIdOf<MessageLaneAdapter<P>>, UnrewardedRelayersState), SubstrateError>
{
let relayers = self
.inbound_lane_data(id)
.await?
.map(|data| data.relayers)
.unwrap_or_else(VecDeque::new);
let inbound_lane_data = self.inbound_lane_data(id).await?;
let last_delivered_nonce =
inbound_lane_data.as_ref().map(|data| data.last_delivered_nonce()).unwrap_or(0);
let relayers = inbound_lane_data.map(|data| data.relayers).unwrap_or_else(VecDeque::new);
let unrewarded_relayers_state = bp_messages::UnrewardedRelayersState {
unrewarded_relayer_entries: relayers.len() as _,
messages_in_oldest_entry: relayers
@@ -203,6 +202,7 @@ where
.map(|entry| 1 + entry.messages.end - entry.messages.begin)
.unwrap_or(0),
total_messages: total_unrewarded_messages(&relayers).unwrap_or(MessageNonce::MAX),
last_delivered_nonce,
};
Ok((id, unrewarded_relayers_state))
}
@@ -729,6 +729,7 @@ pub(crate) mod tests {
unrewarded_relayer_entries: 0,
messages_in_oldest_entry: 0,
total_messages: 0,
last_delivered_nonce: 0,
},
))
}
@@ -639,6 +639,7 @@ mod tests {
unrewarded_relayer_entries: 0,
messages_in_oldest_entry: 0,
total_messages: 0,
last_delivered_nonce: 0,
},
},
}),
@@ -954,6 +955,7 @@ mod tests {
unrewarded_relayer_entries: 2,
messages_in_oldest_entry: 2,
total_messages: 2,
last_delivered_nonce: 19,
},
},
},