Smash Cash Token Logo

SMASH [Smash Cash] Token

About SMASH

Listings

Token 2 years
CoinGecko 2 years
CoinMarketCap 2 years
white paper

Smash Cash ensures Transaction Anonymity and Privacy on 10 most popular Blockchains and support 15 Tokens by separating the on-chain link between destination and recipient addresses.

Social

Laser Scorebeta Last Audit: 18 April 2022

report
Token seems to be (relatively) fine. It still become a scam, but probability is moderate.


Contract ownership is not renounced (belongs to a wallet)

Smash.allowance(address,address).owner (#814) shadows:
- Ownable.owner() (#65-67) (function)
Smash._approve(address,address,uint256).owner (#944) shadows:
- Ownable.owner() (#65-67) (function)
Rename the local variables that shadow another component.

Additional information: link

Smash.unLockToken(uint256) (#742-750) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(block.timestamp >= tokenLockTime, Creek: lock time is not over yet) (#744)
Smash._transfer(address,address,uint256) (#888-941) uses timestamp for comparisons
Dangerous comparisons:
- block.timestamp < _launchTime + antiSnipingTime && sender != address(pancakeRouter) (#914-915)
Avoid relying on block.timestamp.

Additional information: link

Smash.setTimeForSniping(uint256) (#674-676) should emit an event for:
- antiSnipingTime = _time (#675)
Smash.setMaxBuyLimit(uint256) (#699-701) should emit an event for:
- maxBuy = _totalSupply.mul(_amount).div(100) (#700)
Smash.setMaxSellLimit(uint256) (#703-705) should emit an event for:
- maxSell = _totalSupply.mul(_amount).div(100) (#704)
Smash.setMaxTxPercent(uint256) (#708-710) should emit an event for:
- _maxTxAmount = _totalSupply.mul(maxTxAmount).div(100) (#709)
Emit an event for critical parameter changes.

Additional information: link

Smash.constructor(address,address,address,address,address)._PublicSaleWallet (#595) lacks a zero-check on :
- PublicSaleWallet = _PublicSaleWallet (#599)
Smash.constructor(address,address,address,address,address)._MarketingWallet (#595) lacks a zero-check on :
- MarketingWallet = _MarketingWallet (#600)
Smash.constructor(address,address,address,address,address)._TeamTokenWallet (#595) lacks a zero-check on :
- TeamTokenWallet = _TeamTokenWallet (#601)
Smash.constructor(address,address,address,address,address)._ResearchWallet (#595) lacks a zero-check on :
- ResearchWallet = _ResearchWallet (#602)
Smash.constructor(address,address,address,address,address)._StakingWallet (#595) lacks a zero-check on :
- StakingWallet = _StakingWallet (#603)
Smash.setPublicSaleWallet(address)._PublicSaleWallet (#682) lacks a zero-check on :
- PublicSaleWallet = _PublicSaleWallet (#683)
Smash.setMarketingWallet(address)._MarketingWallet (#686) lacks a zero-check on :
- MarketingWallet = _MarketingWallet (#687)
Smash.setTeamTokenWallet(address)._TeamTokenWallet (#689) lacks a zero-check on :
- TeamTokenWallet = _TeamTokenWallet (#690)
Smash.setResearchWallet(address)._ResearchWallet (#692) lacks a zero-check on :
- ResearchWallet = _ResearchWallet (#693)
Smash.setStakingWallet(address)._StakingWallet (#695) lacks a zero-check on :
- StakingWallet = _StakingWallet (#696)
Check that the address is not zero.

Additional information: link

Reentrancy in Smash.constructor(address,address,address,address,address) (#595-650):
External calls:
- pancakePair = IUniswapV2Factory(_pancakeRouter.factory()).createPair(address(this),_pancakeRouter.WETH()) (#627-630)
State variables written after the call(s):
- _isExcludedFromMaxTx[owner()] = true (#636)
- _isExcludedFromMaxTx[address(this)] = true (#637)
- _isExcludedFromMaxTx[address(PublicSaleWallet)] = true (#638)
- _isExcludedFromMaxTx[address(MarketingWallet)] = true (#639)
- _isExcludedFromMaxTx[address(TeamTokenWallet)] = true (#640)
- _isExcludedFromMaxTx[address(ResearchWallet)] = true (#641)
- _isExcludedFromMaxTx[address(StakingWallet)] = true (#642)
- pancakeRouter = _pancakeRouter (#633)
Apply the check-effects-interactions pattern.

Additional information: link

Reentrancy in Smash.constructor(address,address,address,address,address) (#595-650):
External calls:
- pancakePair = IUniswapV2Factory(_pancakeRouter.factory()).createPair(address(this),_pancakeRouter.WETH()) (#627-630)
Event emitted after the call(s):
- Transfer(address(0),owner(),_totalSupply.mul(130).div(1e3)) (#644)
- Transfer(address(0),PublicSaleWallet,_totalSupply.mul(100).div(1e3)) (#645)
- Transfer(address(0),MarketingWallet,_totalSupply.mul(270).div(1e3)) (#646)
- Transfer(address(0),TeamTokenWallet,_totalSupply.mul(100).div(1e3)) (#647)
- Transfer(address(0),ResearchWallet,_totalSupply.mul(200).div(1e3)) (#648)
- Transfer(address(0),StakingWallet,_totalSupply.mul(200).div(1e3)) (#649)
Apply the check-effects-interactions pattern.

Additional information: link

Address.isContract(address) (#150-159) uses assembly
- INLINE ASM (#157)
Address._functionCallWithValue(address,bytes,uint256,string) (#186-207) uses assembly
- INLINE ASM (#199-202)
Do not use evm assembly.

Additional information: link

Smash._transfer(address,address,uint256) (#888-941) compares to a boolean constant:
-_isExcludedFromMaxTx[sender] == false && _isExcludedFromMaxTx[recipient] == false (#895-896)
Remove the equality to the boolean constant.

Additional information: link

Smash._removeSniperFromList(address) (#721-733) has costly operations inside a loop:
- _confirmedSnipers.pop() (#729)
Use a local variable to hold the loop computation result.

Additional information: link

Address._functionCallWithValue(address,bytes,uint256,string) (#186-207) is never used and should be removed
Address.functionCall(address,bytes) (#169-171) is never used and should be removed
Address.functionCall(address,bytes,string) (#173-175) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#177-179) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#181-184) is never used and should be removed
Address.isContract(address) (#150-159) is never used and should be removed
Address.sendValue(address,uint256) (#161-167) is never used and should be removed
Context._msgData() (#48-50) is never used and should be removed
SafeMath.mod(uint256,uint256) (#138-140) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#142-145) is never used and should be removed
Smash.TeamTokenWalletBalance() (#774-777) is never used and should be removed
Remove unused functions.

Additional information: link

Pragma version^0.8.10 (#1) necessitates a version too recent to be trusted. Consider deploying with 0.6.12/0.7.6/0.8.7
solc-0.8.10 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) (#161-167):
- (success) = recipient.call{value: amount}() (#165)
Low level call in Address._functionCallWithValue(address,bytes,uint256,string) (#186-207):
- (success,returndata) = target.call{value: weiValue}(data) (#190)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence

Additional information: link

Function IpancakePair.DOMAIN_SEPARATOR() (#273) is not in mixedCase
Function IpancakePair.PERMIT_TYPEHASH() (#275) is not in mixedCase
Function IpancakePair.MINIMUM_LIQUIDITY() (#306) is not in mixedCase
Function IpancakeRouter01.WETH() (#352) is not in mixedCase
Parameter Smash.setPancakeRouter(IpancakeRouter02)._pancakeRouter (#670) is not in mixedCase
Parameter Smash.setTimeForSniping(uint256)._time (#674) is not in mixedCase
Parameter Smash.setTokenLockTime(uint256)._tokenLockTime (#678) is not in mixedCase
Parameter Smash.setPublicSaleWallet(address)._PublicSaleWallet (#682) is not in mixedCase
Parameter Smash.setMarketingWallet(address)._MarketingWallet (#686) is not in mixedCase
Parameter Smash.setTeamTokenWallet(address)._TeamTokenWallet (#689) is not in mixedCase
Parameter Smash.setResearchWallet(address)._ResearchWallet (#692) is not in mixedCase
Parameter Smash.setStakingWallet(address)._StakingWallet (#695) is not in mixedCase
Parameter Smash.setMaxBuyLimit(uint256)._amount (#699) is not in mixedCase
Parameter Smash.setMaxSellLimit(uint256)._amount (#703) is not in mixedCase
Function Smash._addSniperInList(address) (#711-719) is not in mixedCase
Function Smash._removeSniperFromList(address) (#721-733) is not in mixedCase
Function Smash.LockToken(uint256) (#734-740) is not in mixedCase
Function Smash.PublicSaleWalletBalance() (#764-767) is not in mixedCase
Function Smash.MarketingWalletBalance() (#769-772) is not in mixedCase
Function Smash.TeamTokenWalletBalance() (#774-777) is not in mixedCase
Function Smash.ResearchWalletBalance() (#782-785) is not in mixedCase
Function Smash.StakingWalletBalance() (#787-790) is not in mixedCase
Parameter Smash.setExcludeFromMaxTx(address,bool)._address (#793) is not in mixedCase
Function Smash.EnableTrading() (#834-837) is not in mixedCase
Variable Smash._isSniper (#564) is not in mixedCase
Variable Smash.PublicSaleWallet (#572) is not in mixedCase
Variable Smash.MarketingWallet (#573) is not in mixedCase
Variable Smash.TeamTokenWallet (#574) is not in mixedCase
Variable Smash.ResearchWallet (#575) is not in mixedCase
Variable Smash.StakingWallet (#576) is not in mixedCase
Variable Smash._confirmedSnipers (#577) is not in mixedCase
Variable Smash._maxTxAmount (#579) is not in mixedCase
Variable Smash._launchTime (#592) is not in mixedCase
Variable Smash._tradingOpen (#593) is not in mixedCase
Follow the Solidity naming convention.

Additional information: link

Variable IpancakeRouter01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#357) is too similar to IpancakeRouter01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#358)
Prevent variables from having similar names.

Additional information: link

Smash.constructor(address,address,address,address,address) (#595-650) uses literals with too many digits:
- _totalSupply = 1000000000 * 1e18 (#609)
Use: Ether suffix, Time suffix, or The scientific notation

Additional information: link

Smash._isExcluded (#565) is never used in Smash (#557-967)
Smash._excluded (#567) is never used in Smash (#557-967)
Remove unused state variables.

Additional information: link

renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#74-76)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#78-84)
name() should be declared external:
- Smash.name() (#652-654)
symbol() should be declared external:
- Smash.symbol() (#656-658)
decimals() should be declared external:
- Smash.decimals() (#661-663)
totalSupply() should be declared external:
- Smash.totalSupply() (#665-667)
setMaxBuyLimit(uint256) should be declared external:
- Smash.setMaxBuyLimit(uint256) (#699-701)
setMaxSellLimit(uint256) should be declared external:
- Smash.setMaxSellLimit(uint256) (#703-705)
setMaxTxPercent(uint256) should be declared external:
- Smash.setMaxTxPercent(uint256) (#708-710)
balanceOf(address) should be declared external:
- Smash.balanceOf(address) (#754-762)
PublicSaleWalletBalance() should be declared external:
- Smash.PublicSaleWalletBalance() (#764-767)
MarketingWalletBalance() should be declared external:
- Smash.MarketingWalletBalance() (#769-772)
teamTokenWalletBalance() should be declared external:
- Smash.teamTokenWalletBalance() (#778-781)
ResearchWalletBalance() should be declared external:
- Smash.ResearchWalletBalance() (#782-785)
StakingWalletBalance() should be declared external:
- Smash.StakingWalletBalance() (#787-790)
setExcludeFromMaxTx(address,bool) should be declared external:
- Smash.setExcludeFromMaxTx(address,bool) (#793-795)
isExcludedFromMaxTx(address) should be declared external:
- Smash.isExcludedFromMaxTx(address) (#797-799)
transfer(address,uint256) should be declared external:
- Smash.transfer(address,uint256) (#804-812)
allowance(address,address) should be declared external:
- Smash.allowance(address,address) (#814-822)
approve(address,uint256) should be declared external:
- Smash.approve(address,uint256) (#824-832)
transferFrom(address,address,uint256) should be declared external:
- Smash.transferFrom(address,address,uint256) (#839-856)
increaseAllowance(address,uint256) should be declared external:
- Smash.increaseAllowance(address,uint256) (#858-869)
decreaseAllowance(address,uint256) should be declared external:
- Smash.decreaseAllowance(address,uint256) (#871-886)
Use the external attribute for functions never called from the contract.

Additional information: link

Holders:


Token is deployed only at one blockchain


Unable to find Discord account


BscScan page for the token does not contain additional info: website, socials, description, etc.

Additional information: link


Unable to verify token contract address on the website


Unable to find whitepaper link on the website


Unable to find token on CoinHunt

Additional information: link


Young tokens have high risks of price dump / death


Alexa traffic rank is relatively low

Additional information: link


Young tokens have high risks of price dump / death


Young tokens have high risks of price dump / death


Token has relatively low CoinMarketCap rank


Token has relatively low CoinGecko rank

Price for SMASH

News for SMASH