Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
BabyChef.allowance(address,address).owner (#261) shadows:
- Ownable.owner() (#164-166) (function)
BabyChef._approve(address,address,uint256).owner (#349) shadows:
- Ownable.owner() (#164-166) (function)
Rename the local variables that shadow another component.
Additional information: link
BabyChef.constructor() (#217-233) performs a multiplication on the result of a division:
-_rToMarketing = (_rTotal.div(100)).mul(3) (#221)
BabyChef.constructor() (#217-233) performs a multiplication on the result of a division:
-_rTotransfer = _rTotransfer.sub((_rTotal.div(100)).mul(3)) (#224)
BabyChef._transferStandard(address,address,uint256) (#378-389) performs a multiplication on the result of a division:
-_rOwned[_marketingWallet] = _rOwned[_marketingWallet].add(rFee.div(100).mul(3)) (#384)
BabyChef._transferToExcluded(address,address,uint256) (#391-403) performs a multiplication on the result of a division:
-_rOwned[_marketingWallet] = _rOwned[_marketingWallet].add(rFee.div(100).mul(3)) (#399)
BabyChef._transferFromExcluded(address,address,uint256) (#405-417) performs a multiplication on the result of a division:
-_rOwned[_marketingWallet] = _rOwned[_marketingWallet].add(rFee.div(100).mul(3)) (#413)
BabyChef._transferBothExcluded(address,address,uint256) (#419-432) performs a multiplication on the result of a division:
-_rOwned[_marketingWallet] = _rOwned[_marketingWallet].add(rFee.div(100).mul(3)) (#428)
Consider ordering multiplication before division.
Additional information: link
BabyChef._setTaxFee(uint256) (#492-494) should emit an event for:
- _taxFee = taxFee (#493)
BabyChef._setBurnFee(uint256) (#496-498) should emit an event for:
- _burnFee = burnFee (#497)
Emit an event for critical parameter changes.
Additional information: link
BabyChef._setMarketingWallet(address).marketingWallet (#501) lacks a zero-check on :
- _marketingWallet = marketingWallet (#502)
Check that the address is not zero.
Additional information: link
Address.isContract(address) (#95-102) uses assembly
- INLINE ASM (#100)
Address._functionCallWithValue(address,bytes,uint256,string) (#134-150) uses assembly
- INLINE ASM (#142-145)
Do not use evm assembly.
Additional information: link
BabyChef.includeAccount(address) (#336-347) has costly operations inside a loop:
- _excluded.pop() (#343)
Use a local variable to hold the loop computation result.
Additional information: link
Address._functionCallWithValue(address,bytes,uint256,string) (#134-150) is never used and should be removed
Address.functionCall(address,bytes) (#114-116) is never used and should be removed
Address.functionCall(address,bytes,string) (#119-121) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#124-126) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#129-132) is never used and should be removed
Address.isContract(address) (#95-102) is never used and should be removed
Address.sendValue(address,uint256) (#105-111) is never used and should be removed
Context._msgData() (#20-23) is never used and should be removed
SafeMath.mod(uint256,uint256) (#83-85) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#87-90) is never used and should be removed
Remove unused functions.
Additional information: link
BabyChef._rTotal (#200) is set pre-construction with a non-constant function or state variable:
- (MAX - (MAX % _tTotal))
Remove any initialization of state variables via non-constant state variables or function calls. If variables must be set upon contract deployment, locate initialization in the constructor instead.
Additional information: link
Low level call in Address.sendValue(address,uint256) (#105-111):
- (success) = recipient.call.value(amount)() (#109)
Low level call in Address._functionCallWithValue(address,bytes,uint256,string) (#134-150):
- (success,returndata) = target.call.value(weiValue)(data) (#137)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Function BabyChef._getTaxFee() (#480-482) is not in mixedCase
Function BabyChef._getBurnFee() (#484-486) is not in mixedCase
Function BabyChef._getMaxTxAmount() (#488-490) is not in mixedCase
Function BabyChef._setTaxFee(uint256) (#492-494) is not in mixedCase
Function BabyChef._setBurnFee(uint256) (#496-498) is not in mixedCase
Function BabyChef._setMarketingWallet(address) (#501-503) is not in mixedCase
Constant BabyChef._decimals (#196) is not in UPPER_CASE_WITH_UNDERSCORES
Constant BabyChef._name (#205) is not in UPPER_CASE_WITH_UNDERSCORES
Constant BabyChef._symbol (#206) is not in UPPER_CASE_WITH_UNDERSCORES
Variable BabyChef._max_tx_size (#211) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (#21)" inContext (#15-24)
Remove redundant statements if they congest code but offer no value.
Additional information: link
Variable BabyChef.constructor()._rToMarketing (#221) is too similar to BabyChef.constructor()._tToMarketing (#222)
Variable BabyChef.constructor()._rTotransfer (#218) is too similar to BabyChef.constructor()._tTotransfer (#219)
Variable BabyChef._transferStandard(address,address,uint256).rTransferAmount (#380) is too similar to BabyChef._getValues(uint256).tTransferAmount (#442)
Variable BabyChef._transferToExcluded(address,address,uint256).rTransferAmount (#393) is too similar to BabyChef._transferBothExcluded(address,address,uint256).tTransferAmount (#421)
Variable BabyChef._transferBothExcluded(address,address,uint256).rTransferAmount (#421) is too similar to BabyChef._transferBothExcluded(address,address,uint256).tTransferAmount (#421)
Variable BabyChef._getValues(uint256).rTransferAmount (#444) is too similar to BabyChef._transferBothExcluded(address,address,uint256).tTransferAmount (#421)
Variable BabyChef._transferFromExcluded(address,address,uint256).rTransferAmount (#407) is too similar to BabyChef._transferBothExcluded(address,address,uint256).tTransferAmount (#421)
Variable BabyChef._transferFromExcluded(address,address,uint256).rTransferAmount (#407) is too similar to BabyChef._getValues(uint256).tTransferAmount (#442)
Variable BabyChef._transferStandard(address,address,uint256).rTransferAmount (#380) is too similar to BabyChef._transferToExcluded(address,address,uint256).tTransferAmount (#393)
Variable BabyChef.reflectionFromToken(uint256,bool).rTransferAmount (#313) is too similar to BabyChef._transferBothExcluded(address,address,uint256).tTransferAmount (#421)
Variable BabyChef._transferStandard(address,address,uint256).rTransferAmount (#380) is too similar to BabyChef._transferFromExcluded(address,address,uint256).tTransferAmount (#407)
Variable BabyChef._transferToExcluded(address,address,uint256).rTransferAmount (#393) is too similar to BabyChef._transferToExcluded(address,address,uint256).tTransferAmount (#393)
Variable BabyChef._getValues(uint256).rTransferAmount (#444) is too similar to BabyChef._transferToExcluded(address,address,uint256).tTransferAmount (#393)
Variable BabyChef._transferFromExcluded(address,address,uint256).rTransferAmount (#407) is too similar to BabyChef._transferToExcluded(address,address,uint256).tTransferAmount (#393)
Variable BabyChef._transferFromExcluded(address,address,uint256).rTransferAmount (#407) is too similar to BabyChef._transferFromExcluded(address,address,uint256).tTransferAmount (#407)
Variable BabyChef.reflectionFromToken(uint256,bool).rTransferAmount (#313) is too similar to BabyChef._transferToExcluded(address,address,uint256).tTransferAmount (#393)
Variable BabyChef._transferStandard(address,address,uint256).rTransferAmount (#380) is too similar to BabyChef._transferBothExcluded(address,address,uint256).tTransferAmount (#421)
Variable BabyChef._transferToExcluded(address,address,uint256).rTransferAmount (#393) is too similar to BabyChef._getTValues(uint256,uint256,uint256).tTransferAmount (#451)
Variable BabyChef.reflectionFromToken(uint256,bool).rTransferAmount (#313) is too similar to BabyChef._transferStandard(address,address,uint256).tTransferAmount (#380)
Variable BabyChef._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#459) is too similar to BabyChef._transferBothExcluded(address,address,uint256).tTransferAmount (#421)
Variable BabyChef._getValues(uint256).rTransferAmount (#444) is too similar to BabyChef._transferStandard(address,address,uint256).tTransferAmount (#380)
Variable BabyChef._getValues(uint256).rTransferAmount (#444) is too similar to BabyChef._transferFromExcluded(address,address,uint256).tTransferAmount (#407)
Variable BabyChef.reflectionFromToken(uint256,bool).rTransferAmount (#313) is too similar to BabyChef._transferFromExcluded(address,address,uint256).tTransferAmount (#407)
Variable BabyChef._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#459) is too similar to BabyChef._getValues(uint256).tTransferAmount (#442)
Variable BabyChef._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#459) is too similar to BabyChef._transferToExcluded(address,address,uint256).tTransferAmount (#393)
Variable BabyChef.reflectionFromToken(uint256,bool).rTransferAmount (#313) is too similar to BabyChef._getTValues(uint256,uint256,uint256).tTransferAmount (#451)
Variable BabyChef._transferBothExcluded(address,address,uint256).rTransferAmount (#421) is too similar to BabyChef._transferToExcluded(address,address,uint256).tTransferAmount (#393)
Variable BabyChef._transferBothExcluded(address,address,uint256).rTransferAmount (#421) is too similar to BabyChef._getValues(uint256).tTransferAmount (#442)
Variable BabyChef._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#459) is too similar to BabyChef._transferStandard(address,address,uint256).tTransferAmount (#380)
Variable BabyChef._getValues(uint256).rTransferAmount (#444) is too similar to BabyChef._getTValues(uint256,uint256,uint256).tTransferAmount (#451)
Variable BabyChef._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#459) is too similar to BabyChef._transferFromExcluded(address,address,uint256).tTransferAmount (#407)
Variable BabyChef._transferBothExcluded(address,address,uint256).rTransferAmount (#421) is too similar to BabyChef._transferStandard(address,address,uint256).tTransferAmount (#380)
Variable BabyChef._transferBothExcluded(address,address,uint256).rTransferAmount (#421) is too similar to BabyChef._transferFromExcluded(address,address,uint256).tTransferAmount (#407)
Variable BabyChef._transferStandard(address,address,uint256).rTransferAmount (#380) is too similar to BabyChef._transferStandard(address,address,uint256).tTransferAmount (#380)
Variable BabyChef._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#459) is too similar to BabyChef._getTValues(uint256,uint256,uint256).tTransferAmount (#451)
Variable BabyChef._transferBothExcluded(address,address,uint256).rTransferAmount (#421) is too similar to BabyChef._getTValues(uint256,uint256,uint256).tTransferAmount (#451)
Variable BabyChef._getValues(uint256).rTransferAmount (#444) is too similar to BabyChef._getValues(uint256).tTransferAmount (#442)
Variable BabyChef._transferToExcluded(address,address,uint256).rTransferAmount (#393) is too similar to BabyChef._getValues(uint256).tTransferAmount (#442)
Variable BabyChef._transferFromExcluded(address,address,uint256).rTransferAmount (#407) is too similar to BabyChef._transferStandard(address,address,uint256).tTransferAmount (#380)
Variable BabyChef._transferStandard(address,address,uint256).rTransferAmount (#380) is too similar to BabyChef._getTValues(uint256,uint256,uint256).tTransferAmount (#451)
Variable BabyChef._transferToExcluded(address,address,uint256).rTransferAmount (#393) is too similar to BabyChef._transferStandard(address,address,uint256).tTransferAmount (#380)
Variable BabyChef._transferToExcluded(address,address,uint256).rTransferAmount (#393) is too similar to BabyChef._transferFromExcluded(address,address,uint256).tTransferAmount (#407)
Variable BabyChef._transferFromExcluded(address,address,uint256).rTransferAmount (#407) is too similar to BabyChef._getTValues(uint256,uint256,uint256).tTransferAmount (#451)
Variable BabyChef.reflectionFromToken(uint256,bool).rTransferAmount (#313) is too similar to BabyChef._getValues(uint256).tTransferAmount (#442)
Prevent variables from having similar names.
Additional information: link
BabyChef.slitherConstructorVariables() (#185-507) uses literals with too many digits:
- _tTotal = 100000000000000 * 10 ** uint256(_decimals) (#199)
BabyChef.slitherConstructorVariables() (#185-507) uses literals with too many digits:
- _max_tx_size = 10000000000000 * 10 ** uint256(_decimals) (#211)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
BabyChef._charityFee (#209) is never used in BabyChef (#185-507)
Remove unused state variables.
Additional information: link
BabyChef._charityFee (#209) should be constant
BabyChef._max_tx_size (#211) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#173-176)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#178-182)
name() should be declared external:
- BabyChef.name() (#235-237)
symbol() should be declared external:
- BabyChef.symbol() (#239-241)
decimals() should be declared external:
- BabyChef.decimals() (#243-245)
totalSupply() should be declared external:
- BabyChef.totalSupply() (#247-249)
balanceOf(address) should be declared external:
- BabyChef.balanceOf(address) (#251-254)
transfer(address,uint256) should be declared external:
- BabyChef.transfer(address,uint256) (#256-259)
allowance(address,address) should be declared external:
- BabyChef.allowance(address,address) (#261-263)
approve(address,uint256) should be declared external:
- BabyChef.approve(address,uint256) (#265-268)
transferFrom(address,address,uint256) should be declared external:
- BabyChef.transferFrom(address,address,uint256) (#270-274)
increaseAllowance(address,uint256) should be declared external:
- BabyChef.increaseAllowance(address,uint256) (#276-279)
decreaseAllowance(address,uint256) should be declared external:
- BabyChef.decreaseAllowance(address,uint256) (#281-284)
isExcluded(address) should be declared external:
- BabyChef.isExcluded(address) (#286-288)
totalFees() should be declared external:
- BabyChef.totalFees() (#290-292)
totalBurn() should be declared external:
- BabyChef.totalBurn() (#294-296)
deliver(uint256) should be declared external:
- BabyChef.deliver(uint256) (#298-305)
reflectionFromToken(uint256,bool) should be declared external:
- BabyChef.reflectionFromToken(uint256,bool) (#307-316)
_getTaxFee() should be declared external:
- BabyChef._getTaxFee() (#480-482)
_getBurnFee() should be declared external:
- BabyChef._getBurnFee() (#484-486)
_getMaxTxAmount() should be declared external:
- BabyChef._getMaxTxAmount() (#488-490)
Use the external attribute for functions never called from the contract.
Additional information: link
Unable to find website, listings and other project-related information
Token has a considerable age, but we're still unable to find its website
Token has no active CoinGecko listing / rank
Token has no active CoinMarketCap listing / rank
Token has a considerable age, but social accounts / website are missing or have few users
Unable to find Telegram and Twitter accounts