Skip to content

docs: design record for TransactionPrototype - #839

Open
lisicky wants to merge 1 commit into
mainfrom
docs/tx-prototype-design
Open

docs: design record for TransactionPrototype#839
lisicky wants to merge 1 commit into
mainfrom
docs/tx-prototype-design

Conversation

@lisicky

@lisicky lisicky commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

Summary

Design record for TransactionPrototype. Documentation only — the implementation is #837, this PR adds no code.

The prototype is the handoff value between a transaction builder and a serializer: a fully-resolved, backend-agnostic representation of a Cardano transaction — post coin-selection, post witness collection — already in a shape friendly to serialization. It is what the builder should assemble at the end and hand to the serializer, and nothing more: no builder intent, no unresolved references, no partial state.

docs/design/tx-prototype.md records the decisions that are not obvious from reading the types:

  • why it lives in mesh-common and not in either serializer package
  • the Conway CDDL as the sole type authority, and why the wide fields are bigint rather than number | bigint
  • what the prototype deliberately does not express (set encoding, output era format, definite lengths) and why those belong to the serializer
  • why Plutus scripts are three fields instead of one
  • the mesh-core-cst / mesh-core-csl asymmetry, and whisky's conformance gaps as upstream bugs rather than reasons to narrow the types
  • what the decoder is for, and the round-trip asymmetries that are pinned by tests

Affect components

  • @meshsdk/common
  • @meshsdk/core-csl
  • @meshsdk/core-cst

(documented, not modified)

Type of Change

  • Documentation update (adding or updating documentation related to the project)

Related Issues

Documents the design implemented in #837.

Checklist

  • My code is appropriately commented and includes relevant documentation, if necessary
  • I have added tests to cover my changes, if necessary — n/a, no code
  • I have updated the documentation, if necessary
  • All new and existing tests pass (i.e. npm run test) — unaffected
  • The build is pass (i.e. npm run build) — unaffected

@lisicky
lisicky force-pushed the docs/tx-prototype-design branch from 69b7299 to 210e847 Compare August 8, 2026 12:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant