Commit 5585d6b
Omar Inuwa
Add property documentation standards and standardize ERC20BasicProperties
This PR addresses issue #39 by establishing comprehensive documentation
standards for all property test functions in the repository.
Changes:
- Add PROPERTY_STANDARDS.md defining complete documentation standards
- NatSpec template with required tags (@title, @notice, @dev, @Custom)
- 5 testing modes documented (INTERNAL/EXTERNAL/ISOLATED/FUNCTION_OVERRIDE/MODEL)
- Property ID format: [STANDARD]-[CATEGORY]-[NUMBER]
- Section organization guidelines matching ABDKMath64x64 style
- Before/after examples and contribution checklist
- Standardize ERC20BasicProperties.sol (17 properties)
- Add comprehensive contract-level NatSpec documentation
- Organize into 4 logical sections with standardized headers:
* Supply Accounting (1 property)
* Balance Accounting (3 properties)
* Transfer Properties (10 properties)
* Allowance Properties (3 properties)
- Add full NatSpec to all 17 properties with:
* Testing mode specification (INTERNAL)
* Plain English invariant descriptions
* Unique property IDs (ERC20-SUPPLY-001 through ERC20-ALLOWANCE-003)
* Detailed explanations of why each property matters
Standardizing ERC20BasicProperties is the first of many files that will
be updated to follow these standards. This establishes the foundation and
reference implementation for standardizing the remaining 151 properties
across ERC20, ERC721, ERC4626, and Math library contracts.
Fixes #391 parent d346d8e commit 5585d6b
File tree
2 files changed
+627
-20
lines changed- contracts/ERC20/internal/properties
2 files changed
+627
-20
lines changed
0 commit comments