コンテンツにスキップ

Release Notes - v0.4.0

このコンテンツはまだ日本語に翻訳されていません。

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.

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.NewConstr with uint64, or data.NewConstrFromBigInt for arbitrary integer tags. data.Constr.Tag now uses *big.Int, while syn.Constr.Tag uses uint64. 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 uses uint64 with overflow checks, and nil tags count as zero.

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/circl update from v1.6.4 to v1.6.5 adds upstream cryptographic input validation and stronger error handling for malformed data without local application code changes.
  • Enhanced verification safeguards: The github.com/consensys/gnark-crypto update from v0.20.1 to v0.21.0 and indirect github.com/bits-and-blooms/bitset update from v1.24.4 to v1.24.6 add upstream security, verification, and input validation changes without local application code changes.
  • Strengthened cryptographic resilience: The golang.org/x/crypto update from v0.54.0 to v0.55.0 incorporates upstream security hardening and bug fixes without changing local APIs, flags, or configuration.
  • Fixed malformed CBOR handling: The github.com/fxamacker/cbor/v2 update from v2.9.2 to v2.9.3 includes an upstream fix for a potential panic when malformed CBOR reaches a time.Time conversion. Plutigo uses CBOR for PlutusData and has no time.Time reference.
  • Simplified term interner formatting: The term interner type switch in syn/builder.go now omits redundant parentheses, satisfying gofumpt without changing runtime behavior.

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 for using Plutigo.



Doc Holiday logo

Docs authored by Doc Holiday

ページを編集

最終更新日: