diff --git a/contracts/exchange/contracts/src/MixinTransactions.sol b/contracts/exchange/contracts/src/MixinTransactions.sol index 2228b1517b..28b00948b7 100644 --- a/contracts/exchange/contracts/src/MixinTransactions.sol +++ b/contracts/exchange/contracts/src/MixinTransactions.sol @@ -129,6 +129,7 @@ contract MixinTransactions is bytes32 transactionHash ) internal + view { // Check transaction is not expired // solhint-disable-next-line not-rely-on-time diff --git a/contracts/exchange/contracts/test/TestTransactions.sol b/contracts/exchange/contracts/test/TestTransactions.sol index af0bb93e73..c0637ddfbb 100644 --- a/contracts/exchange/contracts/test/TestTransactions.sol +++ b/contracts/exchange/contracts/test/TestTransactions.sol @@ -53,6 +53,20 @@ contract TestTransactions is return _getCurrentContextAddress(); } + function assertExecutableTransaction( + LibZeroExTransaction.ZeroExTransaction memory transaction, + bytes memory signature + ) + public + view + { + return _assertExecutableTransaction( + transaction, + signature, + transaction.getTypedDataHash(EIP712_EXCHANGE_DOMAIN_HASH) + ); + } + // This function will execute arbitrary calldata via a delegatecall. This is highly unsafe to use in production, and this // is only meant to be used during testing. function executable(