SIGN IN SIGN UP

feat(client): Strk20Prover seam + core prover + passphrase viewing key (#916)

Strk20Prover (strk20-specific): partialCommitment(dappName) + prove(actions, simulate?). It owns
viewing-key retrieval — never dapp-passed — so a future on-device prover can fetch the key locally.
CorePrivateTransfersProver is the default: derives the viewing key from a passphrase (salted with
the account address, iterated), wraps core PrivateTransfers, and translates Strk20Action[] via its
builder (deposit/withdraw/transfer/OPEN-note/invoke/computeAndInvoke), substituting the
${openNoteIds[N]}/${poolAddress} placeholders against the compiled tx, then maps core CallAndProof
to the strk20 shape. Loads the note registry before proving, saves it after a real proof; simulate
estimates via the node provider. deriveViewingKey + passphraseViewingKeyProvider (lazy, memoized).
PrivacyStorage added to the seam. 20 tests.

<!-- Reviewable:start -->
- - -
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/starkware-libs/starknet-privacy/916)
<!-- Reviewable:end -->
I
Ittay Dror committed
a3059257313cb19ff8910b989b3c622d5759aa7e
Parent: a603cef
Committed by GitHub <noreply@github.com> on 7/28/2026, 8:44:22 AM