From b9fdc2a5988ee9e3459cc893743b28aef6088e85 Mon Sep 17 00:00:00 2001 From: mfw78 Date: Thu, 30 Jul 2026 09:48:24 +0000 Subject: [PATCH] refactor: adopt require-with-custom-error style Solidity >=0.8.27 supports require(condition, CustomError()) in the legacy pipeline; convert the remaining if (!(condition)) revert sites so preconditions read as preconditions. Bytecode-equivalent. --- src/ERC1271Forwarder.sol | 4 +--- src/types/twap/libraries/TWAPOrder.sol | 23 +++++++++++------------ 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/src/ERC1271Forwarder.sol b/src/ERC1271Forwarder.sol index ebab1d0a..7ebe671d 100644 --- a/src/ERC1271Forwarder.sol +++ b/src/ERC1271Forwarder.sol @@ -30,9 +30,7 @@ abstract contract ERC1271Forwarder is ERC1271 { (GPv2Order.Data memory order, ComposableCow.PayloadStruct memory payload) = abi.decode(signature, (GPv2Order.Data, ComposableCow.PayloadStruct)); bytes32 domainSeparator = composableCow.domainSeparator(); - if (!(GPv2Order.hash(order, domainSeparator) == _hash)) { - revert InvalidHash(); - } + require(GPv2Order.hash(order, domainSeparator) == _hash, InvalidHash()); return composableCow.isValidSafeSignature( Safe(payable(address(this))), // owner diff --git a/src/types/twap/libraries/TWAPOrder.sol b/src/types/twap/libraries/TWAPOrder.sol index 9c35cccd..d90c82b0 100644 --- a/src/types/twap/libraries/TWAPOrder.sol +++ b/src/types/twap/libraries/TWAPOrder.sol @@ -72,18 +72,17 @@ library TWAPOrder { * @param self The TWAP order to validate */ function validate(Data memory self) internal pure { - if (!(self.sellToken != self.buyToken)) revert IConditionalOrder.OrderNotValid(InvalidSameToken.selector); - if (!(address(self.sellToken) != address(0) && address(self.buyToken) != address(0))) { - revert IConditionalOrder.OrderNotValid(InvalidToken.selector); - } - if (!(self.partSellAmount > 0)) revert IConditionalOrder.OrderNotValid(InvalidPartSellAmount.selector); - if (!(self.minPartLimit > 0)) revert IConditionalOrder.OrderNotValid(InvalidMinPartLimit.selector); - if (!(self.t0 < type(uint32).max)) revert IConditionalOrder.OrderNotValid(InvalidStartTime.selector); - if (!(self.n > 1 && self.n <= type(uint32).max)) { - revert IConditionalOrder.OrderNotValid(InvalidNumParts.selector); - } - if (!(self.t > 0 && self.t <= 365 days)) revert IConditionalOrder.OrderNotValid(InvalidFrequency.selector); - if (!(self.span <= self.t)) revert IConditionalOrder.OrderNotValid(InvalidSpan.selector); + require(self.sellToken != self.buyToken, IConditionalOrder.OrderNotValid(InvalidSameToken.selector)); + require( + address(self.sellToken) != address(0) && address(self.buyToken) != address(0), + IConditionalOrder.OrderNotValid(InvalidToken.selector) + ); + require(self.partSellAmount > 0, IConditionalOrder.OrderNotValid(InvalidPartSellAmount.selector)); + require(self.minPartLimit > 0, IConditionalOrder.OrderNotValid(InvalidMinPartLimit.selector)); + require(self.t0 < type(uint32).max, IConditionalOrder.OrderNotValid(InvalidStartTime.selector)); + require(self.n > 1 && self.n <= type(uint32).max, IConditionalOrder.OrderNotValid(InvalidNumParts.selector)); + require(self.t > 0 && self.t <= 365 days, IConditionalOrder.OrderNotValid(InvalidFrequency.selector)); + require(self.span <= self.t, IConditionalOrder.OrderNotValid(InvalidSpan.selector)); } /**