Echelon is a public Cosmos and EVM compatible blockchain protocol and new ecosystem that bridges DeFi and mass adoption.
The Echelon consensus and layer protocols delivers unparalleled speed, scalability, and security.
Echelon equally serves as an application-agnostic chain fully interoperable with the Ethereum mainnet, all EVM compatible environments, and other BFT chains via IBC. Expectedly, it eases cross-chain transferrals of value for both developers and end-users.
Unable to verify that contract auditor is trusted: Certik, Quantstamp, Hacken, Solidity, Paladinsec, Openzeppelin, Verichains
Contract ownership is not renounced (belongs to a wallet)
SignatureUtils.parseSignature(bytes,uint256) (#76-102) is declared view but contains assembly code
Ensure the attributes of contracts compiled prior to Solidity 0.5.0 are correct.
Additional information: link
Bridgeable.exit(bytes32,address,uint256,bytes) (#524-533) compares to a boolean constant:
-require(bool,string)(contains(_txnHash) == false,Foreign transaction has already been processed) (#525)
Remove the equality to the boolean constant.
Additional information: link
Deprecated standard detected THROW (#488):
- Usage of "throw" should be replaced with "revert()"
Replace all uses of deprecated symbols.
Additional information: link
Bridgeable.pair(address)._foreignContract (#515) lacks a zero-check on :
- foreignContract = _foreignContract (#516)
Check that the address is not zero.
Additional information: link
ERC20._burnFrom(address,uint256) (#459-467) is never used and should be removed
SafeMath.div(uint256,uint256) (#225-231) is never used and should be removed
SafeMath.mod(uint256,uint256) (#257-260) is never used and should be removed
SafeMath.mul(uint256,uint256) (#208-220) is never used and should be removed
Remove unused functions.
Additional information: link
Ownable.transferOwnership(address) (#493-497) should emit an event for:
- owner = newOwner (#495)
Emit an event for critical parameter changes.
Additional information: link
SignatureUtils.parseSignature(bytes,uint256) (#76-102) uses assembly
- INLINE ASM (#88-99)
Do not use evm assembly.
Additional information: link
Parameter SignatureUtils.toEthBytes32SignedMessageHash(bytes32)._msg (#13) is not in mixedCase
Parameter SignatureUtils.toEthPersonalSignedMessageHash(bytes)._msg (#25) is not in mixedCase
Parameter SignatureUtils.parseSignature(bytes,uint256)._pos (#78) is not in mixedCase
Parameter SignatureUtils.countSignatures(bytes)._signatures (#108) is not in mixedCase
Parameter SignatureUtils.recoverAddress(bytes32,bytes,uint256)._hash (#122) is not in mixedCase
Parameter SignatureUtils.recoverAddress(bytes32,bytes,uint256)._signatures (#123) is not in mixedCase
Parameter SignatureUtils.recoverAddress(bytes32,bytes,uint256)._pos (#124) is not in mixedCase
Parameter SignatureUtils.recoverAddresses(bytes32,bytes)._hash (#141) is not in mixedCase
Parameter SignatureUtils.recoverAddresses(bytes32,bytes)._signatures (#142) is not in mixedCase
Parameter Bridgeable.addValidator(address)._validator (#511) is not in mixedCase
Parameter Bridgeable.pair(address)._foreignContract (#515) is not in mixedCase
Parameter Bridgeable.enter(uint256)._amount (#519) is not in mixedCase
Parameter Bridgeable.exit(bytes32,address,uint256,bytes)._txnHash (#524) is not in mixedCase
Parameter Bridgeable.exit(bytes32,address,uint256,bytes)._foreignContract (#524) is not in mixedCase
Parameter Bridgeable.exit(bytes32,address,uint256,bytes)._amount (#524) is not in mixedCase
Parameter Bridgeable.exit(bytes32,address,uint256,bytes)._signatures (#524) is not in mixedCase
Parameter Bridgeable.contains(bytes32)._txnHash (#535) is not in mixedCase
Parameter Bridgeable.mint(address,uint256)._to (#549) is not in mixedCase
Parameter Bridgeable.mint(address,uint256)._amount (#549) is not in mixedCase
Parameter Bridgeable.burn(uint256)._value (#560) is not in mixedCase
Parameter Bridgeable.entranceHash(bytes32,address,uint256)._contractAddress (#569) is not in mixedCase
Parameter Bridgeable.entranceHash(bytes32,address,uint256)._amount (#569) is not in mixedCase
Follow the Solidity naming convention.
Additional information: link
BridgedECH.decimals (#583) should be constant
BridgedECH.name (#581) should be constant
BridgedECH.symbol (#582) should be constant
Add the constant attributes to state variables that never change.
Additional information: link
toEthPersonalSignedMessageHash(bytes) should be declared external:
- SignatureUtils.toEthPersonalSignedMessageHash(bytes) (#24-32)
recoverAddress(bytes32,bytes,uint256) should be declared external:
- SignatureUtils.recoverAddress(bytes32,bytes,uint256) (#121-135)
totalSupply() should be declared external:
- ERC20.totalSupply() (#282-284)
balanceOf(address) should be declared external:
- ERC20.balanceOf(address) (#291-293)
allowance(address,address) should be declared external:
- ERC20.allowance(address,address) (#301-310)
transfer(address,uint256) should be declared external:
- ERC20.transfer(address,uint256) (#317-320)
approve(address,uint256) should be declared external:
- ERC20.approve(address,uint256) (#331-337)
transferFrom(address,address,uint256) should be declared external:
- ERC20.transferFrom(address,address,uint256) (#345-358)
increaseAllowance(address,uint256) should be declared external:
- ERC20.increaseAllowance(address,uint256) (#369-382)
decreaseAllowance(address,uint256) should be declared external:
- ERC20.decreaseAllowance(address,uint256) (#393-406)
transferOwnership(address) should be declared external:
- Ownable.transferOwnership(address) (#493-497)
addValidator(address) should be declared external:
- Bridgeable.addValidator(address) (#511-513)
pair(address) should be declared external:
- Bridgeable.pair(address) (#515-517)
enter(uint256) should be declared external:
- Bridgeable.enter(uint256) (#519-522)
exit(bytes32,address,uint256,bytes) should be declared external:
- Bridgeable.exit(bytes32,address,uint256,bytes) (#524-533)
Use the external attribute for functions never called from the contract.
Additional information: link
Pragma version^0.4.24 (#3) allows old versions
Pragma version^0.4.24 (#163) allows old versions
Pragma version^0.4.24 (#471) allows old versions
Pragma version^0.4.24 (#577) 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
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 scam / price dump / death
Young tokens have high risks of scam / price dump / death
Young tokens have high risks of scam / price dump / death
Token has relatively low CoinGecko rank
Unable to find Youtube account