Skip to content

Commit 47ac46f

Browse files
authored
Do not pause xcm if previous block is 0 (#38)
1 parent 9c8f32b commit 47ac46f

File tree

2 files changed

+18
-7
lines changed

2 files changed

+18
-7
lines changed

pallets/emergency-para-xcm/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ impl<T: Config> CheckAssociatedRelayNumber for Pallet<T> {
176176
) {
177177
<T as Config>::CheckAssociatedRelayNumber::check_associated_relay_number(current, previous);
178178

179-
if current > previous + T::PausedThreshold::get() {
179+
if (previous != 0) && (current > (previous + T::PausedThreshold::get())) {
180180
Mode::<T>::set(XcmMode::Paused);
181181
<Pallet<T>>::deposit_event(Event::EnteredPausedXcmMode);
182182
}

pallets/emergency-para-xcm/src/tests.rs

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,20 @@ use sp_runtime::traits::Dispatchable;
2323
#[test]
2424
fn remains_in_normal_mode_when_relay_block_diff_is_within_threshold() {
2525
new_test_ext().execute_with(|| {
26-
let current_block = 1;
27-
let new_block = PAUSED_THRESHOLD + current_block;
28-
EmergencyParaXcm::check_associated_relay_number(new_block, current_block);
26+
let previous_block = 1;
27+
let current_block = PAUSED_THRESHOLD + previous_block;
28+
EmergencyParaXcm::check_associated_relay_number(current_block, previous_block);
29+
let xcm_mode = Mode::<Test>::get();
30+
assert!(xcm_mode == XcmMode::Normal);
31+
})
32+
}
33+
34+
#[test]
35+
fn remains_in_normal_mode_if_previous_relay_block_is_0() {
36+
new_test_ext().execute_with(|| {
37+
let previous_block = 0;
38+
let current_block = PAUSED_THRESHOLD + previous_block + 1;
39+
EmergencyParaXcm::check_associated_relay_number(current_block, previous_block);
2940
let xcm_mode = Mode::<Test>::get();
3041
assert!(xcm_mode == XcmMode::Normal);
3142
})
@@ -34,9 +45,9 @@ fn remains_in_normal_mode_when_relay_block_diff_is_within_threshold() {
3445
#[test]
3546
fn pauses_xcm_when_relay_block_diff_is_above_threshold() {
3647
new_test_ext().execute_with(|| {
37-
let current_block = 1;
38-
let new_block = PAUSED_THRESHOLD + current_block + 1;
39-
EmergencyParaXcm::check_associated_relay_number(new_block, current_block);
48+
let previous_block = 1;
49+
let current_block = PAUSED_THRESHOLD + previous_block + 1;
50+
EmergencyParaXcm::check_associated_relay_number(current_block, previous_block);
4051
let xcm_mode = Mode::<Test>::get();
4152
assert!(xcm_mode == XcmMode::Paused);
4253
assert_eq!(events(), vec![Event::EnteredPausedXcmMode,]);

0 commit comments

Comments
 (0)