Lossless - hack mitigation tool for token creators. Lossless Protocol freezes fraudulent transaction based on a set of fraud identification parameters and returns stolen funds back to the owner’s account.
Unable to find manual contract audit (e.g. Certik, PeckShield, Solidity...)
Contract name (Chainport.io-Peg Lossless) contains non-alphanumeric characters.
Not a direct threat, but may indicate unreliable intentions of developer. Non-alphanumeric chars (,.;!#*&") are extremely rare among low risk tokens.
Different versions of Solidity is used:
- Version used: ['0.6.12', '>=0.6.0<0.8.0']
- >=0.6.0<0.8.0 (#6)
- >=0.6.0<0.8.0 (#33)
- >=0.6.0<0.8.0 (#113)
- >=0.6.0<0.8.0 (#330)
- >=0.6.0<0.8.0 (#637)
- 0.6.12 (#679)
Use one Solidity version.
Additional information: link
Context._msgData() (#23-26) is never used and should be removed
SafeMath.div(uint256,uint256) (#245-248) is never used and should be removed
SafeMath.div(uint256,uint256,string) (#300-303) is never used and should be removed
SafeMath.mod(uint256,uint256) (#262-265) is never used and should be removed
SafeMath.mod(uint256,uint256,string) (#320-323) is never used and should be removed
SafeMath.mul(uint256,uint256) (#226-231) is never used and should be removed
SafeMath.tryAdd(uint256,uint256) (#134-138) is never used and should be removed
SafeMath.tryDiv(uint256,uint256) (#170-173) is never used and should be removed
SafeMath.tryMod(uint256,uint256) (#180-183) is never used and should be removed
SafeMath.tryMul(uint256,uint256) (#155-163) is never used and should be removed
SafeMath.trySub(uint256,uint256) (#145-148) is never used and should be removed
Remove unused functions.
Additional information: link
BridgeMintableToken.setBinanceBridgeContract(address)._binanceBridgeContract (#717) lacks a zero-check on :
- binanceBridgeContract = _binanceBridgeContract (#722)
Check that the address is not zero.
Additional information: link
Redundant expression "this (#24)" inContext (#18-27)
Remove redundant statements if they congest code but offer no value.
Additional information: link
name() should be declared external:
- ERC20.name() (#389-391)
symbol() should be declared external:
- ERC20.symbol() (#397-399)
decimals() should be declared external:
- ERC20.decimals() (#414-416)
totalSupply() should be declared external:
- ERC20.totalSupply() (#421-423)
balanceOf(address) should be declared external:
- ERC20.balanceOf(address) (#428-430)
transfer(address,uint256) should be declared external:
- ERC20.transfer(address,uint256) (#440-443)
approve(address,uint256) should be declared external:
- ERC20.approve(address,uint256) (#459-462)
transferFrom(address,address,uint256) should be declared external:
- ERC20.transferFrom(address,address,uint256) (#477-481)
increaseAllowance(address,uint256) should be declared external:
- ERC20.increaseAllowance(address,uint256) (#495-498)
decreaseAllowance(address,uint256) should be declared external:
- ERC20.decreaseAllowance(address,uint256) (#514-517)
burn(uint256) should be declared external:
- ERC20Burnable.burn(uint256) (#653-655)
burnFrom(address,uint256) should be declared external:
- ERC20Burnable.burnFrom(address,uint256) (#668-673)
mint(address,uint256) should be declared external:
- BridgeMintableToken.mint(address,uint256) (#705-714)
setBinanceBridgeContract(address) should be declared external:
- BridgeMintableToken.setBinanceBridgeContract(address) (#716-723)
Use the external attribute for functions never called from the contract.
Additional information: link
Pragma version>=0.6.0<0.8.0 (#6) is too complex
Pragma version>=0.6.0<0.8.0 (#33) is too complex
Pragma version>=0.6.0<0.8.0 (#113) is too complex
Pragma version>=0.6.0<0.8.0 (#330) is too complex
Pragma version>=0.6.0<0.8.0 (#637) 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 BridgeMintableToken.mint(address,uint256)._to (#706) is not in mixedCase
Parameter BridgeMintableToken.mint(address,uint256)._amount (#707) is not in mixedCase
Parameter BridgeMintableToken.setBinanceBridgeContract(address)._binanceBridgeContract (#717) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link