ErgoTree Functions#
This page is a WIP. Please see ErgoTree.pdf for full details.
Code | Mnemonic | Description | Description |
---|---|---|---|
115 | ConstantPlaceholder | Int => T | Create special ErgoTree node which can be replaced by constant with given id. |
116 | SubstConstants | Coll[Byte], Coll[Int], Coll[T] => Coll[Byte] | ... |
122 | LongToByteArray | Long => Coll[Byte] | Converts Long value to big-endian bytes representation. |
123 | ByteArrayToBigInt | Coll[Byte] => BigInt | Convert big-endian bytes representation (Coll[Byte]) to BigInt value. |
124 | ByteArrayToLong | Coll[Byte] => Long | Convert big-endian bytes representation (Coll[Byte]) to Long value. |
125 | Downcast | (T => R) | Cast this numeric value to a smaller type (e.g. Long to Int). Throws exception if overflow. |
126 | Upcast | (T => R) | Cast this numeric value to a bigger type (e.g. Int to Long) |
140 | SelectField | (T, Byte => R) | Select tuple field by its 1-based index. E.g. input._1 is transformed to SelectField(input, 1 |
143 | LT | T, T => Boolean | Returns true is the left operand is less then the right operand, false otherwise. |
144 | LE | T, T => Boolean | Returns true is the left operand is less then or equal to the right operand, false otherwise. |
145 | GT | T, T => Boolean | Returns true is the left operand is greater then the right operand, false otherwise. |
146 | GE | T, T => Boolean | Returns true is the left operand is greater then or equal to the right operand, false otherwise. |
147 | EQ | T, T => Boolean | Compare equality of left and right arguments |
148 | NEQ | T, T => Boolean | Compare inequality of left and right arguments |
149 | If | Boolean, T, T => T | Compute condition, if true then compute trueBranch else compute falseBranch |
150 | AND | Coll[Boolean] => Boolean | Returns true if \emph{all the elements in collection are true. |
151 | OR | Coll[Boolean] => Boolean | Returns true if \emph{any the elements in collection are true. |
152 | AtLeast | Int, Coll[SigmaProp] => SigmaProp | ... |
153 | Minus | T, T => T | Returns a result of subtracting second numeric operand from the first. |
154 | Plus | T, T => T | Returns a sum of two numeric operands |
155 | Xor | Coll[Byte], Coll[Byte] => Coll[Byte] | Byte-wise XOR of two collections of bytes |
156 | Multiply | T, T => T | Returns a multiplication of two numeric operands |
157 | Division | T, T => T | Integer division of the first operand by the second operand. |
158 | Modulo | T, T => T | Reminder from division of the first operand by the second operand. |
161 | Min | T, T => T | Minimum value of two operands. |
162 | Max | T, T => T | Maximum value of two operands. |
182 | CreateAvlTree | (Byte, Coll[Byte], Int, Option[Int] => AvlTree | Construct a new authenticated dictionary with given parameters and tree root digest. |
183 | TreeLookup | (AvlTree, Coll[Byte], Coll[Byte] => Option[Coll[Byte]] | |
203 | CalcBlake2b256 | (Coll[Byte] => Coll[Byte] | Calculate Blake2b hash from input bytes. |
204 | CalcSha256 | (Coll[Byte] => Coll[Byte] | Calculate Sha256 hash from input bytes. |
205 | CreateProveDlog | GroupElement => SigmaProp | ErgoTree operation to create a new SigmaProp value representing public key of discrete logarithm signature protocol. |
206 | CreateProveDHTuple | GroupElement, GroupElement, GroupElement, GroupElement => SigmaProp | ErgoTree operation to create a new SigmaProp value representing public key of Diffie Hellman signature protocol. Common input: (g,h,u,v) |
209 | BoolToSigmaProp | (Boolean => SigmaProp) | ... |
212 | DeserializeContext | (Byte => T) | ... |
213 | DeserializeRegister | (Byte, Option[T] => T | ... |
218 | Apply | (T) => R, T => R | Apply the function to the arguments. |
227 | GetVar | (Byte => Option[T]) | Get context variable with given varId and type. |
234 | SigmaAnd | (Coll[SigmaProp] => SigmaProp) | Returns sigma proposition which is proven when \emph{all the elements in collection are proven. |
235 | SigmaOr | (Coll[SigmaProp] => SigmaProp) | Returns sigma proposition which is proven when \emph{any of the elements in collection is proven. |
236 | BinOr | (Boolean, Boolean) => Boolean | Logical OR of two operands |
237 | BinAnd | (Boolean, Boolean) => Boolean | Logical AND of two operands |
238 | DecodePoint | Coll[Byte] => GroupElement | Convert Coll[Byte] to GroupElement using GroupElementSerializer |
239 | LogicalNot | Boolean => Boolean | Logical NOT operation. Returns true if input is falseand falseif input is true. |
240 | Negation | (T => T) | Negates numeric value x by returning -x. |
241 | BitInversion | (T => T) | Invert every bit of the numeric value. |
242 | BitOr | (T, T) => T | Bitwise OR of two numeric operands. |
243 | BitAnd | (T, T) => T | Bitwise AND of two numeric operands. |
244 | BinXor | (Boolean, Boolean => Boolean) | Logical XOR of two operands |
245 | BitXor | (T, T) => T | Bitwise XOR of two numeric operands. |
246 | BitShiftRight | (T, T) => T | Right shift of bits. |
247 | BitShiftLeft | (T, T) => T | Left shift of bits. |
248 | BitShiftRightZeroed | (T, T) => T | Right shift of bits. |
255 | XorOf | (Coll[Boolean] => Boolean) | Similar to allOf, but performing logical XOR operation between all conditions instead of |