Skip to content

Releases: ergoplatform/sigma-rust

v0.20.0

07 Sep 09:31
ergo-lib-v0.20.0
1a4282d
Compare
Choose a tag to compare

[0.20.0] - 2022-09-07

Changed

  • increase max tokens allowed in a box to 122 #616;

Added

  • Transaction::verify_p2pk_input for P2PK inputs verification #613;
  • Constant::to_js and from_js arbitrary JS type to Constant conversion 614;
  • add IP v6 support in PeerAddr::as_http_url #617;

v0.19.0

08 Aug 13:50
ergo-lib-v0.19.0
5ce69a3
Compare
Choose a tag to compare

[0.19.0] - 2022-08-08

Changed (BREAKING)

  • only allow explicit token burning in TxBuilder and add token preservation check #603;
  • remove min_value_change parameter in TxBuilder::new and add coin preservation check #605;

Changed

  • fix distributed signing in case a script reduces to true #609;
  • fix AtLeast handling in the prover #598;
  • improve error messages for constant value parsing from JSON (box registers) #600.

v0.18.0

14 Jul 06:31
ergo-lib-v0.18.0
b922854
Compare
Choose a tag to compare

[0.18.0] - 2022-07-14

Added

  • add Address::content_bytes() in Wasm API #582;

Changed

  • fix peer_discovery() in Chrome #584;
  • fix accidental token burn in change box in box selection process #591

v0.17.0

04 Jun 05:01
ergo-lib-v0.17.0
18e05ce
Compare
Choose a tag to compare

[0.17.0] - 2022-06-04

Added

  • Swift bindings for MnemonicGenerator #573;
  • JSON encoding for TransactionHintsBag type hierarchy #577;

Changed

  • eliminate TransactionContext::get_boxes_to_spend() and introduce TransactionContext::get_input_box(box_id: BoxId) -> Option<ErgoBox> #574;
  • move Header type from ergotree-ir to ergo-chain-types #572;
  • fix JSON encoding for no tokens (empty array); #578;

v0.16.1

04 May 06:37
ergo-lib-v0.16.1
52d6b31
Compare
Choose a tag to compare

[0.16.1] - 2022-05-04

Changed

  • Convert vendored dependencies of ergo-rest into sub-modules #571;

v0.16.0

29 Apr 10:04
ergo-lib-v0.16.0
77efd67
Compare
Choose a tag to compare

[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/from TokenId(Digest32) conversion #557;
  • TxBuilder::set_context_extension to set a ContextExtension 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

08 Mar 15:47
fd49516
Compare
Choose a tag to compare

Changed

  • Construct ErgoStateContext using last block headers #450;

Added

  • AvlTree.remove #436;
  • AvlTree.update #443;
  • ReducedTransaction implementation according to EIP-19 #442
  • AvlTree.get and AvlTree.getMany #445;
  • AvlTree.contains [#437] (#437);
  • LastBlockUtxoRootHash #452;
  • ExtPubKey and DerivationPath 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] and BigInt 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 in Append and Slice 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

07 Oct 11:15
75ff927
Compare
Choose a tag to compare

[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() for BoxValue and TokenAmount in Wasm #387;
  • Constant::sigma_serialize_bytes(), ContextExtension::sigma_serialize_bytes() in Wasm #387;
  • TokenId::as_bytes() and BoxId::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() (along to_json()) that encodes JSON according to EIP-12 (similar to JSON by to_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 and to_i64_str_array for Coll[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_boxto Wasm API #397;

Changed(BREAKING!):

  • WASM to_json() returns string (instead of JsValue) to avoid silent accuracy loss on JS object -> text conversion on JS side #346;
  • SigmaSerializable:sigma_serialize_bytes made failible (returns Result) #328;
  • ErgoBox::new, from_box_candidate made failible (returns Result) #328;
  • ErgoTree::new, template_bytes, to_base16_bytes made failible (returns Result) #328;
  • Transaction::new made failible (returns Result) #328;
  • WASM ErgoBox::new, byte_to_sign made failible (returns Result) #328;
  • WASM ErgoTree::to_bytes, to_base16_bytes made failible (returns Result) #328;
  • ErgoTree::to_bytes() renamed to ErgoTree::sigma_serialize_bytes() in Wasm #387;
  • ErgoBox and other types that it uses moved to ergotree_ir crate and re-exported in ergo_lib::ergotree_ir #397;

Changed

  • Switched to ThreadRng CSPRNG for source of randomness in sigma protocol #315;
  • SigmaSerializable:sigma_serialize errors are extended beyond io::Error #328;
  • ergotree-ir::mir::constant::constant_placeholder module is public;
  • ErgoTree::set_constant is removed in favor of ErgoTree::with_constant with an added check for matching constant type#323;
  • Eliminate and ban panics (unwrap, panic!, todo!, etc) in sigma-ser, ergotree-ir and ergotree-interpreter crates #328, #344;

v0.13.3

11 Jun 13:01
ergo-lib-v0.13.3
f8ccc70
Compare
Choose a tag to compare

[0.13.3] - 2021-06-11

Added

  • Implement CalcSha256 op for byte arrays #303;

Fixes

  • Parsing of UnsignedTransaction from JSON #304;

v0.13.2

09 Jun 14:57
ergo-lib-v0.13.2
7c8c320
Compare
Choose a tag to compare

[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 in sigma_ser crate #284;

Fixed

  • change MINER_PUBKEY type to Coll[Byte] #291;
  • Make BigInt arithmetic ops check for 256-bit overflow #294;
  • Fix numeric negation to give an error on overflow #294;