All comparison operations return ebool. Equality checks (eq, ne) work on all encrypted types including eaddress. Ordering checks (lt, lte, gt, gte) and min/max work on euint8 | euint16 | euint32 | euint64 | euint128.
Equality
ebool isEqual = FHE.eq(a, b);
ebool isEqual = FHE.eq(address1, address2); // eaddress supported
ebool isNotEqual = FHE.ne(a, b);
Ordering
ebool isLess = FHE.lt(a, b);
lte
ebool isLessOrEqual = FHE.lte(a, b);
ebool isGreater = FHE.gt(a, b);
gte
ebool isGreaterOrEqual = FHE.gte(a, b);
Min / Max
min
euint32 minimum = FHE.min(a, b);
max
euint32 maximum = FHE.max(a, b);
Select
Conditionally selects between two encrypted values based on an encrypted boolean. Works on all encrypted types including eaddress.
Use select instead of if/else statements when working with encrypted values. Conditional branching doesn’t work with encrypted data.
euint8 result = FHE.select(condition, a, b);
eaddress result = FHE.select(condition, addr1, addr2);