Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
Vpc.setShare(address) (#643-651) uses a dangerous strict equality:
- uniswapV2Pair.balanceOf(shareholder) == 0 (#645)
Vpc.setShare(address) (#643-651) uses a dangerous strict equality:
- uniswapV2Pair.balanceOf(shareholder) == 0 (#648)
Don't use strict equality to determine if an account has enough Ether or tokens.
Additional information: link
Contract locking ether found:
Contract Vpc (#261-682) has payable functions:
- Vpc.receive() (#505)
But does not have a function to withdraw the ether
Remove the payable attribute or add a withdraw function.
Additional information: link
Vpc.setShare(address) (#643-651) ignores return value by lpProviders.add(shareholder) (#649)
Vpc.quitShare(address) (#653-656) ignores return value by lpProviders.remove(shareholder) (#654)
Ensure that all the return values of the function calls are used.
Additional information: link
Vpc.allowance(address,address).owner (#373) shadows:
- Ownable.owner() (#87-89) (function)
Vpc._approve(address,address,uint256).owner (#581) shadows:
- Ownable.owner() (#87-89) (function)
Rename the local variables that shadow another component.
Additional information: link
Vpc.setHolderLp(address) (#333-335) should emit an event for:
- holderLp = account (#334)
Emit an event for critical parameter changes.
Additional information: link
Vpc.constructor(address,address,address)._holderLp (#299) lacks a zero-check on :
- holderLp = _holderLp (#312)
Vpc.constructor(address,address,address)._holderMarketing (#299) lacks a zero-check on :
- holderMarketing = _holderMarketing (#315)
Vpc.setHolderLp(address).account (#333) lacks a zero-check on :
- holderLp = account (#334)
Vpc.setHolderMarketing(address).account (#337) lacks a zero-check on :
- holderMarketing = account (#338)
Vpc.setLpAddress(address)._lpAddress (#341) lacks a zero-check on :
- lpAddress = _lpAddress (#342)
Check that the address is not zero.
Additional information: link
Vpc.lpAward(uint256,uint256) (#659-680) has external calls inside a loop: lpBalance = uniswapV2Pair.balanceOf(lpProviders.at(currentIndex)) (#671)
Vpc.setShare(address) (#643-651) has external calls inside a loop: uniswapV2Pair.balanceOf(shareholder) == 0 (#645)
Vpc.setShare(address) (#643-651) has external calls inside a loop: uniswapV2Pair.balanceOf(shareholder) == 0 (#648)
Favor pull over push strategy for external calls.
Additional information: link
Vpc.isContract(address) (#377-383) uses assembly
- INLINE ASM (#379-381)
Do not use evm assembly.
Additional information: link
Vpc.removeExcludedFee(address) (#630-641) has costly operations inside a loop:
- _excluded.pop() (#637)
Vpc.lpAward(uint256,uint256) (#659-680) has costly operations inside a loop:
- currentIndex = 0 (#669)
Vpc.removeAllFee() (#572-575) has costly operations inside a loop:
- feeIt = false (#574)
Vpc._reflectFee(uint256) (#507-509) has costly operations inside a loop:
- _rTotal = _rTotal.sub(rFee,reflect fee) (#508)
Vpc.restoreAllFee() (#577-579) has costly operations inside a loop:
- feeIt = true (#578)
Vpc._transfer(address,address,uint256) (#589-615) has costly operations inside a loop:
- fromAddress = from (#608)
Vpc._transfer(address,address,uint256) (#589-615) has costly operations inside a loop:
- toAddress = to (#609)
Vpc._transfer(address,address,uint256) (#589-615) has costly operations inside a loop:
- fromAddress = from (#612)
Vpc._transfer(address,address,uint256) (#589-615) has costly operations inside a loop:
- toAddress = to (#613)
Vpc.lpAward(uint256,uint256) (#659-680) has costly operations inside a loop:
- currentIndex ++ (#677)
Use a local variable to hold the loop computation result.
Additional information: link
EnumerableSet.add(EnumerableSet.Bytes32Set,bytes32) (#178-180) is never used and should be removed
EnumerableSet.add(EnumerableSet.UintSet,uint256) (#236-238) is never used and should be removed
EnumerableSet.at(EnumerableSet.Bytes32Set,uint256) (#198-200) is never used and should be removed
EnumerableSet.at(EnumerableSet.UintSet,uint256) (#256-258) is never used and should be removed
EnumerableSet.contains(EnumerableSet.AddressSet,address) (#217-219) is never used and should be removed
EnumerableSet.contains(EnumerableSet.Bytes32Set,bytes32) (#188-190) is never used and should be removed
EnumerableSet.contains(EnumerableSet.UintSet,uint256) (#246-248) is never used and should be removed
EnumerableSet.length(EnumerableSet.Bytes32Set) (#193-195) is never used and should be removed
EnumerableSet.length(EnumerableSet.UintSet) (#251-253) is never used and should be removed
EnumerableSet.remove(EnumerableSet.Bytes32Set,bytes32) (#183-185) is never used and should be removed
EnumerableSet.remove(EnumerableSet.UintSet,uint256) (#241-243) is never used and should be removed
SafeMath.mod(uint256,uint256) (#50-52) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#54-57) is never used and should be removed
Vpc.isContract(address) (#377-383) is never used and should be removed
Remove unused functions.
Additional information: link
Vpc._rTotal (#284) is set pre-construction with a non-constant function or state variable:
- (MAX - (MAX % _tTotal))
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
Parameter Vpc.setLpAddress(address)._lpAddress (#341) is not in mixedCase
Variable Vpc._updated (#267) is not in mixedCase
Variable Vpc._isExcludedFee (#269) is not in mixedCase
Variable Vpc._isExcludedLpAward (#270) is not in mixedCase
Variable Vpc._roler (#272) is not in mixedCase
Variable Vpc._rTotal (#284) is not in mixedCase
Variable Vpc._tTaxFeeTotal (#285) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Variable Vpc.lpProviders (#294) is too similar to Vpc._takeTax(uint256,uint256).rLpProvider (#537)
Variable Vpc.lpProviders (#294) is too similar to Vpc._transferBothExcluded(address,address,uint256).tLpProvider (#460)
Variable Vpc.lpProviders (#294) is too similar to Vpc._transferToExcluded(address,address,uint256).tLpProvider (#427)
Variable Vpc._takeTax(uint256,uint256).rLpProvider (#537) is too similar to Vpc._transferBothExcluded(address,address,uint256).tLpProvider (#460)
Variable Vpc._transferToExcluded(address,address,uint256).rTransferAmount (#428) is too similar to Vpc._transferBothExcluded(address,address,uint256).tTransferAmount (#460)
Variable Vpc._transferFromExcluded(address,address,uint256).rTransferAmount (#445) is too similar to Vpc._getRValues(uint256,uint256,uint256,uint256).tTransferAmount (#526)
Variable Vpc._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#528) is too similar to Vpc._transferStandard(address,address,uint256).tTransferAmount (#412)
Variable Vpc._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#528) is too similar to Vpc._transferToExcluded(address,address,uint256).tTransferAmount (#427)
Variable Vpc._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#528) is too similar to Vpc._transferBothExcluded(address,address,uint256).tTransferAmount (#460)
Variable Vpc._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#528) is too similar to Vpc._transferFromExcluded(address,address,uint256).tTransferAmount (#444)
Variable Vpc._transferStandard(address,address,uint256).rTransferAmount (#413) is too similar to Vpc._transferToExcluded(address,address,uint256).tTransferAmount (#427)
Variable Vpc._transferStandard(address,address,uint256).rTransferAmount (#413) is too similar to Vpc._transferBothExcluded(address,address,uint256).tTransferAmount (#460)
Variable Vpc._transferFromExcluded(address,address,uint256).rTransferAmount (#445) is too similar to Vpc._transferStandard(address,address,uint256).tTransferAmount (#412)
Variable Vpc._transferFromExcluded(address,address,uint256).rTransferAmount (#445) is too similar to Vpc._transferFromExcluded(address,address,uint256).tTransferAmount (#444)
Variable Vpc._transferFromExcluded(address,address,uint256).rTransferAmount (#445) is too similar to Vpc._transferToExcluded(address,address,uint256).tTransferAmount (#427)
Variable Vpc._transferFromExcluded(address,address,uint256).rTransferAmount (#445) is too similar to Vpc._transferBothExcluded(address,address,uint256).tTransferAmount (#460)
Variable Vpc._transferFromExcluded(address,address,uint256).rTransferAmount (#445) is too similar to Vpc._getTValues(uint256).tTransferAmount (#512)
Variable Vpc.lpProviders (#294) is too similar to Vpc._getTValues(uint256).tLpProvider (#512)
Variable Vpc.lpProviders (#294) is too similar to Vpc._transferFromExcluded(address,address,uint256).tLpProvider (#444)
Variable Vpc.lpProviders (#294) is too similar to Vpc._takeTax(uint256,uint256).tLpProvider (#533)
Variable Vpc.lpProviders (#294) is too similar to Vpc._transferStandard(address,address,uint256).tLpProvider (#412)
Variable Vpc._takeTax(uint256,uint256).rLpProvider (#537) is too similar to Vpc._transferToExcluded(address,address,uint256).tLpProvider (#427)
Variable Vpc._takeTax(uint256,uint256).rLpProvider (#537) is too similar to Vpc._getTValues(uint256).tLpProvider (#512)
Variable Vpc._takeTax(uint256,uint256).rLpProvider (#537) is too similar to Vpc._transferFromExcluded(address,address,uint256).tLpProvider (#444)
Variable Vpc._takeTax(uint256,uint256).rLpProvider (#537) is too similar to Vpc._takeTax(uint256,uint256).tLpProvider (#533)
Variable Vpc._takeTax(uint256,uint256).rLpProvider (#537) is too similar to Vpc._transferStandard(address,address,uint256).tLpProvider (#412)
Variable Vpc._transferBothExcluded(address,address,uint256).rTransferAmount (#461) is too similar to Vpc._getTValues(uint256).tTransferAmount (#512)
Variable Vpc._transferStandard(address,address,uint256).rTransferAmount (#413) is too similar to Vpc._transferFromExcluded(address,address,uint256).tTransferAmount (#444)
Variable Vpc._transferBothExcluded(address,address,uint256).rTransferAmount (#461) is too similar to Vpc._transferBothExcluded(address,address,uint256).tTransferAmount (#460)
Variable Vpc._transferToExcluded(address,address,uint256).rTransferAmount (#428) is too similar to Vpc._getTValues(uint256).tTransferAmount (#512)
Variable Vpc._transferBothExcluded(address,address,uint256).rTransferAmount (#461) is too similar to Vpc._transferFromExcluded(address,address,uint256).tTransferAmount (#444)
Variable Vpc._transferToExcluded(address,address,uint256).rTransferAmount (#428) is too similar to Vpc._transferFromExcluded(address,address,uint256).tTransferAmount (#444)
Variable Vpc._transferStandard(address,address,uint256).rTransferAmount (#413) is too similar to Vpc._transferStandard(address,address,uint256).tTransferAmount (#412)
Variable Vpc._transferBothExcluded(address,address,uint256).rTransferAmount (#461) is too similar to Vpc._transferStandard(address,address,uint256).tTransferAmount (#412)
Variable Vpc._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#528) is too similar to Vpc._getRValues(uint256,uint256,uint256,uint256).tTransferAmount (#526)
Variable Vpc._transferStandard(address,address,uint256).rTransferAmount (#413) is too similar to Vpc._getRValues(uint256,uint256,uint256,uint256).tTransferAmount (#526)
Variable Vpc._transferBothExcluded(address,address,uint256).rTransferAmount (#461) is too similar to Vpc._transferToExcluded(address,address,uint256).tTransferAmount (#427)
Variable Vpc._transferToExcluded(address,address,uint256).rTransferAmount (#428) is too similar to Vpc._transferStandard(address,address,uint256).tTransferAmount (#412)
Variable Vpc._transferBothExcluded(address,address,uint256).rTransferAmount (#461) is too similar to Vpc._getRValues(uint256,uint256,uint256,uint256).tTransferAmount (#526)
Variable Vpc._transferToExcluded(address,address,uint256).rTransferAmount (#428) is too similar to Vpc._transferToExcluded(address,address,uint256).tTransferAmount (#427)
Variable Vpc._transferToExcluded(address,address,uint256).rTransferAmount (#428) is too similar to Vpc._getRValues(uint256,uint256,uint256,uint256).tTransferAmount (#526)
Variable Vpc._getRValues(uint256,uint256,uint256,uint256).rTransferAmount (#528) is too similar to Vpc._getTValues(uint256).tTransferAmount (#512)
Variable Vpc._transferStandard(address,address,uint256).rTransferAmount (#413) is too similar to Vpc._getTValues(uint256).tTransferAmount (#512)
Prevent variables from having similar names.
Additional information: link
Vpc.slitherConstructorVariables() (#261-682) uses literals with too many digits:
- _tTotal = 21000000 * 10 ** 18 (#282)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
Vpc._decimals (#289) should be constant
Vpc._name (#287) should be constant
Vpc._symbol (#288) should be constant
Vpc._tTaxFeeTotal (#285) should be constant
Vpc._tTotal (#282) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#98-100)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#102-105)
setAmmPair(address,bool) should be declared external:
- Vpc.setAmmPair(address,bool) (#329-331)
setHolderLp(address) should be declared external:
- Vpc.setHolderLp(address) (#333-335)
setHolderMarketing(address) should be declared external:
- Vpc.setHolderMarketing(address) (#337-339)
setLpAddress(address) should be declared external:
- Vpc.setLpAddress(address) (#341-345)
name() should be declared external:
- Vpc.name() (#347-349)
symbol() should be declared external:
- Vpc.symbol() (#351-353)
decimals() should be declared external:
- Vpc.decimals() (#355-357)
totalSupply() should be declared external:
- Vpc.totalSupply() (#359-361)
balanceOf(address) should be declared external:
- Vpc.balanceOf(address) (#363-366)
allowance(address,address) should be declared external:
- Vpc.allowance(address,address) (#373-375)
approve(address,uint256) should be declared external:
- Vpc.approve(address,uint256) (#476-479)
transferFrom(address,address,uint256) should be declared external:
- Vpc.transferFrom(address,address,uint256) (#481-485)
increaseAllowance(address,uint256) should be declared external:
- Vpc.increaseAllowance(address,uint256) (#487-490)
decreaseAllowance(address,uint256) should be declared external:
- Vpc.decreaseAllowance(address,uint256) (#492-495)
setExcludedFee(address) should be declared external:
- Vpc.setExcludedFee(address) (#617-624)
setExcludedLpAward(address,bool) should be declared external:
- Vpc.setExcludedLpAward(address,bool) (#626-628)
lpAward(uint256,uint256) should be declared external:
- Vpc.lpAward(uint256,uint256) (#659-680)
Use the external attribute for functions never called from the contract.
Additional information: link
Not a direct threat, but may indicate unreliable intentions of developer. Widespread names (e.g. Elon, King, Moon, Doge) are common among meme-tokens and scams. The allow to gain free hype and attract unexperienced investors.
Unable to find website, listings and other project-related information
Token has no active CoinGecko listing / rank
Token has no active CoinMarketCap listing / rank
Young tokens have high risks of price dump / death
Unable to find Telegram and Twitter accounts