chore(port): forward-port v5-next pxe/client/txe backlog to next#24932
Draft
PhilWindle wants to merge 7 commits into
Draft
chore(port): forward-port v5-next pxe/client/txe backlog to next#24932PhilWindle wants to merge 7 commits into
PhilWindle wants to merge 7 commits into
Conversation
While trying to deploy the latest nightly standard contracts to testnet I experienced gas estimation issues. According to Claude these issues are due to variability in Merkle tree insertions: there's around 40% of gas cost spread between the happiest case (no tree "climbing" needed) and the worst case (10 level climb). If eth_estimateGas occurs during the happiest case, and actual TX execution during the worst case, the default 20% buffer we use in Aztec.js turns out not to be sufficient. Closes F-794 (cherry picked from commit 2734da1)
First part of integrating the enhancements explored at aztec-labs-eng/oxide#257 Closes F-808 (cherry picked from commit 8a3f7e6)
Some stores were being accessed without checking if the associated accounts were in scope or not. For logs I added this to the service, but we're not yet consistent in how we use services (call-lived, tx-lived?) so in other cases it is just inlined in the oracle. (cherry picked from commit ce12e29)
Additions to the README on gas and fees (cherry picked from commit 4d53a9f)
…evidence (#24655) Fixes the sender tag sync conflict from https://gist.github.com/nventuro/0aa690736b1d2865e27197723a814e9d, including the "Window straddle" residual edge. Discovery could re-derive a different index range for an already tracked (secret, txHash) pair and hit the `Conflicting range` throw in `storePendingIndexes`, permanently wedging the secret. Two triggers: - A same-PXE tx partially reverts: the chain only shows the surviving non-revertible sub-range of the prove-time entry, and the throw fired before the finalized receipt step could resolve it. - A tx straddles a sync window boundary: the window loop assembles its range piecewise, so window 2 stores a different range than window 1 (latent regardless of reverts). Fix: discovery passes `mergeExisting` to `storePendingIndexes`, which widens the stored entry to the union of both ranges (grow-only, driven by onchain evidence). The finalized receipt step still resolves partial reverts. The only other writer of pending ranges, `persistSenderTaggingIndexRangesForTx` (records the indexes a tx sent from this PXE used, at prove time), does not pass the flag and still throws on a mismatch: there it indicates a bug, not partial onchain evidence. Red-green (all fail on the base with the `Conflicting range` throw): - partial revert repro: finalizes the surviving index, frees the squashed ones, repeat sync is a no-op - cross-sync widen: an entry tracked from an earlier sync grows when discovery evidences further indexes - window straddle: drives the actual window advance loop, asserts per window queried tags and that the widened entry later finalizes cleanly Store-level tests pin the union semantics: a sub-range keeps the entry, a range beyond it widens it, an untracked tx still stores. (cherry picked from commit fd7515d)
This fixes a scoping bug where an account's ivsk would be used to produce an ECDH shared secret even if that account was not in scope. The base wallet class was adjusted to put these in scope when an explicit sender is selected for tagged messages. (cherry picked from commit 4994006)
waitForNode called retryUntil without a timeout, and retryUntil treats a
zero timeout as the never-time-out sentinel, so an unreachable node caused
the call to poll getNodeInfo forever with no way for the caller to bound it.
Add an optional { timeout, interval } argument and default it to
DefaultWaitOpts (300s / 1s), matching the sibling waitForTx. An unreachable
node now rejects with a TimeoutError; pass timeout: 0 to opt into the
previous infinite-wait behavior.
(cherry picked from commit 482a6b8)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Forward-ports the pxe / client / txe slice of the v5-next → next backlog (work merged to
v5-nextafter the ~2026-07-08 cut that reshapednext).Applied (clean cherry-picks, chronological)
next; not included here)Cherry-pick onto this branch and resolve:
git cherry-pick -x 6dd127124d— fix(txe): align tagging strategy oracle with PXE (fix(txe): align tagging strategy oracle with PXE #24561)git cherry-pick -x 736f39189c— feat(pxe)!: Add AppTaggingSecret kinds to keys in tagging stores (feat(pxe)!: Add AppTaggingSecret kinds to keys in tagging stores #24604)git cherry-pick -x 296717987f— feat: add batch is block in archive oracle (feat: add batch is block in archive oracle #24634)git cherry-pick -x 7a77232ed7— feat: getTxEffects oracle (feat: getTxEffects oracle #24636)git cherry-pick -x 0bb0628549— feat: preserve stores on schema version or rollup address change (feat: preserve stores on schema version or rollup address change #24631)git cherry-pick -x 97b4c75c95— feat(txe): add option to authorize all utility call targets (feat(txe): add option to authorize all utility call targets #24662)git cherry-pick -x d2db074640— refactor(pxe): compute oracle interface hash from wire-structural mapping labels (refactor(pxe): compute oracle interface hash from wire-structural mapping labels #24752)Part of the manual v5-next → next backlog sweep. Draft until conflicts are resolved and CI is green.
Added after review
(#N)leaf); genuinely absent fromnext.