CertiK reviewed Olympus (Olympus Protocol) on 11 Sep 2022: 12 findings, 0 critical; 6 marked fixed, 6 open.
The original report was removed from its address (seen 14 Oct 2026).
Trustblock does not review code.
Statuses are the security firm’s own, from its report.
| Severity | Open | Acknowledged | Fixed |
|---|---|---|---|
| Critical | 0 | 0 | 0 |
| High | 2 | 0 | 0 |
| Medium | 0 | 0 | 0 |
| Low | 4 | 0 | 6 |
Boolean constants can be used directly and do not need to be compared to true or false. ```solidity=652 if (_lpStatus == false) { ```
The linked `public` functions that are never called by the contract could be declared as `external`. `external` functions are more efficient than `public` functions.
The **require** can be used to check for conditions and throw an exception if the condition is not met. It is better to provide a string message containing details about the error that will be passed back to the caller.
During `OLY` token transfers, a fee is applied to the transfer. This fee structure depends on whether the transaction is buying/selling from a liquidity pool, or a regular token transfer. The three percentage fees taken from any transfer type are `dividend`, `funds` and `invite`. Their percentages are dictated by the `_owner` authorized function `setParams()`. If the percentage sum of these fees exceed 100% (or in other words, if the amount of fees is greater than the amount of tokens being transferred) then the function `_transferFee()` will lead to a revert, and as a consequence the `OLY` token cannot be transferred. ```solidity=695 uint256 _amount1 = amount.mul(_args.dividend).div(100); uint256 _amount2 = amount.mul(_args.funds).div(100); uint256 _amount3 = amount.mul(_args.invite).div(100); uint256 _amount4 = amount.sub(_amount1.add(_amount2).add(_amount3)); //This will revert if amount < (_amount1 + _amount2 + _amount3) ```
Addresses should be checked before assignment or external call to make sure they are not zero addresses.
The linked mappings are never used in the codebase. --- Variables `_idoers` and `_shares` in contract `OLY` is never used. ```solidity=429 mapping(address => uint256) internal _idoers; mapping(address => uint256) internal _shares; ```
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