Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
FlexAtom.addLiquidity(uint256,uint256) (#1402-1417) sends eth to arbitrary user
Dangerous calls:
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(0),block.timestamp) (#1408-1415)
Ensure that an arbitrary user cannot withdraw unauthorized funds.
Additional information: link
FlexAtom._transfer(address,address,uint256) (#1341-1382) uses a dangerous strict equality:
- CoolDown[to] == 0 (#1353)
FlexAtom._transfer(address,address,uint256) (#1341-1382) uses a dangerous strict equality:
- (block.number.sub(CoolDown[from]) < 2) || (block.number.sub(CoolDown[from]) == 100) (#1365)
Don't use strict equality to determine if an account has enough Ether or tokens.
Additional information: link
DividendPayingToken.constructor(string,string,address)._name (#1027) shadows:
- ERC20._name (#730) (state variable)
DividendPayingToken.constructor(string,string,address)._symbol (#1027) shadows:
- ERC20._symbol (#731) (state variable)
DividendPayingToken.dividendOf(address)._owner (#1073) shadows:
- Ownable._owner (#475) (state variable)
DividendPayingToken.withdrawableDividendOf(address)._owner (#1080) shadows:
- Ownable._owner (#475) (state variable)
DividendPayingToken.withdrawnDividendOf(address)._owner (#1087) shadows:
- Ownable._owner (#475) (state variable)
DividendPayingToken.accumulativeDividendOf(address)._owner (#1095) shadows:
- Ownable._owner (#475) (state variable)
Rename the local variables that shadow another component.
Additional information: link
FlexAtom.setBurnFeePercent(uint256) (#1242-1244) should emit an event for:
- buyFee = value (#1243)
FlexAtom.setFeesFactor(uint256) (#1248-1250) should emit an event for:
- setFee = value (#1249)
FlexAtom.setLiquidityFeePercent(uint256) (#1257-1259) should emit an event for:
- marketingFeeVariable = value (#1258)
Emit an event for critical parameter changes.
Additional information: link
DividendPayingToken.constructor(string,string,address).token (#1027) lacks a zero-check on :
- BAKE = token (#1028)
FlexAtom.updateUniswapV2Router(address)._V2pair (#1284-1285) lacks a zero-check on :
- V2pair = _V2pair (#1286)
FlexAtom.setMarketingWallet(address).wallet (#1304) lacks a zero-check on :
- _marketingWalletAddress = wallet (#1305)
Check that the address is not zero.
Additional information: link
Reentrancy in DividendPayingToken._withdrawDividendOfUser(address) (#1051-1067):
External calls:
- success = IERC20(BAKE).transfer(user,_withdrawableDividend) (#1056)
State variables written after the call(s):
- withdrawnDividends[user] = withdrawnDividends[user].sub(_withdrawableDividend) (#1059)
Apply the check-effects-interactions pattern.
Additional information: link
FlexAtom._transfer(address,address,uint256).total_fee (#1359) is a local variable never initialized
Initialize all the variables. If a variable is meant to be initialized to zero, explicitly set it to zero to improve code readability.
Additional information: link
FlexAtom.addLiquidity(uint256,uint256) (#1402-1417) ignores return value by uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(0),block.timestamp) (#1408-1415)
Ensure that all the return values of the function calls are used.
Additional information: link
Reentrancy in FlexAtom.constructor() (#1211-1235):
External calls:
- _V2pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#1217-1218)
State variables written after the call(s):
- V2pair = _V2pair (#1221)
- _mint(owner(),100000000000 * (10 ** 9)) (#1234)
- _balances[account] = _balances[account].add(amount) (#929)
- _mint(owner(),100000000000 * (10 ** 9)) (#1234)
- _totalSupply = _totalSupply.add(amount) (#928)
- _setAutomatedMarketMakerPair(_V2pair,true) (#1223)
- automatedMarketMakerPairs[pair] = value (#1325)
- noFeesFor(owner(),true) (#1227)
- excludedAddresses[account] = excluded (#1291)
- noFeesFor(address(this),true) (#1228)
- excludedAddresses[account] = excluded (#1291)
- router = owner() (#1225)
- uniswapV2Router = _uniswapV2Router (#1220)
Reentrancy in FlexAtom.updateUniswapV2Router(address) (#1280-1287):
External calls:
- _V2pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this),uniswapV2Router.WETH()) (#1284-1285)
State variables written after the call(s):
- V2pair = _V2pair (#1286)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in FlexAtom.constructor() (#1211-1235):
External calls:
- _V2pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#1217-1218)
Event emitted after the call(s):
- ExcludeFromFees(account,excluded) (#1293)
- noFeesFor(owner(),true) (#1227)
- ExcludeFromFees(account,excluded) (#1293)
- noFeesFor(address(this),true) (#1228)
- SetAutomatedMarketMakerPair(pair,value) (#1327)
- _setAutomatedMarketMakerPair(_V2pair,true) (#1223)
- Transfer(address(0),account,amount) (#930)
- _mint(owner(),100000000000 * (10 ** 9)) (#1234)
Apply the check-effects-interactions pattern.
Additional information: link
Context._msgData() (#456-459) is never used and should be removed
DividendPayingToken._burn(address,uint256) (#1124-1129) is never used and should be removed
DividendPayingToken._mint(address,uint256) (#1114-1119) is never used and should be removed
DividendPayingToken._setBalance(address,uint256) (#1131-1141) is never used and should be removed
ERC20._burn(address,uint256) (#944-952) is never used and should be removed
FlexAtom.addLiquidity(uint256,uint256) (#1402-1417) is never used and should be removed
FlexAtom.swapTokensForEth(uint256) (#1384-1400) is never used and should be removed
SafeMath.mod(uint256,uint256) (#142-144) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#158-161) is never used and should be removed
SafeMathInt.abs(int256) (#222-225) is never used and should be removed
SafeMathInt.div(int256,int256) (#193-199) is never used and should be removed
SafeMathInt.mul(int256,int256) (#181-188) is never used and should be removed
Remove unused functions.
Additional information: link
Pragma version^0.8.8 (#19) is known to contain severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
solc-0.8.8 is known to contain severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
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 IUniswapV2Pair.DOMAIN_SEPARATOR() (#267) is not in mixedCase
Function IUniswapV2Pair.PERMIT_TYPEHASH() (#268) is not in mixedCase
Function IUniswapV2Pair.MINIMUM_LIQUIDITY() (#285) is not in mixedCase
Function IUniswapV2Router01.WETH() (#307) is not in mixedCase
Function IPancakeERC20.DOMAIN_SEPARATOR() (#640) is not in mixedCase
Function IPancakeERC20.PERMIT_TYPEHASH() (#641) is not in mixedCase
Variable ERC20.the_owner (#727) is not in mixedCase
Parameter DividendPayingToken.dividendOf(address)._owner (#1073) is not in mixedCase
Parameter DividendPayingToken.withdrawableDividendOf(address)._owner (#1080) is not in mixedCase
Parameter DividendPayingToken.withdrawnDividendOf(address)._owner (#1087) is not in mixedCase
Parameter DividendPayingToken.accumulativeDividendOf(address)._owner (#1095) is not in mixedCase
Variable DividendPayingToken.BAKE (#1007) is not in mixedCase
Constant DividendPayingToken.magnitude (#1012) is not in UPPER_CASE_WITH_UNDERSCORES
Variable FlexAtom.V2pair (#1149) is not in mixedCase
Variable FlexAtom._isBlacklisted (#1155) is not in mixedCase
Variable FlexAtom._maxWalletLimit (#1161) is not in mixedCase
Variable FlexAtom.CoolDown (#1164) is not in mixedCase
Variable FlexAtom._marketingWalletAddress (#1166) is not in mixedCase
Variable FlexAtom._teamWalletAddress (#1167) is not in mixedCase
Variable FlexAtom._maxTxAmount (#1171) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (#457)" inContext (#451-460)
Remove redundant statements if they congest code but offer no value.
Additional information: link
Variable IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#312) is too similar to IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#313)
Prevent variables from having similar names.
Additional information: link
FlexAtom.constructor() (#1211-1235) uses literals with too many digits:
- _mint(owner(),100000000000 * (10 ** 9)) (#1234)
FlexAtom.setMaxWalletLimit(uint256) (#1308-1311) uses literals with too many digits:
- require(bool,string)(value >= 2000000000 * (10 ** 9),Minimum max wallet limit is 2 percent) (#1309)
FlexAtom.updateGasForProcessing(uint256) (#1330-1335) uses literals with too many digits:
- require(bool,string)(newValue >= 200000 && newValue <= 500000,BABYBAKE: gasForProcessing must be between 200,000 and 500,000) (#1331)
FlexAtom.slitherConstructorVariables() (#1145-1419) uses literals with too many digits:
- swapTokensAtAmount = 2000000 * (10 ** 9) (#1153)
FlexAtom.slitherConstructorVariables() (#1145-1419) uses literals with too many digits:
- _maxWalletLimit = 3000000000 * (10 ** 9) (#1161)
FlexAtom.slitherConstructorVariables() (#1145-1419) uses literals with too many digits:
- _maxTxAmount = 100000000000 * (10 ** 9) (#1171)
FlexAtom.slitherConstructorVariables() (#1145-1419) uses literals with too many digits:
- gasForProcessing = 200000 (#1176)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
SafeMathInt.MAX_INT256 (#176) is never used in SafeMathInt (#174-232)
FlexAtom.swapping (#1152) is never used in FlexAtom (#1145-1419)
Remove unused state variables.
Additional information: link
FlexAtom._teamWalletAddress (#1167) should be constant
FlexAtom.liqForFee (#1159) should be constant
FlexAtom.rewardsFee (#1157) should be constant
FlexAtom.swapTokensAtAmount (#1153) should be constant
FlexAtom.swapping (#1152) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#508-510)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#516-519)
name() should be declared external:
- ERC20.name() (#751-753)
symbol() should be declared external:
- ERC20.symbol() (#759-761)
decimals() should be declared external:
- ERC20.decimals() (#776-778)
transfer(address,uint256) should be declared external:
- ERC20.transfer(address,uint256) (#802-805)
allowance(address,address) should be declared external:
- ERC20.allowance(address,address) (#810-812)
approve(address,uint256) should be declared external:
- ERC20.approve(address,uint256) (#821-824)
transferFrom(address,address,uint256) should be declared external:
- ERC20.transferFrom(address,address,uint256) (#839-847)
increaseAllowance(address,uint256) should be declared external:
- ERC20.increaseAllowance(address,uint256) (#861-864)
decreaseAllowance(address,uint256) should be declared external:
- ERC20.decreaseAllowance(address,uint256) (#880-883)
distributeBAKEDividends(uint256) should be declared external:
- DividendPayingToken.distributeBAKEDividends(uint256) (#1032-1043)
withdrawDividend() should be declared external:
- DividendPayingToken.withdrawDividend() (#1046-1048)
dividendOf(address) should be declared external:
- DividendPayingToken.dividendOf(address) (#1073-1075)
withdrawnDividendOf(address) should be declared external:
- DividendPayingToken.withdrawnDividendOf(address) (#1087-1089)
updateUniswapV2Router(address) should be declared external:
- FlexAtom.updateUniswapV2Router(address) (#1280-1287)
excludeMultipleAccountsFromFees(address[],bool) should be declared external:
- FlexAtom.excludeMultipleAccountsFromFees(address[],bool) (#1296-1302)
setAutomatedMarketMakerPair(address,bool) should be declared external:
- FlexAtom.setAutomatedMarketMakerPair(address,bool) (#1313-1317)
updateGasForProcessing(uint256) should be declared external:
- FlexAtom.updateGasForProcessing(uint256) (#1330-1335)
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