Unlocking liquid capital from staked assets - Tap into cross chain liquidity and stake farming.
Unable to verify that contract auditor is trusted: Certik, Quantstamp, Hacken, Solidity, Paladinsec, Openzeppelin, Verichains
AddressUtils.isContract(address) (#479-490) is declared view but contains assembly code
Ensure the attributes of contracts compiled prior to Solidity 0.5.0 are correct.
Additional information: link
Reentrancy in ERC677BridgeToken.callAfterTransfer(address,address,uint256) (#647-652):
External calls:
- AddressUtils.isContract(_to) && ! contractFallback(_from,_to,_value,new bytes(0)) (#648)
- _to.call(abi.encodeWithSignature(onTokenTransfer(address,uint256,bytes),_from,_value,_data)) (#655)
Event emitted after the call(s):
- ContractFallbackCallFailed(_from,_to,_value) (#650)
Apply the check-effects-interactions pattern.
Additional information: link
AddressUtils.isContract(address) (#479-490) uses assembly
- INLINE ASM (#488-489)
Claimable.safeTransfer(address,address,uint256) (#565-584) uses assembly
- INLINE ASM (#569-581)
Do not use evm assembly.
Additional information: link
Different versions of Solidity is used:
- Version used: ['0.4.24', '^0.4.24']
- ^0.4.24 (#3)
- ^0.4.24 (#20)
- ^0.4.24 (#75)
- ^0.4.24 (#126)
- ^0.4.24 (#160)
- ^0.4.24 (#185)
- ^0.4.24 (#311)
- ^0.4.24 (#378)
- ^0.4.24 (#440)
- ^0.4.24 (#464)
- 0.4.24 (#496)
- 0.4.24 (#510)
- 0.4.24 (#521)
- 0.4.24 (#531)
- 0.4.24 (#589)
Use one Solidity version.
Additional information: link
SafeMath.div(uint256,uint256) (#48-53) is never used and should be removed
SafeMath.mul(uint256,uint256) (#32-43) is never used and should be removed
Remove unused functions.
Additional information: link
Pragma version^0.4.24 (#3) allows old versions
Pragma version^0.4.24 (#20) allows old versions
Pragma version^0.4.24 (#75) allows old versions
Pragma version^0.4.24 (#126) allows old versions
Pragma version^0.4.24 (#160) allows old versions
Pragma version^0.4.24 (#185) allows old versions
Pragma version^0.4.24 (#311) allows old versions
Pragma version^0.4.24 (#378) allows old versions
Pragma version^0.4.24 (#440) allows old versions
Pragma version^0.4.24 (#464) allows old versions
Pragma version0.4.24 (#496) allows old versions
Pragma version0.4.24 (#510) allows old versions
Pragma version0.4.24 (#521) allows old versions
Pragma version0.4.24 (#531) allows old versions
Pragma version0.4.24 (#589) allows old versions
solc-0.4.24 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
Low level call in ERC677BridgeToken.contractFallback(address,address,uint256,bytes) (#654-656):
- _to.call(abi.encodeWithSignature(onTokenTransfer(address,uint256,bytes),_from,_value,_data)) (#655)
Avoid low-level calls. Check the call success. If the call is meant for a contract, check for code existence
Additional information: link
Parameter SafeMath.mul(uint256,uint256)._a (#32) is not in mixedCase
Parameter SafeMath.mul(uint256,uint256)._b (#32) is not in mixedCase
Parameter SafeMath.div(uint256,uint256)._a (#48) is not in mixedCase
Parameter SafeMath.div(uint256,uint256)._b (#48) is not in mixedCase
Parameter SafeMath.sub(uint256,uint256)._a (#58) is not in mixedCase
Parameter SafeMath.sub(uint256,uint256)._b (#58) is not in mixedCase
Parameter SafeMath.add(uint256,uint256)._a (#66) is not in mixedCase
Parameter SafeMath.add(uint256,uint256)._b (#66) is not in mixedCase
Parameter BasicToken.transfer(address,uint256)._to (#103) is not in mixedCase
Parameter BasicToken.transfer(address,uint256)._value (#103) is not in mixedCase
Parameter BasicToken.balanceOf(address)._owner (#118) is not in mixedCase
Parameter BurnableToken.burn(uint256)._value (#142) is not in mixedCase
Parameter StandardToken.transferFrom(address,address,uint256)._from (#209) is not in mixedCase
Parameter StandardToken.transferFrom(address,address,uint256)._to (#210) is not in mixedCase
Parameter StandardToken.transferFrom(address,address,uint256)._value (#211) is not in mixedCase
Parameter StandardToken.approve(address,uint256)._spender (#236) is not in mixedCase
Parameter StandardToken.approve(address,uint256)._value (#236) is not in mixedCase
Parameter StandardToken.allowance(address,address)._owner (#249) is not in mixedCase
Parameter StandardToken.allowance(address,address)._spender (#250) is not in mixedCase
Parameter StandardToken.increaseApproval(address,uint256)._spender (#269) is not in mixedCase
Parameter StandardToken.increaseApproval(address,uint256)._addedValue (#270) is not in mixedCase
Parameter StandardToken.decreaseApproval(address,uint256)._spender (#291) is not in mixedCase
Parameter StandardToken.decreaseApproval(address,uint256)._subtractedValue (#292) is not in mixedCase
Parameter Ownable.transferOwnership(address)._newOwner (#361) is not in mixedCase
Parameter MintableToken.mint(address,uint256)._to (#412) is not in mixedCase
Parameter MintableToken.mint(address,uint256)._amount (#413) is not in mixedCase
Parameter Claimable.claimValues(address,address)._token (#544) is not in mixedCase
Parameter Claimable.claimValues(address,address)._to (#544) is not in mixedCase
Parameter Claimable.claimNativeCoins(address)._to (#552) is not in mixedCase
Parameter Claimable.claimErc20Tokens(address,address)._token (#559) is not in mixedCase
Parameter Claimable.claimErc20Tokens(address,address)._to (#559) is not in mixedCase
Parameter Claimable.safeTransfer(address,address,uint256)._to (#565) is not in mixedCase
Parameter Claimable.safeTransfer(address,address,uint256)._value (#565) is not in mixedCase
Parameter ERC677BridgeToken.setBridgeContract(address)._bridgeContract (#606) is not in mixedCase
Parameter ERC677BridgeToken.transferAndCall(address,uint256,bytes)._to (#617) is not in mixedCase
Parameter ERC677BridgeToken.transferAndCall(address,uint256,bytes)._value (#617) is not in mixedCase
Parameter ERC677BridgeToken.transferAndCall(address,uint256,bytes)._data (#617) is not in mixedCase
Parameter ERC677BridgeToken.superTransfer(address,uint256)._to (#631) is not in mixedCase
Parameter ERC677BridgeToken.superTransfer(address,uint256)._value (#631) is not in mixedCase
Parameter ERC677BridgeToken.transfer(address,uint256)._to (#635) is not in mixedCase
Parameter ERC677BridgeToken.transfer(address,uint256)._value (#635) is not in mixedCase
Parameter ERC677BridgeToken.transferFrom(address,address,uint256)._from (#641) is not in mixedCase
Parameter ERC677BridgeToken.transferFrom(address,address,uint256)._to (#641) is not in mixedCase
Parameter ERC677BridgeToken.transferFrom(address,address,uint256)._value (#641) is not in mixedCase
Parameter ERC677BridgeToken.callAfterTransfer(address,address,uint256)._from (#647) is not in mixedCase
Parameter ERC677BridgeToken.callAfterTransfer(address,address,uint256)._to (#647) is not in mixedCase
Parameter ERC677BridgeToken.callAfterTransfer(address,address,uint256)._value (#647) is not in mixedCase
Parameter ERC677BridgeToken.contractFallback(address,address,uint256,bytes)._from (#654) is not in mixedCase
Parameter ERC677BridgeToken.contractFallback(address,address,uint256,bytes)._to (#654) is not in mixedCase
Parameter ERC677BridgeToken.contractFallback(address,address,uint256,bytes)._value (#654) is not in mixedCase
Parameter ERC677BridgeToken.contractFallback(address,address,uint256,bytes)._data (#654) is not in mixedCase
Parameter ERC677BridgeToken.claimTokens(address,address)._token (#666) is not in mixedCase
Parameter ERC677BridgeToken.claimTokens(address,address)._to (#666) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
totalSupply() should be declared external:
- BasicToken.totalSupply() (#94-96)
- ERC20Basic.totalSupply() (#12)
balanceOf(address) should be declared external:
- BasicToken.balanceOf(address) (#118-120)
- ERC20Basic.balanceOf(address) (#13)
burn(uint256) should be declared external:
- BurnableToken.burn(uint256) (#142-144)
allowance(address,address) should be declared external:
- ERC20.allowance(address,address) (#169-170)
- StandardToken.allowance(address,address) (#248-257)
approve(address,uint256) should be declared external:
- ERC20.approve(address,uint256) (#175)
- StandardToken.approve(address,uint256) (#236-240)
renounceOwnership() should be declared external:
- ERC677BridgeToken.renounceOwnership() (#662-664)
- Ownable.renounceOwnership() (#352-355)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#361-363)
mint(address,uint256) should be declared external:
- MintableToken.mint(address,uint256) (#411-425)
finishMinting() should be declared external:
- ERC677BridgeToken.finishMinting() (#658-660)
- MintableToken.finishMinting() (#431-435)
increaseAllowance(address,uint256) should be declared external:
- ERC677.increaseAllowance(address,uint256) (#504)
- ERC677BridgeToken.increaseAllowance(address,uint256) (#670-672)
decreaseAllowance(address,uint256) should be declared external:
- ERC677.decreaseAllowance(address,uint256) (#505)
- ERC677BridgeToken.decreaseAllowance(address,uint256) (#674-676)
mint(address,uint256) should be declared external:
- IBurnableMintableERC677Token.mint(address,uint256) (#514)
burn(uint256) should be declared external:
- IBurnableMintableERC677Token.burn(uint256) (#515)
claimTokens(address,address) should be declared external:
- ERC677BridgeToken.claimTokens(address,address) (#666-668)
- IBurnableMintableERC677Token.claimTokens(address,address) (#516)
Use the external attribute for functions never called from the contract.
Additional information: link
Unable to find whitepaper link on the website
Young tokens have high risks of scam / price dump / death
Last post in Twitter was more than 30 days ago