CertiK reviewed Optimus X (Optimus X - Audit) on 28 Dec 2023: 5 findings, 0 critical; 1 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 | 1 | 0 | 1 |
| Medium | 0 | 0 | 0 |
| Low | 0 | 3 | 0 |
The "Approval Race Condition" is an issue in the ERC20 approval system. When an ERC20 token owner updates a spender's allowance with the `approve()` function, the spender can observe this pending approval transaction on the public blockchain. They can use the current allowance before the new one takes effect and then benefit from the updated allowance once it's approved. Possible attack scenario: 1. Alice calls `approve(Bob, 100)` to allow Bob to spend 100 tokens. 2. Alice changes her mind and calls `approve(Bob, 50)`. 3. Bob observes the second `approve(Bob, 50)` function call and calls `transferFrom(Alice, Bob, 100)` before the second `approve(Bob, 50)` call. 4. The above scenario can be achieved by front-running. In this case, Bob can transfer another 50 tokens from Alice and in total, he transferred 150 tokens from Alice.
In a front-running attack, an attacker identifies a pending transaction on the public blockchain and jumps ahead of it (typically by paying higher gas fees). A sandwich attack is a specialized form of front-running. In this scenario, attackers identify users making token swaps or adding liquidity without appropriate slippage limits. The attacker then profits by buying the asset before the victim's transaction and selling it immediately afterwards. The following function are called without setting restrictions on slippage or minimum output amount, so transactions triggering these functions are vulnerable to sandwich attacks, especially when the input amount is large: - `swapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens()`
The contract is serving as the underlying entity to interact with one or more third party protocols. The scope of the audit treats third party entities as black boxes and assumes their functional correctness. However, in the real world, third parties can be compromised and this may lead to lost or stolen assets. In addition, upgrades of third parties can possibly create severe impacts, such as increasing fees of third parties, migrating to new LP pools, etc. ```solidity=185 AntiBot private AX; ``` - The contract `OPX` interacts with third party contract with `AntiBot` interface via `AX`. --- ```solidity=194 IRouter02 public swapRouter; ``` - The contract `OPX` interacts with third party contract with `IRouter02` interface via `swapRouter`. --- ```solidity=404 if(address(this).balance > 0) (success,) = marketingAddress.call{value: address(this).balance, gas: 35000}(""); ``` - The contract `OPX` interacts with third party contract or EOA `marketingAddress`
| Address | Chain | Source code |
|---|---|---|
| 0x6ec9…e12b0x6ec9a568881755c9698384cc6b5b13bf4064e12b | Chain: BNB Chain | Source code: Verified source |
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