29个版本 (破坏性更新)
0.28.0 | 2024年8月9日 |
---|---|
0.27.1 | 2023年12月2日 |
0.26.0 | 2023年10月13日 |
0.24.0 | 2023年5月12日 |
0.8.0 | 2021年3月22日 |
#104 in 编程语言
415 每月下载量
用于 15 个crate(6 个直接使用)
1MB
21K SLoC
特性
- ErgoTree 类型、值、IR 节点定义;
- ErgoTree IR 节点序列化;
ErgoTree IR 节点应用;
操作描述可以在 ErgoTree 规范 中找到。
尚未实现的操作
对象属性和方法
SigmaProp
- isProven
已实现的操作(IR 节点)
通用
- 块(
BlockValue
); - 变量定义(
ValDef,
ValUse
); - 函数定义(
FuncValue
); - 函数应用(
Apply
); - 元组字段访问
- 'If' 条件语句
操作
- 比较:
>, <, =, ==!=
; - 算术:
+, -, *, /, %
; - 逻辑:
&&, ||
; - | (位或);
- & (位与);
- ^ (位异或);
|
(两个字节数组的按字节异或) #296;- 一元
!
; - 一元
-
; - ^(逻辑异或);
- 一元
~
(位反转);
预定义函数
- 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
对象属性和方法
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
依赖
~10-14MB
~298K SLoC