Findings
Issue 01
Type
Severity
Location
Status
Owner Capabilities
High
receive
✔️ Resolved
Description
The owner can blacklist any address. If the owner blacklists the pair address or the contract address the token will be untradeable.
Recommendation
Add a require statement that prevents the owner from blacklisting the pair address and the contract address.
Issue 02
Type
Severity
Location
Status
Volatile Code
Medium
_transfer
❌ Not Resolved
Description
swapTokensForBos
is called on every transfer. This function sells tokens for BNB which can result in a price drop.
Recommendation
Consider adding a dynamic upper limit according to a percentage of the token pair balance, in order to control the price impact and prevent the token from being untradeable due to slippage higher than 49%.
General Notes
The team needs to acknowledge this issue and consider the value they put as the maximum limit.
Issue 03
Type
Severity
Location
Status
Volatile Code / Logical Issue
High
_transfer
✔️ Resolved
Description
swapTokensForBoss
is called on every transfer. If the pool is not created, this function will fail causing _transfer
to fail until liquidity is added.
In addition, swapTokensForBoss
will not work on buy transactions which is part of PancakeSwap's protocol requirements.
Recommendation
Add an option to disable the swapTokensForBoss feature, and only call this function on sell transactions.
Issue 04
Type
Severity
Location
Status
Best Practice
Medium
receive
✔️ Resolved
Description
There is a receive function in the contract, which means any address can send BNB to the contract.
Recommendation
In order to prevent the contract from receiving BNB from investors, which will result in a loss of funds, our recommendation is to only accept BNB from “whitelisted” addresses (e.g. router address).
The receive function will revert if the address is not whitelisted.
Issue 05
Type
Severity
Location
Status
Best Practice / Volatile Code
High
_transfer
✔️ Resolved
Description
_transfer calls the external function swapTokensForEth
. Since this function can be called during _transfer
, it may cause _transfer
to fail unnecessarily.
Recommendation
Use try-catch when calling external functions in critical path flows.
Our recommendation is to always make sure error cases are handled gracefully in critical functions such as _transfer.
Issue 06
Type
Severity
Location
Status
Owner Capabilities
High
setTransferFeeRate
Description
There is no upper limit to the setFees functions. If the owner sets them to 100% the token will be untradeable.
Description
Consider adding an upper limit to the set functions.
General Notes
The anti bot code can be removed as the team is going to use Solid Group bot protection.
Last updated