SIGN IN SIGN UP

feat(client): PrivacyWallet seam (collapse the wallet-type zoo) (#913)

One polymorphic seam, no `kind`:
  PrivacyWallet { partialCommitment; strk20PrepareInvoke; strk20InvokeTransaction }

- A get-starknet v6 wallet satisfies it directly — no wrapper, no separate
  `Strk20Wallet` type. `address` is off the seam (self-defaulting is per-impl).
- The EVM/legacy-SN path becomes one upstack `SdkWallet` over an injected CallSet
  `SignerInterface`; the old `EvmAccount` / `EvmBrowserWallet` / `EvmServerWallet` /
  `Eip1193Provider` types (mere signer-construction args) are deleted.
- No wallet detection in the library: `detectStarknetWalletKind` + `StarknetWalletApi`
  removed (vestigial from the `kind` design — the dapp constructs the wallet it wants;
  v6-vs-legacy detection is a get-starknet concern).
- Client holds { wallet, provider, subAccountAnonymizerAddress } — the read context for
  sub-account resolution; pool address lives in the SdkWallet's PrivateTransfers.
  `PrivacyClient` is an opaque handle (build()/addresses() upstack); `partialCommitment`
  is not public — the client uses it internally when resolving addresses.
- Kept: Strk20Action (+ STRK20_COMPUTE_AND_INVOKE_ACTION shim).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

<!-- 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/913)
<!-- Reviewable:end -->
I
Ittay Dror committed
2f5b121d85dd17f1aff6c906e76a222dbbf406c6
Parent: c6c4153
Committed by GitHub <noreply@github.com> on 7/22/2026, 2:41:57 PM