TokenRunner avant-garde launchpad (Incubator & Accelerator) with applications designed to run a project from birth (initial stage) to standalone created for the BNBChain community.
🛡️Approved incubated projects
↗️Project accelerator
💧Liquidity locker
🔐Token vesting for projects
↔️Multiple token access
📃Holders defined whitelist.
3% tax with limited supply. TokenRunner is featured as Ingress incubated project.
Reentrancy in TKRN._transfer(address,address,uint256) (#526-581):
External calls:
- swapAndLiquify(contractTokenBalance) (#548)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#602-608)
External calls sending eth:
- swapAndLiquify(contractTokenBalance) (#548)
- address(marketingaddress).transfer(address(this).balance) (#588)
State variables written after the call(s):
- _balances[sender] = _balances[sender].sub(amount,BEP20: transfer amount exceeds balance) (#568)
- _balances[recipient] = _balances[recipient].add(TotalSent) (#569)
- _balances[address(this)] = _balances[address(this)].add(taxAmount) (#570)
- _balances[sender] = _balances[sender].sub(amount,BEP20: transfer amount exceeds balance) (#576)
- _balances[recipient] = _balances[recipient].add(amount) (#577)
Apply the check-effects-interactions pattern.
Additional information: link
TKRN._owner (#431) shadows:
- Ownable._owner (#63)
Remove the state variable shadowing.
Additional information: link
Unable to verify that contract auditor is trusted: Certik, Quantstamp, Hacken, Solidity, Paladinsec, Openzeppelin, Verichains
Contract ownership is not renounced (belongs to a wallet)
Function IUniswapV2Pair.DOMAIN_SEPARATOR() (#215) is not in mixedCase
Function IUniswapV2Pair.PERMIT_TYPEHASH() (#216) is not in mixedCase
Function IUniswapV2Pair.MINIMUM_LIQUIDITY() (#233) is not in mixedCase
Function IUniswapV2Router01.WETH() (#255) is not in mixedCase
Parameter TKRN.setSwapAndLiquifyEnabled(bool)._enabled (#504) is not in mixedCase
Parameter TKRN.changeNumTokensSellToFee(uint256)._numTokensSellToFee (#509) is not in mixedCase
Variable TKRN._balances (#398) is not in mixedCase
Variable TKRN._allowances (#399) is not in mixedCase
Variable TKRN._totalSupply (#402) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
TKRN.setBuyMarketingFeePercent(uint256) (#486-490) should emit an event for:
- buyMarketingFee = updatedBuyMarketingFee (#488)
TKRN.setSellMarketingFeePercent(uint256) (#492-496) should emit an event for:
- sellMarketingFee = updatedSellMarketingFee (#494)
TKRN.changeNumTokensSellToFee(uint256) (#509-513) should emit an event for:
- numTokensSellToFee = _numTokensSellToFee (#512)
Emit an event for critical parameter changes.
Additional information: link
TKRN.setMarketingAddress(address).wallet (#498) lacks a zero-check on :
- marketingaddress = wallet (#500)
Check that the address is not zero.
Additional information: link
Reentrancy in TKRN._transfer(address,address,uint256) (#526-581):
External calls:
- swapAndLiquify(contractTokenBalance) (#548)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#602-608)
External calls sending eth:
- swapAndLiquify(contractTokenBalance) (#548)
- address(marketingaddress).transfer(address(this).balance) (#588)
State variables written after the call(s):
- marketingFee = buyMarketingFee (#564)
- marketingFee = sellMarketingFee (#565)
Reentrancy in TKRN.constructor() (#433-453):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#441-442)
State variables written after the call(s):
- _isExcludedFromFee[owner()] = true (#448)
- _isExcludedFromFee[address(this)] = true (#449)
- _isExcludedFromFee[marketingaddress] = true (#450)
- uniswapV2Router = _uniswapV2Router (#445)
Reentrancy in TKRN.transferFrom(address,address,uint256) (#472-476):
External calls:
- _transfer(sender,recipient,amount) (#473)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#602-608)
External calls sending eth:
- _transfer(sender,recipient,amount) (#473)
- address(marketingaddress).transfer(address(this).balance) (#588)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,BEP20: transfer amount exceeds allowance)) (#474)
- _allowances[towner][spender] = amount (#616)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in TKRN._transfer(address,address,uint256) (#526-581):
External calls:
- swapAndLiquify(contractTokenBalance) (#548)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#602-608)
External calls sending eth:
- swapAndLiquify(contractTokenBalance) (#548)
- address(marketingaddress).transfer(address(this).balance) (#588)
Event emitted after the call(s):
- Transfer(sender,recipient,TotalSent) (#571)
- Transfer(sender,address(this),taxAmount) (#572)
- Transfer(sender,recipient,amount) (#578)
Reentrancy in TKRN.constructor() (#433-453):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#441-442)
Event emitted after the call(s):
- Transfer(address(0),_msgSender(),_totalSupply) (#452)
Reentrancy in TKRN.swapAndLiquify(uint256) (#583-591):
External calls:
- swapTokensForEth(contractTokenBalance) (#586)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#602-608)
External calls sending eth:
- address(marketingaddress).transfer(address(this).balance) (#588)
Event emitted after the call(s):
- SwapAndLiquify(contractTokenBalance,address(this).balance) (#590)
Reentrancy in TKRN.transferFrom(address,address,uint256) (#472-476):
External calls:
- _transfer(sender,recipient,amount) (#473)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#602-608)
External calls sending eth:
- _transfer(sender,recipient,amount) (#473)
- address(marketingaddress).transfer(address(this).balance) (#588)
Event emitted after the call(s):
- Approval(towner,spender,amount) (#617)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,BEP20: transfer amount exceeds allowance)) (#474)
Apply the check-effects-interactions pattern.
Additional information: link
Address.isContract(address) (#142-148) uses assembly
- INLINE ASM (#146)
Do not use evm assembly.
Additional information: link
Address.isContract(address) (#142-148) is never used and should be removed
SafeBEP20.callOptionalReturn(IBEP20,bytes) (#169-180) is never used and should be removed
SafeBEP20.safeApprove(IBEP20,address,uint256) (#163-168) is never used and should be removed
SafeBEP20.safeTransfer(IBEP20,address,uint256) (#155-157) is never used and should be removed
SafeBEP20.safeTransferFrom(IBEP20,address,address,uint256) (#159-161) is never used and should be removed
Remove unused functions.
Additional information: link
Pragma version^0.8.15 (#3) necessitates a version too recent to be trusted. Consider deploying with 0.6.12/0.7.6/0.8.7
solc-0.8.15 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 SafeBEP20.callOptionalReturn(IBEP20,bytes) (#169-180):
- (success,returndata) = address(token).call(data) (#173)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Reentrancy in TKRN._transfer(address,address,uint256) (#526-581):
External calls:
- swapAndLiquify(contractTokenBalance) (#548)
- address(marketingaddress).transfer(address(this).balance) (#588)
State variables written after the call(s):
- _balances[sender] = _balances[sender].sub(amount,BEP20: transfer amount exceeds balance) (#568)
- _balances[recipient] = _balances[recipient].add(TotalSent) (#569)
- _balances[address(this)] = _balances[address(this)].add(taxAmount) (#570)
- _balances[sender] = _balances[sender].sub(amount,BEP20: transfer amount exceeds balance) (#576)
- _balances[recipient] = _balances[recipient].add(amount) (#577)
- marketingFee = buyMarketingFee (#564)
- marketingFee = sellMarketingFee (#565)
Event emitted after the call(s):
- Transfer(sender,recipient,TotalSent) (#571)
- Transfer(sender,address(this),taxAmount) (#572)
- Transfer(sender,recipient,amount) (#578)
Reentrancy in TKRN.swapAndLiquify(uint256) (#583-591):
External calls:
- address(marketingaddress).transfer(address(this).balance) (#588)
Event emitted after the call(s):
- SwapAndLiquify(contractTokenBalance,address(this).balance) (#590)
Reentrancy in TKRN.transferFrom(address,address,uint256) (#472-476):
External calls:
- _transfer(sender,recipient,amount) (#473)
- address(marketingaddress).transfer(address(this).balance) (#588)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,BEP20: transfer amount exceeds allowance)) (#474)
- _allowances[towner][spender] = amount (#616)
Event emitted after the call(s):
- Approval(towner,spender,amount) (#617)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,BEP20: transfer amount exceeds allowance)) (#474)
Apply the check-effects-interactions pattern.
Additional information: link
Variable IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#260) is too similar to IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#261)
Prevent variables from having similar names.
Additional information: link
TKRN.constructor() (#433-453) uses literals with too many digits:
- _totalSupply = 15000000 * (10 ** 18) (#435)
TKRN.changeNumTokensSellToFee(uint256) (#509-513) uses literals with too many digits:
- require(bool,string)(_numTokensSellToFee >= 5000 * 10 ** 18 && _numTokensSellToFee <= 1000000 * 10 ** 18,out of set parameters) (#511)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#98-101)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#107-111)
name() should be declared external:
- BEP20Detailed.name() (#128-130)
symbol() should be declared external:
- BEP20Detailed.symbol() (#131-133)
decimals() should be declared external:
- BEP20Detailed.decimals() (#134-136)
totalSupply() should be declared external:
- TKRN.totalSupply() (#455-457)
transfer(address,uint256) should be declared external:
- TKRN.transfer(address,uint256) (#461-464)
allowance(address,address) should be declared external:
- TKRN.allowance(address,address) (#465-467)
approve(address,uint256) should be declared external:
- TKRN.approve(address,uint256) (#468-471)
transferFrom(address,address,uint256) should be declared external:
- TKRN.transferFrom(address,address,uint256) (#472-476)
increaseAllowance(address,uint256) should be declared external:
- TKRN.increaseAllowance(address,uint256) (#477-480)
decreaseAllowance(address,uint256) should be declared external:
- TKRN.decreaseAllowance(address,uint256) (#481-484)
setSwapAndLiquifyEnabled(bool) should be declared external:
- TKRN.setSwapAndLiquifyEnabled(bool) (#504-507)
excludeFromFee(address) should be declared external:
- TKRN.excludeFromFee(address) (#515-517)
includeInFee(address) should be declared external:
- TKRN.includeInFee(address) (#519-521)
Use the external attribute for functions never called from the contract.
Additional information: link
BscScan page for the token does not contain additional info: website, socials, description, etc.
Additional information: link
Unable to find Telegram 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
Young tokens have high risks of scam / price dump / death
Token has no active CoinGecko listing / rank
Token has no active CoinMarketCap listing / rank
Token is relatively young, but twitter if very old (probably it's fake).
Unable to find Blog account (Reddit or Medium)
Unable to find Discord account