A CLI tool that verifies preconditions, postconditions, and invariants in contracts without altering their original source code. contract-shield-cli enforces Design by Contract principles externally, ensuring contracts behave as expected while preserving their integrity.
- Precondition Validation (@pre) – Ensures input conditions are met before execution.
- Postcondition Verification (@post) – Confirms expected results after execution.
- Invariant Checking (@invariant) – Maintains logical consistency across operations.
- Source Code Integrity – Works externally without modifying the original code.
To install contract-shield-cli, use:
npm install -g contract-shield-cliGiven the following contract source code:
/**
 * Example function with validation tags
 * @pre amount > 0
 * @post balance == previousBalance - amount
 * @post balance >= 0
 */
function withdraw(amount) {
}The tool will generate a modified version of the contract that enforces these conditions
- Fork the repository.
- Create a feature branch (git checkout -b feature-branch).
- Commit changes (git commit -m "Add feature").
- Push to GitHub (git push origin feature-branch).
- Open a Pull Request.
This project is licensed under the MIT License. See LICENSE for details.