* Add RPC eth_chainId for querying the current blockchain chain ID
Currently although we can use `net_version` RPC call to get the
current network ID, there's no RPC for querying the chain ID. This
makes it impossible to determine the current actual blockchain using
the RPC. An ETH/ETC client can accidentally connect to an ETC/ETH RPC
endpoint without knowing it unless it tries to sign a transaction or
it fetch a transaction that is known to have signed with a chain
ID. This has since caused trouble for application developers, such as
MetaMask, to add multi-chain support.
The same RPC endpoint is also about to be merged for ETC's
go-ethereum: https://github.com/ethereumproject/go-ethereum/pull/336
* Add eth_chainId to js's web3 interface
* Add a mocked test for eth_chainId
* Add chainId in js's jsonrpc interfaces
* Change return type for eth_chainId to `Option<u64>`
* Change name eth_chainId to parity_chainId
* Wrong test name and missed var for rpc_parity_chain_id test
* Use U256 to return chainId and fix for master
u64 returns decimal integer, and there seems to be no type called
U64. So here I use U256 to return the hex integer.
* Fix chainID test
Before EIP155 fork number, chainID should be null.
* Change both parity_chainId and transaction::chainId to use U64
This makes it consistent that all chain ids returned are hex string.
* Fix wrong U64 serialization
* Rebase and fix compilation errors (tests not yet fixed)
* Use `debug_assert` over `assert`
* Fix tests
* Assert safety, clean up
* Fix up stale cache removal, move one assert to debug_assert
* Remove printlns
* Add licenses
* Fix benches
* Inline some no-ops in a hot loop that weren't being inlined
* Add spooky comment to make sure no-one removes the inlining annotations
* Minor cleanup
* Add option to switch between mmap and ram
* Flag ethash to use less memory when running light client
* Fix tests
* Remove todo comment (it's done)
* Replace assertion with error return
* Fix indentation
* Use union instead of `transmute`
* Fix benches
* Extract to constants
* Clean up and fix soundness holes
* Fix formatting
* Ignore missing-file errors
* Make incorrect cache size an error condition instead of a panic, remove dead code
* Fix compilation errors from rebase
* Fix compilation errors in tests
* Fix compilation errors in tests
* Prepare changelog for 1.7.1
* Update changelog for 1.7.1
* Prepare changelog for 1.7.2
* Update CHANGELOG
* Update changelog for 1.7.2
* Snapshot sync kicks in after 10k blocks
* Add ropsten fork to changelog
* Add Gnosis multi-sig support to Changelog
* Update final changelog for 1.7.2