fix(pxe): support custom PrivateKernelProver and unify EmbeddedWalletOptions#22348
Merged
Thunkar merged 6 commits intomerge-train/fairiesfrom Apr 8, 2026
Merged
Conversation
The instanceof BBPrivateKernelProver check in createPXE utils only recognized BB's own prover subclasses. Custom PrivateKernelProver implementations were silently treated as options and spread into a default BB prover constructor. Replace with duck-type check.
Merge the confusing pxeConfig/pxeOptions split into a single 'pxe' option that accepts both PXEConfig fields and dependency injection (prover, store, simulator). The old fields are kept but deprecated. Also update the type guard to use createChonkProof as the duck-type check for PrivateKernelProver detection.
2860439 to
3641dae
Compare
proverEnabled is already part of PXEConfig via KernelProverConfig, so Partial<PXEConfig> already includes it.
Thunkar
approved these changes
Apr 8, 2026
Collaborator
Author
|
❌ Failed to cherry-pick to |
This was referenced Apr 8, 2026
github-merge-queue bot
pushed a commit
that referenced
this pull request
Apr 8, 2026
BEGIN_COMMIT_OVERRIDE fix(pxe): support custom PrivateKernelProver and unify EmbeddedWalletOptions (#22348) fix: subfield note selectors (#22211) fix: pass additionalScopes to executeUtility (#22411) feat(e2e): support running tests against legacy noir contract artifacts (#22410) END_COMMIT_OVERRIDE
Thunkar
added a commit
that referenced
this pull request
Apr 9, 2026
…Options (backport #22348) (#22391) ## Summary Backport of #22348 to v4-next. Cherry-pick of merge commit cac2411 with one conflict in `migration_notes.md` (trivially resolved — empty HEAD side, accepted incoming migration note). ### Changes - Replace `instanceof BBPrivateKernelProver` with duck-type `isPrivateKernelProver()` check using `createChonkProof` as distinguishing method - Unify `pxeConfig`/`pxeOptions` into single `pxe` field on `EmbeddedWalletOptions` - Add `splitPxeOptions` helper and `EmbeddedWalletPXEOptions` type - Add migration note for the API change ### Commit structure (3-commit backport) 1. Cherry-pick with conflict markers as-is 2. Conflict resolution (accept migration note) ClaudeBox log: https://claudebox.work/s/947bc828b6966f6c?run=1
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.
Summary
EmbeddedWalletsilently ignoring customPrivateKernelProverimplementations passed viapxeOptions.proverOrOptionsinstanceof BBPrivateKernelProvercheck in all threecreatePXEutils only matched BB's own prover subclasses — custom implementations fell through and were destructured as config options, causing runtime errorsisPrivateKernelProver()guard usingcreateChonkProofas the distinguishing methodpxeConfig/pxeOptionssplit inEmbeddedWalletOptionsinto a singlepxefield that accepts both config and dependency overridesNew API
The old
pxeConfig/pxeOptionsfields are kept but marked@deprecated.Test plan
createChonkProof)BBPrivateKernelProverOptionsobjects correctly fall through to create default proversPrivateKernelProverimplementations are now correctly detected and used as-ispxeConfig/pxeOptionsusage still works (backward compatible)pxefield merges correctly with deprecated fields