# Aaadhar Noir Circuits Cleanup ## Todos 1. Folder structure 2. Selective Disclosure Impl 3. testing env 4. benchmarks ### Improvements 1. Removal of unwanted (e.g., `rsa-sha256`) 2. Migration to latest Noir version 4. Using Offical RSA Precomplie. 5. Monorepo implementation inspired by zkEmail.nr repo 7. js testing environment 8. `scripts` -- for bench marking and sample data 9. remove hardcoded in the circuits 10. Selective Disclosure Implementation 11. Benchmarks. we will use react-native-noir for benchmarking in mobile (andriod and ios) as well. 12. go through timestamp circuit. ### Folder Structure ``` ├── tests/ └── scripts/ ├── circuits │ └── src │ ├── verifier/ │ │ └── signature_verifier.nr │ ├── core/ │ │ ├── extractor.nr │ │ └── qr_verifier.nr │ │ └── nullifier.nr │ ├── utils/ │ │ ├── utils.nr │ │ └── constants.nr │ └── main.nr ``` ### Potential Problems with Monorepo 1. **Version Dependencies with noir-rsa Package** - Our implementation is tightly coupled with specific noir-rsa package versions - Possible Solutions: - Extract signature_verifier as a separate module - Keep core logic independent of RSA implementation - Use version-specific branches for RSA-dependent components - **Option 2: Split Architecture** ``` /projects ├── core-circuits/ # Main implementation └── verifier/ # RSA Noir Separate Signature Verifier Circuits ``` **it's not a significant issue since noir team is updating packages with latest noir version.** ### Testing we will be using `@noir-lang/noir_js` ### Benchmarking Stuff i have tested `react-native-noir` with andriod device which surprising ran very smooth. i think we can experiment our mobile stack with noir. - have to do standard benchmarks and also mobile benchmarks.