Skip to content

fix: embedded wallet defaults to proposed#23819

Merged
Thunkar merged 4 commits into
merge-train/fairiesfrom
gj/proposed_default_fix
Jun 3, 2026
Merged

fix: embedded wallet defaults to proposed#23819
Thunkar merged 4 commits into
merge-train/fairiesfrom
gj/proposed_default_fix

Conversation

@Thunkar
Copy link
Copy Markdown
Contributor

@Thunkar Thunkar commented Jun 3, 2026

This was broken in the default case, because we were relying on mutating opts.wait that is usually undefined.

Hopefully the code is a bit clearer too

@Thunkar Thunkar changed the title Gj/proposed default fix fix: embedded wallet defaults to proposed Jun 3, 2026
@Thunkar Thunkar requested a review from mverzilli June 3, 2026 12:04
@Thunkar Thunkar self-assigned this Jun 3, 2026
Copy link
Copy Markdown
Contributor

@mverzilli mverzilli left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice catch!

@Thunkar Thunkar enabled auto-merge (squash) June 3, 2026 12:10
@Thunkar Thunkar merged commit c01238c into merge-train/fairies Jun 3, 2026
12 checks passed
@Thunkar Thunkar deleted the gj/proposed_default_fix branch June 3, 2026 18:13
AztecBot pushed a commit that referenced this pull request Jun 3, 2026
This was broken in the default case, because we were relying on mutation
`opts.wait` that is usually undefined.

Hopefully the code is a bit clearer too
@AztecBot
Copy link
Copy Markdown
Collaborator

AztecBot commented Jun 3, 2026

✅ Successfully backported to backport-to-v5-next-staging #23832.

AztecBot added a commit that referenced this pull request Jun 3, 2026
The real source of flakiness was the local network setup (createLocalNetwork),
fixed by waiting for the checkpoint there. The CHECKPOINTED waits added to the
react/vite/vanilla boxes in #23819 did not help, so revert them and let the box
sends use the embedded wallet PROPOSED default.
Thunkar pushed a commit that referenced this pull request Jun 3, 2026
## Problem

CI on `merge-train/fairies` failed on the boxes `react chromium` test
([log](http://ci.aztec-labs.com/1780510430908759), [failing
test](http://ci.aztec-labs.com/243e7294cb8ba269)) with a timeout (code
124). The actual error was during `aztec start` / `createLocalNetwork`:

```
Error: Transaction 0x0826… was dropped. Reason: Tx dropped by P2P node
  at NodeEmbeddedWallet.sendTx
  at DeployAccountMethod.send
  at deployFundedSchnorrAccounts
  at createLocalNetwork
  at aztecStart
```

The local network never came up, so the browser test timed out.

## Root cause

PR #23819 ("embedded wallet defaults to proposed") fixed the embedded
wallet so its default wait status is *actually* `PROPOSED` — previously
the default was a no-op that fell through to `waitForTx`'s
`CHECKPOINTED` default.

`PROPOSED` returns as soon as a tx lands in a proposed L2 block. In the
serial sandbox setup that races against block pruning: a
proposed-but-not-checkpointed block can be pruned by end of build slot
(see #23606), and a tx in it is then neither in the archiver nor the
pool, so `getTxReceipt` returns `DroppedTxReceipt("Tx dropped by P2P
node")`. With the old broken default this path waited for `CHECKPOINTED`
and was reliable.

The real source of flakiness is the local network setup, not the boxes.

## Fix

Thread an explicit `{ waitForStatus: TxStatus.CHECKPOINTED }` wait
through the sandbox-setup sends:

- `createLocalNetwork`: `deployFundedSchnorrAccounts`,
`publishStandardAuthRegistry`, `setupBananaFPC`
- `setup-l2-contracts` CLI wait options

The intended product default of `PROPOSED` for normal wallet usage is
unchanged; only the CI/sandbox bring-up that needs durable inclusion
before the next serial tx is pinned to `CHECKPOINTED`. e2e fixtures use
`TestWallet` (BaseWallet's `CHECKPOINTED` default) and are unaffected.

Also reverts the per-box `CHECKPOINTED` waits that #23819 added to the
react/vite/vanilla boxes: they didn't fix the flakiness (the
local-network setup did), so the box sends go back to using the embedded
wallet `PROPOSED` default.

## Verification

TypeScript-only change in `yarn-project` plus box reverts; the box files
now match their pre-#23819 state exactly. A full `./bootstrap.sh ci`
could not be run in this container (clang 18 vs required 20, zig
missing, no remote build cache; the suite is multi-hour). Confirmed by
the merge-train CI re-run of the boxes tests.
AztecBot added a commit that referenced this pull request Jun 4, 2026
BEGIN_COMMIT_OVERRIDE
fix: embedded wallet defaults to proposed (#23819)
END_COMMIT_OVERRIDE
danielntmd pushed a commit to danielntmd/aztec-packages that referenced this pull request Jun 4, 2026
BEGIN_COMMIT_OVERRIDE
chore: document browser kv-store backend migration (AztecProtocol#23779)
feat(aztec-nr): Compute unconstrained tag in Noir over PXE and
generalize get_next_tagging_index oracle (AztecProtocol#23796)
refactor(txe): migrate rpc_translator to typed oracle registry (AztecProtocol#23530)
feat(pxe)!: allow apps to inject tagging secrets into
getPendingTaggedLogs (AztecProtocol#23777)
feat(txe): add oracle roundtrip test framework (AztecProtocol#23537)
fix: embedded wallet defaults to proposed (AztecProtocol#23819)
feat(aztec-nr): discover non-interactive handshakes in the registry
(AztecProtocol#23806)
refactor(txe): normalize deploy and addAccount to oracle registry
(AztecProtocol#23536)
fix: wait for checkpoint during sandbox setup (AztecProtocol#23834)
feat(standard-contracts): graduate handshake registry to standard
contract (AztecProtocol#23833)
END_COMMIT_OVERRIDE
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants