ARES Token Logo

ARES Token

About ARES

Listings

Not Found
Token 15 days

Website

Not Found

Description

Not Found

Social

Not Found

Laser Scorebeta Last Audit: 24 June 2022

report
Token seems to be a scam (type: rug pull scam).

ARES.claimTokens(IERC20) (#636-639) ignores return value by _token.transferFrom(address(this),_marketAddress,_token.balanceOf(address(this))) (#638)
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...)


Contract ownership is not renounced (belongs to a wallet)

ARES._tokenTransfer(address,address,uint256,bool) (#823-877) performs a multiplication on the result of a division:
-_takeTransfer(sender,_destroyAddress,tAmount.div(100).mul(_transferFeeDestoryRate)) (#832-836)
ARES._tokenTransfer(address,address,uint256,bool) (#823-877) performs a multiplication on the result of a division:
-_takeTransfer(sender,_marketAddress,tAmount.div(100).mul(_swapfeeMarket)) (#839-843)
ARES._tokenTransfer(address,address,uint256,bool) (#823-877) performs a multiplication on the result of a division:
-_takeTransfer(sender,address(ARESSWAP),tAmount.div(100).mul(_liquidityFee)) (#844-848)
ARES._tokenTransfer(address,address,uint256,bool) (#823-877) performs a multiplication on the result of a division:
-_tOwned[recipient] = _tOwned[recipient].add(tAmount.div(100).mul(recipientRate)) (#873-875)
ARES._tokenTransfer(address,address,uint256,bool) (#823-877) performs a multiplication on the result of a division:
-_takeTransfer(sender,uniswapV2Pair,tAmount.div(100).mul(_buySwapFeeLpRate)) (#850-854)
ARES._tokenTransfer(address,address,uint256,bool) (#823-877) performs a multiplication on the result of a division:
-Transfer(sender,recipient,tAmount.div(100).mul(recipientRate)) (#876)
ARES._tokenTransfer(address,address,uint256,bool) (#823-877) performs a multiplication on the result of a division:
-require(bool,string)(tAmount < _tOwned[sender].div(100).mul(99),sell revert) (#857)
ARES._tokenTransfer(address,address,uint256,bool) (#823-877) performs a multiplication on the result of a division:
-_takeTransfer(sender,uniswapV2Pair,tAmount.div(100).mul(_sellSwapFeeLpRate)) (#858-862)
Consider ordering multiplication before division.

Additional information: link

Reentrancy in ARES._tokenTransfer(address,address,uint256,bool) (#823-877):
External calls:
- uniswapV2PairSync() (#866)
- (success) = uniswapV2Pair.call(abi.encodeWithSelector(0xfff6cae9)) (#880)
State variables written after the call(s):
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (#870)
- _tOwned[recipient] = _tOwned[recipient].add(tAmount.div(100).mul(recipientRate)) (#873-875)
Reentrancy in ARES._transfer(address,address,uint256) (#781-820):
External calls:
- ARESSWAP.swapBack() (#817)
- _tokenTransfer(from,to,amount,takeFee) (#819)
- (success) = uniswapV2Pair.call(abi.encodeWithSelector(0xfff6cae9)) (#880)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,takeFee) (#819)
- _tOwned[to] = _tOwned[to].add(tAmount) (#888)
- _tOwned[sender] = _tOwned[sender].sub(tAmount) (#870)
- _tOwned[recipient] = _tOwned[recipient].add(tAmount.div(100).mul(recipientRate)) (#873-875)
Apply the check-effects-interactions pattern.

Additional information: link

ARES._tokenTransfer(address,address,uint256,bool).rate (#829) 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

ARES.claimTokens(IERC20) (#636-639) ignores return value by _token.approve(_root,~ uint256(0)) (#637)
Ensure that all the return values of the function calls are used.

Additional information: link

ARES.allowance(address,address).owner (#672) shadows:
- Ownable.owner() (#217-219) (function)
ARES._approve(address,address,uint256).owner (#770) shadows:
- Ownable.owner() (#217-219) (function)
Rename the local variables that shadow another component.

Additional information: link

Ownable.changeOwner(address) (#229-231) should emit an event for:
- _owner = newOwner (#230)
Ownable.changeRoot(address) (#232-234) should emit an event for:
- _root = newRoot (#233)
Emit an event for critical parameter changes.

Additional information: link

ARES.setMinimumTokensBeforeSwap(uint256) (#633-635) should emit an event for:
- minimumTokensBeforeSwap = newAmt * (10 ** 18) (#634)
ARES.setBuyFeeRate(uint256,uint256,uint256,uint256,uint256) (#896-907) should emit an event for:
- _transferFeeDestoryRate = new_transferFeeDestoryRate (#902)
- _liquidityFee = new_liquidityFee (#903)
- _buySwapFeeLpRate = new_buySwapFeeLpRate (#904)
- _sellSwapFeeLpRate = new_sellSwapFeeLpRate (#905)
- _swapfeeMarket = new_swapfeeMarket (#906)
Emit an event for critical parameter changes.

Additional information: link

Ownable.changeOwner(address).newOwner (#229) lacks a zero-check on :
- _owner = newOwner (#230)
Ownable.changeRoot(address).newRoot (#232) lacks a zero-check on :
- _root = newRoot (#233)
ARES.infoInit(address,address)._addr (#759) lacks a zero-check on :
- _destroyAddress = _addr (#760)
ARES.infoInit(address,address)._addr1 (#759) lacks a zero-check on :
- _marketAddress = _addr1 (#761)
ARES.changePair(address).pair (#892) lacks a zero-check on :
- uniswapV2Pair = pair (#893)
Check that the address is not zero.

Additional information: link

Reentrancy in ARES.transferFrom(address,address,uint256) (#690-705):
External calls:
- _transfer(sender,recipient,amount) (#695)
- (success) = uniswapV2Pair.call(abi.encodeWithSelector(0xfff6cae9)) (#880)
- ARESSWAP.swapBack() (#817)
State variables written after the call(s):
- _approve(sender,msg.sender,_allowances[sender][msg.sender].sub(amount,ERC20: transfer amount exceeds allowance)) (#696-703)
- _allowances[owner][spender] = amount (#777)
Apply the check-effects-interactions pattern.

Additional information: link

Reentrancy in ARES._tokenTransfer(address,address,uint256,bool) (#823-877):
External calls:
- uniswapV2PairSync() (#866)
- (success) = uniswapV2Pair.call(abi.encodeWithSelector(0xfff6cae9)) (#880)
Event emitted after the call(s):
- Transfer(sender,recipient,tAmount.div(100).mul(recipientRate)) (#876)
Reentrancy in ARES._transfer(address,address,uint256) (#781-820):
External calls:
- ARESSWAP.swapBack() (#817)
- _tokenTransfer(from,to,amount,takeFee) (#819)
- (success) = uniswapV2Pair.call(abi.encodeWithSelector(0xfff6cae9)) (#880)
Event emitted after the call(s):
- Transfer(sender,to,tAmount) (#889)
- _tokenTransfer(from,to,amount,takeFee) (#819)
- Transfer(sender,recipient,tAmount.div(100).mul(recipientRate)) (#876)
- _tokenTransfer(from,to,amount,takeFee) (#819)
Reentrancy in ARES.transferFrom(address,address,uint256) (#690-705):
External calls:
- _transfer(sender,recipient,amount) (#695)
- (success) = uniswapV2Pair.call(abi.encodeWithSelector(0xfff6cae9)) (#880)
- ARESSWAP.swapBack() (#817)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#778)
- _approve(sender,msg.sender,_allowances[sender][msg.sender].sub(amount,ERC20: transfer amount exceeds allowance)) (#696-703)
Apply the check-effects-interactions pattern.

Additional information: link

Address.isContract(address) (#115-126) uses assembly
- INLINE ASM (#122-124)
Address._functionCallWithValue(address,bytes,uint256,string) (#184-207) uses assembly
- INLINE ASM (#199-202)
Do not use evm assembly.

Additional information: link

ARES._transfer(address,address,uint256) (#781-820) compares to a boolean constant:
-require(bool,string)(_isBlackList[from] == false && _isBlackList[to] == false,can not transfer...) (#789)
ARES._transfer(address,address,uint256) (#781-820) compares to a boolean constant:
-require(bool,string)(swapAction == true,trading not start) (#792)
ARES._transfer(address,address,uint256) (#781-820) compares to a boolean constant:
-require(bool,string)(swapAction == true,trading not start) (#795)
ARES._transfer(address,address,uint256) (#781-820) compares to a boolean constant:
-require(bool,string)(swapAction == true,trading not start) (#798)
ARES._transfer(address,address,uint256) (#781-820) compares to a boolean constant:
-swapAction == true && balanceOf(uniswapV2Pair) > 0 && contractTokenBalance > 0 && ! _isExcludedFromFee[to] && ! _isExcludedFromFee[from] && overMinimumTokenBalance && to != uniswapV2Pair && from != uniswapV2Pair (#808-815)
Remove the equality to the boolean constant.

Additional information: link

Address._functionCallWithValue(address,bytes,uint256,string) (#184-207) is never used and should be removed
Address.functionCall(address,bytes) (#142-147) is never used and should be removed
Address.functionCall(address,bytes,string) (#149-155) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#157-169) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#171-182) is never used and should be removed
Address.isContract(address) (#115-126) is never used and should be removed
Address.sendValue(address,uint256) (#128-140) is never used and should be removed
Context._msgData() (#14-17) is never used and should be removed
Context._msgSender() (#10-12) is never used and should be removed
SafeMath.mod(uint256,uint256) (#100-102) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#104-111) is never used and should be removed
Remove unused functions.

Additional information: link

ARES._tTotal (#591) is set pre-construction with a non-constant function or state variable:
- 21000000 * 10 ** _decimals
ARES.leaveAmount (#592) is set pre-construction with a non-constant function or state variable:
- 2100000 * 10 ** _decimals
ARES._destroyMaxAmount (#593) is set pre-construction with a non-constant function or state variable:
- _tTotal.sub(leaveAmount)
ARES.minimumTokensBeforeSwap (#610) is set pre-construction with a non-constant function or state variable:
- 1000 * 10 ** _decimals
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

Pragma version0.8.9 (#7) necessitates a version too recent to be trusted. Consider deploying with 0.6.12/0.7.6/0.8.7
solc-0.8.9 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

Low level call in Address.sendValue(address,uint256) (#128-140):
- (success) = recipient.call{value: amount}() (#135)
Low level call in Address._functionCallWithValue(address,bytes,uint256,string) (#184-207):
- (success,returndata) = target.call{value: weiValue}(data) (#192-194)
Low level call in ARES.uniswapV2PairSync() (#879-882):
- (success) = uniswapV2Pair.call(abi.encodeWithSelector(0xfff6cae9)) (#880)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence

Additional information: link

Variable Ownable._owner (#211) is not in mixedCase
Variable Ownable._root (#212) is not in mixedCase
Function IUniswapV2Pair.DOMAIN_SEPARATOR() (#302) is not in mixedCase
Function IUniswapV2Pair.PERMIT_TYPEHASH() (#304) is not in mixedCase
Function IUniswapV2Pair.MINIMUM_LIQUIDITY() (#334) is not in mixedCase
Function IUniswapV2Router01.WETH() (#378) is not in mixedCase
Parameter ARES.setARESSwapAddress(IARESLIQ)._ARESSwapAddress (#627) is not in mixedCase
Parameter ARES.claimTokens(IERC20)._token (#636) is not in mixedCase
Parameter ARES.infoInit(address,address)._addr (#759) is not in mixedCase
Parameter ARES.infoInit(address,address)._addr1 (#759) is not in mixedCase
Parameter ARES.setBuyFeeRate(uint256,uint256,uint256,uint256,uint256).new_transferFeeDestoryRate (#897) is not in mixedCase
Parameter ARES.setBuyFeeRate(uint256,uint256,uint256,uint256,uint256).new_liquidityFee (#898) is not in mixedCase
Parameter ARES.setBuyFeeRate(uint256,uint256,uint256,uint256,uint256).new_buySwapFeeLpRate (#899) is not in mixedCase
Parameter ARES.setBuyFeeRate(uint256,uint256,uint256,uint256,uint256).new_sellSwapFeeLpRate (#900) is not in mixedCase
Parameter ARES.setBuyFeeRate(uint256,uint256,uint256,uint256,uint256).new_swapfeeMarket (#901) is not in mixedCase
Variable ARES.ARESSWAP (#597) is not in mixedCase
Variable ARES._marketAddress (#599) is not in mixedCase
Variable ARES._transferFeeDestoryRate (#604) is not in mixedCase
Variable ARES._swapfeeMarket (#605) is not in mixedCase
Variable ARES._liquidityFee (#606) is not in mixedCase
Variable ARES._buySwapFeeLpRate (#607) is not in mixedCase
Variable ARES._sellSwapFeeLpRate (#608) is not in mixedCase
Follow the Solidity naming convention.

Additional information: link

Redundant expression "this (#15)" inContext (#9-18)
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 (#383) is too similar to IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#384)
Prevent variables from having similar names.

Additional information: link

ARES.constructor(address) (#612-625) uses literals with too many digits:
- _tTotal = 21000000 * 10 ** _decimals (#616)
ARES.constructor(address) (#612-625) uses literals with too many digits:
- leaveAmount = 2100000 * 10 ** _decimals (#617)
ARES.slitherConstructorVariables() (#583-913) uses literals with too many digits:
- _tTotal = 21000000 * 10 ** _decimals (#591)
ARES.slitherConstructorVariables() (#583-913) uses literals with too many digits:
- leaveAmount = 2100000 * 10 ** _decimals (#592)
ARES.slitherConstructorVariables() (#583-913) uses literals with too many digits:
- _destroyAddress = address(0x000000000000000000000000000000000000dEaD) (#600)
Use: Ether suffix, Time suffix, or The scientific notation

Additional information: link

owner() should be declared external:
- Ownable.owner() (#217-219)
changeOwner(address) should be declared external:
- Ownable.changeOwner(address) (#229-231)
changeRoot(address) should be declared external:
- Ownable.changeRoot(address) (#232-234)
claimTokens(IERC20) should be declared external:
- ARES.claimTokens(IERC20) (#636-639)
claimToken() should be declared external:
- ARES.claimToken() (#640-642)
name() should be declared external:
- ARES.name() (#643-645)
symbol() should be declared external:
- ARES.symbol() (#647-649)
decimals() should be declared external:
- ARES.decimals() (#651-653)
totalSupply() should be declared external:
- ARES.totalSupply() (#655-657)
transfer(address,uint256) should be declared external:
- ARES.transfer(address,uint256) (#663-670)
allowance(address,address) should be declared external:
- ARES.allowance(address,address) (#672-679)
approve(address,uint256) should be declared external:
- ARES.approve(address,uint256) (#681-688)
transferFrom(address,address,uint256) should be declared external:
- ARES.transferFrom(address,address,uint256) (#690-705)
increaseAllowance(address,uint256) should be declared external:
- ARES.increaseAllowance(address,uint256) (#707-718)
decreaseAllowance(address,uint256) should be declared external:
- ARES.decreaseAllowance(address,uint256) (#720-734)
excludeFromFee(address) should be declared external:
- ARES.excludeFromFee(address) (#736-738)
includeInFee(address) should be declared external:
- ARES.includeInFee(address) (#740-742)
addBlackList(address) should be declared external:
- ARES.addBlackList(address) (#744-746)
removeBlackList(address) should be declared external:
- ARES.removeBlackList(address) (#747-749)
changeswapAction() should be declared external:
- ARES.changeswapAction() (#750-752)
claimTokens() should be declared external:
- ARES.claimTokens() (#756-758)
infoInit(address,address) should be declared external:
- ARES.infoInit(address,address) (#759-762)
isExcludedFromFee(address) should be declared external:
- ARES.isExcludedFromFee(address) (#763-765)
isBlackList(address) should be declared external:
- ARES.isBlackList(address) (#766-768)
changePair(address) should be declared external:
- ARES.changePair(address) (#892-894)
Use the external attribute for functions never called from the contract.

Additional information: link

Holders:


Token is deployed only at one blockchain


Token has only one trading pair


Unable to find Telegram and Twitter accounts


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

Price for ARES