From 2e6a987d5e2422931324642dd7551c2fecaadf7f Mon Sep 17 00:00:00 2001 From: Daniel Wang Date: Sun, 6 Oct 2024 15:28:12 +0800 Subject: [PATCH] Update PreconfTaskManager.sol --- SmartContracts/src/avs/PreconfTaskManager.sol | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/SmartContracts/src/avs/PreconfTaskManager.sol b/SmartContracts/src/avs/PreconfTaskManager.sol index 110c1a1..a48c5f2 100644 --- a/SmartContracts/src/avs/PreconfTaskManager.sol +++ b/SmartContracts/src/avs/PreconfTaskManager.sol @@ -89,7 +89,8 @@ contract PreconfTaskManager is IPreconfTaskManager, Initializable { // if (block.timestamp <= lookaheadEntry.prevTimestamp || block.timestamp > lookaheadEntry.timestamp) { revert InvalidLookaheadPointer(); - } else if (msg.sender != lookaheadEntry.preconfer) { + } + if (msg.sender != lookaheadEntry.preconfer) { revert SenderIsNotThePreconfer(); } @@ -135,10 +136,13 @@ contract PreconfTaskManager is IPreconfTaskManager, Initializable { if (block.timestamp - taikoBlock.proposedAt >= PreconfConstants.DISPUTE_PERIOD) { // Revert if the dispute window has been missed revert MissedDisputeWindow(); - } else if (header.chainId != block.chainid) { + } + if (header.chainId != block.chainid) { // Revert if the preconfirmation was provided on another chain revert PreconfirmationChainIdMismatch(); - } else if (keccak256(abi.encode(taikoBlockMetadata)) != taikoBlock.metaHash) { + } + + if (keccak256(abi.encode(taikoBlockMetadata)) != taikoBlock.metaHash) { // Revert if the metadata of the block does not match the one stored in Taiko revert MetadataMismatch(); } @@ -148,13 +152,12 @@ contract PreconfTaskManager is IPreconfTaskManager, Initializable { // Slash if the preconfirmation was given offchain, but block proposal was missed OR // the preconfirmed set of transactions is different from the transactions in the proposed block. - if (preconfSigner != proposer || header.txListHash != taikoBlockMetadata.blobHash) { - preconfServiceManager.slashOperator(preconfSigner); - } else { + if (preconfSigner == proposer && header.txListHash == taikoBlockMetadata.blobHash) { revert PreconfirmationIsCorrect(); } emit ProvedIncorrectPreconfirmation(proposer, blockId, msg.sender); + preconfServiceManager.slashOperator(preconfSigner); } /**