Blockrover - Audit

CertiKCode version: not recorded (see the report)

CertiK reviewed Blockrover (Blockrover - Audit) on 18 Jul 2023: 11 findings, 0 critical; 5 marked fixed, 6 acknowledged.

No open critical findings
Open the reportOpen Blockrover’s security record

Report hosted on skynet.certik.com.

Trustblock does not review code.

Findings11

Statuses are the security firm’s own, from its report.

SeverityOpenAcknowledgedFixed
Critical000
High020
Medium001
Low044
MediumMissing zero value validationFixed

The lower bound for `totBuyTax` and `totSellTax` are not set in function `setBuyTaxes` and `setSellTaxes`. When `totSellTax` is set to 0, it will raise an Denial of Service issue in `swapForFees` function: ```solidity=310 uint256 denominator = totSellTax * 2; uint256 tokensToAddLiquidityWith = contractBalance * sellTaxes.liquidity / denominator; uint256 toSwap = contractBalance - tokensToAddLiquidityWith; ``` Since `totSellTax` is 0, the `denominator` will be 0 and the transaction will be reverted due to the divided by zero issue.

LowLack of updates for admin settingsFixed

Currently when the `marketingWallet` and `devWallet` addresses is updated in function `updateMarketingWallet` and `updateDevWallet`. The old `marketingWallet` and `devWallet` addresses are still included in the `excludedFromFees` mapping even after being replaced by new addresses. ```solidity=602 function updateMarketingWallet(address newWallet) external onlyOwner{ marketingWallet = newWallet; } function updateDevWallet(address newWallet) external onlyOwner{ devWallet = newWallet; } ``` It is important to note that this situation could also potentially occur when ownership is transferred to a new owner as well. The old owner must be manually removed from the exclusion and the new owner must be manually added to the fee exclusion.

LowMissing Emit EventsFixed

There should always be events emitted in the sensitive functions that are controlled by centralization roles.

LowMissing Zero Address ValidationFixed

Addresses are not validated before assignment or external calls, potentially allowing the use of zero addresses and leading to unexpected behavior or vulnerabilities. For example, transferring tokens to a zero address can result in a permanent loss of those tokens. ```solidity=394 marketingWallet = newWallet; ``` - `newWallet` is not zero-checked before being used. --- ```solidity=398 devWallet = newWallet; ``` - `newWallet` is not zero-checked before being used. --- ```solidity=402 router = _router; ``` - `_router` is not zero-checked before being used. --- ```solidity=403 pair = _pair; ``` - `_pair` is not zero-checked before being used.

LowPotential Locked Native TokenFixed

The auditor understands the necessity of the `receive()` payable function in the current contract. However, after each call to "swapForFees()", the contract accumulates a small number of native tokens, which after a period becomes significant. And based on current implementation, these assets can not be withdrawn.

Contracts in scope

No deployed address is recorded for this audit.

The report names a repository or files. Open the report to see its scope.

Part of Blockrover’s security record

Blockrover
Audits1 audit by 1 firmLast audit Jul 2023, by CertiK.
Critical findingsNo open critical findingsIn 1 report.
Open Blockrover’s security record

Security firm

CertiK

1,044 projects reviewed · 1,375 reports · latest May 2025

See CertiK’s audits

Something 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