Grep cheatsheet
Where to look in the v2-monorepo codebase when you need to find something. Optimized for grep / glob, not for reading.
SDK entry points
# Builder API:
grep -rn "PoolSessionBuilder" packages/sdk/src/services/poolSessions/
# Top-level SDK exports:
cat packages/sdk/src/index.ts
cat packages/sdk/src/external.ts
Type definitions
# All public types live here:
ls packages/sdk/src/types/
# Schemas (Zod validators):
ls packages/sdk/src/schemas/
# Errors hierarchy:
ls packages/sdk/src/errors/
Constants
# Tree depths, metadata standard, etc.
cat packages/sdk/src/constant/WitnessPreparationService.ts
# Canonical contract addresses per chainId:
cat packages/sdk/src/constant/deployments.ts
# Auth type constants:
cat packages/sdk/src/constant/KeyDerivation.ts
Circuits
# Main circuits:
ls packages/circuits/circuits/main/
# → deposit.circom, ragequit.circom, transact.circom, transact/
# NxM variants live in main/transact/ (transact_1x1.circom ... transact_5x5.circom)
# Templates (helpers):
ls packages/circuits/circuits/templates/helpers/
# → KeystoreLeaf.circom, NoteCommitment.circom, ValueConservation.circom, etc.
# Build artifacts (LFS):
ls packages/circuits/build/
Contracts
# Solidity sources:
ls packages/contracts/src/contracts/
# → PoolVault.sol, Entrypoint.sol, Keystore.sol, ASPRegistry.sol, PrivacyPoolRelay.sol
# Errors (in PoolVault.sol):
grep -nE "error PoolVault" packages/contracts/src/interfaces/IPoolVault.sol
Example integrations
# Reference SDK consumer (Node/CLI):
ls apps/sample/src/
# → deposit/, transfer/, withdraw/, ragequit/, keystore/, paymentRequest/,
# noteDiscovery/, asp/, builder/, persistence/, ...
# Per-scenario runners:
ls apps/sample/package.json # check:* scripts
# Browser-side example:
ls apps/sample-web/src/
# → FetchCircuitArtifacts.ts, deposit.ts, ...
Tech-design specs
ls docs/tech-design/
# → circuits/, contracts/, sdk/, future-ideas/
# Specific design docs:
cat docs/tech-design/sdk/pool-session.md
cat docs/tech-design/circuits/circuits-tech-design.md
Common grep patterns
# Find error definitions:
grep -rn "extends.*BaseError" packages/sdk/src/errors/
# Find @throws annotations (interface contracts):
grep -rn "@throws" packages/sdk/src/interfaces/
# Find Poseidon usage:
grep -rnE "Poseidon|hashService\.hash" packages/sdk/src/
# Find on-chain ABI methods used by SDK:
grep -rn "functionName:" packages/sdk/src/services/contractInteractors/
Yield, swaps, batch, stealth, relayer
# Yield contracts (wrapper, zap, router, factories):
ls packages/contracts/src/contracts/ | grep -E "PPYield|PPRouter"
cat packages/contracts/src/contracts/PPRouter.sol # NATIVE_MODE, depositExactShares(Native), withdrawToUnderlying
# RelaySwaps lives in its own package (execute / executeUnwrapped, approvedRouters / approvedZaps):
cat packages/swaps/contracts/src/RelaySwaps.sol
cat packages/swaps/contracts/src/generated/RoutingTypehash.sol # EIP-712 ROUTING_TYPEHASH, generated from the AST
# Relay entry points beyond relay(): relayBatch, relayAndAnnounce, registerAndRelay, MAX_BATCH
grep -n "function " packages/contracts/src/contracts/PrivacyPoolRelay.sol
# SDK yield / batch / swap sessions and their types:
ls packages/sdk/src/services/poolSessions/ | grep -E "Yield|Batch|Swap|Reshield"
cat packages/sdk/src/constant/Yield.ts # ABIs, sizing constants, YIELD_DEPLOYMENTS (empty)
cat packages/sdk/src/constant/BatchWithdraw.ts # MAX_BATCH
cat packages/sdk/src/services/poolSessions/computeBatchFees.ts
# Stealth module (separate subpath @privacy-pools-v2/sdk/stealth):
ls packages/sdk/src/stealth/
cat packages/sdk/src/stealth/index.ts # the public surface
cat packages/sdk/src/stealth/constants.ts # CANONICAL_ANNOUNCER_ADDRESS
# Relayer routes, processor allowlist, yield discovery:
grep -rn "@Post(" packages/relayer/relayer/src/quote/quote.controller.ts packages/relayer/relayer/src/relay/relay.controller.ts
grep -n "allowed_processors" packages/relayer/relayer/src/config/evm/evm.config.schemas.ts
cat packages/relayer/relayer/src/details/yield-discovery.service.ts
# Per-chain deployments and assets (Sepolia, plus internal staging entries; the mainnet entry reverts until deployed):
cat packages/contracts/script/registries/ChainDeploymentRegistry.sol
cat packages/contracts/script/registries/ChainAssetRegistry.sol
# Design docs for the above:
ls docs/tech-design/contracts/ # yield.md, batch-withdrawal.md
ls docs/tech-design/sdk/ # yield-sessions.md, batch-withdraw.md, withdraw-and-swap.md, stealth.md