Skip to content

Fix config drift 244#281

Merged
Mosas2000 merged 31 commits into
mainfrom
fix-config-drift-244
Apr 28, 2026
Merged

Fix config drift 244#281
Mosas2000 merged 31 commits into
mainfrom
fix-config-drift-244

Conversation

@Mosas2000

Copy link
Copy Markdown
Owner

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

  • Checks for config drift
    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

@Mosas2000 Mosas2000 merged commit fad440e into main Apr 28, 2026
6 of 20 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bug: Root and frontend config files can drift out of sync

1 participant