diff --git a/contracts/near/eth2-client/src/lib.rs b/contracts/near/eth2-client/src/lib.rs index a01fa700b..688d80fa6 100644 --- a/contracts/near/eth2-client/src/lib.rs +++ b/contracts/near/eth2-client/src/lib.rs @@ -429,6 +429,18 @@ impl Eth2Client { ) { let config = NetworkConfig::new(&self.network); let signature_period = compute_sync_committee_period(update.signature_slot); + + // Verify signature period does not skip a sync committee period + require!( + signature_period == finalized_period || signature_period == finalized_period + 1, + format!( + "The acceptable signature periods are '{}' and '{}' but got {}", + finalized_period, + finalized_period + 1, + signature_period + ) + ); + // Verify sync committee aggregate signature let sync_committee = if signature_period == finalized_period { self.current_sync_committee.get().unwrap() diff --git a/contracts/near/res/eth2_client.wasm b/contracts/near/res/eth2_client.wasm index 1d1b1fae2..c8a2d48af 100755 Binary files a/contracts/near/res/eth2_client.wasm and b/contracts/near/res/eth2_client.wasm differ