CertiK reviewed Shopdi on 27 Sep 2022: 10 findings, 0 critical; 7 marked fixed, 2 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 | 1 | 0 |
| Medium | 0 | 1 | 0 |
| Low | 1 | 0 | 7 |
The error message for the modifier `onlyGnosisSafeWallet` mentions the `owner`, which could be confused with the error message for the `onlyOwner` modifier.
The comment says that the tax defaults to `5%`, however it is set to `1%` in the constructor. In addition, a comment states the max transfer amount rate is `0.5%` of the total supply, however it is set to `0.05%` in the constructor.
The `transferFrom()`, `decreaseAllowance()`, and `__transfer()` functions not have an explicit require statements, and depend on the exception thrown by the compiler. - The `transferFrom()` function does not have an explicit require statement to check whether the message sender is allowed by `sender` to spend the amount. - The `decreaseAllowance()` function does not have an explicit require statement to check if there is enough allowance for the `spender` that the message sender want to decrease. - The `__transfer()` function does not check if the `sender` has enough balance that they want to transfer to the `recipient`.
The `_gnosisSafeWallet` address should be checked before assignment to make sure is not the zero address.
These comments says that the following function can only be called by current operator. This gives the impression that operator can be changed, but the operator is immutable.
Literals with many digits are difficult to read and review.
The `_decimals` variable 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 (1)
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