ERCXP is a repository created to experiment, play and review the OZ v0.5 contracts.
- Understand OZ v0.5 contract implementations in depth
- Testing using foundry (for specific contracts). This is to test edge case scenarios or issues I was looking forward to but was disproved by a test. If a test proves an issue to exist, it will be reported to the bounty program on ImmuneFi. Any minor QA issues will be opened as a issue on the OZ repository itself.
- Performing a security review on each contract to see if any bugs exist. Check out my Audit Portfolio for more information on my experience in the smart contract security space.
- OZ contract implementations used by other projects, which will help me fasten my security review process
- Enforcing practice with different types of testing
- Foundry itself
- Although I have a good grasp of most OZ implementations, I intend to leave no stone unturned in understanding and reviewing the core infrastructure that most projects rely on today, the OZ contracts.
- Overall, breaking version changes occur every 5-6 months, thus this time-frame window is perfect to start diving deep into the v0.5 contracts to ensure OZ implementations are correct and adhere to EIP standards.
- Known and less known ERCs
- Contracts that are not ERCs/EIPs but implemented by OZ for the community
- Differences between ERCs that are extremely similar and their tradeoffs
- Intro - To briefly explain what contract is used for
- Explanation for each function internal workings
- Brief explanation for easy to understand functions
- Deep explanation for difficult to understand functions
- Unknown tradeoffs/assumptions
- Assumptions end devs using this contract have to make
- Tradeoffs or Additions compared to any similar contracts previously explained
- Links
- Example implementation
- Tests for the example implementation
- EIP spec maintained in all instances of implementation: Yes/No
- Stating EIP spec violations, if any
- Any additional fields as required to keep the aspect of experimentation intact during the process
The repository will follow a hierarchical tree structure for both the src and test folders.
For src:
- Level 0 - Contract Type: OZ structure followed such as tokens, governance, proxy etc.
- Level 1 - Grouping each ERC separately with explanation and example implementation
For test:
- Level 0 - Contract Type: OZ structure followed such as tokens, governance, proxy etc.
- Level 1 - Grouping each ERC separately with different types of tests. Difficult to understand contracts will receive more emphasis.