AYATOKEN._transfer(address,address,uint256) (#655-778) ignores return value by metoken.transfer(sender,amountbya) (#749)
AYATOKEN.getusdt() (#961-966) ignores return value by metoken.transfer(safeaddress,amount) (#964)
Use SafeERC20, or ensure that the transfer/transferFrom return value is checked.
Additional information: link
Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
AYATOKEN._transfer(address,address,uint256) (#655-778) contains a tautology or contradiction:
- amountaya.sub(amount) < 0 || _isbuy[recipient] == true (#682)
Fix the incorrect comparison by changing the value type or the comparison.
Additional information: link
Contract ownership is not renounced (belongs to a wallet)
Reentrancy in AYATOKEN._transfer(address,address,uint256) (#655-778):
External calls:
- metoken.transfer(sender,amountbya) (#749)
State variables written after the call(s):
- _tokenTransfer(sender,sxfacc,amount.mul(_sxf).div(100)) (#757)
- _balances[sender] = _balances[sender].sub(amount) (#866)
- _balances[recipient] = _balances[recipient].add(amount) (#867)
- _tokenTransfer(sender,recipient,amount.mul(92 - _sxf).div(100)) (#758)
- _balances[sender] = _balances[sender].sub(amount) (#866)
- _balances[recipient] = _balances[recipient].add(amount) (#867)
- _tokenTransfer(sender,recipient,amount.mul(92).div(100)) (#760)
- _balances[sender] = _balances[sender].sub(amount) (#866)
- _balances[recipient] = _balances[recipient].add(amount) (#867)
- metoken = Tokenall(usdtaddress) (#752)
Reentrancy in AYATOKEN._transfer(address,address,uint256) (#655-778):
External calls:
- autosellayaforbya() (#772)
- meswap.swapExactTokensForTokensSupportingFeeOnTransferTokens(sellje,0,path,buybyaacc,3280730638) (#807-813)
State variables written after the call(s):
- _tokenTransfer(sender,0x89695BADB0B42e64d91fd32ECEaadaafF9322FA6,amount.mul(3).div(100)) (#774)
- _balances[sender] = _balances[sender].sub(amount) (#866)
- _balances[recipient] = _balances[recipient].add(amount) (#867)
- _tokenTransfer(sender,recipient,amount.mul(97).div(100)) (#775)
- _balances[sender] = _balances[sender].sub(amount) (#866)
- _balances[recipient] = _balances[recipient].add(amount) (#867)
Reentrancy in AYATOKEN.dh(uint256) (#817-831):
External calls:
- metoken.showdog(msg.sender) == true (#823)
- TransferHelper.safeTransferFrom(oldaya,msg.sender,tokenaddress,amount) (#826)
State variables written after the call(s):
- _islq[msg.sender] = true (#829)
Apply the check-effects-interactions pattern.
Additional information: link
AYATOKEN.autoapproveusdt() (#780-785) ignores return value by metoken.approve(mainrouter,10 * 10 ** 50) (#782)
AYATOKEN.autoapproveusdt() (#780-785) ignores return value by metoken.approve(tokenaddress,10 * 10 ** 50) (#783)
AYATOKEN.autoapprovetoken() (#786-791) ignores return value by metoken.approve(mainrouter,10 * 10 ** 50) (#788)
AYATOKEN.autoapprovetoken() (#786-791) ignores return value by metoken.approve(tokenaddress,10 * 10 ** 50) (#789)
AYATOKEN.autoapproveoldaya() (#792-796) ignores return value by metoken.approve(tokenaddress,10 * 10 ** 30) (#794)
Ensure that all the return values of the function calls are used.
Additional information: link
AYATOKEN.allowance(address,address).owner (#626) shadows:
- Ownable.owner() (#160-162) (function)
AYATOKEN._approve(address,address,uint256).owner (#879) shadows:
- Ownable.owner() (#160-162) (function)
Rename the local variables that shadow another component.
Additional information: link
AYATOKEN.setsxf(uint256) (#892-895) should emit an event for:
- _sxf = sxf (#894)
AYATOKEN.setsha(uint256) (#939-941) should emit an event for:
- sha = num (#940)
AYATOKEN.setopentime(uint256) (#951-953) should emit an event for:
- opentime = _opentime (#952)
AYATOKEN.setstarttime(uint256) (#954-956) should emit an event for:
- starttime = _starttime (#955)
AYATOKEN.setminsellje(uint256) (#957-959) should emit an event for:
- minsellje = _minsellje (#958)
Emit an event for critical parameter changes.
Additional information: link
AYATOKEN.setautoaddress(address)._autoaddress (#900) lacks a zero-check on :
- autoaddress = _autoaddress (#901)
AYATOKEN.setbyaaddress(address)._byaaddress (#932) lacks a zero-check on :
- byaaddress = _byaaddress (#933)
AYATOKEN.setlpbya(address)._lpbya (#936) lacks a zero-check on :
- lpbya = _lpbya (#937)
AYATOKEN.setsxfacc(address)._sxfacc (#943) lacks a zero-check on :
- sxfacc = _sxfacc (#944)
AYATOKEN.setbuybyaacc(address)._acc (#947) lacks a zero-check on :
- buybyaacc = _acc (#948)
Check that the address is not zero.
Additional information: link
Reentrancy in AYATOKEN.constructor() (#552-585):
External calls:
- lp1 = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),usdtaddress) (#559-562)
- lp2 = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#563-566)
State variables written after the call(s):
- _balances[mainacc] = _totalSupply.mul(100).div(100) (#583)
- _dogacc[0x57C01BA271F359Cd1A9Ec89Ea67420EBBB989641] = true (#581)
- _passaddress[lp1] = true (#568)
- _passaddress[lp2] = true (#569)
- _passaddress[autoaddress] = true (#570)
- _passaddress[burnacc] = true (#571)
- _whiteaddress[0x78Bd805Ee4263a33091D2098932d6866EE42885a] = true (#573)
- _whiteaddress[0x84f142b0C941F8d8975490d4e331B9041FDF7ed9] = true (#574)
- _whiteaddress[0xB15Ada760aDe0b9062194B3Fa3fF971EDD9930d0] = true (#575)
- _whiteaddress[msg.sender] = true (#576)
- _xzbmd[0x55f84c341CA5B952bF8EF607781Ff02A0ab2ba4c] = true (#578)
- _xzbmd[0xb7e5148CAF6958281Dd4ae07602190da3910d5Ac] = true (#579)
- lp2 = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#563-566)
Reentrancy in AYATOKEN.dh(uint256) (#817-831):
External calls:
- metoken.showdog(msg.sender) == true (#823)
State variables written after the call(s):
- _tokenTransfer(mainacc,msg.sender,newamount.mul(110).div(100)) (#824)
- _balances[sender] = _balances[sender].sub(amount) (#866)
- _balances[recipient] = _balances[recipient].add(amount) (#867)
Reentrancy in AYATOKEN.dh(uint256) (#817-831):
External calls:
- TransferHelper.safeTransferFrom(oldaya,msg.sender,tokenaddress,amount) (#826)
State variables written after the call(s):
- _tokenTransfer(mainacc,msg.sender,newamount.mul(103).div(100)) (#827)
- _balances[sender] = _balances[sender].sub(amount) (#866)
- _balances[recipient] = _balances[recipient].add(amount) (#867)
Reentrancy in AYATOKEN.transferFrom(address,address,uint256) (#637-641):
External calls:
- _transfer(sender,recipient,amount) (#638)
- meswap.swapExactTokensForTokensSupportingFeeOnTransferTokens(sellje,0,path,buybyaacc,3280730638) (#807-813)
- metoken.transfer(sender,amountbya) (#749)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,BEP20: transfer amount exceeds allowance)) (#639)
- _allowances[owner][spender] = amount (#883)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in AYATOKEN._transfer(address,address,uint256) (#655-778):
External calls:
- metoken.transfer(sender,amountbya) (#749)
Event emitted after the call(s):
- Transfer(sender,recipient,amount) (#868)
- _tokenTransfer(sender,recipient,amount.mul(92).div(100)) (#760)
- Transfer(sender,recipient,amount) (#868)
- _tokenTransfer(sender,recipient,amount.mul(92 - _sxf).div(100)) (#758)
- Transfer(sender,recipient,amount) (#868)
- _tokenTransfer(sender,sxfacc,amount.mul(_sxf).div(100)) (#757)
Reentrancy in AYATOKEN._transfer(address,address,uint256) (#655-778):
External calls:
- autosellayaforbya() (#772)
- meswap.swapExactTokensForTokensSupportingFeeOnTransferTokens(sellje,0,path,buybyaacc,3280730638) (#807-813)
Event emitted after the call(s):
- Transfer(sender,recipient,amount) (#868)
- _tokenTransfer(sender,0x89695BADB0B42e64d91fd32ECEaadaafF9322FA6,amount.mul(3).div(100)) (#774)
- Transfer(sender,recipient,amount) (#868)
- _tokenTransfer(sender,recipient,amount.mul(97).div(100)) (#775)
Reentrancy in AYATOKEN.constructor() (#552-585):
External calls:
- lp1 = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),usdtaddress) (#559-562)
- lp2 = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#563-566)
Event emitted after the call(s):
- Transfer(address(0),mainacc,_balances[mainacc]) (#584)
Reentrancy in AYATOKEN.dh(uint256) (#817-831):
External calls:
- metoken.showdog(msg.sender) == true (#823)
Event emitted after the call(s):
- Transfer(sender,recipient,amount) (#868)
- _tokenTransfer(mainacc,msg.sender,newamount.mul(110).div(100)) (#824)
Reentrancy in AYATOKEN.dh(uint256) (#817-831):
External calls:
- TransferHelper.safeTransferFrom(oldaya,msg.sender,tokenaddress,amount) (#826)
Event emitted after the call(s):
- Transfer(sender,recipient,amount) (#868)
- _tokenTransfer(mainacc,msg.sender,newamount.mul(103).div(100)) (#827)
Reentrancy in AYATOKEN.transferFrom(address,address,uint256) (#637-641):
External calls:
- _transfer(sender,recipient,amount) (#638)
- meswap.swapExactTokensForTokensSupportingFeeOnTransferTokens(sellje,0,path,buybyaacc,3280730638) (#807-813)
- metoken.transfer(sender,amountbya) (#749)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#884)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,BEP20: transfer amount exceeds allowance)) (#639)
Apply the check-effects-interactions pattern.
Additional information: link
AYATOKEN._transfer(address,address,uint256) (#655-778) uses timestamp for comparisons
Dangerous comparisons:
- block.timestamp < starttime && _whiteaddress[recipient] != true && (sender == lp1 || sender == lp2) (#664)
- block.timestamp < opentime && (sender == lp1 || sender == lp2) && _xzbmd[recipient] != true && _whiteaddress[recipient] != true (#669)
- block.timestamp < opentime && (sender == lp1 || sender == lp2) && _xzbmd[recipient] == true (#675)
Avoid relying on block.timestamp.
Additional information: link
Address.isContract(address) (#182-188) uses assembly
- INLINE ASM (#184-186)
Address.verifyCallResult(bool,bytes,string) (#250-267) uses assembly
- INLINE ASM (#259-262)
Do not use evm assembly.
Additional information: link
AYATOKEN._transfer(address,address,uint256) (#655-778) compares to a boolean constant:
-amountaya.sub(amount) < 0 || _isbuy[recipient] == true (#682)
AYATOKEN._transfer(address,address,uint256) (#655-778) compares to a boolean constant:
-_whiteaddress[sender] == true || _whiteaddress[recipient] == true (#765)
AYATOKEN._transfer(address,address,uint256) (#655-778) compares to a boolean constant:
-_dogacc[sender] == true && _whiteaddress[sender] != true && _xzbmd[sender] != true (#659)
AYATOKEN._transfer(address,address,uint256) (#655-778) compares to a boolean constant:
-block.timestamp < starttime && _whiteaddress[recipient] != true && (sender == lp1 || sender == lp2) (#664)
AYATOKEN._transfer(address,address,uint256) (#655-778) compares to a boolean constant:
-block.timestamp < opentime && (sender == lp1 || sender == lp2) && _xzbmd[recipient] != true && _whiteaddress[recipient] != true (#669)
AYATOKEN._transfer(address,address,uint256) (#655-778) compares to a boolean constant:
-(sender == lp1 || sender == lp2) && _whiteaddress[recipient] != true && sender != autoaddress && recipient != autoaddress (#690)
AYATOKEN._transfer(address,address,uint256) (#655-778) compares to a boolean constant:
-(recipient == lp1 || recipient == lp2) && _whiteaddress[sender] != true && sender != autoaddress && recipient != autoaddress (#736)
AYATOKEN._transfer(address,address,uint256) (#655-778) compares to a boolean constant:
-block.timestamp < opentime && (sender == lp1 || sender == lp2) && _xzbmd[recipient] == true (#675)
AYATOKEN._transfer(address,address,uint256) (#655-778) compares to a boolean constant:
-sha < 20 && _xzbmd[recipient] != true (#693)
AYATOKEN.dh(uint256) (#817-831) compares to a boolean constant:
-_islq[msg.sender] == true (#820)
AYATOKEN.dh(uint256) (#817-831) compares to a boolean constant:
-metoken.showdog(msg.sender) == true (#823)
Remove the equality to the boolean constant.
Additional information: link
AYATOKEN._burn(address,uint256) (#871-877) is never used and should be removed
AYATOKEN._burnFrom(address,uint256) (#887-890) is never used and should be removed
Address.functionCall(address,bytes) (#195-197) is never used and should be removed
Address.functionCall(address,bytes,string) (#198-204) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#205-211) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#212-223) is never used and should be removed
Address.functionDelegateCall(address,bytes) (#237-239) is never used and should be removed
Address.functionDelegateCall(address,bytes,string) (#240-249) is never used and should be removed
Address.functionStaticCall(address,bytes) (#224-226) is never used and should be removed
Address.functionStaticCall(address,bytes,string) (#227-236) is never used and should be removed
Address.isContract(address) (#182-188) is never used and should be removed
Address.sendValue(address,uint256) (#189-194) is never used and should be removed
Address.verifyCallResult(bool,bytes,string) (#250-267) is never used and should be removed
Context._msgData() (#148-150) is never used and should be removed
SafeMath.div(uint256,uint256,string) (#121-130) is never used and should be removed
SafeMath.mod(uint256,uint256) (#108-110) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#131-140) is never used and should be removed
SafeMath.tryAdd(uint256,uint256) (#63-69) is never used and should be removed
SafeMath.tryDiv(uint256,uint256) (#84-89) is never used and should be removed
SafeMath.tryMod(uint256,uint256) (#90-95) is never used and should be removed
SafeMath.tryMul(uint256,uint256) (#76-83) is never used and should be removed
SafeMath.trySub(uint256,uint256) (#70-75) is never used and should be removed
TransferHelper.safeApprove(address,address,uint256) (#17-21) is never used and should be removed
TransferHelper.safeTransfer(address,address,uint256) (#23-27) is never used and should be removed
TransferHelper.safeTransferETH(address,uint256) (#41-44) is never used and should be removed
TransferHelper.safeTransferFromNofee(address,address,address,uint256) (#35-39) is never used and should be removed
Remove unused functions.
Additional information: link
Low level call in TransferHelper.safeApprove(address,address,uint256) (#17-21):
- (success,data) = token.call(abi.encodeWithSelector(0x095ea7b3,to,value)) (#19)
Low level call in TransferHelper.safeTransfer(address,address,uint256) (#23-27):
- (success,data) = token.call(abi.encodeWithSelector(0xa9059cbb,to,value)) (#25)
Low level call in TransferHelper.safeTransferFrom(address,address,address,uint256) (#29-33):
- (success,data) = token.call(abi.encodeWithSelector(0x23b872dd,from,to,value)) (#31)
Low level call in TransferHelper.safeTransferFromNofee(address,address,address,uint256) (#35-39):
- (success,data) = token.call(abi.encodeWithSelector(0x4665ef26,from,to,value)) (#37)
Low level call in TransferHelper.safeTransferETH(address,uint256) (#41-44):
- (success) = to.call{value: value}(new bytes(0)) (#42)
Low level call in Address.sendValue(address,uint256) (#189-194):
- (success) = recipient.call{value: amount}() (#192)
Low level call in Address.functionCallWithValue(address,bytes,uint256,string) (#212-223):
- (success,returndata) = target.call{value: value}(data) (#221)
Low level call in Address.functionStaticCall(address,bytes,string) (#227-236):
- (success,returndata) = target.staticcall(data) (#234)
Low level call in Address.functionDelegateCall(address,bytes,string) (#240-249):
- (success,returndata) = target.delegatecall(data) (#247)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Function IUniswapV2Pair.DOMAIN_SEPARATOR() (#301) is not in mixedCase
Function IUniswapV2Pair.PERMIT_TYPEHASH() (#302) is not in mixedCase
Function IUniswapV2Pair.MINIMUM_LIQUIDITY() (#319) is not in mixedCase
Function IUniswapV2Router01.WETH() (#339) is not in mixedCase
Parameter AYATOKEN.setautoaddress(address)._autoaddress (#900) is not in mixedCase
Parameter AYATOKEN.addwhiteaddress(address)._acc (#904) is not in mixedCase
Parameter AYATOKEN.removewhiteaddress(address)._acc (#908) is not in mixedCase
Parameter AYATOKEN.addxzbmd(address)._acc (#912) is not in mixedCase
Parameter AYATOKEN.removexzbmd(address)._acc (#916) is not in mixedCase
Parameter AYATOKEN.adddogacc(address)._acc (#924) is not in mixedCase
Parameter AYATOKEN.removedogacc(address)._acc (#928) is not in mixedCase
Parameter AYATOKEN.setbyaaddress(address)._byaaddress (#932) is not in mixedCase
Parameter AYATOKEN.setlpbya(address)._lpbya (#936) is not in mixedCase
Parameter AYATOKEN.setsxfacc(address)._sxfacc (#943) is not in mixedCase
Parameter AYATOKEN.setbuybyaacc(address)._acc (#947) is not in mixedCase
Parameter AYATOKEN.setopentime(uint256)._opentime (#951) is not in mixedCase
Parameter AYATOKEN.setstarttime(uint256)._starttime (#954) is not in mixedCase
Parameter AYATOKEN.setminsellje(uint256)._minsellje (#957) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Variable IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#344) is too similar to IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#345)
Variable AYATOKEN._transfer(address,address,uint256).path_scope_0 (#699) is too similar to AYATOKEN._transfer(address,address,uint256).path_scope_2 (#742)
Variable AYATOKEN._transfer(address,address,uint256).res_scope_1 (#702) is too similar to AYATOKEN._transfer(address,address,uint256).res_scope_3 (#746)
Prevent variables from having similar names.
Additional information: link
AYATOKEN.slitherConstructorVariables() (#472-969) uses literals with too many digits:
- burnacc = 0x000000000000000000000000000000000000dEaD (#510)
AYATOKEN.slitherConstructorVariables() (#472-969) uses literals with too many digits:
- zeroacc = 0x0000000000000000000000000000000000000000 (#523)
AYATOKEN.slitherConstructorVariables() (#472-969) uses literals with too many digits:
- sxfacc = address(0x000000000000000000000000000000000000dEaD) (#530)
AYATOKEN.slitherConstructorVariables() (#472-969) uses literals with too many digits:
- buybyaacc = address(0x000000000000000000000000000000000000dEaD) (#532)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
AYATOKEN.burnacc (#510) should be constant
AYATOKEN.lpacc (#529) should be constant
AYATOKEN.lpfhnum (#537) should be constant
AYATOKEN.mainacc (#511) should be constant
AYATOKEN.mainrouter (#508) should be constant
AYATOKEN.oldaya (#513) should be constant
AYATOKEN.safeaddress (#531) should be constant
AYATOKEN.shaje (#542) should be constant
AYATOKEN.usdtaddress (#506) should be constant
AYATOKEN.zeroacc (#523) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#167-169)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#170-173)
increaseAllowance(address,uint256) should be declared external:
- AYATOKEN.increaseAllowance(address,uint256) (#644-647)
decreaseAllowance(address,uint256) should be declared external:
- AYATOKEN.decreaseAllowance(address,uint256) (#650-653)
autoapproveoldaya() should be declared external:
- AYATOKEN.autoapproveoldaya() (#792-796)
dh(uint256) should be declared external:
- AYATOKEN.dh(uint256) (#817-831)
setsxf(uint256) should be declared external:
- AYATOKEN.setsxf(uint256) (#892-895)
setfdaya(uint256) should be declared external:
- AYATOKEN.setfdaya(uint256) (#896-898)
setautoaddress(address) should be declared external:
- AYATOKEN.setautoaddress(address) (#900-902)
addwhiteaddress(address) should be declared external:
- AYATOKEN.addwhiteaddress(address) (#904-906)
removewhiteaddress(address) should be declared external:
- AYATOKEN.removewhiteaddress(address) (#908-910)
addxzbmd(address) should be declared external:
- AYATOKEN.addxzbmd(address) (#912-914)
removexzbmd(address) should be declared external:
- AYATOKEN.removexzbmd(address) (#916-918)
showdog(address) should be declared external:
- AYATOKEN.showdog(address) (#920-922)
adddogacc(address) should be declared external:
- AYATOKEN.adddogacc(address) (#924-926)
removedogacc(address) should be declared external:
- AYATOKEN.removedogacc(address) (#928-930)
setbyaaddress(address) should be declared external:
- AYATOKEN.setbyaaddress(address) (#932-934)
setlpbya(address) should be declared external:
- AYATOKEN.setlpbya(address) (#936-938)
setsha(uint256) should be declared external:
- AYATOKEN.setsha(uint256) (#939-941)
setsxfacc(address) should be declared external:
- AYATOKEN.setsxfacc(address) (#943-945)
setbuybyaacc(address) should be declared external:
- AYATOKEN.setbuybyaacc(address) (#947-949)
setopentime(uint256) should be declared external:
- AYATOKEN.setopentime(uint256) (#951-953)
setstarttime(uint256) should be declared external:
- AYATOKEN.setstarttime(uint256) (#954-956)
setminsellje(uint256) should be declared external:
- AYATOKEN.setminsellje(uint256) (#957-959)
getusdt() should be declared external:
- AYATOKEN.getusdt() (#961-966)
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