CertiK reviewed Icplaza (ICPLAZA - Ⅱ) on 17 Oct 2022: 15 findings, 0 critical; 11 marked fixed, 3 acknowledged, 1 open.
Report hosted on skynet.certik.com.
Trustblock does not review code.
Statuses are the security firm’s own, from its report.
| Severity | Open | Acknowledged | Fixed |
|---|---|---|---|
| Critical | 0 | 0 | 0 |
| High | 0 | 3 | 0 |
| Medium | 0 | 0 | 1 |
| Low | 1 | 0 | 10 |
`_hashUsed` is used to prevent repetitive call of the same function as a reaction to the same transactions. However, in `burnLock()` the check is done, but the mapping is not updated. This practically disables the protection.
`IERC20` interface is not relevant to ERC20 standard.
`onlyMiner` modifier is supposed to be `onlyMinter`.
Code commented in Chinese.
The linked declarations do not conform to the [Solidity style guide](https://solidity.readthedocs.io/en/v0.7.3/style-guide.html#naming-conventions) with regards to its naming convention. `public` functions and state fields names should not start with `_`.
`public` functions that are never called by the contract could be declared as `external`. `external` functions are more efficient than `public` functions.
Addresses should be checked before assignment or external call to make sure they are not zero addresses.
A reentrancy attack can occur when the contract creates a function that makes an external call to another untrusted contract before resolving any effects. If the attacker can control the untrusted contract, they can make a recursive call back to the original function, repeating interactions that would have otherwise not run after the external call resolved the effects. `mint()`, `lock()`, `burnLock()`, `freeLock()` update the state or emit events after the external call.
The return value of the `transfer()/transferFrom()` call is not checked.
Variable `_minters` in `TRONChannel` is never used in `TRONChannel`.
The linked variables assigned in the constructor can be declared as `immutable`. Immutable state variables can be assigned during contract creation but will remain constant throughout the lifetime of a deployed contract. A big advantage of immutable variables is that reading them is significantly cheaper than reading from regular state variables since they will not be stored in storage.
The report names a repository or files. Open the report to see its scope.
Repository and files the report names (5)
1,044 projects reviewed · 1,375 reports · latest May 2025
See CertiK’s auditsSomething wrong on this page? A missing report, a wrong date, a finding that was fixed since. Tell us and we check it against its source.
Tell us