All four issues from the upstream repository have been successfully implemented:
✅ Issue #901: Add abuse-resistant referral and donation accounting invariants
- Self-referral prevention
- Circular referral chain detection
- Referral reward validation (cannot exceed protocol fees)
- Donation conservation invariants (yield_in = user_yield + donation)
- Contract-derived referral status exposed to client
✅ Issue #900: Build a withdrawal queue with bounded liquidity and slippage protection
WithdrawalQueueEntryPrisma model with deterministic queue ordering- Expiry and cancellation support
- Liquidity constraint checking
- Slippage protection with configurable limits
- Queue lifecycle event tracking
✅ Issue #892: Replace placeholder portfolio reconciliation with indexed on-chain positions
- Projection version tracking in reconciliation responses
- Stale-data flags based on indexer checkpoint age
- Orphaned transaction detection (positions without matching on-chain events)
- Duplicate position detection across vaults
- Enhanced metadata in reconciliation history
✅ Issue #890: Build projection rebuild tooling for vault balances and share supply
ProjectionVersionPrisma model with version trackingProjectionAuditLogfor rebuild validation- Audit-only mode support (drift detection without committing changes)
- Foundation for CLI commands to rebuild projections
- Event-sourced state reconstruction capability
All implementations include proper database models, service layer logic, and invariant checking as required.