Fix config drift 244#281
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem Solved:
Contract settings were scattered across multiple files
config.ts
had wrong contract name (sprintfund-core instead of sprintfund-core-v3)
Scripts had hardcoded values
High risk of configuration drift
Solution Implemented:
Centralized Configuration (contract-config.json)
Single source of truth for all contract settings
Includes contract address, name, principal
Network configurations for mainnet/testnet
Legacy contract references
Configuration Loaders
JavaScript loader for scripts (
contract-config.js
)
TypeScript loader for frontend (
contract-config.ts
)
Helper functions for easy access
Legacy contract detection utilities
Updated All Files
Fixed
config.ts
contract name
Updated
config.ts
to use centralized config
Updated all scripts: create-proposal.js, stake.js, call-logger.js, withdraw-legacy.js
Updated shell script: create-test-proposal.sh
Updated .env.example to include contract name
Validation System
validate-config.js
Unit tests for config loaders
GitHub Actions workflow for CI/CD
Husky pre-commit hook
Documentation
CONFIGURATION.md - Detailed configuration guide
MIGRATION_CONFIG.md - Migration guide
contract-config.README.md - Config file documentation
Updated CONTRACT_VERSIONS.md with new process
Updated
README.md
and main README.md
Acceptance Criteria Met
✅ One clear source of truth exists - contract-config.json ✅ All references linked to source - All files use config loaders ✅ Minimal manual edits for version changes - Update one file, run validation
Closes #244