@@ -105,36 +105,36 @@ Please refer to the table below for a comprehensive list of supported operations
105
105
Note that all functions are supported in both direct function calls and library bindings. However, operator overloading is only supported for the operations listed in the table (solidity please support operator overloading for boolean return types!).
106
106
107
107
<style >
108
- r { color : Red }
109
- o { color : Orange }
110
- g { color : Green }
108
+ r \ { color: Red \ }
109
+ o \ { color: Orange \ }
110
+ g \ { color: Green \ }
111
111
</style >
112
112
113
- | Name | FHE.sol function | Operator | euint8 | euint16 | euint32 | euint64 | euint128 | euint256 | ebool | eaddress |
114
- | -----------------------| ------------------| :--------:| :------:| :-------:| :-------:| :-------:| :--------:| :--------:| :-----:| :--------:|
115
- | Addition | add | + | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <r >✘ | n/a | n/a |
116
- | Subtraction | sub | - | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <r >✘ | n/a | n/a |
117
- | Multiplication | mul | \* | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <r >✘ | <r >✘ | n/a | n/a |
118
- | Bitwise And | and | & | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <r >✘ | <g >✔ | n/a |
119
- | Bitwise Or | or | \| | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <r >✘ | <g >✔ | n/a |
120
- | Bitwise Xor | xor | ^ | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <r >✘ | <g >✔ | n/a |
121
- | Division | div | / | <g >✔ | <g >✔ | <g >✔ | <r >✘ | <r >✘ | <r >✘ | n/a | n/a |
122
- | Remainder | rem | % | <g >✔ | <g >✔ | <g >✔ | <r >✘ | <r >✘ | <r >✘ | n/a | n/a |
123
- | Shift Right | shr | n/a | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <r >✘ | n/a | n/a |
124
- | Shift Left | shl | n/a | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <r >✘ | n/a | n/a |
125
- | Equal | eq | n/a | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <g >✔ |
126
- | Not equal | ne | n/a | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <g >✔ |
127
- | Greater than or equal | gte | n/a | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <r >✘ | n/a | n/a |
128
- | Greater than | gt | n/a | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <r >✘ | n/a | n/a |
129
- | Less than or equal | lte | n/a | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <r >✘ | n/a | n/a |
130
- | Less than | lt | n/a | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <r >✘ | n/a | n/a |
131
- | Min | min | n/a | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <r >✘ | n/a | n/a |
132
- | Max | max | n/a | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <r >✘ | n/a | n/a |
133
- | Not | not | n/a | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <r >✘ | <g >✔ | n/a |
134
- | Select | select | n/a | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <g >✔ |
135
- | Require | req | n/a | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <g >✔ |
136
- | Decrypt | decrypt | n/a | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <g >✔ |
137
- | Seal Output | sealOutput | n/a | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <g >✔ | <g >✔ |
113
+ | Name | FHE.sol function | Operator | euint8 | euint16 | euint32 | euint64 | euint128 | euint256 | ebool | eaddress |
114
+ |-----------------------|------------------|:--------:|:--------- :|:-------- :|:-------- :|:--------- :|:----------- :|:------------- :|:-------- :|:--- --------:|
115
+ | Addition | add | + | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <r> ✘</r > | n/a | n/a |
116
+ | Subtraction | sub | - | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <r> ✘</r > | n/a | n/a |
117
+ | Multiplication | mul | \* | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <r> ✘</r > | <r> ✘</r > | n/a | n/a |
118
+ | Bitwise And | and | & | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <r> ✘</r > | <g > ✔</ g > | n/a |
119
+ | Bitwise Or | or | \| | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <r> ✘</r > | <g > ✔</ g > | n/a |
120
+ | Bitwise Xor | xor | ^ | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <r> ✘</r > | <g > ✔</ g > | n/a |
121
+ | Division | div | / | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <r> ✘</r > | <r> ✘</r > | <r> ✘</r > | n/a | n/a |
122
+ | Remainder | rem | % | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <r> ✘</r > | <r> ✘</r > | <r> ✘</r > | n/a | n/a |
123
+ | Shift Right | shr | n/a | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <r> ✘</r > | n/a | n/a |
124
+ | Shift Left | shl | n/a | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <r> ✘</r > | n/a | n/a |
125
+ | Equal | eq | n/a | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > |
126
+ | Not equal | ne | n/a | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > |
127
+ | Greater than or equal | gte | n/a | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <r> ✘</r > | n/a | n/a |
128
+ | Greater than | gt | n/a | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <r> ✘</r > | n/a | n/a |
129
+ | Less than or equal | lte | n/a | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <r> ✘</r > | n/a | n/a |
130
+ | Less than | lt | n/a | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <r> ✘</r > | n/a | n/a |
131
+ | Min | min | n/a | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <r> ✘</r > | n/a | n/a |
132
+ | Max | max | n/a | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <r> ✘</r > | n/a | n/a |
133
+ | Not | not | n/a | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <r> ✘</r > | <g > ✔</ g > | n/a |
134
+ | Select | select | n/a | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > |
135
+ | Require | req | n/a | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > |
136
+ | Decrypt | decrypt | n/a | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > |
137
+ | Seal Output | sealOutput | n/a | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > | <g > ✔</ g > |
138
138
139
139
:::danger
140
140
At the moment it is not possible to do `ebool result = (lhs == rhs)` and others that return a boolean result. This is because FHE.sol expects a `ebool`, while Solidity only allows overloading to return a regular boolean.
0 commit comments