BabyKangaroo is a unique token inspired by the Kangaroo and the Boxing sport. We usually think of the Kangaroo as a hilarious creature with a fighting style similar to the Boxing style. That is where our ideas come from; we want to create a one-of-a-kind meme token that will thrive in the hearts of animal and boxing lovers.
Contract ownership is not renounced (belongs to a wallet)
Unable to verify that contract auditor is trusted: Certik, Quantstamp, Hacken, Solidity, Paladinsec, Openzeppelin, Verichains
Reentrancy in BabyKangaroo.constructor(string,string) (#1149-1153):
External calls:
- uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this),uniswapV2Router.WETH()) (#1151)
State variables written after the call(s):
- _approve(address(this),address(uniswapV2Router),~ uint256(0)) (#1152)
- _allowances[owner][spender] = amount (#1108)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in BabyKangaroo.constructor(string,string) (#1149-1153):
External calls:
- uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this),uniswapV2Router.WETH()) (#1151)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#1109)
- _approve(address(this),address(uniswapV2Router),~ uint256(0)) (#1152)
Apply the check-effects-interactions pattern.
Additional information: link
BabyKangaroo._transfer(address,address,uint256) (#1163-1198) compares to a boolean constant:
-taxStatus == true (#1186)
BabyKangaroo._transfer(address,address,uint256) (#1163-1198) compares to a boolean constant:
-taxStatus == true (#1169)
Remove the equality to the boolean constant.
Additional information: link
Different versions of Solidity is used:
- Version used: ['=0.8.13', '>=0.4.0', '>=0.5.0', '>=0.6.2', '^0.8.0', '^0.8.1']
- >=0.5.0 (#3)
- >=0.6.2 (#23)
- >=0.6.2 (#121)
- >=0.4.0 (#168)
- ^0.8.1 (#269)
- ^0.8.0 (#494)
- ^0.8.0 (#724)
- ^0.8.0 (#751)
- >=0.4.0 (#827)
- =0.8.13 (#1130)
Use one Solidity version.
Additional information: link
Address.verifyCallResult(bool,bytes,string) (#466-486) uses assembly
- INLINE ASM (#478-481)
Do not use evm assembly.
Additional information: link
ERC20.constructor(string,string,uint256).name (#876) shadows:
- ERC20.name() (#893-895) (function)
- IERC20.name() (#189) (function)
ERC20.constructor(string,string,uint256).symbol (#876) shadows:
- ERC20.symbol() (#907-909) (function)
- IERC20.symbol() (#184) (function)
ERC20.allowance(address,address).owner (#941) shadows:
- Ownable.owner() (#781-783) (function)
ERC20._approve(address,address,uint256).owner (#1101) shadows:
- Ownable.owner() (#781-783) (function)
BabyKangaroo.constructor(string,string)._name (#1149) shadows:
- ERC20._name (#863) (state variable)
BabyKangaroo.constructor(string,string)._symbol (#1149) shadows:
- ERC20._symbol (#864) (state variable)
Rename the local variables that shadow another component.
Additional information: link
Address.functionCall(address,bytes) (#350-352) is never used and should be removed
Address.functionCall(address,bytes,string) (#360-366) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#379-385) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#393-404) is never used and should be removed
Address.functionDelegateCall(address,bytes) (#439-441) is never used and should be removed
Address.functionDelegateCall(address,bytes,string) (#449-458) is never used and should be removed
Address.functionStaticCall(address,bytes) (#412-414) is never used and should be removed
Address.functionStaticCall(address,bytes,string) (#422-431) is never used and should be removed
Address.isContract(address) (#301-307) is never used and should be removed
Address.sendValue(address,uint256) (#325-330) is never used and should be removed
Address.verifyCallResult(bool,bytes,string) (#466-486) is never used and should be removed
Context._msgData() (#741-743) is never used and should be removed
ERC20._burnFrom(address,uint256) (#1118-1125) is never used and should be removed
SafeMath.div(uint256,uint256,string) (#681-690) is never used and should be removed
SafeMath.mod(uint256,uint256) (#641-643) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#707-716) is never used and should be removed
SafeMath.tryAdd(uint256,uint256) (#512-518) is never used and should be removed
SafeMath.tryDiv(uint256,uint256) (#554-559) is never used and should be removed
SafeMath.tryMod(uint256,uint256) (#566-571) is never used and should be removed
SafeMath.tryMul(uint256,uint256) (#537-547) is never used and should be removed
SafeMath.trySub(uint256,uint256) (#525-530) is never used and should be removed
Remove unused functions.
Additional information: link
Variable IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#32) is too similar to IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#33)
Prevent variables from having similar names.
Additional information: link
Low level call in Address.sendValue(address,uint256) (#325-330):
- (success) = recipient.call{value: amount}() (#328)
Low level call in Address.functionCallWithValue(address,bytes,uint256,string) (#393-404):
- (success,returndata) = target.call{value: value}(data) (#402)
Low level call in Address.functionStaticCall(address,bytes,string) (#422-431):
- (success,returndata) = target.staticcall(data) (#429)
Low level call in Address.functionDelegateCall(address,bytes,string) (#449-458):
- (success,returndata) = target.delegatecall(data) (#456)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Pragma version>=0.5.0 (#3) allows old versions
Pragma version>=0.6.2 (#23) allows old versions
Pragma version>=0.6.2 (#121) allows old versions
Pragma version>=0.4.0 (#168) allows old versions
Pragma version^0.8.1 (#269) allows old versions
Pragma version^0.8.0 (#494) allows old versions
Pragma version^0.8.0 (#724) allows old versions
Pragma version^0.8.0 (#751) allows old versions
Pragma version>=0.4.0 (#827) allows old versions
Pragma version=0.8.13 (#1130) necessitates a version too recent to be trusted. Consider deploying with 0.6.12/0.7.6/0.8.7
solc-0.8.13 is not recommended for deployment
Deploy with any of the following Solidity versions: 0.5.16 - 0.5.17, 0.6.11 - 0.6.12, 0.7.5 - 0.7.6 Use a simple pragma version that allows any of these versions. Consider using the latest version of Solidity for testing.
Additional information: link
Function IUniswapV2Router01.WETH() (#27) is not in mixedCase
Constant BabyKangaroo.maxSupply (#1136) is not in UPPER_CASE_WITH_UNDERSCORES
Constant BabyKangaroo.marketingSellFee (#1139) is not in UPPER_CASE_WITH_UNDERSCORES
Constant BabyKangaroo.marketingBuyFee (#1140) is not in UPPER_CASE_WITH_UNDERSCORES
Constant BabyKangaroo.liquiditySellFee (#1141) is not in UPPER_CASE_WITH_UNDERSCORES
Constant BabyKangaroo.liquidityBuyFee (#1142) is not in UPPER_CASE_WITH_UNDERSCORES
Constant BabyKangaroo.burnSellFee (#1143) is not in UPPER_CASE_WITH_UNDERSCORES
Constant BabyKangaroo.burnBuyFee (#1144) is not in UPPER_CASE_WITH_UNDERSCORES
Constant BabyKangaroo.marketingAddress (#1145) is not in UPPER_CASE_WITH_UNDERSCORES
Follow the Solidity naming convention.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#800-802)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#808-811)
Use the external attribute for functions never called from the contract.
Additional information: link
BscScan page for the token does not contain additional info: website, socials, description, etc.
Additional information: link
Unable to find token on CoinGecko
Additional information: link
Unable to verify token contract address on the website
Unable to find audit link on the website
Unable to find token on CoinHunt
Additional information: link
Unable to find code repository for the project
Alexa traffic rank is very low
Additional information: link
Young tokens have high risks of scam / price dump / death
Young tokens have high risks of scam / price dump / death
Young tokens have high risks of scam / price dump / death
Young tokens have high risks of scam / price dump / death
Token has no active CoinGecko listing / rank
Unable to find Blog account (Reddit or Medium)
Unable to find Youtube account
Unable to find Discord account