👾Pacmate is a P2E game that brings old-school arcades to Web3 👾
NFT collection of playable characters with unique abilities ✅ Various game modes & ranking system ⚙️Complete levels and win other players to earn $PCMT ✅
Use $PCMT token to buy NFTs, stake and unlock some of the game features.⚡️ Fully audited & KYC by SafuAudit and Contract Checker ✅Buy/sell taxes are 0% after the IDO 🚀 Website: pacmate.io
PCMT.addLiquidity(uint256,uint256) (#742-752) sends eth to arbitrary user
Dangerous calls:
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#744-751)
Ensure that an arbitrary user cannot withdraw unauthorized funds.
Additional information: link
Reentrancy in PCMT._transfer(address,address,uint256) (#678-716):
External calls:
- swapAndLiquify(contractTokenBalance) (#697)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#744-751)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#733-739)
External calls sending eth:
- swapAndLiquify(contractTokenBalance) (#697)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#744-751)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,_buyTaxFee,_buyLiquidityFee,_buyDevFee) (#707)
- _rOwned[sender] = _rOwned[sender] - params.rAmount (#770)
- _rOwned[sender] = _rOwned[sender] - params.rAmount (#781)
- _rOwned[sender] = _rOwned[sender] - params.rAmount (#805)
- _rOwned[address(this)] = _rOwned[address(this)] + rLiquidity (#651)
- _rOwned[recipient] = _rOwned[recipient] + params.rTransferAmount (#771)
- _rOwned[sender] = _rOwned[sender] - params.rAmount (#793)
- _rOwned[_devWalletAddress] = _rOwned[_devWalletAddress] + rDev (#659)
- _rOwned[recipient] = _rOwned[recipient] + params.rTransferAmount (#783)
- _rOwned[recipient] = _rOwned[recipient] + params.rTransferAmount (#794)
- _rOwned[recipient] = _rOwned[recipient] + params.rTransferAmount (#807)
- _tokenTransfer(from,to,amount,_sellTaxFee,_sellLiquidityFee,_sellDevFee) (#710)
- _rOwned[sender] = _rOwned[sender] - params.rAmount (#770)
- _rOwned[sender] = _rOwned[sender] - params.rAmount (#781)
- _rOwned[sender] = _rOwned[sender] - params.rAmount (#805)
- _rOwned[address(this)] = _rOwned[address(this)] + rLiquidity (#651)
- _rOwned[recipient] = _rOwned[recipient] + params.rTransferAmount (#771)
- _rOwned[sender] = _rOwned[sender] - params.rAmount (#793)
- _rOwned[_devWalletAddress] = _rOwned[_devWalletAddress] + rDev (#659)
- _rOwned[recipient] = _rOwned[recipient] + params.rTransferAmount (#783)
- _rOwned[recipient] = _rOwned[recipient] + params.rTransferAmount (#794)
- _rOwned[recipient] = _rOwned[recipient] + params.rTransferAmount (#807)
- _tokenTransfer(from,to,amount,0,0,0) (#713)
- _rOwned[sender] = _rOwned[sender] - params.rAmount (#770)
- _rOwned[sender] = _rOwned[sender] - params.rAmount (#781)
- _rOwned[sender] = _rOwned[sender] - params.rAmount (#805)
- _rOwned[address(this)] = _rOwned[address(this)] + rLiquidity (#651)
- _rOwned[recipient] = _rOwned[recipient] + params.rTransferAmount (#771)
- _rOwned[sender] = _rOwned[sender] - params.rAmount (#793)
- _rOwned[_devWalletAddress] = _rOwned[_devWalletAddress] + rDev (#659)
- _rOwned[recipient] = _rOwned[recipient] + params.rTransferAmount (#783)
- _rOwned[recipient] = _rOwned[recipient] + params.rTransferAmount (#794)
- _rOwned[recipient] = _rOwned[recipient] + params.rTransferAmount (#807)
- _tokenTransfer(from,to,amount,_buyTaxFee,_buyLiquidityFee,_buyDevFee) (#707)
- _rTotal = _rTotal - rFee (#583)
- _tokenTransfer(from,to,amount,_sellTaxFee,_sellLiquidityFee,_sellDevFee) (#710)
- _rTotal = _rTotal - rFee (#583)
- _tokenTransfer(from,to,amount,0,0,0) (#713)
- _rTotal = _rTotal - rFee (#583)
- _tokenTransfer(from,to,amount,_buyTaxFee,_buyLiquidityFee,_buyDevFee) (#707)
- _tOwned[sender] = _tOwned[sender] - tAmount (#792)
- _tOwned[sender] = _tOwned[sender] - tAmount (#804)
- _tOwned[recipient] = _tOwned[recipient] + params.tTransferAmount (#782)
- _tOwned[recipient] = _tOwned[recipient] + params.tTransferAmount (#806)
- _tOwned[address(this)] = _tOwned[address(this)] + tLiquidity (#653)
- _tOwned[_devWalletAddress] = _tOwned[_devWalletAddress] + tDev (#661)
- _tokenTransfer(from,to,amount,_sellTaxFee,_sellLiquidityFee,_sellDevFee) (#710)
- _tOwned[sender] = _tOwned[sender] - tAmount (#792)
- _tOwned[sender] = _tOwned[sender] - tAmount (#804)
- _tOwned[recipient] = _tOwned[recipient] + params.tTransferAmount (#782)
- _tOwned[recipient] = _tOwned[recipient] + params.tTransferAmount (#806)
- _tOwned[address(this)] = _tOwned[address(this)] + tLiquidity (#653)
- _tOwned[_devWalletAddress] = _tOwned[_devWalletAddress] + tDev (#661)
- _tokenTransfer(from,to,amount,0,0,0) (#713)
- _tOwned[sender] = _tOwned[sender] - tAmount (#792)
- _tOwned[sender] = _tOwned[sender] - tAmount (#804)
- _tOwned[recipient] = _tOwned[recipient] + params.tTransferAmount (#782)
- _tOwned[recipient] = _tOwned[recipient] + params.tTransferAmount (#806)
- _tOwned[address(this)] = _tOwned[address(this)] + tLiquidity (#653)
- _tOwned[_devWalletAddress] = _tOwned[_devWalletAddress] + tDev (#661)
Apply the check-effects-interactions pattern.
Additional information: link
Contract ownership is not renounced (belongs to a wallet)
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.
Unable to verify that contract auditor is trusted: Certik, Quantstamp, Hacken, Solidity, Paladinsec, Openzeppelin, Verichains
Low level call in Address.sendValue(address,uint256) (#37-41):
- (success) = recipient.call{value: amount}() (#39)
Low level call in Address.functionCallWithValue(address,bytes,uint256,string) (#55-60):
- (success,returndata) = target.call{value: value}(data) (#58)
Low level call in Address.functionStaticCall(address,bytes,string) (#66-70):
- (success,returndata) = target.staticcall(data) (#68)
Low level call in Address.functionDelegateCall(address,bytes,string) (#76-80):
- (success,returndata) = target.delegatecall(data) (#78)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Redundant expression "this (#24)" inContext (#18-27)
Remove redundant statements if they congest code but offer no value.
Additional information: link
PCMT.constructor(address,address,address[]) (#376-426) performs a multiplication on the result of a division:
-numTokensSellToAddToLiquidity = (_tTotal * 5 / 10000) * 10 ** _decimals (#392)
Consider ordering multiplication before division.
Additional information: link
PCMT._getValues(uint256,uint256,uint256,uint256).result (#598) is a local variable never initialized
Initialize all the variables. If a variable is meant to be initialized to zero, explicitly set it to zero to improve code readability.
Additional information: link
PCMT.addLiquidity(uint256,uint256) (#742-752) ignores return value by uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#744-751)
Ensure that all the return values of the function calls are used.
Additional information: link
PCMT.allowance(address,address).owner (#458) shadows:
- Ownable.owner() (#109-111) (function)
PCMT._approve(address,address,uint256).owner (#670) shadows:
- Ownable.owner() (#109-111) (function)
Rename the local variables that shadow another component.
Additional information: link
PCMT.setBuyTaxFeePercent(uint256) (#539-542) should emit an event for:
- _buyTaxFee = buyTaxFee (#541)
PCMT.setSellTaxFeePercent(uint256) (#544-547) should emit an event for:
- _sellTaxFee = sellTaxFee (#546)
PCMT.setBuyDevFeePercent(uint256) (#549-552) should emit an event for:
- _buyDevFee = buyDevFee (#551)
PCMT.setSellDevFeePercent(uint256) (#554-557) should emit an event for:
- _sellDevFee = sellDevFee (#556)
PCMT.setBuyLiquidityFeePercent(uint256) (#559-562) should emit an event for:
- _buyLiquidityFee = buyLiquidityFee (#561)
PCMT.setSellLiquidityFeePercent(uint256) (#564-567) should emit an event for:
- _sellLiquidityFee = sellLiquidityFee (#566)
PCMT.setNumTokensSellToAddToLiquidity(uint256) (#822-824) should emit an event for:
- numTokensSellToAddToLiquidity = amountToUpdate (#823)
Emit an event for critical parameter changes.
Additional information: link
PCMT.constructor(address,address,address[]).devWalletAddress (#376) lacks a zero-check on :
- _devWalletAddress = devWalletAddress (#394)
PCMT.setDevWalletAddress(address)._addr (#569) lacks a zero-check on :
- _devWalletAddress = _addr (#570)
Check that the address is not zero.
Additional information: link
PCMT.constructor(address,address,address[]) (#376-426) has external calls inside a loop: newPair = IUniswapV2Factory(router.factory()).createPair(address(this),router.WETH()) (#414-415)
Favor pull over push strategy for external calls.
Additional information: link
Reentrancy in PCMT._transfer(address,address,uint256) (#678-716):
External calls:
- swapAndLiquify(contractTokenBalance) (#697)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#744-751)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#733-739)
External calls sending eth:
- swapAndLiquify(contractTokenBalance) (#697)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#744-751)
State variables written after the call(s):
- _tokenTransfer(from,to,amount,_buyTaxFee,_buyLiquidityFee,_buyDevFee) (#707)
- _tFeeTotal = _tFeeTotal + tFee (#584)
- _tokenTransfer(from,to,amount,_sellTaxFee,_sellLiquidityFee,_sellDevFee) (#710)
- _tFeeTotal = _tFeeTotal + tFee (#584)
- _tokenTransfer(from,to,amount,0,0,0) (#713)
- _tFeeTotal = _tFeeTotal + tFee (#584)
Reentrancy in PCMT.constructor(address,address,address[]) (#376-426):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#405-406)
State variables written after the call(s):
- _isExcludedFromFee[msg.sender] = true (#420)
- _isExcludedFromFee[address(this)] = true (#421)
- _owner = msg.sender (#423)
- uniswapLPs[uniswapV2Pair] = true (#407)
- i < additionalUniswapV2RouterAddresses.length (#411)
- uniswapV2Router = _uniswapV2Router (#409)
Reentrancy in PCMT.constructor(address,address,address[]) (#376-426):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#405-406)
- newPair = IUniswapV2Factory(router.factory()).createPair(address(this),router.WETH()) (#414-415)
State variables written after the call(s):
- uniswapLPs[newPair] = true (#416)
Reentrancy in PCMT.setRouterAddress(address) (#815-820):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#817)
State variables written after the call(s):
- uniswapLPs[uniswapV2Pair] = true (#819)
- uniswapV2Router = _uniswapV2Router (#818)
Reentrancy in PCMT.swapAndLiquify(uint256) (#718-726):
External calls:
- swapTokensForEth(half) (#722)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#733-739)
- addLiquidity(otherHalf,newBalance) (#724)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#744-751)
External calls sending eth:
- addLiquidity(otherHalf,newBalance) (#724)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#744-751)
State variables written after the call(s):
- addLiquidity(otherHalf,newBalance) (#724)
- _allowances[owner][spender] = amount (#674)
Reentrancy in PCMT.transferFrom(address,address,uint256) (#467-472):
External calls:
- _transfer(sender,recipient,amount) (#468)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#744-751)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#733-739)
External calls sending eth:
- _transfer(sender,recipient,amount) (#468)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#744-751)
State variables written after the call(s):
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()] - amount) (#470)
- _allowances[owner][spender] = amount (#674)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in PCMT._transfer(address,address,uint256) (#678-716):
External calls:
- swapAndLiquify(contractTokenBalance) (#697)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#744-751)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#733-739)
External calls sending eth:
- swapAndLiquify(contractTokenBalance) (#697)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#744-751)
Event emitted after the call(s):
- Transfer(sender,recipient,params.tTransferAmount) (#775)
- _tokenTransfer(from,to,amount,_sellTaxFee,_sellLiquidityFee,_sellDevFee) (#710)
- Transfer(sender,recipient,params.tTransferAmount) (#775)
- _tokenTransfer(from,to,amount,_buyTaxFee,_buyLiquidityFee,_buyDevFee) (#707)
- Transfer(sender,recipient,params.tTransferAmount) (#775)
- _tokenTransfer(from,to,amount,0,0,0) (#713)
- Transfer(sender,recipient,params.tTransferAmount) (#787)
- _tokenTransfer(from,to,amount,_sellTaxFee,_sellLiquidityFee,_sellDevFee) (#710)
- Transfer(sender,recipient,params.tTransferAmount) (#798)
- _tokenTransfer(from,to,amount,_buyTaxFee,_buyLiquidityFee,_buyDevFee) (#707)
- Transfer(sender,recipient,params.tTransferAmount) (#798)
- _tokenTransfer(from,to,amount,_sellTaxFee,_sellLiquidityFee,_sellDevFee) (#710)
- Transfer(sender,recipient,params.tTransferAmount) (#787)
- _tokenTransfer(from,to,amount,_buyTaxFee,_buyLiquidityFee,_buyDevFee) (#707)
- Transfer(sender,recipient,params.tTransferAmount) (#787)
- _tokenTransfer(from,to,amount,0,0,0) (#713)
- Transfer(sender,recipient,params.tTransferAmount) (#798)
- _tokenTransfer(from,to,amount,0,0,0) (#713)
- Transfer(sender,recipient,params.tTransferAmount) (#811)
- _tokenTransfer(from,to,amount,_sellTaxFee,_sellLiquidityFee,_sellDevFee) (#710)
- Transfer(sender,recipient,params.tTransferAmount) (#811)
- _tokenTransfer(from,to,amount,0,0,0) (#713)
- Transfer(sender,recipient,params.tTransferAmount) (#811)
- _tokenTransfer(from,to,amount,_buyTaxFee,_buyLiquidityFee,_buyDevFee) (#707)
Reentrancy in PCMT.constructor(address,address,address[]) (#376-426):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (#405-406)
External calls sending eth:
- address(msg.sender).transfer(msg.value) (#424)
Event emitted after the call(s):
- Transfer(address(0),msg.sender,_tTotal) (#425)
Reentrancy in PCMT.swapAndLiquify(uint256) (#718-726):
External calls:
- swapTokensForEth(half) (#722)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#733-739)
- addLiquidity(otherHalf,newBalance) (#724)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#744-751)
External calls sending eth:
- addLiquidity(otherHalf,newBalance) (#724)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#744-751)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#675)
- addLiquidity(otherHalf,newBalance) (#724)
- SwapAndLiquify(half,newBalance,otherHalf) (#725)
Reentrancy in PCMT.transferFrom(address,address,uint256) (#467-472):
External calls:
- _transfer(sender,recipient,amount) (#468)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#744-751)
- uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount,0,path,address(this),block.timestamp) (#733-739)
External calls sending eth:
- _transfer(sender,recipient,amount) (#468)
- uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,owner(),block.timestamp) (#744-751)
Event emitted after the call(s):
- Approval(owner,spender,amount) (#675)
- _approve(sender,_msgSender(),_allowances[sender][_msgSender()] - amount) (#470)
Apply the check-effects-interactions pattern.
Additional information: link
Ownable.unlock() (#136-141) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(block.timestamp > _lockTime,Contract is locked.) (#138)
Avoid relying on block.timestamp.
Additional information: link
Address.isContract(address) (#31-35) uses assembly
- INLINE ASM (#33)
Address._verifyCallResult(bool,bytes,string) (#82-95) uses assembly
- INLINE ASM (#87-90)
Do not use evm assembly.
Additional information: link
PCMT.includeInReward(address) (#518-529) has costly operations inside a loop:
- _excluded.pop() (#525)
Use a local variable to hold the loop computation result.
Additional information: link
Address._verifyCallResult(bool,bytes,string) (#82-95) is never used and should be removed
Address.functionCall(address,bytes) (#43-45) is never used and should be removed
Address.functionCall(address,bytes,string) (#47-49) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (#51-53) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (#55-60) is never used and should be removed
Address.functionDelegateCall(address,bytes) (#72-74) is never used and should be removed
Address.functionDelegateCall(address,bytes,string) (#76-80) is never used and should be removed
Address.functionStaticCall(address,bytes) (#62-64) is never used and should be removed
Address.functionStaticCall(address,bytes,string) (#66-70) is never used and should be removed
Address.isContract(address) (#31-35) is never used and should be removed
Address.sendValue(address,uint256) (#37-41) is never used and should be removed
Context._msgData() (#23-26) is never used and should be removed
Remove unused functions.
Additional information: link
Pragma version=0.8.11 (#3) necessitates a version too recent to be trusted. Consider deploying with 0.6.12/0.7.6/0.8.7
solc-0.8.11 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
Variable Ownable._owner (#99) is not in mixedCase
Variable Ownable._lockTime (#101) is not in mixedCase
Function IUniswapV2Pair.DOMAIN_SEPARATOR() (#168) is not in mixedCase
Function IUniswapV2Pair.PERMIT_TYPEHASH() (#169) is not in mixedCase
Function IUniswapV2Pair.MINIMUM_LIQUIDITY() (#183) is not in mixedCase
Function IUniswapV2Router01.WETH() (#201) is not in mixedCase
Parameter PCMT.setDevWalletAddress(address)._addr (#569) is not in mixedCase
Parameter PCMT.setSwapAndLiquifyEnabled(bool)._enabled (#574) is not in mixedCase
Parameter PCMT.transferOtherToken(address,address)._token (#826) is not in mixedCase
Parameter PCMT.transferOtherToken(address,address)._to (#826) is not in mixedCase
Variable PCMT._devWalletAddress (#342) is not in mixedCase
Variable PCMT._buyTaxFee (#350) is not in mixedCase
Variable PCMT._buyDevFee (#351) is not in mixedCase
Variable PCMT._buyLiquidityFee (#352) is not in mixedCase
Variable PCMT._sellTaxFee (#353) is not in mixedCase
Variable PCMT._sellDevFee (#354) is not in mixedCase
Variable PCMT._sellLiquidityFee (#355) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Reentrancy in PCMT.constructor(address,address,address[]) (#376-426):
External calls:
- address(msg.sender).transfer(msg.value) (#424)
Event emitted after the call(s):
- Transfer(address(0),msg.sender,_tTotal) (#425)
Apply the check-effects-interactions pattern.
Additional information: link
Variable IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (#205) is too similar to IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (#206)
Variable PCMT._getRValues(uint256,uint256,uint256,uint256,uint256).rTransferAmount (#627) is too similar to PCMT._getValues(uint256,uint256,uint256,uint256).tTransferAmount (#600)
Variable PCMT._getValues(uint256,uint256,uint256,uint256).rTransferAmount (#606) is too similar to PCMT._getTValues(uint256,uint256,uint256,uint256).tTransferAmount (#618)
Variable PCMT._getRValues(uint256,uint256,uint256,uint256,uint256).rTransferAmount (#627) is too similar to PCMT._getTValues(uint256,uint256,uint256,uint256).tTransferAmount (#618)
Variable PCMT._getValues(uint256,uint256,uint256,uint256).rTransferAmount (#606) is too similar to PCMT._getValues(uint256,uint256,uint256,uint256).tTransferAmount (#600)
Prevent variables from having similar names.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (#118-121)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#123-127)
lock(uint256) should be declared external:
- Ownable.lock(uint256) (#129-134)
unlock() should be declared external:
- Ownable.unlock() (#136-141)
addLPAddress(address,bool) should be declared external:
- PCMT.addLPAddress(address,bool) (#428-430)
name() should be declared external:
- PCMT.name() (#432-434)
symbol() should be declared external:
- PCMT.symbol() (#436-438)
decimals() should be declared external:
- PCMT.decimals() (#440-442)
totalSupply() should be declared external:
- PCMT.totalSupply() (#444-446)
transfer(address,uint256) should be declared external:
- PCMT.transfer(address,uint256) (#453-456)
allowance(address,address) should be declared external:
- PCMT.allowance(address,address) (#458-460)
approve(address,uint256) should be declared external:
- PCMT.approve(address,uint256) (#462-465)
transferFrom(address,address,uint256) should be declared external:
- PCMT.transferFrom(address,address,uint256) (#467-472)
increaseAllowance(address,uint256) should be declared external:
- PCMT.increaseAllowance(address,uint256) (#474-477)
decreaseAllowance(address,uint256) should be declared external:
- PCMT.decreaseAllowance(address,uint256) (#479-483)
isExcludedFromReward(address) should be declared external:
- PCMT.isExcludedFromReward(address) (#485-487)
totalFees() should be declared external:
- PCMT.totalFees() (#489-491)
reflectionFromToken(uint256,bool,uint256,uint256,uint256) should be declared external:
- PCMT.reflectionFromToken(uint256,bool,uint256,uint256,uint256) (#493-501)
excludeFromReward(address) should be declared external:
- PCMT.excludeFromReward(address) (#509-516)
excludeFromFee(address) should be declared external:
- PCMT.excludeFromFee(address) (#531-533)
includeInFee(address) should be declared external:
- PCMT.includeInFee(address) (#535-537)
setDevWalletAddress(address) should be declared external:
- PCMT.setDevWalletAddress(address) (#569-571)
setSwapAndLiquifyEnabled(bool) should be declared external:
- PCMT.setSwapAndLiquifyEnabled(bool) (#574-577)
isExcludedFromFee(address) should be declared external:
- PCMT.isExcludedFromFee(address) (#666-668)
withdraw() should be declared external:
- PCMT.withdraw() (#837-839)
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 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
Token has no active CoinGecko listing / rank
Token has no active CoinMarketCap listing / rank
Young tokens have high risks of price dump / death
Young tokens have high risks of price dump / death
Young tokens have high risks of price dump / death
Unable to find Blog account (Reddit or Medium)