From 107f556b2d9811ea2d64c065531dcae33997fcb7 Mon Sep 17 00:00:00 2001 From: HackyMiner Date: Sun, 30 Sep 2018 05:07:02 +0900 Subject: internal/ethapi: add eth_chainId method (#17617) This implements EIP-695. --- eth/api.go | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'eth/api.go') diff --git a/eth/api.go b/eth/api.go index 708f75a78..3ec3afb81 100644 --- a/eth/api.go +++ b/eth/api.go @@ -67,6 +67,15 @@ func (api *PublicEthereumAPI) Hashrate() hexutil.Uint64 { return hexutil.Uint64(api.e.Miner().HashRate()) } +// ChainId is the EIP-155 replay-protection chain id for the current ethereum chain config. +func (api *PublicEthereumAPI) ChainId() hexutil.Uint64 { + chainID := new(big.Int) + if config := api.e.chainConfig; config.IsEIP155(api.e.blockchain.CurrentBlock().Number()) { + chainID = config.ChainID + } + return (hexutil.Uint64)(chainID.Uint64()) +} + // PublicMinerAPI provides an API to control the miner. // It offers only methods that operate on data that pose no security risk when it is publicly accessible. type PublicMinerAPI struct { -- cgit v1.2.3