Skip to main content

Ledger

The ledger in Midnight is a public record of contract states and token states, consisting of Zswap’s cryptographic commitments and a mapping of contract addresses to their respective states.

Link to related documentation


Release 3.0.6LATEST

22 January 2025

Artifacts

Summary

  • Introduced coinCommitment and coinNullifier functions.
  • Introduced API separating keys from Zswap local state to Zswap packages.
  • Catch breaking change in midnight-storage-0.3, where the serialization shape of Map changed. This required minor version bumps on all types with nested Map structures.
  • Some data structures are no longer directly constructable due to added private fields: Transaction is no longer a public structured enum. Its components have been extracted into StandardTransaction and ClaimMintTransaction, which are now private.
  • ContractCall, ContractDeploy, and MaintenanceUpdate are now private.
  • Use the transaction-construction feature and its methods to construct transactions.
  • Changes in midnight-storage-0.3 affected serialization, requiring updates for types with nested Map structures.
  • Fixed a security bug in Schnorr proofs using incorrect information in in-memory environments.
  • Removed various instances of triggerable panics in the ledger.
  • Removed vulnerability in balance checking (breaking change for a minority of transactions).
  • Fixed Schnorr proofs not surviving serialization.
  • Fixed a security-related issue with Schnorr proofs in in-memory environments.
  • Fixed transaction re-serialization issues.
  • Fixed WASM checkProofData endpoint.
  • Fixed WASM API fees endpoint.
  • Fixed maintenance update Schnorr proofs not persisting after serialization.
  • Fixed debug logging removal from the proof server.