ergotree-ir

Crates.ioergotree-ir
lib.rsergotree-ir
version0.28.0
sourcesrc
created_at2021-03-03 15:50:29.617252
updated_at2024-08-09 14:44:36.519685
descriptionErgoTree IR, serialization
homepage
repositoryhttps://github.com/ergoplatform/sigma-rust
max_upload_size
id363240
size766,859
Kamal Ahmad (SethDusek)

documentation

README

Latest Version Documentation

Features:

  • ErgoTree types, values, IR nodes definition;
  • ErgoTree IR nodes serialization;

ErgoTree IR

ErgoTree Specification

Descriptions for the operations can be found in ErgoTree Specification

Not yet implemented operations:

Object properties and methods

SigmaProp

  • isProven

Implemented operations (IR nodes):

General

  • Blocks (BlockValue);
  • Variable definition (ValDef, ValUse);
  • Function definition (FuncValue);
  • Function application(Apply);
  • Tuplse field access
  • 'If' conditional

Operations

  • comparison: >, <, >=, <=, ==, !=;
  • arithmetic: +, -, *, /, %;
  • logical: &&, ||;
  • | (bitwise OR);
  • & (bitwise AND);
  • ^ (bitwise XOR);
  • | (byte-wise XOR of two collections of bytes) #296;
  • unary !;
  • unary -;
  • ^ (logical XOR);
  • unary ~ (bit inversion);

Predefined functions

  • longToByteArray
  • byteArrayToBigInt
  • byteArrayToLong
  • upcast
  • allOf
  • anyOf
  • min
  • max
  • blake2b256
  • sha256
  • proveDlog
  • proveDHTuple
  • sigmaProp
  • substConstants
  • executeFromVar
  • executeFromSelfReg
  • getVar
  • allZK
  • anyZK
  • decodePoint
  • groupGenerator #332
  • xorOf #356
  • downcast
  • avlTree
  • treeLookup
  • atLeast

Object properties and methods

GroupElement

SigmaProp

  • propBytes

Box

  • value
  • propositionBytes
  • id
  • creationInfo
  • getReg
  • tokens
  • R0 .. R9
  • bytes
  • bytesWithoutRef

Header

  • id
  • version
  • parentId
  • ADProofsRoot
  • stateRoot
  • transactionsRoot
  • timestamp
  • nBits
  • height
  • extensionRoot
  • minerPk
  • powOnetimePk
  • powNonce
  • powDistance
  • votes

PreHeader

  • version
  • parentId
  • timestamp
  • nBits
  • height
  • minerPk
  • votes

Context

  • dataInputs
  • INPUTS
  • OUTPUTS
  • HEIGHT
  • SELF
  • minerPubKey
  • getVar
  • selfBoxIndex
  • headers
  • preHeader
  • LastBlockUtxoRootHash

AvlTree

  • digest
  • enabledOperations
  • keyLength
  • valueLengthOpt
  • isInsertAllowed
  • isUpdateAllowed
  • isRemoveAllowed
  • updateOperations
  • insert
  • updateDigest
  • contains
  • get
  • getMany
  • update
  • remove

Collection

  • size
  • getOrElse
  • map
  • exists
  • fold
  • forall
  • slice #300
  • filter
  • append #301
  • apply
  • flatMap
  • indexOf
  • zip #329
  • indices #314
  • patch #357
  • updated #358
  • updateMany #359

Option

  • isDefined
  • get
  • getOrElse
  • map #360
  • filter #360
Commit count: 3245

cargo fmt