Skip to content

Conversation

@omarinuwa
Copy link

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

  • Standardize ERC20BasicProperties.sol (17 properties)

Standardizing ERC20BasicProperties is the first of many files that will be updated to follow these standards.

Addresses #39

@CLAassistant
Copy link

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.


Omar Inuwa seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.
You have signed the CLA already but the status is still pending? Let us recheck it.

…ties

This PR addresses issue crytic#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 crytic#39
@omarinuwa omarinuwa force-pushed the standardize-erc20-basic-properties branch from 5585d6b to 289f932 Compare November 27, 2025 17:15
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.

2 participants