Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
Contract locking ether found:
Contract SobaInu (#133-366) has payable functions:
- SobaInu.receive() (#265)
But does not have a function to withdraw the ether
Remove the payable attribute or add a withdraw function.
Additional information: link
SobaInu.allowance(address,address).owner (#230) shadows:
- Ownable.owner() (#84-86) (function)
SobaInu._approve(address,address,uint256).owner (#324) shadows:
- Ownable.owner() (#84-86) (function)
Rename the local variables that shadow another component.
Additional information: link
SobaInu.setMaxPercent(uint256,uint256) (#316-322) should emit an event for:
- _maxTxAmount = _totalSupply.mul(newMaxTxPercent).div(10 ** 2) (#318)
- _maxWalletAmount = _totalSupply.mul(newMaxWalletPercent).div(10 ** 2) (#321)
Emit an event for critical parameter changes.
Additional information: link
SobaInu.constructor(address)._marketingWallet (#169) lacks a zero-check on :
- marketingWallet = _marketingWallet (#170)
Check that the address is not zero.
Additional information: link
Reentrancy in SobaInu.constructor(address) (#169-190):
External calls:
- uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this),uniswapV2Router.WETH()) (#180)
State variables written after the call(s):
- approve(address(uniswapV2Router),_totalSupply) (#186)
- _allowances[owner][spender] = amount (#328)
- approve(address(uniswapV2Pair),_totalSupply) (#187)
- _allowances[owner][spender] = amount (#328)
- _isExcludedFromFee[msg.sender] = true (#182)
- _isExcludedFromFee[address(this)] = true (#183)
- _isExcludedFromFee[marketingWallet] = true (#184)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in SobaInu.constructor(address) (#169-190):
External calls:
- uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this),uniswapV2Router.WETH()) (#180)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#329)
- approve(address(uniswapV2Pair),_totalSupply) (#187)
- Approval(owner,spender,amount) (#329)
- approve(address(uniswapV2Router),_totalSupply) (#186)
- Transfer(address(0),_msgSender(),_totalSupply) (#189)
Apply the check-effects-interactions pattern.
Additional information: link
SobaInu.startTrading() (#267-274) compares to a boolean constant:
-require(bool)(lockUsed == false) (#268)
SobaInu._transfer(address,address,uint256) (#332-364) compares to a boolean constant:
-require(bool,string)(lockTilStart != true,Trading not open yet) (#341)
Remove the equality to the boolean constant.
Additional information: link
Context._msgData() (#67-70) is never used and should be removed
SafeMath.mod(uint256,uint256) (#52-54) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#56-59) is never used and should be removed
Remove unused functions.
Additional information: link
Function IUniswapV2Router02.WETH() (#106) is not in mixedCase
Constant SobaInu._name (#144) is not in UPPER_CASE_WITH_UNDERSCORES
Constant SobaInu._symbol (#145) is not in UPPER_CASE_WITH_UNDERSCORES
Constant SobaInu._decimals (#146) is not in UPPER_CASE_WITH_UNDERSCORES
Variable SobaInu._maxTxAmount (#149) is not in mixedCase
Variable SobaInu._maxWalletAmount (#150) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (#68)" inContext (#62-71)
Remove redundant statements if they congest code but offer no value.
Additional information: link
SobaInu.slitherConstructorVariables() (#133-366) uses literals with too many digits:
- _totalSupply = 1000000000000 * 10 ** _decimals (#148)
SobaInu.slitherConstructorVariables() (#133-366) uses literals with too many digits:
- _maxTxAmount = 80000000000 * 10 ** _decimals (#149)
SobaInu.slitherConstructorVariables() (#133-366) uses literals with too many digits:
- _maxWalletAmount = 80000000000 * 10 ** _decimals (#150)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
SobaInu._totalSupply (#148) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#93-96)
name() should be declared external:
- SobaInu.name() (#192-194)
symbol() should be declared external:
- SobaInu.symbol() (#196-198)
decimals() should be declared external:
- SobaInu.decimals() (#200-202)
totalSupply() should be declared external:
- SobaInu.totalSupply() (#204-206)
swapBack() should be declared external:
- SobaInu.swapBack() (#212-214)
transfer(address,uint256) should be declared external:
- SobaInu.transfer(address,uint256) (#216-219)
aprove() should be declared external:
- SobaInu.aprove() (#221)
allowance(address,address) should be declared external:
- SobaInu.allowance(address,address) (#230-232)
transferFrom() should be declared external:
- SobaInu.transferFrom() (#234)
transferFrom(address,address,uint256) should be declared external:
- SobaInu.transferFrom(address,address,uint256) (#241-245)
increaseAllowance(address,uint256) should be declared external:
- SobaInu.increaseAllowance(address,uint256) (#247-250)
decreaseAllowance(address,uint256) should be declared external:
- SobaInu.decreaseAllowance(address,uint256) (#252-255)
excludeFromFee(address) should be declared external:
- SobaInu.excludeFromFee(address) (#257-259)
includeInFee(address) should be declared external:
- SobaInu.includeInFee(address) (#261-263)
manageBlacklist() should be declared external:
- SobaInu.manageBlacklist() (#276-280)
isExcludedFromFee(address) should be declared external:
- SobaInu.isExcludedFromFee(address) (#282-284)
isIncludedFromFee(address) should be declared external:
- SobaInu.isIncludedFromFee(address) (#286-288)
setFees(uint256,uint256,uint256,uint256) should be declared external:
- SobaInu.setFees(uint256,uint256,uint256,uint256) (#308-314)
setMaxPercent(uint256,uint256) should be declared external:
- SobaInu.setMaxPercent(uint256,uint256) (#316-322)
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