Release Notes - v0.4.0
Este contenido aún no está disponible en español.
v0.4.0 (August 25, 2026)
Section titled “v0.4.0 (August 25, 2026)”Title: Make constructor tags variant-aware and strengthen dependency safety
Date: August 25, 2026
Version: v0.4.0
This release introduces variant-aware constructor tags with public API and runtime changes, alongside upstream validation and malformed data handling, dependency hardening, and formatting cleanup.
✨ What’s New
Section titled “✨ What’s New”This release gives downstream Go callers explicit control over constructor tag width and representation across Plutus variants and serialization formats.
- Introduced variant-aware constructor tags: Downstream Go callers now use
data.NewConstrwithuint64, ordata.NewConstrFromBigIntfor arbitrary integer tags.data.Constr.Tagnow uses*big.Int, whilesyn.Constr.Tagusesuint64. Variants A to C accept arbitrary integer tags; variants D to E require non-negative tags that fit Word64. CBOR enforces the Word64 range, JSON preserves arbitrary integer tags, FLAT usesuint64with overflow checks, and nil tags count as zero.
🔧 Fixes
Section titled “🔧 Fixes”The dependency maintenance and formatting cleanup in this section leave Plutigo’s local APIs, flags, configuration, and runtime behavior unchanged; the constructor-tag changes appear above.
- Updated cryptographic input checks: The
github.com/cloudflare/circlupdate fromv1.6.4tov1.6.5adds upstream cryptographic input validation and stronger error handling for malformed data without local application code changes. - Enhanced verification safeguards: The
github.com/consensys/gnark-cryptoupdate fromv0.20.1tov0.21.0and indirectgithub.com/bits-and-blooms/bitsetupdate fromv1.24.4tov1.24.6add upstream security, verification, and input validation changes without local application code changes. - Strengthened cryptographic resilience: The
golang.org/x/cryptoupdate fromv0.54.0tov0.55.0incorporates upstream security hardening and bug fixes without changing local APIs, flags, or configuration. - Fixed malformed CBOR handling: The
github.com/fxamacker/cbor/v2update fromv2.9.2tov2.9.3includes an upstream fix for a potential panic when malformed CBOR reaches atime.Timeconversion. Plutigo uses CBOR for PlutusData and has notime.Timereference. - Simplified term interner formatting: The term interner type switch in
syn/builder.gonow omits redundant parentheses, satisfyinggofumptwithout changing runtime behavior.
📋 What You Need to Know
Section titled “📋 What You Need to Know”Downstream Go callers must update code that constructs or reads constructor tags. Use data.NewConstr for non-negative uint64 tags, use data.NewConstrFromBigInt for arbitrary integer tags, and account for data.Constr.Tag changing from uint to *big.Int and syn.Constr.Tag changing from uint to uint64.
🙏 Thank You
Section titled “🙏 Thank You”Thank you for using Plutigo.
Docs authored by Doc Holiday