BridgeHub subtree update (#2820)

* BH subtree master -> polkadot-staging by default

* Squashed 'bridges/' changes from c9dd8b9dfc..0417308a48

0417308a48 Update docs (#2242)
1a0d3b55f3 Nits for subtree (#2241)
18fca2e122 Ensure that the origin is signed for submit_parachain_heads and submit_finality_proof calls (#2239)
fab51067e7 minor doc fix (#2207)
4feb721d32 backport cumulus changes to polkadot-staging (#2167)
433741942a fix testnet argocd deploy (#2151) (#2152)
ff9eadc7dc Updated BHR/W version + codegen (#2148)

git-subtree-dir: bridges
git-subtree-split: 0417308a489096979ed3e08d0f8caafbfca6e7e9

* Fix deps
This commit is contained in:
Branislav Kontur
2023-07-04 17:18:26 +02:00
committed by GitHub
parent c1a3556cff
commit 5d1de99799
10 changed files with 56 additions and 10 deletions
+24 -2
View File
@@ -307,12 +307,13 @@ pub mod pallet {
parachains.len() as _,
))]
pub fn submit_parachain_heads(
_origin: OriginFor<T>,
origin: OriginFor<T>,
at_relay_block: (RelayBlockNumber, RelayBlockHash),
parachains: Vec<(ParaId, ParaHash)>,
parachain_heads_proof: ParaHeadsProof,
) -> DispatchResultWithPostInfo {
Self::ensure_not_halted().map_err(Error::<T, I>::BridgeModule)?;
ensure_signed(origin)?;
// we'll need relay chain header to verify that parachains heads are always increasing.
let (relay_block_number, relay_block_hash) = at_relay_block;
@@ -417,7 +418,7 @@ pub mod pallet {
});
// we're refunding weight if update has not happened and if pruning has not happened
let is_update_happened = matches!(update_result, Ok(_));
let is_update_happened = update_result.is_ok();
if !is_update_happened {
actual_weight = actual_weight.saturating_sub(
WeightInfoOf::<T, I>::parachain_head_storage_write_weight(
@@ -1579,4 +1580,25 @@ pub(crate) mod tests {
Some(mock::TOTAL_PARACHAINS * mock::HeadsToKeep::get()),
);
}
#[test]
fn submit_finality_proof_requires_signed_origin() {
run_test(|| {
let (state_root, proof, parachains) =
prepare_parachain_heads_proof::<RegularParachainHeader>(vec![(1, head_data(1, 0))]);
initialize(state_root);
// `submit_parachain_heads()` should fail when the pallet is halted.
assert_noop!(
Pallet::<TestRuntime>::submit_parachain_heads(
RuntimeOrigin::root(),
(0, test_relay_header(0, state_root).hash()),
parachains,
proof,
),
DispatchError::BadOrigin
);
})
}
}