Skip to content

fix: TxEffect deserializability (forward port of #25109 to next) - #25115

Open
AztecBot wants to merge 2 commits into
nextfrom
cb/port-25109-tx-effect-deser
Open

fix: TxEffect deserializability (forward port of #25109 to next)#25115
AztecBot wants to merge 2 commits into
nextfrom
cb/port-25109-tx-effect-deser

Conversation

@AztecBot

@AztecBot AztecBot commented Aug 5, 2026

Copy link
Copy Markdown
Collaborator

Forward port of #25109 (358245cb5f65a92d6dab11b8bf4c2eb059bedde8, merged into merge-train/fairies-v5) onto next. The automated port-to-next job failed on this PR; this is the manual port.

Why the auto-port failed

A file-location conflict from the noir-projects directory split — not a content conflict. There are no <<<<<<< markers anywhere in this branch.

#25109 was cut against merge-train/fairies-v5, which predates #25007 ("refactor: split noir-projects into fnd/ and labs/", c2ca1208981) on next. That refactor moved:

  • noir-projects/noir-protocol-circuits/**noir-projects/fnd/noir-protocol-circuits/**
  • noir-projects/noir-contracts/**noir-projects/labs/noir-contracts/**

Rename detection handles the two files #25109 edits — it relocated and cleanly merged .../types/src/blob_data/tx_effect.nr into fnd/ and the test contract's main.nr into labs/. But #25109 also adds a new file, src/test.nr, inside a directory that was renamed on next. Git will not infer a new home for an added file:

CONFLICT (file location): noir-projects/noir-contracts/contracts/test/tx_effect_oracle_test_contract/src/test.nr
added in 358245cb5f6 (fix: TxEffect deserializability (#25109)) inside a directory that was renamed in HEAD,
suggesting it should perhaps be moved to
noir-projects/labs/noir-contracts/contracts/test/tx_effect_oracle_test_contract/src/test.nr.

The porter treats any non-clean cherry-pick as a failure and stops. That one added file is the entire reason.

The two commits

  1. chore(port): RAW cherry-pick — the cherry-pick output with the conflict left unresolved: the two edited files merged into their post-refactor: split noir-projects into fnd/ and labs/ #25007 homes, and the added test.nr sitting at its original source path under noir-projects/noir-contracts/..., a directory that no longer exists on next. This commit intentionally does not build.
  2. fix(port): … — mechanical — the resolution: git mv of that one file into noir-projects/labs/..., exactly the destination git suggested and where the sibling main.nr that its mod test; belongs to already lives. Pure rename, zero content change.

Where the judgment lives

Decision Ratified by
(none) The port contains no decisions. The only hand action is the file move, script-verifiable as byte-identical to the source blob.

Nothing was hand-written or adapted. Every API the ported code uses already exists on next under the labs/ paths:

Used by the port On next
aztec::ephemeral::EphemeralArray noir-projects/labs/aztec-nr/aztec/src/ephemeral/mod.nr
oracle::message_processing::get_tx_effects noir-projects/labs/aztec-nr/aztec/src/oracle/message_processing.nr:71
test::helpers::txe_oracles::get_last_tx_effects noir-projects/labs/aztec-nr/aztec/src/test/helpers/txe_oracles.nr:160
Deserialize trait noir-projects/fnd/noir-protocol-circuits/crates/serde/src/serialization.nr:159

Verification

The moved file is byte-identical to the source PR (empty output):

git diff 358245cb5f6:noir-projects/noir-contracts/contracts/test/tx_effect_oracle_test_contract/src/test.nr \
         HEAD:noir-projects/labs/noir-contracts/contracts/test/tx_effect_oracle_test_contract/src/test.nr

The final tree vs next is exactly the source PR's diff — 3 files, +40 / −4, matching 358245cb5f6's own diffstat.

Not validated by a local build; relying on CI.


Created by claudebox · group: slackbot · requested by martin · Slack thread

mverzilli and others added 2 commits August 5, 2026 14:06
Raw output of `git cherry-pick 358245c`
onto next, with the conflict left UNRESOLVED. This commit intentionally
does not build.

Conflicted path (file location; no content conflict markers anywhere):
  noir-projects/noir-contracts/contracts/test/tx_effect_oracle_test_contract/src/test.nr

#25109 was cut against merge-train/fairies-v5, which predates
"refactor: split noir-projects into fnd/ and labs/" (#25007) on next.
Rename detection relocated the two files the PR *edits*
(noir-protocol-circuits/crates/types/src/blob_data/tx_effect.nr -> fnd/,
the test contract's main.nr -> labs/) and merged both cleanly. But
src/test.nr is *added* by the PR, so git cannot infer its new home:

  CONFLICT (file location): noir-projects/noir-contracts/contracts/test/
  tx_effect_oracle_test_contract/src/test.nr added in 358245c inside
  a directory that was renamed in HEAD, suggesting it should perhaps be
  moved to noir-projects/labs/noir-contracts/contracts/test/
  tx_effect_oracle_test_contract/src/test.nr

The added file is left here at its source path, under a directory that no
longer exists on next. Resolved in the next commit.

Source: #25109
Resolves the single file-location conflict from the previous commit by
moving the added test file to the post-#25007 layout:

  noir-projects/noir-contracts/contracts/test/tx_effect_oracle_test_contract/src/test.nr
    -> noir-projects/labs/noir-contracts/contracts/test/tx_effect_oracle_test_contract/src/test.nr

This is exactly the destination git suggested in the CONFLICT message, and
it is where the sibling main.nr this file's `mod test;` belongs to already
lives on next.

Mechanical — pure rename, zero content change. Verify with:

  git diff 358245c:noir-projects/noir-contracts/contracts/test/tx_effect_oracle_test_contract/src/test.nr \
           HEAD:noir-projects/labs/noir-contracts/contracts/test/tx_effect_oracle_test_contract/src/test.nr

(empty output = byte-identical to the source PR)

No hand-written resolution was required: the port needed no adaptation
beyond the path. The APIs it uses all exist on next under the labs/ paths —
aztec::ephemeral::EphemeralArray, oracle::message_processing::get_tx_effects
(labs/aztec-nr/aztec/src/oracle/message_processing.nr:71), and
test::helpers::txe_oracles::get_last_tx_effects.
@AztecBot AztecBot added ci-draft Run CI on draft PRs. ci-no-fail-fast Sets NO_FAIL_FAST in the CI so the run is not aborted on the first failure claudebox Owned by claudebox. it can push to this PR. labels Aug 5, 2026
@mverzilli
mverzilli marked this pull request as ready for review August 5, 2026 14:23
@mverzilli
mverzilli requested a review from LeilaWang as a code owner August 5, 2026 14:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci-draft Run CI on draft PRs. ci-no-fail-fast Sets NO_FAIL_FAST in the CI so the run is not aborted on the first failure ci-squash-and-merge claudebox Owned by claudebox. it can push to this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants