packages/resolver/solidity/AssertBytes32.sol
//SPDX-License-Identifier: MIT
pragma solidity >= 0.4.15 < 0.9.0;
library AssertBytes32 {
// Constant: BYTES32_NULL
// The null bytes32: 0
bytes32 constant BYTES32_NULL = 0x0;
bytes1 constant MINUS = bytes1('-');
/*
Event: TestEvent
Fired when an assertion is made.
Params:
result (bool) - Whether or not the assertion holds.
message (string) - A message to display if the assertion does not hold.
*/
event TestEvent(bool indexed result, string message);
// ************************************** bytes32 **************************************
/*
Function: equal(bytes32)
Assert that two 'bytes32' are equal.
: A == B
Params:
A (bytes32) - The first 'bytes32'.
B (bytes32) - The second 'bytes32'.
message (string) - A message that is sent if the assertion fails.
Returns:
result (bool) - The result.
*/
function equal(bytes32 a, bytes32 b, string memory message) public returns (bool result) {
result = (a == b);
_report(result, message);
}
/*
Function: notEqual(bytes32)
Assert that two 'bytes32' are not equal.
: A != B
Params:
A (bytes32) - The first 'bytes32'.
B (bytes32) - The second 'bytes32'.
message (string) - A message that is sent if the assertion fails.
Returns:
result (bool) - The result.
*/
function notEqual(bytes32 a, bytes32 b, string memory message) public returns (bool result) {
result = (a != b);
_report(result, message);
}
/*
Function: isZero(bytes32)
Assert that a 'bytes32' is zero.
: bts == BYTES32_NULL
Params:
bts (bytes32) - The 'bytes32'.
message (string) - A message that is sent if the assertion fails.
Returns:
result (bool) - The result.
*/
function isZero(bytes32 bts, string memory message) public returns (bool result) {
result = (bts == BYTES32_NULL);
_report(result, message);
}
/*
Function: isNotZero(bytes32)
Assert that a 'bytes32' is not zero.
: bts != BYTES32_NULL
Params:
bts (bytes32) - The 'bytes32'.
message (string) - A message that is sent if the assertion fails.
Returns:
result (bool) - The result.
*/
function isNotZero(bytes32 bts, string memory message) public returns (bool result) {
result = (bts != BYTES32_NULL);
_report(result, message);
}
/******************************** internal ********************************/
/*
Function: _report
Internal function for triggering <TestEvent>.
Params:
result (bool) - The test result (true or false).
message (string) - The message that is sent if the assertion fails.
*/
function _report(bool result, string memory message) internal {
if(result)
emit TestEvent(true, "");
else
emit TestEvent(false, message);
}
}