E-Sports is an application to play e-sports games. It is a new generation gamefi project, which allow the player to get the rewards by playing the pc games like LOL, CS:GO, or other popular games. ES will fight for those who are really in love with the games.
Contract ownership is not renounced (belongs to a wallet)
Contract locking ether found:
Contract es (#473-824) has payable functions:
- es.receive() (#639)
But does not have a function to withdraw the ether
Remove the payable attribute or add a withdraw function.
Additional information: link
Unable to verify that contract auditor is trusted: Certik, Quantstamp, Hacken, Solidity, Paladinsec, Openzeppelin, Verichains
es.includeInReward(address) (#601-612) has costly operations inside a loop:
- _excluded.pop() (#608)
Use a local variable to hold the loop computation result.
Additional information: link
Redundant expression "this (#243)" inContext (#237-246)
Remove redundant statements if they congest code but offer no value.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#437-440)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#446-450)
geUnlockTime() should be declared external:
- Ownable.geUnlockTime() (#452-454)
lock(uint256) should be declared external:
- Ownable.lock(uint256) (#457-462)
unlock() should be declared external:
- Ownable.unlock() (#465-470)
name() should be declared external:
- es.name() (#523-525)
symbol() should be declared external:
- es.symbol() (#527-529)
decimals() should be declared external:
- es.decimals() (#531-533)
totalSupply() should be declared external:
- es.totalSupply() (#535-537)
balanceOf(address) should be declared external:
- es.balanceOf(address) (#539-542)
transfer(address,uint256) should be declared external:
- es.transfer(address,uint256) (#544-547)
allowance(address,address) should be declared external:
- es.allowance(address,address) (#549-551)
approve(address,uint256) should be declared external:
- es.approve(address,uint256) (#553-556)
transferFrom(address,address,uint256) should be declared external:
- es.transferFrom(address,address,uint256) (#558-562)
increaseAllowance(address,uint256) should be declared external:
- es.increaseAllowance(address,uint256) (#564-567)
decreaseAllowance(address,uint256) should be declared external:
- es.decreaseAllowance(address,uint256) (#569-572)
isExcludedFromReward(address) should be declared external:
- es.isExcludedFromReward(address) (#574-576)
isExcludedFromFee(address) should be declared external:
- es.isExcludedFromFee(address) (#578-580)
totalRewards() should be declared external:
- es.totalRewards() (#582-584)
excludeFromFee(address) should be declared external:
- es.excludeFromFee(address) (#614-616)
includeInFee(address) should be declared external:
- es.includeInFee(address) (#618-620)
updateMarketingWallet(address) should be declared external:
- es.updateMarketingWallet(address) (#634-636)
Use the external attribute for functions never called from the contract.
Additional information: link
Contract name (E-Sports) contains non-alphanumeric characters.
Not a direct threat, but may indicate unreliable intentions of developer. Non-alphanumeric chars (,.;!#*&") are extremely rare among low risk tokens.
Not a direct threat, but may indicate unreliable intentions of developer. Widespread names (e.g. Elon, King, Moon, Doge) are common among meme-tokens and scams. The allow to gain free hype and attract unexperienced investors.
es._takeMarketingAndBurnToken(uint256,address) (#684-703) performs a multiplication on the result of a division:
-tMarketing = tMarketingAndBurn.mul(_marketingFee).div(_marketingFee + _burnFee) (#686)
-rMarketing = tMarketing.mul(currentRate) (#697)
Consider ordering multiplication before division.
Additional information: link
es.allowance(address,address).owner (#549) shadows:
- Ownable.owner() (#418-420) (function)
es._approve(address,address,uint256).owner (#736) shadows:
- Ownable.owner() (#418-420) (function)
Rename the local variables that shadow another component.
Additional information: link
es.setDistributionFeePercent(uint256) (#622-624) should emit an event for:
- _distributionFee = distributionFee (#623)
es.setBurnFeePercent(uint256) (#626-628) should emit an event for:
- _burnFee = burnFee (#627)
es.setMarketingFeePercent(uint256) (#630-632) should emit an event for:
- _marketingFee = marketingFee (#631)
Emit an event for critical parameter changes.
Additional information: link
es.updateMarketingWallet(address).account (#634) lacks a zero-check on :
- marketingWallet = account (#635)
Check that the address is not zero.
Additional information: link
Ownable.unlock() (#465-470) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(now > _lockTime,Contract is locked until 7 days) (#467)
Avoid relying on block.timestamp.
Additional information: link
Address.isContract(address) (#270-279) uses assembly
- INLINE ASM (#277)
Address._functionCallWithValue(address,bytes,uint256,string) (#363-384) uses assembly
- INLINE ASM (#376-379)
Do not use evm assembly.
Additional information: link
Address._functionCallWithValue(address,bytes,uint256,string) (#363-384) is never used and should be removed
Address.functionCall(address,bytes) (#323-325) is never used and should be removed
Address.functionCall(address,bytes,string) (#333-335) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#348-350) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#358-361) is never used and should be removed
Address.isContract(address) (#270-279) is never used and should be removed
Address.sendValue(address,uint256) (#297-303) is never used and should be removed
Context._msgData() (#242-245) is never used and should be removed
SafeMath.mod(uint256,uint256) (#215-217) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#231-234) is never used and should be removed
Remove unused functions.
Additional information: link
es._rTotal (#490) is set pre-construction with a non-constant function or state variable:
- (MAX - (MAX % _tTotal))
es._previousDistributionFee (#498) is set pre-construction with a non-constant function or state variable:
- _distributionFee
es._previousBurnFee (#501) is set pre-construction with a non-constant function or state variable:
- _burnFee
es._previousMarketingFee (#504) is set pre-construction with a non-constant function or state variable:
- _marketingFee
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) (#297-303):
- (success) = recipient.call{value: amount}() (#301)
Low level call in Address._functionCallWithValue(address,bytes,uint256,string) (#363-384):
- (success,returndata) = target.call{value: weiValue}(data) (#367)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Contract es (#473-824) is not in CapWords
Parameter es.calculateDistributionFee(uint256)._amount (#705) is not in mixedCase
Parameter es.calculateBurnAndMarketingFee(uint256)._amount (#711) is not in mixedCase
Variable es._distributionFee (#497) is not in mixedCase
Variable es._burnFee (#500) is not in mixedCase
Variable es._marketingFee (#503) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Variable es._transferToExcluded(address,address,uint256).rDistribution (#794) is too similar to es._transferBothExcluded(address,address,uint256).tDistribution (#814)
Variable es._distributionToAllHolder(uint256,uint256).rDistribution (#641) is too similar to es._transferFromExcluded(address,address,uint256).tDistribution (#804)
Variable es._distributionToAllHolder(uint256,uint256).rDistribution (#641) is too similar to es._getValues(uint256).tDistribution (#647)
Variable es._transferFromExcluded(address,address,uint256).rDistribution (#804) is too similar to es._transferFromExcluded(address,address,uint256).tDistribution (#804)
Variable es._distributionToAllHolder(uint256,uint256).rDistribution (#641) is too similar to es._transferStandard(address,address,uint256).tDistribution (#785)
Variable es._transferFromExcluded(address,address,uint256).rDistribution (#804) is too similar to es._transferStandard(address,address,uint256).tDistribution (#785)
Variable es._distributionToAllHolder(uint256,uint256).rDistribution (#641) is too similar to es._getRValues(uint256,uint256,uint256,uint256).tDistribution (#659)
Variable es._distributionToAllHolder(uint256,uint256).rDistribution (#641) is too similar to es._distributionToAllHolder(uint256,uint256).tDistribution (#641)
Variable es._getValues(uint256).rDistribution (#648) is too similar to es._transferBothExcluded(address,address,uint256).tDistribution (#814)
Variable es._transferBothExcluded(address,address,uint256).rDistribution (#814) is too similar to es._transferBothExcluded(address,address,uint256).tDistribution (#814)
Variable es._transferFromExcluded(address,address,uint256).rDistribution (#804) is too similar to es._transferToExcluded(address,address,uint256).tDistribution (#794)
Variable es._transferStandard(address,address,uint256).rDistribution (#785) is too similar to es._transferStandard(address,address,uint256).tDistribution (#785)
Variable es._transferFromExcluded(address,address,uint256).rDistribution (#804) is too similar to es._getRValues(uint256,uint256,uint256,uint256).tDistribution (#659)
Variable es._transferFromExcluded(address,address,uint256).rDistribution (#804) is too similar to es._distributionToAllHolder(uint256,uint256).tDistribution (#641)
Variable es._transferFromExcluded(address,address,uint256).rDistribution (#804) is too similar to es._getValues(uint256).tDistribution (#647)
Variable es._transferStandard(address,address,uint256).rDistribution (#785) is too similar to es._getRValues(uint256,uint256,uint256,uint256).tDistribution (#659)
Variable es._distributionToAllHolder(uint256,uint256).rDistribution (#641) is too similar to es._transferBothExcluded(address,address,uint256).tDistribution (#814)
Variable es._transferStandard(address,address,uint256).rDistribution (#785) is too similar to es._getValues(uint256).tDistribution (#647)
Variable es._transferFromExcluded(address,address,uint256).rDistribution (#804) is too similar to es._transferBothExcluded(address,address,uint256).tDistribution (#814)
Variable es._transferToExcluded(address,address,uint256).rDistribution (#794) is too similar to es._transferFromExcluded(address,address,uint256).tDistribution (#804)
Variable es._transferStandard(address,address,uint256).rDistribution (#785) is too similar to es._transferBothExcluded(address,address,uint256).tDistribution (#814)
Variable es._getRValues(uint256,uint256,uint256,uint256).rDistribution (#661) is too similar to es._transferBothExcluded(address,address,uint256).tDistribution (#814)
Variable es._transferToExcluded(address,address,uint256).rDistribution (#794) is too similar to es._transferStandard(address,address,uint256).tDistribution (#785)
Variable es._transferToExcluded(address,address,uint256).rDistribution (#794) is too similar to es._transferToExcluded(address,address,uint256).tDistribution (#794)
Variable es._transferToExcluded(address,address,uint256).rDistribution (#794) is too similar to es._getRValues(uint256,uint256,uint256,uint256).tDistribution (#659)
Variable es._transferToExcluded(address,address,uint256).rDistribution (#794) is too similar to es._getValues(uint256).tDistribution (#647)
Variable es._distributionToAllHolder(uint256,uint256).rDistribution (#641) is too similar to es._transferToExcluded(address,address,uint256).tDistribution (#794)
Variable es._getRValues(uint256,uint256,uint256,uint256).rMarketingAndBurn (#662) is too similar to es._takeMarketingAndBurnToken(uint256,address).tMarketingAndBurn (#684)
Variable es._getRValues(uint256,uint256,uint256,uint256).rMarketingAndBurn (#662) is too similar to es._transferBothExcluded(address,address,uint256).tMarketingAndBurn (#814)
Variable es._transferFromExcluded(address,address,uint256).rTransferAmount (#804) is too similar to es._transferToExcluded(address,address,uint256).tTransferAmount (#794)
Variable es._transferStandard(address,address,uint256).rTransferAmount (#785) is too similar to es._getValues(uint256).tTransferAmount (#647)
Variable es._getValues(uint256).rTransferAmount (#648) is too similar to es._transferBothExcluded(address,address,uint256).tTransferAmount (#814)
Variable es._transferStandard(address,address,uint256).rTransferAmount (#785) is too similar to es._transferStandard(address,address,uint256).tTransferAmount (#785)
Variable es._transferBothExcluded(address,address,uint256).rTransferAmount (#814) is too similar to es._getValues(uint256).tTransferAmount (#647)
Variable es._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#663) is too similar to es._transferBothExcluded(address,address,uint256).tTransferAmount (#814)
Variable es._transferToExcluded(address,address,uint256).rTransferAmount (#794) is too similar to es._transferBothExcluded(address,address,uint256).tTransferAmount (#814)
Variable es._transferFromExcluded(address,address,uint256).rTransferAmount (#804) is too similar to es._transferBothExcluded(address,address,uint256).tTransferAmount (#814)
Variable es._getValues(uint256).rTransferAmount (#648) is too similar to es._getValues(uint256).tTransferAmount (#647)
Variable es._transferStandard(address,address,uint256).rTransferAmount (#785) is too similar to es._transferBothExcluded(address,address,uint256).tTransferAmount (#814)
Variable es._transferFromExcluded(address,address,uint256).rTransferAmount (#804) is too similar to es._getValues(uint256).tTransferAmount (#647)
Variable es._transferBothExcluded(address,address,uint256).rTransferAmount (#814) is too similar to es._transferBothExcluded(address,address,uint256).tTransferAmount (#814)
Variable es._transferToExcluded(address,address,uint256).rTransferAmount (#794) is too similar to es._transferFromExcluded(address,address,uint256).tTransferAmount (#804)
Variable es._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#663) is too similar to es._getValues(uint256).tTransferAmount (#647)
Variable es._transferFromExcluded(address,address,uint256).rTransferAmount (#804) is too similar to es._transferFromExcluded(address,address,uint256).tTransferAmount (#804)
Variable es._transferToExcluded(address,address,uint256).rTransferAmount (#794) is too similar to es._transferStandard(address,address,uint256).tTransferAmount (#785)
Variable es._transferFromExcluded(address,address,uint256).rTransferAmount (#804) is too similar to es._transferStandard(address,address,uint256).tTransferAmount (#785)
Variable es._transferToExcluded(address,address,uint256).rTransferAmount (#794) is too similar to es._getValues(uint256).tTransferAmount (#647)
Variable es._transferToExcluded(address,address,uint256).rTransferAmount (#794) is too similar to es._transferToExcluded(address,address,uint256).tTransferAmount (#794)
Variable es._transferBothExcluded(address,address,uint256).rDistribution (#814) is too similar to es._getTValues(uint256).tDistribution (#653)
Variable es._getRValues(uint256,uint256,uint256,uint256).rDistribution (#661) is too similar to es._getRValues(uint256,uint256,uint256,uint256).tDistribution (#659)
Variable es._getRValues(uint256,uint256,uint256,uint256).rDistribution (#661) is too similar to es._transferStandard(address,address,uint256).tDistribution (#785)
Variable es._transferBothExcluded(address,address,uint256).rDistribution (#814) is too similar to es._distributionToAllHolder(uint256,uint256).tDistribution (#641)
Variable es._transferBothExcluded(address,address,uint256).rDistribution (#814) is too similar to es._transferToExcluded(address,address,uint256).tDistribution (#794)
Variable es._transferBothExcluded(address,address,uint256).rDistribution (#814) is too similar to es._transferFromExcluded(address,address,uint256).tDistribution (#804)
Variable es._transferBothExcluded(address,address,uint256).rDistribution (#814) is too similar to es._getValues(uint256).tDistribution (#647)
Variable es._transferBothExcluded(address,address,uint256).rDistribution (#814) is too similar to es._getRValues(uint256,uint256,uint256,uint256).tDistribution (#659)
Variable es._getRValues(uint256,uint256,uint256,uint256).rDistribution (#661) is too similar to es._distributionToAllHolder(uint256,uint256).tDistribution (#641)
Variable es._transferBothExcluded(address,address,uint256).rDistribution (#814) is too similar to es._transferStandard(address,address,uint256).tDistribution (#785)
Variable es._getValues(uint256).rDistribution (#648) is too similar to es._transferFromExcluded(address,address,uint256).tDistribution (#804)
Variable es._getValues(uint256).rDistribution (#648) is too similar to es._getRValues(uint256,uint256,uint256,uint256).tDistribution (#659)
Variable es._getValues(uint256).rDistribution (#648) is too similar to es._getTValues(uint256).tDistribution (#653)
Variable es._transferToExcluded(address,address,uint256).rDistribution (#794) is too similar to es._getTValues(uint256).tDistribution (#653)
Variable es._transferStandard(address,address,uint256).rDistribution (#785) is too similar to es._transferFromExcluded(address,address,uint256).tDistribution (#804)
Variable es._getValues(uint256).rDistribution (#648) is too similar to es._distributionToAllHolder(uint256,uint256).tDistribution (#641)
Variable es._getValues(uint256).rDistribution (#648) is too similar to es._transferToExcluded(address,address,uint256).tDistribution (#794)
Variable es._transferFromExcluded(address,address,uint256).rDistribution (#804) is too similar to es._getTValues(uint256).tDistribution (#653)
Variable es._getValues(uint256).rDistribution (#648) is too similar to es._getValues(uint256).tDistribution (#647)
Variable es._transferStandard(address,address,uint256).rDistribution (#785) is too similar to es._getTValues(uint256).tDistribution (#653)
Variable es._getValues(uint256).rDistribution (#648) is too similar to es._transferStandard(address,address,uint256).tDistribution (#785)
Variable es._transferStandard(address,address,uint256).rDistribution (#785) is too similar to es._distributionToAllHolder(uint256,uint256).tDistribution (#641)
Variable es._transferStandard(address,address,uint256).rDistribution (#785) is too similar to es._transferToExcluded(address,address,uint256).tDistribution (#794)
Variable es._distributionToAllHolder(uint256,uint256).rDistribution (#641) is too similar to es._getTValues(uint256).tDistribution (#653)
Variable es._transferToExcluded(address,address,uint256).rDistribution (#794) is too similar to es._distributionToAllHolder(uint256,uint256).tDistribution (#641)
Variable es._getRValues(uint256,uint256,uint256,uint256).rDistribution (#661) is too similar to es._getTValues(uint256).tDistribution (#653)
Variable es._getRValues(uint256,uint256,uint256,uint256).rDistribution (#661) is too similar to es._transferToExcluded(address,address,uint256).tDistribution (#794)
Variable es._getRValues(uint256,uint256,uint256,uint256).rDistribution (#661) is too similar to es._transferFromExcluded(address,address,uint256).tDistribution (#804)
Variable es._getRValues(uint256,uint256,uint256,uint256).rDistribution (#661) is too similar to es._getValues(uint256).tDistribution (#647)
Variable es._getRValues(uint256,uint256,uint256,uint256).rMarketingAndBurn (#662) is too similar to es._transferStandard(address,address,uint256).tMarketingAndBurn (#785)
Variable es._getRValues(uint256,uint256,uint256,uint256).rMarketingAndBurn (#662) is too similar to es._getValues(uint256).tMarketingAndBurn (#647)
Variable es._getRValues(uint256,uint256,uint256,uint256).rMarketingAndBurn (#662) is too similar to es._transferFromExcluded(address,address,uint256).tMarketingAndBurn (#804)
Variable es._getRValues(uint256,uint256,uint256,uint256).rMarketingAndBurn (#662) is too similar to es._getTValues(uint256).tMarketingAndBurn (#654)
Variable es._getRValues(uint256,uint256,uint256,uint256).rMarketingAndBurn (#662) is too similar to es._transferToExcluded(address,address,uint256).tMarketingAndBurn (#794)
Variable es._getRValues(uint256,uint256,uint256,uint256).rMarketingAndBurn (#662) is too similar to es._getRValues(uint256,uint256,uint256,uint256).tMarketingAndBurn (#659)
Variable es._getValues(uint256).rTransferAmount (#648) is too similar to es._transferFromExcluded(address,address,uint256).tTransferAmount (#804)
Variable es._getValues(uint256).rTransferAmount (#648) is too similar to es._getTValues(uint256).tTransferAmount (#655)
Variable es._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#663) is too similar to es._transferStandard(address,address,uint256).tTransferAmount (#785)
Variable es._getValues(uint256).rTransferAmount (#648) is too similar to es._transferStandard(address,address,uint256).tTransferAmount (#785)
Variable es._transferFromExcluded(address,address,uint256).rTransferAmount (#804) is too similar to es._getTValues(uint256).tTransferAmount (#655)
Variable es._getValues(uint256).rTransferAmount (#648) is too similar to es._transferToExcluded(address,address,uint256).tTransferAmount (#794)
Variable es._transferStandard(address,address,uint256).rTransferAmount (#785) is too similar to es._transferFromExcluded(address,address,uint256).tTransferAmount (#804)
Variable es._transferStandard(address,address,uint256).rTransferAmount (#785) is too similar to es._getTValues(uint256).tTransferAmount (#655)
Variable es._transferToExcluded(address,address,uint256).rTransferAmount (#794) is too similar to es._getTValues(uint256).tTransferAmount (#655)
Variable es._transferStandard(address,address,uint256).rTransferAmount (#785) is too similar to es._transferToExcluded(address,address,uint256).tTransferAmount (#794)
Variable es._transferBothExcluded(address,address,uint256).rTransferAmount (#814) is too similar to es._transferFromExcluded(address,address,uint256).tTransferAmount (#804)
Variable es._transferBothExcluded(address,address,uint256).rTransferAmount (#814) is too similar to es._getTValues(uint256).tTransferAmount (#655)
Variable es._transferBothExcluded(address,address,uint256).rTransferAmount (#814) is too similar to es._transferStandard(address,address,uint256).tTransferAmount (#785)
Variable es._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#663) is too similar to es._transferFromExcluded(address,address,uint256).tTransferAmount (#804)
Variable es._transferBothExcluded(address,address,uint256).rTransferAmount (#814) is too similar to es._transferToExcluded(address,address,uint256).tTransferAmount (#794)
Variable es._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#663) is too similar to es._getTValues(uint256).tTransferAmount (#655)
Variable es._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#663) is too similar to es._transferToExcluded(address,address,uint256).tTransferAmount (#794)
Prevent variables from having similar names.
Additional information: link
es.slitherConstructorVariables() (#473-824) uses literals with too many digits:
- _tTotal = 500000000 * 10 ** 18 (#489)
es.slitherConstructorVariables() (#473-824) uses literals with too many digits:
- burnWallet = 0x000000000000000000000000000000000000dEaD (#506)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
es.lastTimeBuy (#486) is never used in es (#473-824)
Remove unused state variables.
Additional information: link
es._decimals (#495) should be constant
es._name (#493) should be constant
es._symbol (#494) should be constant
es._tTotal (#489) should be constant
es.burnWallet (#506) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
BscScan page for the token does not contain additional info: website, socials, description, etc.
Additional information: link
Unable to find audit link on the website
Unable to find whitepaper link on the website
Unable to find token on CoinGecko
Additional information: link
Unable to find token on CoinMarketCap
Additional information: link
Token is not listed at Mobula.Finance
Additional information: link
Unable to find token on CoinHunt
Additional information: link
Unable to find code repository for the project
Young tokens have high risks of scam / price dump / death
Young tokens have high risks of scam / price dump / death
Token has no active CoinGecko listing / rank
Token has no active CoinMarketCap listing / rank
Telegram account has relatively few subscribers
Unable to find Blog account (Reddit or Medium)
Unable to find Youtube account
Unable to find Discord account
Twitter account has few posts