Releases: ergoplatform/sigma-rust
Releases · ergoplatform/sigma-rust
v0.20.0
v0.19.0
v0.18.0
v0.17.0
v0.16.1
v0.16.0
[0.16.0] - 2022-04-29
Changed
- REST API implementation is hidden behind the
rest
feature flag #554;
Added
- arbitrary message signing and verification #553;
PoPowHeader
type #551;TokenId::from_base64
#555;Constant
to/fromTokenId
(Digest32
) conversion #557;TxBuilder::set_context_extension
to set aContextExtension
for a given input #560;- Serialization for NipopowProof #562;
- WASM/swift bindings for message signing/verifying #564;
- Add SUnit variant of SType #566;
- Node discovery via node's REST API #558;
- Add BatchMerkleProof + PoPow Interlink vector verification #538;
- add ErgoBox::tx_id() and index() in Wasm API #561;
v0.15.0
Changed
- Construct ErgoStateContext using last block headers #450;
Added
AvlTree.remove
#436;AvlTree.update
#443;ReducedTransaction
implementation according to EIP-19 #442AvlTree.get
andAvlTree.getMany
#445;AvlTree.contains
[#437] (#437);LastBlockUtxoRootHash
#452;ExtPubKey
andDerivationPath
with BIP-32,44 and soft derivation support for Ledger #448;- Modulo binary op #460;
treeLookup
predefined function #459;createAvlTree
predefined function #466;ScorexSerializable
, serialization framework of the ergo node #485;Wallet::from_mnemonic
#492;- Peer management for p2p networking #493;
- C/Swift(iOS, macOS) bindings for ergo-lib #468;
- wallet extended secret key derivation #498;
- transaction serialization in Wasm API 506;
- support for
(Int, Int)
,Coll[Coll[Byte]]
,Coll[Int]
andBigInt
types in constant conversion in Wasm API; - mnemonic generation #505;
- arithmetic operations and polynomial interpolation over Galois fields GF(2^192) #496;
- Merkle tree support #521;
- NiPoPoW proof verification #517;
- distributed signatures support #470;
Fixed
- fix
elem_tpe
inAppend
andSlice
evaluation #455 - fix
CollKind::elem_tpe
#457; - fix a bug with self box lookup in TransactionContext and added checks for box resolution in tx inputs and data_inputs #462;
- audit and remove unwraps and panics in ergo-lib #467;
- fix missing ContextExtenion support #458;
- make
BoxSelection::boxes
of non-empty type #471; - check for allowed ops in
Coll.flatMap
lambda #472; - missing
SGlobal.xor
,groupGenerator
method eval #523;
v0.14.0
[0.14.0] - 2021-10-07
Added
Header
properties #433;PreHeader
properties #435;AvlTree
properties #432;AvlTree.insert
#413;SubstConstants
#410;Box.bytesWithoutRef
#409;Downcast
#408;Address::P2SH
support #407;Context.selfBoxIndex
#405;- Ensure JSON parsing for explorer API #398;
Box.bytes
#390;- add (Coll[Byte], Coll[Byte]) and (Long, Long) support for Constant conversion in JS #386;
- add
ErgoBox::serialized_additional_registers()
in Wasm #387; - add
Transaction::from_unsigned_tx()
to construct from unsigned tx + proofs #387; - extract distinct token ids on tx serialization and expose as
UnsignedTransaction::distinct_token_ids()
in Wasm #387; - add
to_bytes()
forBoxValue
andTokenAmount
in Wasm #387; Constant::sigma_serialize_bytes()
,ContextExtension::sigma_serialize_bytes()
in Wasm #387;TokenId::as_bytes()
andBoxId::as_bytes()
in Wasm #387;- add (Coll[Byte], Coll[Byte]) and (Long, Long) support for Constant conversion in JS #386;
- Serialization for
SigmaBoolean
types #341; - Diffie-Hellman tuples support in sigma protocol #315;
Coll.zip
#350;BigInt256
256-bit BigInt #325;- Logical XOR #349;
groupGenerator
global variable #340;GroupElement.getEncoded
method for GroupElement #335;Negate
IR node for GroupElement #334;Exponentiate
IR node for GroupElement #321;- WASM
to_js_eip12()
(alongto_json()
) that encodes JSON according to EIP-12 (similar to JSON byto_json()
, but box value and token amount encodes as strings to avoid accuracy loss in JS) #346; Coll.slice
#309;- Byte-wise XOR for byte arrays #310;
Constant::from_i64_str_array
andto_i64_str_array
forColl[Long]
encoding #311;Coll.append
#308;MultiplyGroup
IR node for GroupElement #316;SubstConst
IR node and serialization [#318] (#318);- Better Debug print for EC point #319;
Constant::from_ecpoint_bytes
to Wasm API #324;Constant::to/from_ergo_box
to Wasm API #397;
Changed(BREAKING!):
- WASM
to_json()
returns string (instead ofJsValue
) to avoid silent accuracy loss on JS object -> text conversion on JS side #346; SigmaSerializable:sigma_serialize_bytes
made failible (returnsResult
) #328;ErgoBox::new
,from_box_candidate
made failible (returnsResult
) #328;ErgoTree::new
,template_bytes
,to_base16_bytes
made failible (returnsResult
) #328;Transaction::new
made failible (returnsResult
) #328;- WASM
ErgoBox::new
,byte_to_sign
made failible (returnsResult
) #328; - WASM
ErgoTree::to_bytes
,to_base16_bytes
made failible (returnsResult
) #328; ErgoTree::to_bytes()
renamed toErgoTree::sigma_serialize_bytes()
in Wasm #387;ErgoBox
and other types that it uses moved toergotree_ir
crate and re-exported inergo_lib::ergotree_ir
#397;
Changed
- Switched to
ThreadRng
CSPRNG for source of randomness in sigma protocol #315; SigmaSerializable:sigma_serialize
errors are extended beyondio::Error
#328;ergotree-ir::mir::constant::constant_placeholder
module is public;ErgoTree::set_constant
is removed in favor ofErgoTree::with_constant
with an added check for matching constant type#323;- Eliminate and ban panics (unwrap, panic!, todo!, etc) in
sigma-ser
,ergotree-ir
andergotree-interpreter
crates #328, #344;
v0.13.3
v0.13.2
[0.13.2] - 2021-06-09
Added
- AND, OR conjecture support in sigma protocol #226;
- Support for ErgoTree header v1 with tree size #281;
- Add support for explorer v1 JSON format parsing for
BlockHeader::votes
#285; - Add bitwise binary operators (&|^) #290;
Changed
- make
ergotree_ir::serialization::constant_store
module public; Peekable
trait is removed insigma_ser
crate #284;