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-cli
Given 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.