Overview
At Blaize, we provide security services at all levels for projects of different scales. That includes verifying the implementation of ERC20 tokens, as we performed for the WEPC token by the WAR.DAY team.
Task
During our audit, we scrutinized the smart contract for various vulnerabilities in several stages:
1) Standard vulnerabilities checklists, including but not limited to:
- Reentrancy
- Gas limit and loops
- Transaction-ordering dependence
- Unchecked external calls
- Denial-of-Service (DoS) attacks
- Malicious libraries and injections
- Storage issues (uninitialized, unused, etc) and incorrect local variable usage
- Public interface and access control structure
and other potential Solidity vulnerabilities and attack vectors;
2) Business logic decompositions to find loopholes, deadlocks, hidden backdoors, incorrect math and calculations, malicious code injections, and other flow-related issues;
3) Review of dependencies, integrations and 3rd parties, verified with appropriate integration tests;
4) Our own internal security checklists, additionally verified during the testing stage.
The team first focused on verifying the correctness of the ERC20 standard implementation, the version of standard contracts used from the OpenZeppelin library, the access control approach (for mint and burn functions), and the chosen approach for token supply management (via mint and burn functions).