PolygonumOnline - free-to-play, cross-platform multiplayer game with NFT Marketplace and Open World. Key feature is NFT Marketplace with live demand and supply from players. Open World is divided into three zones (FARM, PVP, PVE), where everyone will find something to do.
Unable to verify that contract auditor is trusted: Certik, Quantstamp, Hacken, Solidity, Paladinsec, Openzeppelin, Verichains
UsingLiquidityProtectionService.passed(uint256) (contracts/UsingLiquidityProtectionService.sol#114-116) uses timestamp for comparisons
Dangerous comparisons:
- _timestamp < block.timestamp (contracts/UsingLiquidityProtectionService.sol#115)
Avoid relying on block.timestamp.
Additional information: link
UsingLiquidityProtectionService.revokeBlocked(address[],address) (contracts/UsingLiquidityProtectionService.sol#70-82) has external calls inside a loop: lps().isBlocked(pool,holder) (contracts/UsingLiquidityProtectionService.sol#77)
UsingLiquidityProtectionService.LiquidityProtection_beforeTokenTransfer(address,address,uint256) (contracts/UsingLiquidityProtectionService.sol#61-68) has external calls inside a loop: lps().LiquidityProtection_beforeTokenTransfer(getLiquidityPool(),_from,_to,_amount) (contracts/UsingLiquidityProtectionService.sol#66)
Favor pull over push strategy for external calls.
Additional information: link
Context._msgData() (@openzeppelin/contracts/utils/Context.sol#20-22) is never used and should be removed
ERC20._burn(address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#273-288) is never used and should be removed
UsingLiquidityProtectionService.ProtectionSwitch_block(uint256) (contracts/UsingLiquidityProtectionService.sol#106-108) is never used and should be removed
UsingLiquidityProtectionService.ProtectionSwitch_manual() (contracts/UsingLiquidityProtectionService.sol#98-100) is never used and should be removed
UsingLiquidityProtectionService.blockPassed(uint256) (contracts/UsingLiquidityProtectionService.sol#110-112) is never used and should be removed
UsingLiquidityProtectionService.counterToken() (contracts/UsingLiquidityProtectionService.sol#47-49) is never used and should be removed
UsingLiquidityProtectionService.protectionAdminCheck() (contracts/UsingLiquidityProtectionService.sol#43) is never used and should be removed
UsingLiquidityProtectionService.protectionChecker() (contracts/UsingLiquidityProtectionService.sol#53-55) is never used and should be removed
UsingLiquidityProtectionService.token_balanceOf(address) (contracts/UsingLiquidityProtectionService.sol#42) is never used and should be removed
UsingLiquidityProtectionService.token_transfer(address,address,uint256) (contracts/UsingLiquidityProtectionService.sol#41) is never used and should be removed
UsingLiquidityProtectionService.uniswapFactory() (contracts/UsingLiquidityProtectionService.sol#46) is never used and should be removed
UsingLiquidityProtectionService.uniswapVariety() (contracts/UsingLiquidityProtectionService.sol#44) is never used and should be removed
UsingLiquidityProtectionService.uniswapVersion() (contracts/UsingLiquidityProtectionService.sol#45) is never used and should be removed
Remove unused functions.
Additional information: link
Pragma version^0.8.0 (@openzeppelin/contracts/access/Ownable.sol#3) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts/token/ERC20/ERC20.sol#3) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts/token/ERC20/IERC20.sol#3) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol#3) allows old versions
Pragma version^0.8.0 (@openzeppelin/contracts/utils/Context.sol#3) allows old versions
Pragma version^0.8.0 (contracts/IPLPS.sol#2) allows old versions
Pragma version^0.8.0 (contracts/POGCoin.sol#2) allows old versions
Pragma version^0.8.0 (contracts/UsingLiquidityProtectionService.sol#2) allows old versions
Pragma version^0.8.0 (contracts/external/UniswapV2Library.sol#2) allows old versions
Pragma version^0.8.0 (contracts/external/UniswapV3Library.sol#2) allows old versions
solc-0.8.9 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
Function IPLPS.LiquidityProtection_beforeTokenTransfer(address,address,address,uint256) (contracts/IPLPS.sol#5-6) is not in mixedCase
Function POGCoin.token_transfer(address,address,uint256) (contracts/POGCoin.sol#13-15) is not in mixedCase
Parameter POGCoin.token_transfer(address,address,uint256)._from (contracts/POGCoin.sol#13) is not in mixedCase
Parameter POGCoin.token_transfer(address,address,uint256)._to (contracts/POGCoin.sol#13) is not in mixedCase
Parameter POGCoin.token_transfer(address,address,uint256)._amount (contracts/POGCoin.sol#13) is not in mixedCase
Function POGCoin.token_balanceOf(address) (contracts/POGCoin.sol#16-18) is not in mixedCase
Parameter POGCoin.token_balanceOf(address)._holder (contracts/POGCoin.sol#16) is not in mixedCase
Function UsingLiquidityProtectionService.LiquidityProtection_setLiquidityProtectionService(IPLPS) (contracts/UsingLiquidityProtectionService.sol#37-39) is not in mixedCase
Parameter UsingLiquidityProtectionService.LiquidityProtection_setLiquidityProtectionService(IPLPS)._plps (contracts/UsingLiquidityProtectionService.sol#37) is not in mixedCase
Function UsingLiquidityProtectionService.token_transfer(address,address,uint256) (contracts/UsingLiquidityProtectionService.sol#41) is not in mixedCase
Function UsingLiquidityProtectionService.token_balanceOf(address) (contracts/UsingLiquidityProtectionService.sol#42) is not in mixedCase
Function UsingLiquidityProtectionService.LiquidityProtection_beforeTokenTransfer(address,address,uint256) (contracts/UsingLiquidityProtectionService.sol#61-68) is not in mixedCase
Parameter UsingLiquidityProtectionService.LiquidityProtection_beforeTokenTransfer(address,address,uint256)._from (contracts/UsingLiquidityProtectionService.sol#61) is not in mixedCase
Parameter UsingLiquidityProtectionService.LiquidityProtection_beforeTokenTransfer(address,address,uint256)._to (contracts/UsingLiquidityProtectionService.sol#61) is not in mixedCase
Parameter UsingLiquidityProtectionService.LiquidityProtection_beforeTokenTransfer(address,address,uint256)._amount (contracts/UsingLiquidityProtectionService.sol#61) is not in mixedCase
Parameter UsingLiquidityProtectionService.revokeBlocked(address[],address)._holders (contracts/UsingLiquidityProtectionService.sol#70) is not in mixedCase
Parameter UsingLiquidityProtectionService.revokeBlocked(address[],address)._revokeTo (contracts/UsingLiquidityProtectionService.sol#70) is not in mixedCase
Function UsingLiquidityProtectionService.LiquidityProtection_unblock(address[]) (contracts/UsingLiquidityProtectionService.sol#84-88) is not in mixedCase
Parameter UsingLiquidityProtectionService.LiquidityProtection_unblock(address[])._holders (contracts/UsingLiquidityProtectionService.sol#84) is not in mixedCase
Function UsingLiquidityProtectionService.ProtectionSwitch_manual() (contracts/UsingLiquidityProtectionService.sol#98-100) is not in mixedCase
Function UsingLiquidityProtectionService.ProtectionSwitch_timestamp(uint256) (contracts/UsingLiquidityProtectionService.sol#102-104) is not in mixedCase
Parameter UsingLiquidityProtectionService.ProtectionSwitch_timestamp(uint256)._timestamp (contracts/UsingLiquidityProtectionService.sol#102) is not in mixedCase
Function UsingLiquidityProtectionService.ProtectionSwitch_block(uint256) (contracts/UsingLiquidityProtectionService.sol#106-108) is not in mixedCase
Parameter UsingLiquidityProtectionService.ProtectionSwitch_block(uint256)._block (contracts/UsingLiquidityProtectionService.sol#106) is not in mixedCase
Parameter UsingLiquidityProtectionService.blockPassed(uint256)._block (contracts/UsingLiquidityProtectionService.sol#110) is not in mixedCase
Parameter UsingLiquidityProtectionService.passed(uint256)._timestamp (contracts/UsingLiquidityProtectionService.sol#114) is not in mixedCase
Parameter UsingLiquidityProtectionService.not(bool)._condition (contracts/UsingLiquidityProtectionService.sol#118) is not in mixedCase
Parameter UsingLiquidityProtectionService.feeToUint24(UsingLiquidityProtectionService.UniswapV3Fees)._fee (contracts/UsingLiquidityProtectionService.sol#122) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
POGCoin.constructor() (contracts/POGCoin.sol#9-11) uses literals with too many digits:
- _mint(owner(),100000000 * 1e18) (contracts/POGCoin.sol#10)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
UsingLiquidityProtectionService.HUNDRED_PERCENT (contracts/UsingLiquidityProtectionService.sol#11) is never used in POGCoin (contracts/POGCoin.sol#8-47)
UsingLiquidityProtectionService.QUICKSWAP (contracts/UsingLiquidityProtectionService.sol#14) is never used in POGCoin (contracts/POGCoin.sol#8-47)
UsingLiquidityProtectionService.SUSHISWAP (contracts/UsingLiquidityProtectionService.sol#15) is never used in POGCoin (contracts/POGCoin.sol#8-47)
Remove unused state variables.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (@openzeppelin/contracts/access/Ownable.sol#53-55)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (@openzeppelin/contracts/access/Ownable.sol#61-64)
name() should be declared external:
- ERC20.name() (@openzeppelin/contracts/token/ERC20/ERC20.sol#60-62)
symbol() should be declared external:
- ERC20.symbol() (@openzeppelin/contracts/token/ERC20/ERC20.sol#68-70)
decimals() should be declared external:
- ERC20.decimals() (@openzeppelin/contracts/token/ERC20/ERC20.sol#85-87)
totalSupply() should be declared external:
- ERC20.totalSupply() (@openzeppelin/contracts/token/ERC20/ERC20.sol#92-94)
transfer(address,uint256) should be declared external:
- ERC20.transfer(address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#111-114)
allowance(address,address) should be declared external:
- ERC20.allowance(address,address) (@openzeppelin/contracts/token/ERC20/ERC20.sol#119-121)
approve(address,uint256) should be declared external:
- ERC20.approve(address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#130-133)
transferFrom(address,address,uint256) should be declared external:
- ERC20.transferFrom(address,address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#148-162)
increaseAllowance(address,uint256) should be declared external:
- ERC20.increaseAllowance(address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#176-179)
decreaseAllowance(address,uint256) should be declared external:
- ERC20.decreaseAllowance(address,uint256) (@openzeppelin/contracts/token/ERC20/ERC20.sol#195-203)
Use the external attribute for functions never called from the contract.
Additional information: link
Young tokens have high risks of price dump / death
Young tokens have high risks of scam / price dump / death
Young tokens have high risks of price dump / death
Young tokens have high risks of price dump / death
Telegram account link seems to be invalid
Twitter account has relatively few followers
Twitter account has few posts