MsgSender is a mobile product that gives users a new way to interact with existed decentralized exchanges (DEXs), we don't create DEX, we only build bridge to DEX. MSG is a native token in MsgSender ecosystem, which has been listed on Pancake, Binance Smart Chain.
Unable to verify that contract auditor is trusted: Certik, Quantstamp, Hacken, Solidity, Paladinsec, Openzeppelin, Verichains
Low level call in SafeERC20.callOptionalReturn(IERC20,bytes) (#209-220):
- (success,returndata) = address(token).call(data) (#213)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
ERC20Detailed.constructor(string,string,uint8).name (#127) shadows:
- ERC20Detailed.name() (#132-134) (function)
ERC20Detailed.constructor(string,string,uint8).symbol (#127) shadows:
- ERC20Detailed.symbol() (#135-137) (function)
ERC20Detailed.constructor(string,string,uint8).decimals (#127) shadows:
- ERC20Detailed.decimals() (#138-140) (function)
Rename the local variables that shadow another component.
Additional information: link
MsgSender.setPendingGov(address)._pendingGov (#294) lacks a zero-check on :
- pendingGov = _pendingGov (#299)
MsgSender.setManager(address)._aAddress (#336) lacks a zero-check on :
- feeManager = _aAddress (#337)
Check that the address is not zero.
Additional information: link
Address.isContract(address) (#182-188) uses assembly
- INLINE ASM (#186)
Do not use evm assembly.
Additional information: link
SafeERC20.callOptionalReturn(IERC20,bytes) (#209-220) is never used and should be removed
SafeERC20.safeApprove(IERC20,address,uint256) (#203-208) is never used and should be removed
SafeERC20.safeTransfer(IERC20,address,uint256) (#195-197) is never used and should be removed
SafeERC20.safeTransferFrom(IERC20,address,address,uint256) (#199-201) is never used and should be removed
Remove unused functions.
Additional information: link
MsgSender.constructor() (#255-264) uses literals with too many digits:
- super._mint(msg.sender,100000000 * 10 ** 18) (#261)
Use: Ether suffix, Time suffix, or The scientific notation
Additional information: link
Parameter MsgSender.addBlackList(address)._black (#270) is not in mixedCase
Parameter MsgSender.removeBlackList(address)._black (#278) is not in mixedCase
Parameter MsgSender.addExclued(address)._account (#282) is not in mixedCase
Parameter MsgSender.removeExclued(address)._account (#286) is not in mixedCase
Parameter MsgSender.setPendingGov(address)._pendingGov (#294) is not in mixedCase
Parameter MsgSender.setFeeStaus(bool)._staus (#328) is not in mixedCase
Parameter MsgSender.setManagerStaus(bool)._staus (#332) is not in mixedCase
Parameter MsgSender.setManager(address)._aAddress (#336) is not in mixedCase
Variable MsgSender._EXCLUDE (#235) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
totalSupply() should be declared external:
- ERC20.totalSupply() (#39-41)
balanceOf(address) should be declared external:
- ERC20.balanceOf(address) (#42-44)
transfer(address,uint256) should be declared external:
- ERC20.transfer(address,uint256) (#45-48)
allowance(address,address) should be declared external:
- ERC20.allowance(address,address) (#49-51)
approve(address,uint256) should be declared external:
- ERC20.approve(address,uint256) (#52-55)
transferFrom(address,address,uint256) should be declared external:
- ERC20.transferFrom(address,address,uint256) (#56-60)
increaseAllowance(address,uint256) should be declared external:
- ERC20.increaseAllowance(address,uint256) (#61-64)
decreaseAllowance(address,uint256) should be declared external:
- ERC20.decreaseAllowance(address,uint256) (#65-68)
name() should be declared external:
- ERC20Detailed.name() (#132-134)
symbol() should be declared external:
- ERC20Detailed.symbol() (#135-137)
decimals() should be declared external:
- ERC20Detailed.decimals() (#138-140)
addBlackList(address) should be declared external:
- MsgSender.addBlackList(address) (#270-272)
removeBlackList(address) should be declared external:
- MsgSender.removeBlackList(address) (#278-280)
addExclued(address) should be declared external:
- MsgSender.addExclued(address) (#282-284)
removeExclued(address) should be declared external:
- MsgSender.removeExclued(address) (#286-288)
setFeeStaus(bool) should be declared external:
- MsgSender.setFeeStaus(bool) (#328-330)
setManagerStaus(bool) should be declared external:
- MsgSender.setManagerStaus(bool) (#332-334)
setManager(address) should be declared external:
- MsgSender.setManager(address) (#336-339)
burn(uint256) should be declared external:
- MsgSender.burn(uint256) (#359-361)
Use the external attribute for functions never called from the contract.
Additional information: link
Unable to find audit link on the website
Unable to find whitepaper link on the website
Unable to find token on CoinHunt
Additional information: link
Young tokens have high risks of scam / price dump / death
Young tokens have high risks of scam / price dump / death
Token has no active CoinGecko listing / rank
Alexa traffic rank is relatively low
Additional information: link
Young tokens have high risks of price dump / death
Young tokens have high risks of price dump / death
Unable to find Youtube account
Unable to find Discord account