Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
BATCOIN._getTValues(uint256) (#627-631) performs a multiplication on the result of a division:
-tFee = tAmount.div(100).mul(2) (#628)
Consider ordering multiplication before division.
Additional information: link
BATCOIN.allowance(address,address).owner (#473) shadows:
- Ownable.owner() (#385-387) (function)
BATCOIN._approve(address,address,uint256).owner (#554) shadows:
- Ownable.owner() (#385-387) (function)
Rename the local variables that shadow another component.
Additional information: link
Address.isContract(address) (#251-260) uses assembly
- INLINE ASM (#258)
Address._functionCallWithValue(address,bytes,uint256,string) (#344-365) uses assembly
- INLINE ASM (#357-360)
Do not use evm assembly.
Additional information: link
BATCOIN.includeAccount(address) (#541-552) has costly operations inside a loop:
- _excluded.pop() (#548)
Use a local variable to hold the loop computation result.
Additional information: link
Address._functionCallWithValue(address,bytes,uint256,string) (#344-365) is never used and should be removed
Address.functionCall(address,bytes) (#304-306) is never used and should be removed
Address.functionCall(address,bytes,string) (#314-316) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#329-331) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#339-342) is never used and should be removed
Address.isContract(address) (#251-260) is never used and should be removed
Address.sendValue(address,uint256) (#278-284) is never used and should be removed
Context._msgData() (#13-16) is never used and should be removed
SafeMath.mod(uint256,uint256) (#211-213) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#227-230) is never used and should be removed
Remove unused functions.
Additional information: link
Low level call in Address.sendValue(address,uint256) (#278-284):
- (success) = recipient.call{value: amount}() (#282)
Low level call in Address._functionCallWithValue(address,bytes,uint256,string) (#344-365):
- (success,returndata) = target.call{value: weiValue}(data) (#348)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Constant BATCOIN._tTotal (#434) is not in UPPER_CASE_WITH_UNDERSCORES
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (#14)" inContext (#8-17)
Remove redundant statements if they congest code but offer no value.
Additional information: link
Variable BATCOIN._transferStandard(address,address,uint256).rTransferAmount (#580) is too similar to BATCOIN._getTValues(uint256).tTransferAmount (#629)
Variable BATCOIN.reflectionFromToken(uint256,bool).rTransferAmount (#521) is too similar to BATCOIN._transferFromExcluded(address,address,uint256).tTransferAmount (#597)
Variable BATCOIN._transferToExcluded(address,address,uint256).rTransferAmount (#588) is too similar to BATCOIN._getTValues(uint256).tTransferAmount (#629)
Variable BATCOIN._getRValues(uint256,uint256,uint256).rTransferAmount (#636) is too similar to BATCOIN._transferStandard(address,address,uint256).tTransferAmount (#580)
Variable BATCOIN._transferBothExcluded(address,address,uint256).rTransferAmount (#606) is too similar to BATCOIN._transferStandard(address,address,uint256).tTransferAmount (#580)
Variable BATCOIN.reflectionFromToken(uint256,bool).rTransferAmount (#521) is too similar to BATCOIN._transferToExcluded(address,address,uint256).tTransferAmount (#588)
Variable BATCOIN._transferBothExcluded(address,address,uint256).rTransferAmount (#606) is too similar to BATCOIN._transferBothExcluded(address,address,uint256).tTransferAmount (#606)
Variable BATCOIN._getRValues(uint256,uint256,uint256).rTransferAmount (#636) is too similar to BATCOIN._getTValues(uint256).tTransferAmount (#629)
Variable BATCOIN.reflectionFromToken(uint256,bool).rTransferAmount (#521) is too similar to BATCOIN._transferStandard(address,address,uint256).tTransferAmount (#580)
Variable BATCOIN.reflectionFromToken(uint256,bool).rTransferAmount (#521) is too similar to BATCOIN._transferBothExcluded(address,address,uint256).tTransferAmount (#606)
Variable BATCOIN._getValues(uint256).rTransferAmount (#623) is too similar to BATCOIN._transferToExcluded(address,address,uint256).tTransferAmount (#588)
Variable BATCOIN._getValues(uint256).rTransferAmount (#623) is too similar to BATCOIN._transferStandard(address,address,uint256).tTransferAmount (#580)
Variable BATCOIN._transferBothExcluded(address,address,uint256).rTransferAmount (#606) is too similar to BATCOIN._getTValues(uint256).tTransferAmount (#629)
Variable BATCOIN._getValues(uint256).rTransferAmount (#623) is too similar to BATCOIN._transferBothExcluded(address,address,uint256).tTransferAmount (#606)
Variable BATCOIN.reflectionFromToken(uint256,bool).rTransferAmount (#521) is too similar to BATCOIN._getTValues(uint256).tTransferAmount (#629)
Variable BATCOIN._transferFromExcluded(address,address,uint256).rTransferAmount (#597) is too similar to BATCOIN._transferFromExcluded(address,address,uint256).tTransferAmount (#597)
Variable BATCOIN._getValues(uint256).rTransferAmount (#623) is too similar to BATCOIN._getTValues(uint256).tTransferAmount (#629)
Variable BATCOIN._transferFromExcluded(address,address,uint256).rTransferAmount (#597) is too similar to BATCOIN._transferToExcluded(address,address,uint256).tTransferAmount (#588)
Variable BATCOIN._transferFromExcluded(address,address,uint256).rTransferAmount (#597) is too similar to BATCOIN._transferBothExcluded(address,address,uint256).tTransferAmount (#606)
Variable BATCOIN._transferFromExcluded(address,address,uint256).rTransferAmount (#597) is too similar to BATCOIN._transferStandard(address,address,uint256).tTransferAmount (#580)
Variable BATCOIN._transferStandard(address,address,uint256).rTransferAmount (#580) is too similar to BATCOIN._transferStandard(address,address,uint256).tTransferAmount (#580)
Variable BATCOIN._transferToExcluded(address,address,uint256).rTransferAmount (#588) is too similar to BATCOIN._transferToExcluded(address,address,uint256).tTransferAmount (#588)
Variable BATCOIN._transferFromExcluded(address,address,uint256).rTransferAmount (#597) is too similar to BATCOIN._getTValues(uint256).tTransferAmount (#629)
Variable BATCOIN._transferToExcluded(address,address,uint256).rTransferAmount (#588) is too similar to BATCOIN._transferStandard(address,address,uint256).tTransferAmount (#580)
Variable BATCOIN._transferToExcluded(address,address,uint256).rTransferAmount (#588) is too similar to BATCOIN._transferBothExcluded(address,address,uint256).tTransferAmount (#606)
Variable BATCOIN._getRValues(uint256,uint256,uint256).rTransferAmount (#636) is too similar to BATCOIN._getValues(uint256).tTransferAmount (#621)
Variable BATCOIN._transferStandard(address,address,uint256).rTransferAmount (#580) is too similar to BATCOIN._transferToExcluded(address,address,uint256).tTransferAmount (#588)
Variable BATCOIN.reflectionFromToken(uint256,bool).rTransferAmount (#521) is too similar to BATCOIN._getValues(uint256).tTransferAmount (#621)
Variable BATCOIN._getRValues(uint256,uint256,uint256).rTransferAmount (#636) is too similar to BATCOIN._transferFromExcluded(address,address,uint256).tTransferAmount (#597)
Variable BATCOIN._transferBothExcluded(address,address,uint256).rTransferAmount (#606) is too similar to BATCOIN._transferToExcluded(address,address,uint256).tTransferAmount (#588)
Variable BATCOIN._transferStandard(address,address,uint256).rTransferAmount (#580) is too similar to BATCOIN._transferBothExcluded(address,address,uint256).tTransferAmount (#606)
Variable BATCOIN._getRValues(uint256,uint256,uint256).rTransferAmount (#636) is too similar to BATCOIN._transferToExcluded(address,address,uint256).tTransferAmount (#588)
Variable BATCOIN._transferFromExcluded(address,address,uint256).rTransferAmount (#597) is too similar to BATCOIN._getValues(uint256).tTransferAmount (#621)
Variable BATCOIN._getRValues(uint256,uint256,uint256).rTransferAmount (#636) is too similar to BATCOIN._transferBothExcluded(address,address,uint256).tTransferAmount (#606)
Variable BATCOIN._getValues(uint256).rTransferAmount (#623) is too similar to BATCOIN._getValues(uint256).tTransferAmount (#621)
Variable BATCOIN._getValues(uint256).rTransferAmount (#623) is too similar to BATCOIN._transferFromExcluded(address,address,uint256).tTransferAmount (#597)
Variable BATCOIN._transferToExcluded(address,address,uint256).rTransferAmount (#588) is too similar to BATCOIN._getValues(uint256).tTransferAmount (#621)
Variable BATCOIN._transferStandard(address,address,uint256).rTransferAmount (#580) is too similar to BATCOIN._getValues(uint256).tTransferAmount (#621)
Variable BATCOIN._transferToExcluded(address,address,uint256).rTransferAmount (#588) is too similar to BATCOIN._transferFromExcluded(address,address,uint256).tTransferAmount (#597)
Variable BATCOIN._transferBothExcluded(address,address,uint256).rTransferAmount (#606) is too similar to BATCOIN._getValues(uint256).tTransferAmount (#621)
Variable BATCOIN._transferStandard(address,address,uint256).rTransferAmount (#580) is too similar to BATCOIN._transferFromExcluded(address,address,uint256).tTransferAmount (#597)
Variable BATCOIN._transferBothExcluded(address,address,uint256).rTransferAmount (#606) is too similar to BATCOIN._transferFromExcluded(address,address,uint256).tTransferAmount (#597)
Prevent variables from having similar names.
Additional information: link
BATCOIN.slitherConstructorConstantVariables() (#422-657) uses literals with too many digits:
- _tTotal = 1000000000 * 10 ** 6 (#434)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
BATCOIN._decimals (#440) should be constant
BATCOIN._name (#438) should be constant
BATCOIN._symbol (#439) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
owner() should be declared external:
- Ownable.owner() (#385-387)
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#404-407)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#413-417)
name() should be declared external:
- BATCOIN.name() (#447-449)
symbol() should be declared external:
- BATCOIN.symbol() (#451-453)
decimals() should be declared external:
- BATCOIN.decimals() (#455-457)
totalSupply() should be declared external:
- BATCOIN.totalSupply() (#459-461)
balanceOf(address) should be declared external:
- BATCOIN.balanceOf(address) (#463-466)
transfer(address,uint256) should be declared external:
- BATCOIN.transfer(address,uint256) (#468-471)
allowance(address,address) should be declared external:
- BATCOIN.allowance(address,address) (#473-475)
approve(address,uint256) should be declared external:
- BATCOIN.approve(address,uint256) (#477-480)
transferFrom(address,address,uint256) should be declared external:
- BATCOIN.transferFrom(address,address,uint256) (#482-486)
increaseAllowance(address,uint256) should be declared external:
- BATCOIN.increaseAllowance(address,uint256) (#488-491)
decreaseAllowance(address,uint256) should be declared external:
- BATCOIN.decreaseAllowance(address,uint256) (#493-496)
isExcluded(address) should be declared external:
- BATCOIN.isExcluded(address) (#498-500)
totalFees() should be declared external:
- BATCOIN.totalFees() (#502-504)
reflect(uint256) should be declared external:
- BATCOIN.reflect(uint256) (#506-513)
reflectionFromToken(uint256,bool) should be declared external:
- BATCOIN.reflectionFromToken(uint256,bool) (#515-524)
Use the external attribute for functions never called from the contract.
Additional information: link
Unable to find website, listings and other project-related information
Young tokens have high risks of scam / price dump / death
Token has no active CoinGecko listing / rank
Token has no active CoinMarketCap listing / rank
Unable to find Telegram and Twitter accounts