people help people Token Logo

people help people Token

About people help people

Listings

Not Found
Token 3 years

Website

Not Found

Description

Not Found

Social

Not Found

Laser Scorebeta Last Audit: 14 August 2022

report
Token seems to be anonymous. As long as we are unable to find website score is limited.

swapRecipient.withDraw() (#276-278) ignores return value by rewardsToken.transfer(owner(),rewardsToken.balanceOf(address(this))) (#277)
PHP.swapToDividends() (#567-612) ignores return value by rewardsToken.transfer(PPKBuyBack,mk1) (#593)
PHP.swapToDividends() (#567-612) ignores return value by rewardsToken.transfer(market,mk2) (#594)
PHP._splitOtherTokenSecond(uint256) (#681-698) ignores return value by rewardsToken.transfer(rewardAdr,rewardAmount) (#689)
Use SafeERC20, or ensure that the transfer/transferFrom return value is checked.

Additional information: link


Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)


Contract ownership is not renounced (belongs to a wallet)

Reentrancy in PHP._splitOtherTokenSecond(uint256) (#681-698):
External calls:
- rewardsToken.transfer(rewardAdr,rewardAmount) (#689)
State variables written after the call(s):
- index += 1 (#692)
- index = 1 (#694)
Reentrancy in PHP._transfer(address,address,uint256) (#474-531):
External calls:
- swapToDividends() (#498)
- router.swapExactTokensForTokensSupportingFeeOnTransferTokens(amount,0,path,address(SRT),block.timestamp) (#556-562)
- SRT.withDraw() (#563)
- rewardsToken.transfer(PPKBuyBack,mk1) (#593)
- rewardsToken.transfer(market,mk2) (#594)
- rewardsToken.approve(address(router),amountTokenLiquidity) (#599)
- router.addLiquidity(address(this),address(rewardsToken),amountToLiquify,amountTokenLiquidity,0,0,DEAD,block.timestamp) (#601-610)
State variables written after the call(s):
- _takeInviterFee(sender,recipient,feeAmount) (#505)
- _balances[sender] = _balances[sender].sub(amount,BEP20: transfer amount exceeds balance) (#205)
- _balances[recipient] = _balances[recipient].add(amount) (#206)
Reentrancy in PHP._transfer(address,address,uint256) (#474-531):
External calls:
- swapToDividends() (#498)
- router.swapExactTokensForTokensSupportingFeeOnTransferTokens(amount,0,path,address(SRT),block.timestamp) (#556-562)
- SRT.withDraw() (#563)
- rewardsToken.transfer(PPKBuyBack,mk1) (#593)
- rewardsToken.transfer(market,mk2) (#594)
- rewardsToken.approve(address(router),amountTokenLiquidity) (#599)
- router.addLiquidity(address(this),address(rewardsToken),amountToLiquify,amountTokenLiquidity,0,0,DEAD,block.timestamp) (#601-610)
- _splitOtherToken() (#507)
- rewardsToken.transfer(rewardAdr,rewardAmount) (#689)
State variables written after the call(s):
- super._transfer(sender,address(this),feeAmount) (#513)
- _balances[sender] = _balances[sender].sub(amount,BEP20: transfer amount exceeds balance) (#205)
- _balances[recipient] = _balances[recipient].add(amount) (#206)
Reentrancy in PHP._transfer(address,address,uint256) (#474-531):
External calls:
- swapToDividends() (#498)
- router.swapExactTokensForTokensSupportingFeeOnTransferTokens(amount,0,path,address(SRT),block.timestamp) (#556-562)
- SRT.withDraw() (#563)
- rewardsToken.transfer(PPKBuyBack,mk1) (#593)
- rewardsToken.transfer(market,mk2) (#594)
- rewardsToken.approve(address(router),amountTokenLiquidity) (#599)
- router.addLiquidity(address(this),address(rewardsToken),amountToLiquify,amountTokenLiquidity,0,0,DEAD,block.timestamp) (#601-610)
- _splitOtherToken() (#507)
- rewardsToken.transfer(rewardAdr,rewardAmount) (#689)
- _splitOtherToken() (#515)
- rewardsToken.transfer(rewardAdr,rewardAmount) (#689)
State variables written after the call(s):
- setIndex(sender,false) (#529)
- DividendsIndex[adr] = totalIndex (#656)
- DividendsIndex[endAdr] = _index (#667)
- DividendsIndex[adr] = 0 (#670)
- setIndex(recipient,true) (#530)
- DividendsIndex[adr] = totalIndex (#656)
- DividendsIndex[endAdr] = _index (#667)
- DividendsIndex[adr] = 0 (#670)
- setIndex(sender,false) (#529)
- IndexToDividends[totalIndex] = adr (#657)
- IndexToDividends[_index] = endAdr (#666)
- IndexToDividends[totalIndex] = address(0) (#669)
- setIndex(recipient,true) (#530)
- IndexToDividends[totalIndex] = adr (#657)
- IndexToDividends[_index] = endAdr (#666)
- IndexToDividends[totalIndex] = address(0) (#669)
- super._transfer(sender,address(this),feeAmount) (#521)
- _balances[sender] = _balances[sender].sub(amount,BEP20: transfer amount exceeds balance) (#205)
- _balances[recipient] = _balances[recipient].add(amount) (#206)
- super._transfer(sender,recipient,amount) (#525)
- _balances[sender] = _balances[sender].sub(amount,BEP20: transfer amount exceeds balance) (#205)
- _balances[recipient] = _balances[recipient].add(amount) (#206)
- _splitOtherToken() (#515)
- index += 1 (#692)
- index = 1 (#694)
- setIndex(sender,false) (#529)
- totalIndex += 1 (#658)
- totalIndex -= 1 (#662)
- setIndex(recipient,true) (#530)
- totalIndex += 1 (#658)
- totalIndex -= 1 (#662)
Apply the check-effects-interactions pattern.

Additional information: link

PHP.swapToDividends() (#567-612) ignores return value by rewardsToken.approve(address(router),amountTokenLiquidity) (#599)
PHP.swapToDividends() (#567-612) ignores return value by router.addLiquidity(address(this),address(rewardsToken),amountToLiquify,amountTokenLiquidity,0,0,DEAD,block.timestamp) (#601-610)
Ensure that all the return values of the function calls are used.

Additional information: link

token.allowance(address,address).owner (#176) shadows:
- Ownable.owner() (#106-108) (function)
token._approve(address,address,uint256).owner (#210) shadows:
- Ownable.owner() (#106-108) (function)
Rename the local variables that shadow another component.

Additional information: link

PHP.changeFee(uint256,uint256,uint256,uint256,uint256,uint256) (#423-438) should emit an event for:
- liquidityFee = _liquidityFee (#431)
- burnFee = _burnFee (#432)
- reflectionFee = _reflectionFee (#433)
- marketingFee = _marketingFee (#434)
- totalSellFee = _totalSellFee (#435)
- totalBuyFee = _totalBuyFee (#437)
Emit an event for critical parameter changes.

Additional information: link

PHP.changeMarket(address).adr (#466) lacks a zero-check on :
- market = adr (#468)
PHP.changePPKBuyBack(address).adr (#470) lacks a zero-check on :
- PPKBuyBack = adr (#472)
Check that the address is not zero.

Additional information: link

Reentrancy in PHP._transfer(address,address,uint256) (#474-531):
External calls:
- swapToDividends() (#498)
- router.swapExactTokensForTokensSupportingFeeOnTransferTokens(amount,0,path,address(SRT),block.timestamp) (#556-562)
- SRT.withDraw() (#563)
- rewardsToken.transfer(PPKBuyBack,mk1) (#593)
- rewardsToken.transfer(market,mk2) (#594)
- rewardsToken.approve(address(router),amountTokenLiquidity) (#599)
- router.addLiquidity(address(this),address(rewardsToken),amountToLiquify,amountTokenLiquidity,0,0,DEAD,block.timestamp) (#601-610)
State variables written after the call(s):
- _takeInviterFee(sender,recipient,feeAmount) (#505)
- DividendsIndex[adr] = totalIndex (#656)
- DividendsIndex[endAdr] = _index (#667)
- DividendsIndex[adr] = 0 (#670)
- _takeInviterFee(sender,recipient,feeAmount) (#505)
- IndexToDividends[totalIndex] = adr (#657)
- IndexToDividends[_index] = endAdr (#666)
- IndexToDividends[totalIndex] = address(0) (#669)
- _takeInviterFee(sender,recipient,feeAmount) (#505)
- totalIndex += 1 (#658)
- totalIndex -= 1 (#662)
Reentrancy in PHP.swapToDividends() (#567-612):
External calls:
- swapToRewardToken(amountToSwap) (#582)
- router.swapExactTokensForTokensSupportingFeeOnTransferTokens(amount,0,path,address(SRT),block.timestamp) (#556-562)
- SRT.withDraw() (#563)
- rewardsToken.transfer(PPKBuyBack,mk1) (#593)
- rewardsToken.transfer(market,mk2) (#594)
State variables written after the call(s):
- _approve(address(this),address(router),amountToLiquify) (#598)
- _allowances[owner][spender] = amount (#214)
Apply the check-effects-interactions pattern.

Additional information: link

Reentrancy in PHP._transfer(address,address,uint256) (#474-531):
External calls:
- swapToDividends() (#498)
- router.swapExactTokensForTokensSupportingFeeOnTransferTokens(amount,0,path,address(SRT),block.timestamp) (#556-562)
- SRT.withDraw() (#563)
- rewardsToken.transfer(PPKBuyBack,mk1) (#593)
- rewardsToken.transfer(market,mk2) (#594)
- rewardsToken.approve(address(router),amountTokenLiquidity) (#599)
- router.addLiquidity(address(this),address(rewardsToken),amountToLiquify,amountTokenLiquidity,0,0,DEAD,block.timestamp) (#601-610)
Event emitted after the call(s):
- Transfer(sender,recipient,amount) (#207)
- _takeInviterFee(sender,recipient,feeAmount) (#505)
Reentrancy in PHP._transfer(address,address,uint256) (#474-531):
External calls:
- swapToDividends() (#498)
- router.swapExactTokensForTokensSupportingFeeOnTransferTokens(amount,0,path,address(SRT),block.timestamp) (#556-562)
- SRT.withDraw() (#563)
- rewardsToken.transfer(PPKBuyBack,mk1) (#593)
- rewardsToken.transfer(market,mk2) (#594)
- rewardsToken.approve(address(router),amountTokenLiquidity) (#599)
- router.addLiquidity(address(this),address(rewardsToken),amountToLiquify,amountTokenLiquidity,0,0,DEAD,block.timestamp) (#601-610)
- _splitOtherToken() (#507)
- rewardsToken.transfer(rewardAdr,rewardAmount) (#689)
Event emitted after the call(s):
- Transfer(sender,recipient,amount) (#207)
- super._transfer(sender,address(this),feeAmount) (#513)
Reentrancy in PHP._transfer(address,address,uint256) (#474-531):
External calls:
- swapToDividends() (#498)
- router.swapExactTokensForTokensSupportingFeeOnTransferTokens(amount,0,path,address(SRT),block.timestamp) (#556-562)
- SRT.withDraw() (#563)
- rewardsToken.transfer(PPKBuyBack,mk1) (#593)
- rewardsToken.transfer(market,mk2) (#594)
- rewardsToken.approve(address(router),amountTokenLiquidity) (#599)
- router.addLiquidity(address(this),address(rewardsToken),amountToLiquify,amountTokenLiquidity,0,0,DEAD,block.timestamp) (#601-610)
- _splitOtherToken() (#507)
- rewardsToken.transfer(rewardAdr,rewardAmount) (#689)
- _splitOtherToken() (#515)
- rewardsToken.transfer(rewardAdr,rewardAmount) (#689)
Event emitted after the call(s):
- Transfer(sender,recipient,amount) (#207)
- super._transfer(sender,recipient,amount) (#525)
- Transfer(sender,recipient,amount) (#207)
- super._transfer(sender,address(this),feeAmount) (#521)
Reentrancy in PHP.swapToDividends() (#567-612):
External calls:
- swapToRewardToken(amountToSwap) (#582)
- router.swapExactTokensForTokensSupportingFeeOnTransferTokens(amount,0,path,address(SRT),block.timestamp) (#556-562)
- SRT.withDraw() (#563)
- rewardsToken.transfer(PPKBuyBack,mk1) (#593)
- rewardsToken.transfer(market,mk2) (#594)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#215)
- _approve(address(this),address(router),amountToLiquify) (#598)
Apply the check-effects-interactions pattern.

Additional information: link

Context._msgData() (#24-27) is never used and should be removed
SafeMath.mod(uint256,uint256) (#79-81) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#83-86) is never used and should be removed
Remove unused functions.

Additional information: link

PHP.totalSellFee (#314) is set pre-construction with a non-constant function or state variable:
- liquidityFee + burnFee + reflectionFee + marketingFee
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

Contract token (#132-217) is not in CapWords
Variable token._balances (#135) is not in mixedCase
Variable token._allowances (#136) is not in mixedCase
Variable token._totalSupply (#138) is not in mixedCase
Variable token._decimals (#139) is not in mixedCase
Variable token._symbol (#140) is not in mixedCase
Variable token._name (#141) is not in mixedCase
Function IDEXRouter.WETH() (#224) is not in mixedCase
Contract iGetpair (#269-271) is not in CapWords
Contract swapRecipient (#273-279) is not in CapWords
Parameter PHP.changeFee(uint256,uint256,uint256,uint256,uint256,uint256)._liquidityFee (#424) is not in mixedCase
Parameter PHP.changeFee(uint256,uint256,uint256,uint256,uint256,uint256)._burnFee (#425) is not in mixedCase
Parameter PHP.changeFee(uint256,uint256,uint256,uint256,uint256,uint256)._reflectionFee (#426) is not in mixedCase
Parameter PHP.changeFee(uint256,uint256,uint256,uint256,uint256,uint256)._marketingFee (#427) is not in mixedCase
Parameter PHP.changeFee(uint256,uint256,uint256,uint256,uint256,uint256)._totalSellFee (#428) is not in mixedCase
Parameter PHP.changeFee(uint256,uint256,uint256,uint256,uint256,uint256)._totalBuyFee (#429) is not in mixedCase
Variable PHP.WBNB (#287) is not in mixedCase
Variable PHP.DEAD (#288) is not in mixedCase
Variable PHP.USDT (#289) is not in mixedCase
Variable PHP.BUSD (#290) is not in mixedCase
Variable PHP.DividendsIndex (#304) is not in mixedCase
Variable PHP.IndexToDividends (#305) is not in mixedCase
Variable PHP.PPKBuyBack (#325) is not in mixedCase
Variable PHP.SRT (#327) is not in mixedCase
Follow the Solidity naming convention.

Additional information: link

Redundant expression "this (#25)" inContext (#17-28)
Remove redundant statements if they congest code but offer no value.

Additional information: link

Variable IDEXRouter.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#229) is too similar to IDEXRouter.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#230)
Prevent variables from having similar names.

Additional information: link

PHP.constructor() (#332-378) uses literals with too many digits:
- _totalSupply = 30000000 * (10 ** _decimals) (#372)
PHP.slitherConstructorVariables() (#282-700) uses literals with too many digits:
- DEAD = 0x000000000000000000000000000000000000dEaD (#288)
Use: Ether suffix, Time suffix, or The scientific notation

Additional information: link

PHP.BUSD (#290) should be constant
PHP.DEAD (#288) should be constant
PHP.USDT (#289) should be constant
PHP.WBNB (#287) should be constant
PHP.feeDenominator (#322) should be constant
Add the constant attributes to state variables that never change.

Additional information: link

renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#116-119)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#121-123)
increaseAllowance(address,uint256) should be declared external:
- token.increaseAllowance(address,uint256) (#191-194)
decreaseAllowance(address,uint256) should be declared external:
- token.decreaseAllowance(address,uint256) (#196-199)
withDraw() should be declared external:
- swapRecipient.withDraw() (#276-278)
changeMod(bool) should be declared external:
- PHP.changeMod(bool) (#379-381)
setIsInviter(address[],bool) should be declared external:
- PHP.setIsInviter(address[],bool) (#382-386)
setAppointFee(address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) should be declared external:
- PHP.setAppointFee(address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (#387-395)
rmAppointFee(address) should be declared external:
- PHP.rmAppointFee(address) (#396-398)
setInviteFees(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) should be declared external:
- PHP.setInviteFees(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (#405-409)
rmFee() should be declared external:
- PHP.rmFee() (#411-422)
changeFee(uint256,uint256,uint256,uint256,uint256,uint256) should be declared external:
- PHP.changeFee(uint256,uint256,uint256,uint256,uint256,uint256) (#423-438)
setIsPair(address,bool) should be declared external:
- PHP.setIsPair(address,bool) (#439-441)
setBot(address[],bool) should be declared external:
- PHP.setBot(address[],bool) (#442-447)
setFeeExempt(address[],bool) should be declared external:
- PHP.setFeeExempt(address[],bool) (#448-452)
setIsDividendExempt(address,bool) should be declared external:
- PHP.setIsDividendExempt(address,bool) (#453-455)
reSetInvite(address,address) should be declared external:
- PHP.reSetInvite(address,address) (#463-465)
changeMarket(address) should be declared external:
- PHP.changeMarket(address) (#466-469)
changePPKBuyBack(address) should be declared external:
- PHP.changePPKBuyBack(address) (#470-473)
Use the external attribute for functions never called from the contract.

Additional information: link

Contract ticker (people help people) contains non-alphanumeric characters.
Not a direct threat, but may indicate unreliable intentions of developer. Non-alphanumeric chars (,.;!#*&") are extremely rare among low risk tokens.

Contract ticker (people help people) has length of 18 chars.
Not a direct threat, but may indicate unreliable intentions of developer.


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.

Holders:

Contract has 13% buy tax and 13% sell tax.
Taxes are suspiciously high (over 10%) and contract ownership is not renounced. Token has a high risk of becoming a honeypot.


Token is deployed only at one blockchain


Unable to find Telegram and Twitter accounts


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

Price for people help people