PolkaMonster is the fighting game on the Binance Smart Chain.
PolkaMonster are sophisticated digital collections created using Blockchain technology.
Contract locking ether found:
Contract PolkaMonster (contracts/PolkaMonster.sol#8-136) has payable functions:
- PolkaMonster.receive() (contracts/PolkaMonster.sol#119)
But does not have a function to withdraw the ether
Remove the payable attribute or add a withdraw function.
Additional information: link
PolkaMonster.constructor(string,string).symbol (contracts/PolkaMonster.sol#26) shadows:
- ERC20.symbol() (contracts/Common/ERC20.sol#71-73) (function)
- IERC20Metadata.symbol() (contracts/Common/IERC20Metadata.sol#21) (function)
Rename the local variables that shadow another component.
Additional information: link
PolkaMonster.blacklist(uint256) (contracts/PolkaMonster.sol#127-134) should emit an event for:
- blacklistAmount = amount (contracts/PolkaMonster.sol#131)
Emit an event for critical parameter changes.
Additional information: link
Reentrancy in PolkaMonster.constructor(string,string) (contracts/PolkaMonster.sol#26-42):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (contracts/PolkaMonster.sol#37-38)
State variables written after the call(s):
- _approve(address(this),address(uniswapV2Router),~ uint256(0)) (contracts/PolkaMonster.sol#41)
- _allowances[owner][spender] = amount (contracts/Common/ERC20.sol#287)
- uniswapV2Router = _uniswapV2Router (contracts/PolkaMonster.sol#40)
Apply the check-effects-interactions pattern.
Additional information: link
Reentrancy in PolkaMonster.constructor(string,string) (contracts/PolkaMonster.sol#26-42):
External calls:
- uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this),_uniswapV2Router.WETH()) (contracts/PolkaMonster.sol#37-38)
Event emitted after the call(s):
- Approval(owner,spender,amount) (contracts/Common/ERC20.sol#288)
- _approve(address(this),address(uniswapV2Router),~ uint256(0)) (contracts/PolkaMonster.sol#41)
Apply the check-effects-interactions pattern.
Additional information: link
PolkaMonster._transfer(address,address,uint256) (contracts/PolkaMonster.sol#65-94) uses timestamp for comparisons
Dangerous comparisons:
- blacklistTime > block.timestamp && amount > blacklistAmount && bots[sender] (contracts/PolkaMonster.sol#71-73)
Avoid relying on block.timestamp.
Additional information: link
Different versions of Solidity is used:
- Version used: ['>=0.6.0<0.8.1', '^0.7.6']
- ^0.7.6 (contracts/Common/Context.sol#3)
- ^0.7.6 (contracts/Common/ERC20.sol#3)
- ^0.7.6 (contracts/Common/IERC20.sol#3)
- ^0.7.6 (contracts/Common/IERC20Metadata.sol#3)
- ^0.7.6 (contracts/Common/Ownable.sol#1)
- ^0.7.6 (contracts/Common/SafeMath.sol#3)
- ^0.7.6 (contracts/Common/Uniswap.sol#2)
- ^0.7.6 (contracts/IManager.sol#3)
- ^0.7.6 (contracts/Monster.sol#2)
- ^0.7.6 (contracts/PolkaMonster.sol#2)
- >=0.6.0<0.8.1 (contracts/ReentrancyGuard.sol#3)
Use one Solidity version.
Additional information: link
SafeMath.mod(uint256,uint256,string) (contracts/Common/SafeMath.sol#142-145) is never used and should be removed
Remove unused functions.
Additional information: link
Pragma version>=0.6.0<0.8.1 (contracts/ReentrancyGuard.sol#3) is too complex
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
Parameter PolkaMonster.setAddressForMkt(address)._addressForMkt (contracts/PolkaMonster.sol#121) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (contracts/Common/Context.sol#21)" inContext (contracts/Common/Context.sol#15-24)
Remove redundant statements if they congest code but offer no value.
Additional information: link
Variable IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountADesired (contracts/Common/Uniswap.sol#148) is too similar to IUniswapV2Router01.addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256).amountBDesired (contracts/Common/Uniswap.sol#149)
Prevent variables from having similar names.
Additional information: link
PolkaMonster.maxSupply (contracts/PolkaMonster.sol#11) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
swapTokenForMkt() should be declared external:
- PolkaMonster.swapTokenForMkt() (contracts/PolkaMonster.sol#96-101)
Use the external attribute for functions never called from the contract.
Additional information: link
Young tokens have high risks of scam / price dump / death
Young tokens have high risks of scam / price dump / death
Young tokens have high risks of price dump / death
Token has relatively low CoinGecko rank
Token has relatively low CoinMarketCap rank
Twitter account link seems to be invalid
Unable to find Youtube account
Unable to find Discord account