Skip to content

Tracking PR for v0.16.0 release#2976

Draft
bobbinth wants to merge 9 commits into
mainfrom
next
Draft

Tracking PR for v0.16.0 release#2976
bobbinth wants to merge 9 commits into
mainfrom
next

Conversation

@bobbinth
Copy link
Copy Markdown
Contributor

This is a tracking PR for v0.16.0 release.

bobbinth and others added 9 commits May 22, 2026 14:15
* feat: implement Clone for TransactionContextBuilder

* chore: add unwrap_unauthorized_err
* feat(agglayer): reject duplicate GER insertions

Adds a duplicate-detection guard to `bridge_config::update_ger`: after
calling `set_map_item`, the OLD_VALUE returned is compared against
EMPTY_WORD; if it is not empty the GER was already registered and the
transaction panics with ERR_GER_ALREADY_REGISTERED.

Note on Solidity divergence: the Solidity GlobalExitRootManager treats
duplicate GER insertions as idempotent no-ops. Miden intentionally
rejects them because a permanently-unconsumable network note is a worse
failure mode than an explicit transaction revert. This divergence is
documented in SPEC.md.

Docs updated on `update_ger`, the `update_ger.masm` note script, and
SPEC.md (Panics row + Section 2.3 prose). A new integration test
(`update_ger_rejects_duplicate`) verifies that a second UPDATE_GER note
carrying the same GER value is rejected with the expected error code.

Closes #2708

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* chore: add CHANGELOG entry for #2983

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* review: combine padw+assert_eqw and use assert_transaction_executor_error!

- bridge_config.masm: collapse the `padw` / `assert_eqw` pair onto a single
  line as suggested in review.
- tests: replace the manual `is_err()` + `error_msg.contains(...)` block
  with the standard `assert_transaction_executor_error!` macro.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* review: use word::eqz + assert instead of padw + assert_eqw

Slightly cheaper than the `padw`-then-`assert_eqw` pair: `word::eqz`
consumes the 4-felt `OLD_VALUE` and pushes a single 0/1 flag, then a
plain `assert.err=...` verifies it.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
The MASM doc-comment and formatting conventions previously captured in
masm_doc_comment_fmt.md are now covered by the .claude/skills/masm-*
skill files plus the MASM formatting tool. Maintaining a separate
hand-written guide is redundant and prone to drift, so remove it.

Closes #2021

Co-authored-by: Claude (Opus) <noreply@anthropic.com>
The protocol does not prevent adding multiple attachments with the same
scheme to a note (e.g. two NetworkAccountTarget attachments). Document
that doing so is discouraged as it brings no additional benefit and only
increases public on-chain data and fees, and clarify in the rustdoc that
the first matching attachment is treated as the canonical one.

Closes #2873

Co-authored-by: Claude (Opus) <noreply@anthropic.com>
* refactor: include leaves number in BURN note ID computation

* Apply suggestions from code review

Co-authored-by: Marti <marcin.gorny.94@protonmail.com>

---------

Co-authored-by: Marti <marti@miden.team>
Co-authored-by: Marti <marcin.gorny.94@protonmail.com>
* Extend execution-error assertion macros with patter and any arms

* Fix formating

* Apply PR review feedback
…k level (#2993)

* feat: reject consuming and creating same note in a tx

* feat: erase notes on the fly

* chore: remove unused `NoteCommitmentMismatch` error variants

* chore: add changelog

* chore: rename input/output note tracker functions

* feat: reintroduce `NoteTracker` for readability

* chore: improve clarity of comments

* chore: format changelog

* chore: add second cross-tx circular dep test
* feat: rename storage delta to patch

* chore: add changelog
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.

5 participants