A virtual currency project started by some mysterious Nobel Prize winner.
A team with rich marketing experience is in charge of operation.
A strong community welcomes you to join us and make an impact on the world.
Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
Nobel.addLiquidity(uint256,uint256) (#732-745) sends eth to arbitrary user
Dangerous calls:
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#737-744)
Ensure that an arbitrary user cannot withdraw unauthorized funds.
Additional information: link
Reentrancy in Nobel._transfer(address,address,uint256) (#635-669):
External calls:
- swapAndLiquify(contractTokenBalance) (#656)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#721-727)
External calls sending eth:
- swapAndLiquify(contractTokenBalance) (#656)
- recipient.transfer(amount) (#597)
State variables written after the call(s):
- _balances[sender] = _balances[sender].sub(amount,Insufficient Balance) (#659)
- _balances[recipient] = _balances[recipient].add(finalAmount) (#664)
- finalAmount = takeFee(sender,recipient,amount) (#661-662)
- _balances[address(this)] = _balances[address(this)].add(feeAmount) (#762)
- finalAmount = takeFee(sender,recipient,amount) (#661-662)
- isBlack[recipient] = true (#753)
Apply the check-effects-interactions pattern.
Additional information: link
Contract ownership is not renounced (belongs to a wallet)
Nobel.transferFrom(address,address,uint256) (#627-633) uses a dangerous strict equality:
- startTime == 0 && recipient == uniswapPair (#628)
Don't use strict equality to determine if an account has enough Ether or tokens.
Additional information: link
Combination 1: Reentrancy vulnerabilities + Functions that send Ether to arbitraty destination. Usual for scams. May be justified by some complex mechanics (e.g. rebase, reflections). DYOR & manual audit are advised.
Reentrancy in Nobel._transfer(address,address,uint256) (#635-669):
External calls:
- swapAndLiquify(contractTokenBalance) (#656)
- recipient.transfer(amount) (#597)
State variables written after the call(s):
- _balances[sender] = _balances[sender].sub(amount,Insufficient Balance) (#659)
- _balances[recipient] = _balances[recipient].add(finalAmount) (#664)
- finalAmount = takeFee(sender,recipient,amount) (#661-662)
- _balances[address(this)] = _balances[address(this)].add(feeAmount) (#762)
- finalAmount = takeFee(sender,recipient,amount) (#661-662)
- isBlack[recipient] = true (#753)
Event emitted after the call(s):
- Transfer(sender,address(this),feeAmount) (#763)
- finalAmount = takeFee(sender,recipient,amount) (#661-662)
- Transfer(sender,recipient,finalAmount) (#666)
Reentrancy in Nobel.transferFrom(address,address,uint256) (#627-633):
External calls:
- _transfer(sender,recipient,amount) (#630)
- recipient.transfer(amount) (#597)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#631)
- _allowances[owner][spender] = amount (#519)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#520)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#631)
Apply the check-effects-interactions pattern.
Additional information: link
Variable IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#233) is too similar to IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#234)
Prevent variables from having similar names.
Additional information: link
Ownable._deadAddress (#144) is never used in Nobel (#361-770)
Remove unused state variables.
Additional information: link
Nobel.slitherConstructorVariables() (#361-770) uses literals with too many digits:
- _deadAddress = 0x000000000000000000000000000000000000dEaD (#144)
Nobel.slitherConstructorVariables() (#361-770) uses literals with too many digits:
- deadAddress = 0x000000000000000000000000000000000000dEaD (#374)
Nobel.slitherConstructorVariables() (#361-770) uses literals with too many digits:
- minimumTokensBeforeSwap = _totalSupply.div(100000) (#397)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
Nobel._decimals (#368) should be constant
Nobel._name (#366) should be constant
Nobel._symbol (#367) should be constant
Ownable._deadAddress (#144) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
Nobel.addLiquidity(uint256,uint256) (#732-745) ignores return value by uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#737-744)
Ensure that all the return values of the function calls are used.
Additional information: link
Nobel.allowance(address,address).owner (#492) shadows:
- Ownable.owner() (#146-148) (function)
Nobel._approve(address,address,uint256).owner (#515) shadows:
- Ownable.owner() (#146-148) (function)
Rename the local variables that shadow another component.
Additional information: link
Nobel.setBuyTaxes(uint256) (#536-539) should emit an event for:
- _totalTaxIfBuying = newTax (#538)
Nobel.setSellTaxes(uint256) (#541-544) should emit an event for:
- _totalTaxIfSelling = newTax (#543)
Nobel.setDistributionSettings(uint256,uint256,uint256) (#548-556) should emit an event for:
- _marketingShare = newMarketingShare (#552)
- _teamShare = newTeamShare (#553)
- _totalDistributionShares = _donationShare.add(_marketingShare).add(_teamShare) (#555)
Nobel.setNumTokensBeforeSwap(uint256) (#566-568) should emit an event for:
- minimumTokensBeforeSwap = newLimit (#567)
Nobel._setMaxTxAmount(uint256) (#671-674) should emit an event for:
- _maxTxAmount = newMax (#673)
Emit an event for critical parameter changes.
Additional information: link
Nobel.constructor(address).NewOwner (#431) lacks a zero-check on :
- _owner = NewOwner (#432)
Nobel.setMarketingWalletAddress(address).newAddress (#570) lacks a zero-check on :
- marketingWalletAddress = address(newAddress) (#571)
Nobel.setdonationAddress(address).newAddress (#574) lacks a zero-check on :
- donationAddress = address(newAddress) (#575)
Nobel.setTeamWalletAddress(address).newAddress (#578) lacks a zero-check on :
- teamWalletAddress = address(newAddress) (#579)
Check that the address is not zero.
Additional information: link
Reentrancy in Nobel.changeRouterVersion(address) (#600-617):
External calls:
- newPairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#608-609)
State variables written after the call(s):
- isMarketPair[address(uniswapPair)] = true (#616)
- isWalletLimitExempt[address(uniswapPair)] = true (#615)
- uniswapPair = newPairAddress (#612)
- uniswapV2Router = _uniswapV2Router (#613)
Reentrancy in Nobel.constructor(address) (#431-464):
External calls:
- uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#436-437)
State variables written after the call(s):
- _allowances[address(this)][address(uniswapV2Router)] = _totalSupply (#441)
- _balances[owner()] = _totalSupply (#462)
- _totalDistributionShares = _donationShare.add(_marketingShare).add(_teamShare) (#448)
- autoBuyBackAddress = _msgSender() (#440)
- isExcludedFromFee[owner()] = true (#443)
- isExcludedFromFee[address(this)] = true (#444)
- isExcludedFromFee[address(0)] = true (#445)
- isMarketPair[address(uniswapPair)] = true (#460)
- isTxLimitExempt[owner()] = true (#456)
- isTxLimitExempt[address(this)] = true (#457)
- isTxLimitExempt[address(0)] = true (#458)
- isWalletLimitExempt[owner()] = true (#450)
- isWalletLimitExempt[address(uniswapPair)] = true (#451)
- isWalletLimitExempt[address(this)] = true (#452)
- isWalletLimitExempt[address(0)] = true (#453)
- isWalletLimitExempt[address(deadAddress)] = true (#454)
- uniswapV2Router = _uniswapV2Router (#439)
Reentrancy in Nobel.transferFrom(address,address,uint256) (#627-633):
External calls:
- _transfer(sender,recipient,amount) (#630)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#721-727)
External calls sending eth:
- _transfer(sender,recipient,amount) (#630)
- recipient.transfer(amount) (#597)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#631)
- _allowances[owner][spender] = amount (#519)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in Nobel._transfer(address,address,uint256) (#635-669):
External calls:
- swapAndLiquify(contractTokenBalance) (#656)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#721-727)
External calls sending eth:
- swapAndLiquify(contractTokenBalance) (#656)
- recipient.transfer(amount) (#597)
Event emitted after the call(s):
- Transfer(sender,address(this),feeAmount) (#763)
- finalAmount = takeFee(sender,recipient,amount) (#661-662)
- Transfer(sender,recipient,finalAmount) (#666)
Reentrancy in Nobel.constructor(address) (#431-464):
External calls:
- uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#436-437)
Event emitted after the call(s):
- Transfer(address(0),owner(),_totalSupply) (#463)
Reentrancy in Nobel.swapTokensForEth(uint256) (#712-730):
External calls:
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#721-727)
Event emitted after the call(s):
- SwapTokensForETH(tokenAmount,path) (#729)
Reentrancy in Nobel.transferFrom(address,address,uint256) (#627-633):
External calls:
- _transfer(sender,recipient,amount) (#630)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#721-727)
External calls sending eth:
- _transfer(sender,recipient,amount) (#630)
- recipient.transfer(amount) (#597)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#520)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()].sub(amount,ERC20: transfer amount exceeds allowance)) (#631)
Apply the check-effects-interactions pattern.
Additional information: link
Address.isContract(address) (#86-95) uses assembly
- INLINE ASM (#93)
Address._functionCallWithValue(address,bytes,uint256,string) (#122-139) uses assembly
- INLINE ASM (#131-134)
Do not use evm assembly.
Additional information: link
Address._functionCallWithValue(address,bytes,uint256,string) (#122-139) is never used and should be removed
Address.functionCall(address,bytes) (#105-107) is never used and should be removed
Address.functionCall(address,bytes,string) (#109-111) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#113-115) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#117-120) is never used and should be removed
Address.isContract(address) (#86-95) is never used and should be removed
Address.sendValue(address,uint256) (#97-103) is never used and should be removed
Context._msgData() (#13-16) is never used and should be removed
Nobel.addLiquidity(uint256,uint256) (#732-745) is never used and should be removed
SafeMath.mod(uint256,uint256) (#74-76) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#78-81) is never used and should be removed
Remove unused functions.
Additional information: link
Nobel._totalSupply (#395) is set pre-construction with a non-constant function or state variable:
- 18951127 * 10 ** _decimals
Nobel._maxTxAmount (#396) is set pre-construction with a non-constant function or state variable:
- _totalSupply
Nobel.minimumTokensBeforeSwap (#397) is set pre-construction with a non-constant function or state variable:
- _totalSupply.div(100000)
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.13 (#5) necessitates a version too recent to be trusted. Consider deploying with 0.6.12/0.7.6/0.8.7
solc-0.8.14 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) (#97-103):
- (success) = recipient.call{value: amount}() (#101)
Low level call in Address._functionCallWithValue(address,bytes,uint256,string) (#122-139):
- (success,returndata) = target.call{value: weiValue}(data) (#125)
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 (#143) is not in mixedCase
Variable Ownable._deadAddress (#144) is not in mixedCase
Function IUniswapV2Pair.DOMAIN_SEPARATOR() (#192) is not in mixedCase
Function IUniswapV2Pair.PERMIT_TYPEHASH() (#193) is not in mixedCase
Function IUniswapV2Pair.MINIMUM_LIQUIDITY() (#209) is not in mixedCase
Function IUniswapV2Router01.WETH() (#228) is not in mixedCase
Parameter Nobel.setBlack(address,bool).NewValue (#466) is not in mixedCase
Parameter Nobel.setSwapAndLiquifyEnabled(bool)._enabled (#583) is not in mixedCase
Function Nobel._setMaxTxAmount(uint256) (#671-674) is not in mixedCase
Function Nobel._transfer(address,uint256) (#683-689) is not in mixedCase
Variable Nobel._balances (#376) is not in mixedCase
Variable Nobel._marketingShare (#387) is not in mixedCase
Variable Nobel._teamShare (#388) is not in mixedCase
Variable Nobel._donationShare (#389) is not in mixedCase
Variable Nobel._totalTaxIfBuying (#391) is not in mixedCase
Variable Nobel._totalTaxIfSelling (#392) is not in mixedCase
Variable Nobel._totalDistributionShares (#393) is not in mixedCase
Variable Nobel._maxTxAmount (#396) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (#14)" inContext (#7-17)
Remove redundant statements if they congest code but offer no value.
Additional information: link
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#154-158)
name() should be declared external:
- Nobel.name() (#472-474)
symbol() should be declared external:
- Nobel.symbol() (#476-478)
decimals() should be declared external:
- Nobel.decimals() (#480-482)
totalSupply() should be declared external:
- Nobel.totalSupply() (#484-486)
allowance(address,address) should be declared external:
- Nobel.allowance(address,address) (#492-494)
increaseAllowance(address,uint256) should be declared external:
- Nobel.increaseAllowance(address,uint256) (#496-499)
decreaseAllowance(address,uint256) should be declared external:
- Nobel.decreaseAllowance(address,uint256) (#501-504)
minimumTokensBeforeSwapAmount() should be declared external:
- Nobel.minimumTokensBeforeSwapAmount() (#506-508)
approve(address,uint256) should be declared external:
- Nobel.approve(address,uint256) (#510-513)
setMarketPairStatus(address,bool) should be declared external:
- Nobel.setMarketPairStatus(address,bool) (#524-526)
setIsExcludedFromFee(address,bool) should be declared external:
- Nobel.setIsExcludedFromFee(address,bool) (#532-534)
setSwapAndLiquifyEnabled(bool) should be declared external:
- Nobel.setSwapAndLiquifyEnabled(bool) (#583-586)
setSwapAndLiquifyByLimitOnly(bool) should be declared external:
- Nobel.setSwapAndLiquifyByLimitOnly(bool) (#588-590)
getCirculatingSupply() should be declared external:
- Nobel.getCirculatingSupply() (#592-594)
changeRouterVersion(address) should be declared external:
- Nobel.changeRouterVersion(address) (#600-617)
transfer(address,uint256) should be declared external:
- Nobel.transfer(address,uint256) (#622-625)
transferFrom(address,address,uint256) should be declared external:
- Nobel.transferFrom(address,address,uint256) (#627-633)
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
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 Blog account (Reddit or Medium)
Unable to find Youtube account
Unable to find Discord account
Twitter account has few posts