Two parallel contract implementations existed in the repository:
Contract/directory (older implementation)contracts/directory (newer implementation)
- Size: 51 items total
- Structure: Workspace with multiple crates (
stellar_earn,earn_quest) - Features: Basic quest management with participant limits
- Code Quality: Simpler implementation, fewer modules
- Documentation: Comprehensive but older documentation
- Test Coverage: Basic test suite
- Size: 154 items total (more comprehensive)
- Structure: Single focused
earn-questcontract - Features:
- Advanced payout system
- Enhanced security module
- Comprehensive validation
- Event emission system
- Statistics tracking
- Batch operations
- Code Quality: More sophisticated architecture with better separation of concerns
- Documentation: Recent, focused on automated payout distribution
- Test Coverage: Extensive test suite with property-based testing
Chosen Canonical Version: contracts/earn-quest
Rationale:
- More Recent Development: Contains latest features and improvements
- Enhanced Functionality: Includes advanced payout system, security modules, and validation
- Better Architecture: Cleaner separation of concerns with dedicated modules
- Comprehensive Testing: More robust test coverage including edge cases
- Industry Standards: Follows modern Soroban contract patterns
- Specification Alignment: As specified in the issue requirements
- Archive:
Contract/directory will be renamed toContract_archived/ - Preserve:
contracts/earn-questremains as the canonical implementation - Documentation: This decision document preserved for future reference
- References: Update any build scripts or documentation pointing to old location
- Minimal Risk:
contracts/is already the more advanced implementation - Build Systems: Need to verify no CI/CD references to
Contract/directory - Documentation: README files may need updates to reflect new canonical path
- Development: Future development should focus on
contracts/earn-quest
- Confirm no active dependencies on
Contract/directory - Verify build scripts work with canonical version
- Update documentation references
- Test that canonical version builds and deploys correctly
Contract/→Contract_archived/(archived)- Created this decision document
- Updated relevant documentation
Decision Date: 2025-04-25
Issue: #260 Contract Codebase Consolidation
Status: Complete - contracts/earn-quest chosen as canonical