Merge pull request #228 from MeshJS/docs/roadmap-m1-refresh-2026-04-23
docs: refresh M1 proof of completion (2026-04-23)
docs: refresh M1 proof of completion (2026-04-23)
- #223 marked Done — PR #225 merged, issue closed - #211 moved to In review — PR #227 open with API validation + degraded card - External PRs row updated with review status (#212 awaiting rebase, #208 superset) - #213 note clarifies CI smoke is skipping due to missing SMOKE_* secrets Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
Reject unparseable txCbor/txJson at the addTransaction API boundary so a malformed 4-element CBOR can never be persisted, and render a degraded card with a Reject button when an existing row's txJson cannot be parsed, so a single bad row no longer crashes the whole Transactions page and locks up its UTxOs. Closes #211 Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
Signed-off-by: Aaravanand00 <[email protected]>
Signed-off-by: Pat Losoponkul <[email protected]>
Add plain DecCBOR instances for DijkstraBlockBodyRaw and DijkstraBlockBody (needed for decoder equivalence tests), and a custom ToExpr instance for DijkstraBlockBody. Add block_body to the CddlSpec test suite.
Define HuddleRule instances for "block_body" and "peras_certificate" in the Dijkstra era, with a custom CBOR generator for block_body that generates valid transaction indices. Update the CDDL spec to match the new block structure: block = [header, block_body].
Replace the manual segmented-witness serialization with MemoBytes, which simplifies the code significantly. The block body is now serialized as a flat 3-element list [invalid_transactions, transactions, peras_certificate] instead of 5 separate segments. Also fix PerasCert to encode/decode as bytes (matching CDDL), reimplement alignedValidFlags using IntSet, and expose DijkstraBlockBodyRaw/MkDijkstraBlockBody from Internal module.
Change genArrayTerm from Gen to MonadGen so it can be used in CBORGen contexts (e.g. custom CBOR generators for Huddle specs).
- Add `blockBodySize` as a method on `EraBlockBody` with a default implementation using `EncCBORGroup`, replacing the standalone `bBodySize` function - Remove `EncCBORGroup (BlockBody era)` superclass constraint from `EraBlockBody` so that eras can provide their own `blockBodySize` without needing `EncCBORGroup`
- Added blockBodySize method - Added more CddlSpec tests - Add BlockBody DecCBOR instance - Fix PerasCert to encode/decode as bytes (matching CDDL nil / VBytes) - Use encodeNullStrictMaybe/decodeNullStrictMaybe for optional peras_certificate - Handle both definite and indefinite length lists in BlockBody decoder - Add index range validation in BlockBody decoder (matching Alonzo) - Add DecCBOR instances for DijkstraBlockBodyRaw and DijkstraBlockBody in testlib - Add NFData and EncCBOR deriving for DijkstraBlockBody newtype - Export DijkstraBlockBodyRaw and MkDijkstraBlockBody from Internal module - Add custom CBOR generator for block_body - Use deriving via Mem for Annotator BlockBody decoder - Reimplement alignedValidFlags using IntSet - Update changelogs
- Added blockBodySize method - Added more CddlSpec tests - Add BlockBody DecCBOR instance - Fix PerasCert to encode/decode as bytes (matching CDDL nil / VBytes) - Use encodeNullStrictMaybe/decodeNullStrictMaybe for optional peras_certificate - Handle both definite and indefinite length lists in BlockBody decoder - Add index range validation in BlockBody decoder (matching Alonzo) - Add DecCBOR instances for DijkstraBlockBodyRaw and DijkstraBlockBody in testlib - Add NFData and EncCBOR deriving for DijkstraBlockBody newtype - Export DijkstraBlockBodyRaw and MkDijkstraBlockBody from Internal module - Add custom CBOR generator for block_body - Use deriving via Mem for Annotator BlockBody decoder - Reimplement alignedValidFlags using IntSet - Update changelogs
fix: correct swapped min_pool_cost / coins_per_utxo_size
Signed-off-by: Aaravanand00 <[email protected]>