From f2a9c1ce388bcf4e7dcede0b826a95437b03a9ec Mon Sep 17 00:00:00 2001 From: Antonio Gabriel Date: Thu, 13 Jun 2024 09:51:27 -0300 Subject: [PATCH 1/2] optimization of assertmsg sender --- src/helpers/HelperAssert.sol | 114 ++++++----------------------------- 1 file changed, 17 insertions(+), 97 deletions(-) diff --git a/src/helpers/HelperAssert.sol b/src/helpers/HelperAssert.sol index 34638e7..c9b6b35 100644 --- a/src/helpers/HelperAssert.sol +++ b/src/helpers/HelperAssert.sol @@ -22,6 +22,10 @@ abstract contract HelperAssert is HelperBase { } } + function createErrorMessage(string memory aStr, string memory bStr, string memory operator, string memory reason) private pure returns (bytes memory) { + return bytes(abi.encodePacked("Invalid: ", aStr, operator, bStr, ", reason: ", reason)); + } + /// @notice asserts that a is equal to b. Violations are logged using reason. function eq( uint256 a, @@ -31,14 +35,7 @@ abstract contract HelperAssert is HelperBase { if (a != b) { string memory aStr = FuzzLibString.toString(a); string memory bStr = FuzzLibString.toString(b); - bytes memory assertMsg = abi.encodePacked( - "Invalid: ", - aStr, - "!=", - bStr, - ", reason: ", - reason - ); + bytes memory assertMsg = createErrorMessage(aStr, bStr, "!=", reason); emit AssertEqFail(string(assertMsg)); platform.assertFail(); } @@ -53,15 +50,8 @@ abstract contract HelperAssert is HelperBase { if (a != b) { string memory aStr = FuzzLibString.toString(a); string memory bStr = FuzzLibString.toString(b); - bytes memory assertMsg = abi.encodePacked( - "Invalid: ", - aStr, - "!=", - bStr, - ", reason: ", - reason - ); - emit AssertEqFail(string(assertMsg)); + bytes memory assertMsg = createErrorMessage(aStr, bStr, "!=", reason); + emit AssertEqFail(string(assertMsg)); platform.assertFail(); } } @@ -75,14 +65,7 @@ abstract contract HelperAssert is HelperBase { if (a != b) { string memory aStr = a ? "true" : "false"; string memory bStr = b ? "true" : "false"; - bytes memory assertMsg = abi.encodePacked( - "Invalid: ", - aStr, - "!=", - bStr, - ", reason: ", - reason - ); + bytes memory assertMsg = createErrorMessage(aStr, bStr, "!=", reason); emit AssertEqFail(string(assertMsg)); platform.assertFail(); } @@ -97,14 +80,7 @@ abstract contract HelperAssert is HelperBase { if (a != b) { string memory aStr = FuzzLibString.toString(a); string memory bStr = FuzzLibString.toString(b); - bytes memory assertMsg = abi.encodePacked( - "Invalid: ", - aStr, - "!=", - bStr, - ", reason: ", - reason - ); + bytes memory assertMsg = createErrorMessage(aStr, bStr, "!=", reason); emit AssertEqFail(string(assertMsg)); platform.assertFail(); } @@ -121,14 +97,7 @@ abstract contract HelperAssert is HelperBase { bytes memory bBytes = abi.encodePacked(b); string memory aStr = FuzzLibString.toHexString(aBytes); string memory bStr = FuzzLibString.toHexString(bBytes); - bytes memory assertMsg = abi.encodePacked( - "Invalid: ", - aStr, - "!=", - bStr, - ", reason: ", - reason - ); + bytes memory assertMsg = createErrorMessage(aStr, bStr, "!=", reason); emit AssertEqFail(string(assertMsg)); platform.assertFail(); } @@ -143,14 +112,7 @@ abstract contract HelperAssert is HelperBase { if (a == b) { string memory aStr = FuzzLibString.toString(a); string memory bStr = FuzzLibString.toString(b); - bytes memory assertMsg = abi.encodePacked( - "Invalid: ", - aStr, - "==", - bStr, - ", reason: ", - reason - ); + bytes memory assertMsg = createErrorMessage(aStr, bStr, "==", reason); emit AssertNeqFail(string(assertMsg)); platform.assertFail(); } @@ -165,14 +127,7 @@ abstract contract HelperAssert is HelperBase { if (a == b) { string memory aStr = FuzzLibString.toString(a); string memory bStr = FuzzLibString.toString(b); - bytes memory assertMsg = abi.encodePacked( - "Invalid: ", - aStr, - "==", - bStr, - ", reason: ", - reason - ); + bytes memory assertMsg = createErrorMessage(aStr, bStr, "==", reason); emit AssertNeqFail(string(assertMsg)); platform.assertFail(); } @@ -187,14 +142,7 @@ abstract contract HelperAssert is HelperBase { if (!(a >= b)) { string memory aStr = FuzzLibString.toString(a); string memory bStr = FuzzLibString.toString(b); - bytes memory assertMsg = abi.encodePacked( - "Invalid: ", - aStr, - "<", - bStr, - " failed, reason: ", - reason - ); + bytes memory assertMsg = createErrorMessage(aStr, bStr, "<", reason); emit AssertGteFail(string(assertMsg)); platform.assertFail(); } @@ -209,14 +157,7 @@ abstract contract HelperAssert is HelperBase { if (!(a >= b)) { string memory aStr = FuzzLibString.toString(a); string memory bStr = FuzzLibString.toString(b); - bytes memory assertMsg = abi.encodePacked( - "Invalid: ", - aStr, - "<", - bStr, - " failed, reason: ", - reason - ); + bytes memory assertMsg = createErrorMessage(aStr, bStr, "<", reason); emit AssertGteFail(string(assertMsg)); platform.assertFail(); } @@ -231,14 +172,7 @@ abstract contract HelperAssert is HelperBase { if (!(a > b)) { string memory aStr = FuzzLibString.toString(a); string memory bStr = FuzzLibString.toString(b); - bytes memory assertMsg = abi.encodePacked( - "Invalid: ", - aStr, - "<=", - bStr, - " failed, reason: ", - reason - ); + bytes memory assertMsg = createErrorMessage(aStr, bStr, "<=", reason); emit AssertGtFail(string(assertMsg)); platform.assertFail(); } @@ -319,14 +253,7 @@ abstract contract HelperAssert is HelperBase { if (!(a < b)) { string memory aStr = FuzzLibString.toString(a); string memory bStr = FuzzLibString.toString(b); - bytes memory assertMsg = abi.encodePacked( - "Invalid: ", - aStr, - ">=", - bStr, - " failed, reason: ", - reason - ); + bytes memory assertMsg = createErrorMessage(aStr, bStr, ">=", reason); emit AssertLtFail(string(assertMsg)); platform.assertFail(); } @@ -341,14 +268,7 @@ abstract contract HelperAssert is HelperBase { if (!(a < b)) { string memory aStr = FuzzLibString.toString(a); string memory bStr = FuzzLibString.toString(b); - bytes memory assertMsg = abi.encodePacked( - "Invalid: ", - aStr, - ">=", - bStr, - " failed, reason: ", - reason - ); + bytes memory assertMsg = createErrorMessage(aStr, bStr, ">=", reason); emit AssertLtFail(string(assertMsg)); platform.assertFail(); } From 894b3e7b0ea21b9a78c30aad2ae7c4dd9e38892b Mon Sep 17 00:00:00 2001 From: Antonio Gabriel Date: Fri, 14 Jun 2024 10:39:42 -0300 Subject: [PATCH 2/2] small changes --- src/helpers/HelperAssert.sol | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/src/helpers/HelperAssert.sol b/src/helpers/HelperAssert.sol index c9b6b35..0541963 100644 --- a/src/helpers/HelperAssert.sol +++ b/src/helpers/HelperAssert.sol @@ -22,10 +22,6 @@ abstract contract HelperAssert is HelperBase { } } - function createErrorMessage(string memory aStr, string memory bStr, string memory operator, string memory reason) private pure returns (bytes memory) { - return bytes(abi.encodePacked("Invalid: ", aStr, operator, bStr, ", reason: ", reason)); - } - /// @notice asserts that a is equal to b. Violations are logged using reason. function eq( uint256 a, @@ -35,7 +31,7 @@ abstract contract HelperAssert is HelperBase { if (a != b) { string memory aStr = FuzzLibString.toString(a); string memory bStr = FuzzLibString.toString(b); - bytes memory assertMsg = createErrorMessage(aStr, bStr, "!=", reason); + bytes memory assertMsg = createAssertFailMessage(aStr, bStr, "!=", reason); emit AssertEqFail(string(assertMsg)); platform.assertFail(); } @@ -50,7 +46,7 @@ abstract contract HelperAssert is HelperBase { if (a != b) { string memory aStr = FuzzLibString.toString(a); string memory bStr = FuzzLibString.toString(b); - bytes memory assertMsg = createErrorMessage(aStr, bStr, "!=", reason); + bytes memory assertMsg = createAssertFailMessage(aStr, bStr, "!=", reason); emit AssertEqFail(string(assertMsg)); platform.assertFail(); } @@ -65,7 +61,7 @@ abstract contract HelperAssert is HelperBase { if (a != b) { string memory aStr = a ? "true" : "false"; string memory bStr = b ? "true" : "false"; - bytes memory assertMsg = createErrorMessage(aStr, bStr, "!=", reason); + bytes memory assertMsg = createAssertFailMessage(aStr, bStr, "!=", reason); emit AssertEqFail(string(assertMsg)); platform.assertFail(); } @@ -80,7 +76,7 @@ abstract contract HelperAssert is HelperBase { if (a != b) { string memory aStr = FuzzLibString.toString(a); string memory bStr = FuzzLibString.toString(b); - bytes memory assertMsg = createErrorMessage(aStr, bStr, "!=", reason); + bytes memory assertMsg = createAssertFailMessage(aStr, bStr, "!=", reason); emit AssertEqFail(string(assertMsg)); platform.assertFail(); } @@ -97,7 +93,7 @@ abstract contract HelperAssert is HelperBase { bytes memory bBytes = abi.encodePacked(b); string memory aStr = FuzzLibString.toHexString(aBytes); string memory bStr = FuzzLibString.toHexString(bBytes); - bytes memory assertMsg = createErrorMessage(aStr, bStr, "!=", reason); + bytes memory assertMsg = createAssertFailMessage(aStr, bStr, "!=", reason); emit AssertEqFail(string(assertMsg)); platform.assertFail(); } @@ -112,7 +108,7 @@ abstract contract HelperAssert is HelperBase { if (a == b) { string memory aStr = FuzzLibString.toString(a); string memory bStr = FuzzLibString.toString(b); - bytes memory assertMsg = createErrorMessage(aStr, bStr, "==", reason); + bytes memory assertMsg = createAssertFailMessage(aStr, bStr, "==", reason); emit AssertNeqFail(string(assertMsg)); platform.assertFail(); } @@ -127,7 +123,7 @@ abstract contract HelperAssert is HelperBase { if (a == b) { string memory aStr = FuzzLibString.toString(a); string memory bStr = FuzzLibString.toString(b); - bytes memory assertMsg = createErrorMessage(aStr, bStr, "==", reason); + bytes memory assertMsg = createAssertFailMessage(aStr, bStr, "==", reason); emit AssertNeqFail(string(assertMsg)); platform.assertFail(); } @@ -142,7 +138,7 @@ abstract contract HelperAssert is HelperBase { if (!(a >= b)) { string memory aStr = FuzzLibString.toString(a); string memory bStr = FuzzLibString.toString(b); - bytes memory assertMsg = createErrorMessage(aStr, bStr, "<", reason); + bytes memory assertMsg = createAssertFailMessage(aStr, bStr, "<", reason); emit AssertGteFail(string(assertMsg)); platform.assertFail(); } @@ -157,7 +153,7 @@ abstract contract HelperAssert is HelperBase { if (!(a >= b)) { string memory aStr = FuzzLibString.toString(a); string memory bStr = FuzzLibString.toString(b); - bytes memory assertMsg = createErrorMessage(aStr, bStr, "<", reason); + bytes memory assertMsg = createAssertFailMessage(aStr, bStr, "<", reason); emit AssertGteFail(string(assertMsg)); platform.assertFail(); } @@ -172,7 +168,7 @@ abstract contract HelperAssert is HelperBase { if (!(a > b)) { string memory aStr = FuzzLibString.toString(a); string memory bStr = FuzzLibString.toString(b); - bytes memory assertMsg = createErrorMessage(aStr, bStr, "<=", reason); + bytes memory assertMsg = createAssertFailMessage(aStr, bStr, "<=", reason); emit AssertGtFail(string(assertMsg)); platform.assertFail(); } @@ -253,7 +249,7 @@ abstract contract HelperAssert is HelperBase { if (!(a < b)) { string memory aStr = FuzzLibString.toString(a); string memory bStr = FuzzLibString.toString(b); - bytes memory assertMsg = createErrorMessage(aStr, bStr, ">=", reason); + bytes memory assertMsg = createAssertFailMessage(aStr, bStr, ">=", reason); emit AssertLtFail(string(assertMsg)); platform.assertFail(); } @@ -268,7 +264,7 @@ abstract contract HelperAssert is HelperBase { if (!(a < b)) { string memory aStr = FuzzLibString.toString(a); string memory bStr = FuzzLibString.toString(b); - bytes memory assertMsg = createErrorMessage(aStr, bStr, ">=", reason); + bytes memory assertMsg = createAssertFailMessage(aStr, bStr, ">=", reason); emit AssertLtFail(string(assertMsg)); platform.assertFail(); } @@ -374,4 +370,9 @@ abstract contract HelperAssert is HelperBase { } t(allowed, messages[passIndex]); } + + function createAssertFailMessage(string memory aStr, string memory bStr, string memory operator, string memory reason)internal pure returns (bytes memory) { + return bytes(abi.encodePacked("Invalid: ", aStr, operator, bStr, ", reason: ", reason)); + } + }