## Description IPFS module has controller/service stubs. Implement metadata hashing, IPFS pinning, and verification for tamper-proof records. **Module**: src/modules/ipfs/ ## Acceptance Criteria - [ ] IpfsService: pinMetadata, getMetadata, verifyMetadata - [ ] Metadata schema: escrowId, buyer, seller, amount, asset, conditions, deadline, status, metadataHash - [ ] SHA-256 hash before pinning, store hash on escrow entity - [ ] Pin at lifecycle events: creation, funding, completion, dispute - [ ] ipfsCid and ipfsMetadataHash fields on Escrow entity - [ ] GET /escrows/:id/metadata, /metadata/verify - [ ] POST /escrows/:id/metadata/pin (admin only) - [ ] Configurable provider: local IPFS or Pinata (IPFS_PROVIDER env) - [ ] Graceful failure: retry once, log error, don't block - [ ] Metadata versioning (new CID per pin) - [ ] Unit and integration tests **Points**: 200
Description
IPFS module has controller/service stubs. Implement metadata hashing, IPFS pinning, and verification for tamper-proof records.
Module: src/modules/ipfs/
Acceptance Criteria
Points: 200