MoonDoge is a Doge-centric DEX built on Binance Smart Chain, with features such as asset swapping, high-yield farming, staking, and a variety of other decentralized gamification. It is truly the playground for Dogers to trade and earn.
MoonDoge._writeCheckpoint(address,uint32,uint256,uint256) (contracts/token/MoonDoge.sol#1095-1113) uses a dangerous strict equality:
- nCheckpoints > 0 && checkpoints[delegatee][nCheckpoints - 1].fromBlock == blockNumber (contracts/token/MoonDoge.sol#1105)
Don't use strict equality to determine if an account has enough Ether or tokens.
Additional information: link
Contract ownership is semi-renounced (passed to a contract)
BEP20withCapped.constructor(string,string,uint256).name (contracts/token/MoonDoge.sol#603) shadows:
- BEP20withCapped.name() (contracts/token/MoonDoge.sol#620-622) (function)
- IBEP20.name() (contracts/token/MoonDoge.sol#125) (function)
BEP20withCapped.constructor(string,string,uint256).symbol (contracts/token/MoonDoge.sol#603) shadows:
- BEP20withCapped.symbol() (contracts/token/MoonDoge.sol#634-636) (function)
- IBEP20.symbol() (contracts/token/MoonDoge.sol#120) (function)
BEP20withCapped.constructor(string,string,uint256).cap (contracts/token/MoonDoge.sol#603) shadows:
- BEP20withCapped.cap() (contracts/token/MoonDoge.sol#648-650) (function)
BEP20withCapped.allowance(address,address).owner (contracts/token/MoonDoge.sol#675) shadows:
- Ownable.owner() (contracts/token/MoonDoge.sol#62-64) (function)
BEP20withCapped._approve(address,address,uint256).owner (contracts/token/MoonDoge.sol#849) shadows:
- Ownable.owner() (contracts/token/MoonDoge.sol#62-64) (function)
Rename the local variables that shadow another component.
Additional information: link
MoonDoge.delegateBySig(address,uint256,uint256,uint8,bytes32,bytes32) (contracts/token/MoonDoge.sol#961-1002) uses timestamp for comparisons
Dangerous comparisons:
- require(bool,string)(now <= expiry,MODO::delegateBySig: signature expired) (contracts/token/MoonDoge.sol#1000)
Avoid relying on block.timestamp.
Additional information: link
Address.isContract(address) (contracts/token/MoonDoge.sol#414-425) uses assembly
- INLINE ASM (contracts/token/MoonDoge.sol#421-423)
Address._functionCallWithValue(address,bytes,uint256,string) (contracts/token/MoonDoge.sol#522-548) uses assembly
- INLINE ASM (contracts/token/MoonDoge.sol#540-543)
MoonDoge.getChainId() (contracts/token/MoonDoge.sol#1120-1124) uses assembly
- INLINE ASM (contracts/token/MoonDoge.sol#1122)
Do not use evm assembly.
Additional information: link
Different versions of Solidity is used:
- Version used: ['>=0.4.0', '^0.6.0', '^0.6.2']
- >=0.4.0 (contracts/token/MoonDoge.sol#3)
- >=0.4.0 (contracts/token/MoonDoge.sol#30)
- >=0.4.0 (contracts/token/MoonDoge.sol#104)
- >=0.4.0 (contracts/token/MoonDoge.sol#202)
- ^0.6.2 (contracts/token/MoonDoge.sol#391)
- >=0.4.0 (contracts/token/MoonDoge.sol#552)
- ^0.6.0 (contracts/token/MoonDoge.sol#880)
Use one Solidity version.
Additional information: link
Address._functionCallWithValue(address,bytes,uint256,string) (contracts/token/MoonDoge.sol#522-548) is never used and should be removed
Address.functionCall(address,bytes) (contracts/token/MoonDoge.sol#469-471) is never used and should be removed
Address.functionCall(address,bytes,string) (contracts/token/MoonDoge.sol#479-485) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256) (contracts/token/MoonDoge.sol#498-504) is never used and should be removed
Address.functionCallWithValue(address,bytes,uint256,string) (contracts/token/MoonDoge.sol#512-520) is never used and should be removed
Address.isContract(address) (contracts/token/MoonDoge.sol#414-425) is never used and should be removed
Address.sendValue(address,uint256) (contracts/token/MoonDoge.sol#443-449) is never used and should be removed
BEP20withCapped._burn(address,uint256) (contracts/token/MoonDoge.sol#827-833) is never used and should be removed
BEP20withCapped._burnFrom(address,uint256) (contracts/token/MoonDoge.sol#866-873) is never used and should be removed
Context._msgData() (contracts/token/MoonDoge.sol#24-27) is never used and should be removed
SafeMath.div(uint256,uint256) (contracts/token/MoonDoge.sol#306-308) is never used and should be removed
SafeMath.div(uint256,uint256,string) (contracts/token/MoonDoge.sol#322-332) is never used and should be removed
SafeMath.min(uint256,uint256) (contracts/token/MoonDoge.sol#371-373) is never used and should be removed
SafeMath.mod(uint256,uint256) (contracts/token/MoonDoge.sol#346-348) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (contracts/token/MoonDoge.sol#362-369) is never used and should be removed
SafeMath.mul(uint256,uint256) (contracts/token/MoonDoge.sol#280-292) is never used and should be removed
SafeMath.sqrt(uint256) (contracts/token/MoonDoge.sol#376-387) is never used and should be removed
Remove unused functions.
Additional information: link
Pragma version>=0.4.0 (contracts/token/MoonDoge.sol#3) allows old versions
Pragma version>=0.4.0 (contracts/token/MoonDoge.sol#30) allows old versions
Pragma version>=0.4.0 (contracts/token/MoonDoge.sol#104) allows old versions
Pragma version>=0.4.0 (contracts/token/MoonDoge.sol#202) allows old versions
Pragma version^0.6.2 (contracts/token/MoonDoge.sol#391) allows old versions
Pragma version>=0.4.0 (contracts/token/MoonDoge.sol#552) allows old versions
Pragma version^0.6.0 (contracts/token/MoonDoge.sol#880) allows old versions
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
Low level call in Address.sendValue(address,uint256) (contracts/token/MoonDoge.sol#443-449):
- (success) = recipient.call{value: amount}() (contracts/token/MoonDoge.sol#447)
Low level call in Address._functionCallWithValue(address,bytes,uint256,string) (contracts/token/MoonDoge.sol#522-548):
- (success,returndata) = target.call{value: weiValue}(data) (contracts/token/MoonDoge.sol#531)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Parameter MoonDoge.mint(address,uint256)._to (contracts/token/MoonDoge.sol#890) is not in mixedCase
Parameter MoonDoge.mint(address,uint256)._amount (contracts/token/MoonDoge.sol#890) is not in mixedCase
Variable MoonDoge._delegates (contracts/token/MoonDoge.sol#903) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
Redundant expression "this (contracts/token/MoonDoge.sol#25)" inContext (contracts/token/MoonDoge.sol#15-28)
Remove redundant statements if they congest code but offer no value.
Additional information: link
renounceOwnership() should be declared external:
- Ownable.renounceOwnership() (contracts/token/MoonDoge.sol#81-84)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (contracts/token/MoonDoge.sol#90-92)
decimals() should be declared external:
- BEP20withCapped.decimals() (contracts/token/MoonDoge.sol#627-629)
symbol() should be declared external:
- BEP20withCapped.symbol() (contracts/token/MoonDoge.sol#634-636)
totalSupply() should be declared external:
- BEP20withCapped.totalSupply() (contracts/token/MoonDoge.sol#641-643)
transfer(address,uint256) should be declared external:
- BEP20withCapped.transfer(address,uint256) (contracts/token/MoonDoge.sol#667-670)
allowance(address,address) should be declared external:
- BEP20withCapped.allowance(address,address) (contracts/token/MoonDoge.sol#675-677)
approve(address,uint256) should be declared external:
- BEP20withCapped.approve(address,uint256) (contracts/token/MoonDoge.sol#686-689)
transferFrom(address,address,uint256) should be declared external:
- BEP20withCapped.transferFrom(address,address,uint256) (contracts/token/MoonDoge.sol#703-715)
increaseAllowance(address,uint256) should be declared external:
- BEP20withCapped.increaseAllowance(address,uint256) (contracts/token/MoonDoge.sol#729-732)
decreaseAllowance(address,uint256) should be declared external:
- BEP20withCapped.decreaseAllowance(address,uint256) (contracts/token/MoonDoge.sol#748-755)
mint(uint256) should be declared external:
- BEP20withCapped.mint(uint256) (contracts/token/MoonDoge.sol#765-768)
mint(address,uint256) should be declared external:
- MoonDoge.mint(address,uint256) (contracts/token/MoonDoge.sol#890-893)
Use the external attribute for functions never called from the contract.
Additional information: link
Unable to find token on CoinGecko
Additional information: link
Unable to find token on CoinMarketCap
Additional information: link
Unable to find whitepaper link on the website
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
Last post in Twitter was more than 30 days ago
Unable to find Discord account