-
Notifications
You must be signed in to change notification settings - Fork 5.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
EIP: Implement eth_chainId
method in JSON-RPC
#695
Merged
Merged
Changes from all commits
Commits
Show all changes
8 commits
Select commit
Hold shift + click to select a range
6744a28
EIP: Implement method in JSON-RPC.
whilei b54a4e3
Include related PR link.
whilei 3a6b466
Include @tcz001 as author and add related links
whilei ea5b790
Assigned lucky number 695
whilei 68cde9b
Relative link to eip-155
whilei 45f6e8e
RPC spec: 'big integer' -> 'integer'
whilei 4269d19
Rel link eip-155 for other occurrance
whilei 1d1799b
Reference hex encoding standard
whilei File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,84 @@ | ||
## Preamble | ||
|
||
EIP: 695 | ||
Title: Create `eth_chainId` method for JSON-RPC | ||
Author: Isaac Ardis: isaac.ardis@gmail.com, Wei Tang: hi@that.world, [@tcz001](https://github.com/tcz001) | ||
Type: Standard Track | ||
Category: Interface | ||
Status: Draft | ||
Created: 2017-08-21 | ||
|
||
|
||
## Simple Summary | ||
Include `eth_chainId` method in `eth_`-namespaced JSON-RPC methods. | ||
|
||
## Abstract | ||
The `eth_chainId` method should return a single STRING result | ||
for an integer value in hexadecimal format, describing the | ||
currently configured "Chain Id" value used for signing replay-protected transactions, | ||
introduced via [EIP-155](./eip-155.md). | ||
|
||
## Motivation | ||
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. | ||
|
||
## Specification | ||
|
||
---- | ||
|
||
### eth_chainId | ||
|
||
Returns the currently configured chain id, a value used in replay-protected transaction | ||
signing as introduced by [EIP-155](./eip-155.md). | ||
|
||
##### Parameters | ||
none | ||
|
||
##### Returns | ||
|
||
`QUANTITY` - integer of the current chain id. Defaults are mainnet=61, morden=62. | ||
|
||
##### Example | ||
```js | ||
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}' | ||
|
||
// Result | ||
{ | ||
"id":83, | ||
"jsonrpc": "2.0", | ||
"result": "0x3d" // 61 | ||
} | ||
``` | ||
|
||
---- | ||
|
||
## Rationale | ||
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. | ||
|
||
Please note related links: | ||
|
||
- [Parity PR](https://github.com/paritytech/parity/pull/6329) | ||
- [Geth Classic PR (merged)](https://github.com/ethereumproject/go-ethereum/pull/336) | ||
|
||
|
||
## Backwards Compatibility | ||
Not relevant. | ||
|
||
## Test Cases | ||
Not currently implemented. | ||
|
||
## Implementation | ||
Would be good to have a test to confirm that expected==got. | ||
|
||
## Reference | ||
|
||
Return value `QUANTITY` adheres to standard JSON RPC hex value encoding, as documented here: https://github.com/ethereum/wiki/wiki/JSON-RPC#hex-value-encoding. | ||
|
||
## Copyright | ||
Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/). |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Usually, we don't have this. It's fine for me though.