CertiK reviewed Sanji Inu on 22 Sep 2022: 13 findings, 0 critical; 4 acknowledged, 9 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 | 1 | 0 |
| Low | 9 | 0 | 0 |
In the contract `Ownable` the role `_owner` has authority over the functions shown in the diagram below. Any compromise to the `_owner` account may allow the hacker to take advantage of this authority.  In the contract `Sanji_Inu` the role `_developmentAddress` has authority over the functions shown in the diagram below. Any compromise to the `_developmentAddress` account may allow the hacker to take advantage of this authority.  In the contract `Sanji_Inu` the role `_marketingAddress` has authority over the functions shown in the diagram below. Any compromise to the `_marketingAddress` account may allow the hacker to take advantage of this authority.  In the contract `Sanji_Inu` the role `_owner` has authority over the functions shown in the diagram below. Any compromise to the `_owner` account may allow the hacker to take advantage of this authority. 
The `sendETHToFee` function transfers BNB to `_developmentAddress/_marketingAddress`. As a result, over time these two addresses will accumulate a significant portion of BNB. And they are EOA (Externally Owned Account), mishandling its private key can have devastating consequences for the project as a whole.
All of the SANJI tokens are sent to the contract deployer when deploying the contract. This could be a centralization risk as the deployer can distribute SANJI tokens without obtaining the consensus of the community.
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. ### External call(s) ```solidity=266 swapTokensForEth(contractTokenBalance); ``` * This function call executes the following external call(s). * In `Sanji_Inu.swapTokensForEth`, * `uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp)` ```solidity=269 sendETHToFee(address(this).balance); ``` * This function call executes the following external call(s). * In `Sanji_Inu.sendETHToFee`, * `_developmentAddress.transfer(amount.div(2))` * In `Sanji_Inu.sendETHToFee`, * `_marketingAddress.transfer(amount.div(2))` * This call sends Ether. ### State variables written after the call(s) ```solidity=290 _tokenTransfer(from,to,amount); ``` * This function call executes the following assignment(s). * In `Sanji_Inu._takeTeam`, * `_rOwned[address(this)] = _rOwned[address(this)].add(rTeam)` * In `Sanji_Inu._transferStandard`, * `_rOwned[sender] = _rOwned[sender].sub(rAmount)` * In `Sanji_Inu._transferStandard`, * `_rOwned[recipient] = _rOwned[recipient].add(rTransferAmount)` ```solidity=290 _tokenTransfer(from,to,amount); ``` * This function call executes the following assignment(s). * In `Sanji_Inu._reflectFee`, * `_rTotal = _rTotal.sub(rFee)`
| Address | Chain | Source code |
|---|---|---|
| 0xa9f0…070c0xa9f059f63cd432b65a723eeeff69304fd780070c | 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