diff --git a/.gitignore b/.gitignore index 85198aa..408b2b2 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,9 @@ cache/ out/ +# OS file +.DS_Store + # Ignores development broadcast logs !/broadcast /broadcast/*/31337/ diff --git a/src/AssertWrapper.sol b/src/AssertWrapper.sol index 45f00a2..23711b9 100644 --- a/src/AssertWrapper.sol +++ b/src/AssertWrapper.sol @@ -59,4 +59,34 @@ abstract contract AssertWrapper is AssertHelper { function t(bool a, string memory message) internal { assertWithMsg(a, message); } + + function assertErrorsAllowed(bytes4 errorSelector, bytes4[] memory allowedErrors, string memory message) private { + bool allowed = false; + for (uint256 i = 0; i < allowedErrors.length; i++) { + if (errorSelector == allowedErrors[i]) { + allowed = true; + } else { + allowed = false; + } + if (!allowed) break; + } + t(allowed, message); + } + + function assertErrorsAllowedMultiMsg(bytes4 errorSelector, bytes4[] memory allowedErrors, string[] memory message) private { + bool allowed = false; + uint256 errorIndex = 0; + for (uint256 i = 0; i < allowedErrors.length; i++) { + if (errorSelector == allowedErrors[i]) { + allowed = true; + } else { + allowed = false; + } + if (!allowed) { + errorIndex = i; + break; + } + } + t(allowed, message[errorIndex]); + } }