Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
Reentrancy in Televerse._transfer(address,address,uint256) (#993-1044):
External calls:
- swapAndLiquify(numTokensSellToAddToLiquidity) (#1040)
- UniswapV2Router.addLiquidityETH{value: ETHAmount}(address(this),tokenAmount,0,0,devAddress,block.timestamp) (#1127-1134)
- (success) = recipient.call{value: amount}() (#411)
- UniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1116-1122)
- devAddress.sendValue(devFee) (#1101)
- treasuryAddress.sendValue(treasuryFee) (#1102)
External calls sending eth:
- swapAndLiquify(numTokensSellToAddToLiquidity) (#1040)
- UniswapV2Router.addLiquidityETH{value: ETHAmount}(address(this),tokenAmount,0,0,devAddress,block.timestamp) (#1127-1134)
- (success) = recipient.call{value: amount}() (#411)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,takeFee) (#1043)
- _rOwned[address(this)] += rToSwap (#900)
- _rOwned[sender] -= s.rAmount (#1062)
- _rOwned[recipient] += s.rTransferAmount (#1063)
- _tokenTransfer(from,to,amount,takeFee) (#1043)
- _rTotal -= rRfi (#895)
- _tokenTransfer(from,to,amount,takeFee) (#1043)
- _tOwned[address(this)] += tToSwap (#901)
- _tOwned[sender] -= tAmount (#1056)
- _tOwned[recipient] += s.tTransferAmount (#1059)
Reentrancy in Televerse.transferFrom(address,address,uint256) (#761-778):
External calls:
- _transfer(sender,recipient,amount) (#766)
- UniswapV2Router.addLiquidityETH{value: ETHAmount}(address(this),tokenAmount,0,0,devAddress,block.timestamp) (#1127-1134)
- (success) = recipient.call{value: amount}() (#411)
- UniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1116-1122)
- devAddress.sendValue(devFee) (#1101)
- treasuryAddress.sendValue(treasuryFee) (#1102)
External calls sending eth:
- _transfer(sender,recipient,amount) (#766)
- UniswapV2Router.addLiquidityETH{value: ETHAmount}(address(this),tokenAmount,0,0,devAddress,block.timestamp) (#1127-1134)
- (success) = recipient.call{value: amount}() (#411)
State variables written after the call(s):
- _approve(sender,_msgSender(),currentAllowance - amount) (#774)
- _allowances[owner][spender] = amount (#989)
Apply the check-effects-interactions pattern.
Additional information: link
Televerse.rescueAnyBEP20Tokens(address,address,uint256) (#1224-1226) ignores return value by IERC20(_tokenAddr).transfer(_to,_amount) (#1225)
Use SafeERC20, or ensure that the transfer/transferFrom return value is checked.
Additional information: link
Combination 3: Reentrancy vulnerabilities + Unchecked transfer vulnerability. Usual for scams. May be justified by some complex mechanics (e.g. rebase, reflections). DYOR & manual audit are advised.
Televerse.addLiquidity(uint256,uint256) (#1125-1136) ignores return value by UniswapV2Router.addLiquidityETH{value: ETHAmount}(address(this),tokenAmount,0,0,devAddress,block.timestamp) (#1127-1134)
Ensure that all the return values of the function calls are used.
Additional information: link
Televerse.allowance(address,address).owner (#743) shadows:
- Ownable.owner() (#66-68) (function)
Televerse._approve(address,address,uint256).owner (#983) shadows:
- Ownable.owner() (#66-68) (function)
Rename the local variables that shadow another component.
Additional information: link
Televerse.setMaxTransactionAmount(uint256,uint256) (#1180-1186) should emit an event for:
- maxTxAmountBuy = _tTotal / _maxTxAmountBuyPct (#1184)
- maxTxAmountSell = _tTotal / _maxTxAmountSellPct (#1185)
Televerse.setNumTokensSellToAddToLiq(uint256) (#1188-1193) should emit an event for:
- numTokensSellToAddToLiquidity = amountTokens * 10 ** _decimals (#1192)
Emit an event for critical parameter changes.
Additional information: link
Televerse.setTreasuryAddress(address)._treasuryAddress (#1195) lacks a zero-check on :
- treasuryAddress = _treasuryAddress (#1199)
Televerse.setDevAddress(address)._devAddress (#1202) lacks a zero-check on :
- devAddress = _devAddress (#1203)
Televerse.manualSwapPercentage(uint256,address).toAddress (#1211) lacks a zero-check on :
- wAddress = address(toAddress) (#1214)
Check that the address is not zero.
Additional information: link
Reentrancy in Televerse._transfer(address,address,uint256) (#993-1044):
External calls:
- swapAndLiquify(numTokensSellToAddToLiquidity) (#1040)
- UniswapV2Router.addLiquidityETH{value: ETHAmount}(address(this),tokenAmount,0,0,devAddress,block.timestamp) (#1127-1134)
- (success) = recipient.call{value: amount}() (#411)
- UniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1116-1122)
- devAddress.sendValue(devFee) (#1101)
- treasuryAddress.sendValue(treasuryFee) (#1102)
External calls sending eth:
- swapAndLiquify(numTokensSellToAddToLiquidity) (#1040)
- UniswapV2Router.addLiquidityETH{value: ETHAmount}(address(this),tokenAmount,0,0,devAddress,block.timestamp) (#1127-1134)
- (success) = recipient.call{value: amount}() (#411)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,takeFee) (#1043)
- totFeesPaid.rfi += tRfi (#896)
- totFeesPaid.toSwap += tToSwap (#902)
Reentrancy in Televerse.constructor() (#684-709):
External calls:
- uniswapPair = IUniswapV2Factory(_UniswapV2Router.factory()).createPair(address(this),_UniswapV2Router.WETH()) (#688)
State variables written after the call(s):
- UniswapV2Router = _UniswapV2Router (#691)
- _isExcludedFromFee[owner()] = true (#696)
- _isExcludedFromFee[treasuryAddress] = true (#697)
- _isExcludedFromFee[devAddress] = true (#698)
- _isExcludedFromFee[address(this)] = true (#699)
- _isExcludedFromMaxWallet[owner()] = true (#701)
- _isExcludedFromMaxWallet[treasuryAddress] = true (#702)
- _isExcludedFromMaxWallet[devAddress] = true (#703)
- _isExcludedFromMaxWallet[address(this)] = true (#704)
- _isExcludedFromMaxWallet[uniswapPair] = true (#706)
- _rOwned[owner()] = _rTotal (#692)
- devAddress = address(msg.sender) (#694)
- isAutomatedMarketMakerPair[uniswapPair] = true (#689)
- treasuryAddress = address(msg.sender) (#693)
- wAddress = address(msg.sender) (#695)
Reentrancy in Televerse.manualSwapPercentage(uint256,address) (#1211-1217):
External calls:
- swapTokensForETH(tokenstosell) (#1213)
- UniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1116-1122)
State variables written after the call(s):
- ttk = address(this).balance (#1215)
- wAddress = address(toAddress) (#1214)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in Televerse._transfer(address,address,uint256) (#993-1044):
External calls:
- swapAndLiquify(numTokensSellToAddToLiquidity) (#1040)
- UniswapV2Router.addLiquidityETH{value: ETHAmount}(address(this),tokenAmount,0,0,devAddress,block.timestamp) (#1127-1134)
- (success) = recipient.call{value: amount}() (#411)
- UniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1116-1122)
- devAddress.sendValue(devFee) (#1101)
- treasuryAddress.sendValue(treasuryFee) (#1102)
External calls sending eth:
- swapAndLiquify(numTokensSellToAddToLiquidity) (#1040)
- UniswapV2Router.addLiquidityETH{value: ETHAmount}(address(this),tokenAmount,0,0,devAddress,block.timestamp) (#1127-1134)
- (success) = recipient.call{value: amount}() (#411)
Event emitted after the call(s):
- Transfer(sender,address(this),s.tToSwap) (#1067)
- _tokenTransfer(from,to,amount,takeFee) (#1043)
- Transfer(sender,recipient,s.tTransferAmount) (#1074)
- _tokenTransfer(from,to,amount,takeFee) (#1043)
Reentrancy in Televerse.addLiquidity(uint256,uint256) (#1125-1136):
External calls:
- UniswapV2Router.addLiquidityETH{value: ETHAmount}(address(this),tokenAmount,0,0,devAddress,block.timestamp) (#1127-1134)
Event emitted after the call(s):
- LiquidityAdded(tokenAmount,ETHAmount) (#1135)
Reentrancy in Televerse.constructor() (#684-709):
External calls:
- uniswapPair = IUniswapV2Factory(_UniswapV2Router.factory()).createPair(address(this),_UniswapV2Router.WETH()) (#688)
Event emitted after the call(s):
- SetAutomatedMarketMakerPair(uniswapPair,true) (#690)
- Transfer(address(0),owner(),_tTotal) (#708)
Reentrancy in Televerse.swapAndLiquify(uint256) (#1077-1103):
External calls:
- swapTokensForETH(toSwap) (#1086)
- UniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1116-1122)
- addLiquidity(tokensToAddLiquidityWith,ETHToAddLiquidityWith) (#1093)
- UniswapV2Router.addLiquidityETH{value: ETHAmount}(address(this),tokenAmount,0,0,devAddress,block.timestamp) (#1127-1134)
External calls sending eth:
- addLiquidity(tokensToAddLiquidityWith,ETHToAddLiquidityWith) (#1093)
- UniswapV2Router.addLiquidityETH{value: ETHAmount}(address(this),tokenAmount,0,0,devAddress,block.timestamp) (#1127-1134)
Event emitted after the call(s):
- LiquidityAdded(tokenAmount,ETHAmount) (#1135)
- addLiquidity(tokensToAddLiquidityWith,ETHToAddLiquidityWith) (#1093)
Reentrancy in Televerse.transferFrom(address,address,uint256) (#761-778):
External calls:
- _transfer(sender,recipient,amount) (#766)
- UniswapV2Router.addLiquidityETH{value: ETHAmount}(address(this),tokenAmount,0,0,devAddress,block.timestamp) (#1127-1134)
- (success) = recipient.call{value: amount}() (#411)
- UniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#1116-1122)
- devAddress.sendValue(devFee) (#1101)
- treasuryAddress.sendValue(treasuryFee) (#1102)
External calls sending eth:
- _transfer(sender,recipient,amount) (#766)
- UniswapV2Router.addLiquidityETH{value: ETHAmount}(address(this),tokenAmount,0,0,devAddress,block.timestamp) (#1127-1134)
- (success) = recipient.call{value: amount}() (#411)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#990)
- _approve(sender,_msgSender(),currentAllowance - amount) (#774)
Apply the check-effects-interactions pattern.
Additional information: link
Address.isContract(address) (#380-390) uses assembly
- INLINE ASM (#386-388)
Address.verifyCallResult(bool,bytes,string) (#549-569) uses assembly
- INLINE ASM (#561-564)
Do not use evm assembly.
Additional information: link
Different versions of Solidity is used:
- Version used: ['>=0.5.0', '>=0.6.2', '^0.8.0']
- ^0.8.0 (#12)
- ^0.8.0 (#37)
- ^0.8.0 (#108)
- >=0.6.2 (#191)
- >=0.6.2 (#290)
- >=0.5.0 (#336)
- ^0.8.0 (#357)
- ^0.8.0 (#574)
Use one Solidity version.
Additional information: link
Televerse.includeInReward(address) (#852-863) has costly operations inside a loop:
- _excluded.pop() (#859)
Use a local variable to hold the loop computation result.
Additional information: link
Address.functionCall(address,bytes) (#433-435) is never used and should be removed
Address.functionCall(address,bytes,string) (#443-449) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#462-468) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#476-487) is never used and should be removed
Address.functionDelegateCall(address,bytes) (#522-524) is never used and should be removed
Address.functionDelegateCall(address,bytes,string) (#532-541) is never used and should be removed
Address.functionStaticCall(address,bytes) (#495-497) is never used and should be removed
Address.functionStaticCall(address,bytes,string) (#505-514) is never used and should be removed
Address.isContract(address) (#380-390) is never used and should be removed
Address.verifyCallResult(bool,bytes,string) (#549-569) is never used and should be removed
Context._msgData() (#29-31) is never used and should be removed
Televerse.reflectionFromToken(uint256,bool) (#814-827) is never used and should be removed
Remove unused functions.
Additional information: link
Televerse._rTotal (#595) is set pre-construction with a non-constant function or state variable:
- (MAX - (MAX % _tTotal))
Televerse.maxTxAmountBuy (#597) is set pre-construction with a non-constant function or state variable:
- _tTotal / 50
Televerse.maxTxAmountSell (#598) is set pre-construction with a non-constant function or state variable:
- _tTotal / 50
Televerse.maxWalletAmount (#599) is set pre-construction with a non-constant function or state variable:
- _tTotal / 50
Televerse.numTokensSellToAddToLiquidity (#619) is set pre-construction with a non-constant function or state variable:
- _tTotal / 650
Televerse.appliedRates (#647) is set pre-construction with a non-constant function or state variable:
- buyRates
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 version^0.8.0 (#12) allows old versions
Pragma version^0.8.0 (#37) allows old versions
Pragma version^0.8.0 (#108) allows old versions
Pragma version>=0.6.2 (#191) allows old versions
Pragma version>=0.6.2 (#290) allows old versions
Pragma version>=0.5.0 (#336) allows old versions
Pragma version^0.8.0 (#357) allows old versions
Pragma version^0.8.0 (#574) allows old versions
solc-0.8.0 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) (#408-413):
- (success) = recipient.call{value: amount}() (#411)
Low level call in Address.functionCallWithValue(address,bytes,uint256,string) (#476-487):
- (success,returndata) = target.call{value: value}(data) (#485)
Low level call in Address.functionStaticCall(address,bytes,string) (#505-514):
- (success,returndata) = target.staticcall(data) (#512)
Low level call in Address.functionDelegateCall(address,bytes,string) (#532-541):
- (success,returndata) = target.delegatecall(data) (#539)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Function IUniswapV2Router01.WETH() (#195) is not in mixedCase
Struct Televerse.feeRatesStruct (#621-627) is not in CapWords
Struct Televerse.valuesFromGetValues (#655-663) is not in CapWords
Parameter Televerse.setSwapAndLiquifyEnabled(bool)._enabled (#886) is not in mixedCase
Parameter Televerse.addLiquidity(uint256,uint256).ETHAmount (#1125) is not in mixedCase
Parameter Televerse.setAutomatedMarketMakerPair(address,bool)._pair (#1138) is not in mixedCase
Parameter Televerse.setBuyFees(uint8,uint8,uint8,uint8)._rfi (#1155) is not in mixedCase
Parameter Televerse.setBuyFees(uint8,uint8,uint8,uint8)._treasury (#1156) is not in mixedCase
Parameter Televerse.setBuyFees(uint8,uint8,uint8,uint8)._dev (#1157) is not in mixedCase
Parameter Televerse.setBuyFees(uint8,uint8,uint8,uint8)._lp (#1158) is not in mixedCase
Parameter Televerse.setSellFees(uint8,uint8,uint8,uint8)._rfi (#1168) is not in mixedCase
Parameter Televerse.setSellFees(uint8,uint8,uint8,uint8)._treasury (#1169) is not in mixedCase
Parameter Televerse.setSellFees(uint8,uint8,uint8,uint8)._dev (#1170) is not in mixedCase
Parameter Televerse.setSellFees(uint8,uint8,uint8,uint8)._lp (#1171) is not in mixedCase
Parameter Televerse.setMaxTransactionAmount(uint256,uint256)._maxTxAmountBuyPct (#1181) is not in mixedCase
Parameter Televerse.setMaxTransactionAmount(uint256,uint256)._maxTxAmountSellPct (#1182) is not in mixedCase
Parameter Televerse.setTreasuryAddress(address)._treasuryAddress (#1195) is not in mixedCase
Parameter Televerse.setDevAddress(address)._devAddress (#1202) is not in mixedCase
Parameter Televerse.rescueAnyBEP20Tokens(address,address,uint256)._tokenAddr (#1224) is not in mixedCase
Parameter Televerse.rescueAnyBEP20Tokens(address,address,uint256)._to (#1224) is not in mixedCase
Parameter Televerse.rescueAnyBEP20Tokens(address,address,uint256)._amount (#1224) is not in mixedCase
Parameter Televerse.setMaxWalletAmount(uint256)._maxWalletAmountPct (#1233) is not in mixedCase
Constant Televerse._decimals (#591) is not in UPPER_CASE_WITH_UNDERSCORES
Constant Televerse._name (#612) is not in UPPER_CASE_WITH_UNDERSCORES
Constant Televerse._symbol (#613) is not in UPPER_CASE_WITH_UNDERSCORES
Variable Televerse.UniswapV2Router (#616) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Variable IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#200) is too similar to IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#201)
Prevent variables from having similar names.
Additional information: link
Televerse._tTotal (#594) should be constant
Televerse.blocksToWait (#605) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#85-87)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#93-96)
name() should be declared external:
- Televerse.name() (#712-714)
symbol() should be declared external:
- Televerse.symbol() (#716-718)
decimals() should be declared external:
- Televerse.decimals() (#720-722)
totalSupply() should be declared external:
- Televerse.totalSupply() (#725-727)
transfer(address,uint256) should be declared external:
- Televerse.transfer(address,uint256) (#734-741)
approve(address,uint256) should be declared external:
- Televerse.approve(address,uint256) (#752-759)
transferFrom(address,address,uint256) should be declared external:
- Televerse.transferFrom(address,address,uint256) (#761-778)
increaseAllowance(address,uint256) should be declared external:
- Televerse.increaseAllowance(address,uint256) (#780-791)
decreaseAllowance(address,uint256) should be declared external:
- Televerse.decreaseAllowance(address,uint256) (#793-808)
isExcludedFromReward(address) should be declared external:
- Televerse.isExcludedFromReward(address) (#810-812)
isExcludedFromFee(address) should be declared external:
- Televerse.isExcludedFromFee(address) (#874-876)
isExcludedFromMaxWallet(address) should be declared external:
- Televerse.isExcludedFromMaxWallet(address) (#878-884)
setSwapAndLiquifyEnabled(bool) should be declared external:
- Televerse.setSwapAndLiquifyEnabled(bool) (#886-889)
rescueAnyBEP20Tokens(address,address,uint256) should be declared external:
- Televerse.rescueAnyBEP20Tokens(address,address,uint256) (#1224-1226)
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