Skip to content

Releases: scalus3/scalus

v0.15.1

13 Feb 17:13

Choose a tag to compare

Release Notes

Added

  • Merkle Patricia Forestry data structure for on-chain Merkle proofs
  • variadic log function with auto-show for trace diagnostics
  • offsetOf[A] compile-time macro for case class field indices
  • BuiltinList pattern matching and optional Nil branch in CaseList
  • (con value ...) syntax support in UPLC parser/printer
  • Future/Scenario conversion and EmulatorBase API

Changed

  • simplified Scenario and ContractScalaCheckCommands APIs
  • updated MaryEraValue builtin cost models to match Plutus 1.58.0.0 reference
  • extracted dependency versions into build.sbt variables and bumped dependencies

Fixed

  • count native reference scripts towards minFee calculation
  • use Timelock.toCbor for native ref script size instead of Cbor.encode(Script)
  • account for sponsor VKey witness in fee estimation
  • handle exceptions in Scenario monad and filter extra VKey witnesses in TxBuilder.sign
  • filter auction UTxO by NFT asset to prevent spam UTxO attacks
  • fix MaryEraValue builtins and pool retirement validation

Documentation

Contributors

@nau
@nau
@rssh
@rssh
@sae3023
@sae3023

v0.15.0

11 Feb 22:19

Choose a tag to compare

Release Notes

Added

  • all new builtins for protocol version 11 hard fork
  • JavaScript Emulator support for cross-platform testing
  • HD wallet implementation with BIP-39 mnemonic, BIP32-Ed25519 key derivation, and CIP-1852 account
  • Conway era ledger state rules: DELEG and POOL transitions for stake delegation and pool
    registration management
  • TxBuilder.draft method for unbalanced transaction assembly
  • txBuilder function with CardanoInfo context parameter
  • type-safe UtxoQuery DSL with parallel execution and rate limiting for UTxO queries
  • Transaction.scriptContexts extension method for easier script context access
  • MaryEraValue support (CIP-0153)
  • expModInteger builtin (CIP-109) for modular exponentiation
  • bls12_381_G1_multiScalarMul and bls12_381_G2_multiScalarMul builtins (CIP-0109)
  • g1 and g2 string interpolators for BLS12-381 elements
  • use dropList for case class field selection at index >= 2 on PlutusV4
  • Pretty typeclass with automatic derivation for ADTs and Cardano ledger types
  • Eq.derived for automatic equality typeclass derivation
  • design patterns documentation: Merkelized Validators, Parameter Validation, OptimizedPaymentSplitter
  • Crowdfunding, English Auction, Lottery, and PriceBet smart contract examples
  • multi-environment integration testing infrastructure with Yaci DevKit consolidation
  • comprehensive scalus-testkit API with EvalTestKit and ScalusTest base classes
  • Output type alias for TransactionOutput
  • fetchScript method to retrieve scripts from Blockfrost
  • 5 ADA threshold for collateral return optimization

Changed

  • reorganized package structure - scalus.builtin types and scalus.prelude moved to new locations
  • Compile and Ignore annotations moved to scalus.compiler package
  • Validator traits moved from prelude to v3 package
  • Provider deprecated in favor of BlockchainProvider
  • simplified BlockfrostProvider API with platform-specific backends
  • BLS12-381 classes moved to scalus.uplc.builtin.bls12_381 package with shorter names
  • optimized toData for constant ByteString, String, Boolean, and Integer values
  • optimized mkNilData builtin to constant
  • optimized Eq.derived to use direct field access
  • improved PlutusV3 match lowering to reduce script size
  • renamed __z_combinator to __Z
  • deprecated Contract trait
  • removed deprecated code from 0.12.x

Fixed

  • suppress false warnings for type tests on enum variants
  • handle inline accessors in compiler plugin
  • ensure error messages appear in UPLC traces
  • ByteString now extends Serializable
  • security improvements for example validators: AuctionValidator, BettingValidator, Crowdfunding,
    VaultValidator, VestingValidator
  • use Conway-style certificates for script-based stake registration
  • platform-specific modPow for Scala.js and Scala Native compatibility

Documentation

Contributors

@nau
@nau
@rssh
@rssh
@sae3023
@sae3023
@roman-hulenko
@roman-hulenko
@sergey-scherbina
@sergey-scherbina
@fernweh0
@fernweh0

Integration tests data

21 Oct 11:27
e0be57b

Choose a tag to compare

Pre-release

Data files for integration tests