-
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
Method to check if a chainID is valid at a specific block Number #1965
Merged
Conversation
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
wighawag
changed the title
Valid chain id with block number
Valid chain id opcode with block number
Apr 24, 2019
Could this be merged in please @Arachnid @cdetrio @Souptacular @vbuterin @nicksavers @wanderer @gcolvin @axic ? (sorry fo the spam) |
axic
reviewed
May 9, 2019
axic
reviewed
May 9, 2019
axic
reviewed
May 9, 2019
axic
reviewed
May 9, 2019
axic
reviewed
May 9, 2019
wighawag
changed the title
Valid chain id opcode with block number
Method to check if a chainID is valid at a specific block Number
May 9, 2019
axic
reviewed
May 17, 2019
This was referenced May 19, 2019
Merged
soc1c
added a commit
to goerli/eips-poa
that referenced
this pull request
Jul 9, 2019
* Automatically merged updates to draft EIP(s) 1898 Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1679, 233 Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1679 Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Minor updates to EIP-1319 (ethereum#1966) * EIP-1895: Support for an Elliptic Curve Cycle (ethereum#1895) * Automatically merged updates to draft EIP(s) 1679 Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1679 Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Scalable Rewards (ethereum#1973) * added EIP * spacing * reorder * reorder * formats * <> brackets * edit * eip number * renaminng * Automatically merged updates to draft EIP(s) 1679 Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * EIP-1559: Fee market change for ETH 1.0 chain (ethereum#1943) * Automatically merged updates to draft EIP(s) 1884 Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Fix authors and type-fields in eip-1559.md (ethereum#1974) * Automatically merged updates to draft EIP(s) 1679 Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1344 Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1679 Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 777 Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1679 Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1679 Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Remove obsolete layer field (ethereum#1978) * Document eip_validator and eip-automerger (ethereum#1977) * EIP-1803: Rename opcodes for clarity (ethereum#1803) * Change the citation format in README to point to EIP-1 * Automatically merged updates to draft EIP(s) 1679, 1803 Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * EIP-1057 Update progpow test-vectors (ethereum#1855) * Add editors * Automatically merged updates to draft EIP(s) 1155 (ethereum#1993) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#1995) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * EIP-1775 - App Keys, application specific wallet accounts (ethereum#1775) * Automatically merged updates to draft EIP(s) 1155 (ethereum#1997) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#1998) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 777 (ethereum#1945) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * ERC777: Move to final (ethereum#1999) * Automatically merged updates to draft EIP(s) 1108 (ethereum#1987) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Fix typos (ethereum#1899) * Fixed typos and grammar (ethereum#1847) * Automatically merged updates to draft EIP(s) 1679 (ethereum#1988) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1344 (ethereum#2004) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1108 (ethereum#2005) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2006) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2007) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2008) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * fix github pull request links (ethereum#2000) * Automatically merged updates to draft EIP(s) 1679 (ethereum#1830) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2011) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2012) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2013) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Re-order EIP categories (ethereum#1989) * Automatically merged updates to draft EIP(s) 1679 (ethereum#2016) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2017) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2023) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Call strict gas (ethereum#1950) * CALL with strict gas * fix date * 1930 * update with explicit code change * add link to discussion * update * fix link * EIP-2015: Wallet Update Chain Method (ethereum#2015) * Create eip-2015.md * Include JSON RPC method in title * add requires 155 * update nativeCurrency field for wallet_updateChain * EIP-2015 format review changes * Update EIP-2015 discussions-to link * Automatically merged updates to draft EIP(s) 1679 (ethereum#2034) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 663 (ethereum#2038) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1679 (ethereum#2043) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 615 (ethereum#2044) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Calldata gas cost reduction (ethereum#2028) * Calldata gas cost reduction Added a draft of EIP to reduce the gas cost of Calldata * changed name to 2028 * Added EIP-2028 to meta eip-1679 * Added discussion url * edited 'motivation' & 'specification' Edited motivation to increase readability. Edited specification to clarify terms. * Automatically merged updates to draft EIP(s) 1155 (ethereum#2049) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * EIP-1965 Method to check if a chainID is valid at a specific block Number (ethereum#1965) * Run spelling checks on CI (ethereum#2040) * Automatically merged updates to draft EIP(s) 1679, 1965 (ethereum#2047) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1679 (ethereum#1990) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Add special requirement for mentioning EVM instructions * EIP-1710: URL Format for Web3 Browsers (ethereum#1710) * EIP 1523: Standard for storing insurance policies as extension of ERC-721 token (ethereum#1512) * Automatically merged updates to draft EIP(s) 2028 (ethereum#2052) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * EC arithmetics and pairings with runtime definitions (ethereum#1962) * Automatically merged updates to draft EIP(s) 663 (ethereum#2056) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Mention that the header is also called "front matter" in EIP1 (ethereum#2037) * Add EIP-1474 as a requirement to RPC ERCs * Fix Wrong Input Length - ERC165 Example (ethereum#1640) * Wrong input size - noThrowCall ERC165 Input should be 36 bytes (4 signature bytes + 32 bytes parameter) Solidity 5 validates the length of msg.data, reverting on the 32 bytes input, all contracts using the broken 'doesContractImplementInterface' will not be able to read an ERC165 implementation targetting Solidity 5. A legacy-compatible strategy should be defined to make all the "ERC165 readers" sending a 32 bytes sized data compatible with ERC165 contracts compiled targeting this new version of the compiler. A possible solution could be to add a keyword on Solidity to disable the validation of the calldata length. * Add version history section to EIP165 * EIP 1640 -> PR 1640 * Automatically merged updates to draft EIP(s) 1155 (ethereum#2063) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2064) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * State Rent change H placeholder EIP - fixed rent prepayment for all accounts (ethereum#2026) * Fix author fields (ethereum#2065) * Sane limits for certain EVM parameters (ethereum#1985) * sane * some clarifications * remove cruft * some clarifications * propose spec changes * limit the scope to EVM only * more rationale * group affected opcodes by ranges * Rename to EIP-1985 * Add discussion URL to EIP-1985 * Include a reference to EIP106 * Add more rationale * fix typo * Remove unfounded worry * mention timestamp being 64-bit value in Aleth * resolved an TODO item as Rationale entry * Reduced gas cost for static calls made to precompiles (ethereum#2046) * Reduced gas cost for static calls made to precompiles * Rename to EIP-2046 * Add discussion URL * Add 2046 to Istanbul * Fix header * Add draft for ESO (extended state oracle) (ethereum#2014) * Add draft for ESO (extended state oracle) * Add mention of revert to ESO * Add EIP-2014 number and rename file * Add reference to EIP-1959 and EIP-1965 * Add discussions-to URL * Update eip-181.md * Update eip-162.md * State Rent Change A EIP placeholder - State counters contract (ethereum#2029) * Create eip-StateRentACountersContract.md * Update eip-StateRentACountersContract.md * Rename eip-StateRentACountersContract.md to eip-2029.md * Update eip-2029.md * Update eip-2029.md * Fix typos * Make EIP-2014 into a proper link * New Opcode to check if a chainID is part of the history of chainIDs (ethereum#1959) * Automatically merged updates to draft EIP(s) 1679 (ethereum#2055) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Copyright 107 (ethereum#2068) * add copyrights for 107 * use github username * Automatically merged updates to draft EIP(s) 1155 (ethereum#2074) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * State Rent change C draft EIP - Net contract storage size accounting (ethereum#2027) * State Rent change C draft EIP * Update eip-draft_StateRentCnetContractSizes.md * Update eip-draft_StateRentCnetContractSizes.md * Rename eip-draft_StateRentCnetContractSizes.md to eip-2027.md * Update eip-2027.md * Update eip-2027.md * Update eip-2027.md * Quote "block C" properly * Update eip-2027.md * State Rent change B placeholder EIP - net transaction counter (ethereum#2031) * Create eip-draft_StateRentBNetTransactionCounter.md * Update and rename eip-draft_StateRentBNetTransactionCounter.md to eip-2031.md * Update eip-2031.md * Update eip-2031.md * Update eip-2031.md * Fix some typos * Use canonical link to EIP-2029 * Update eip-2031.md * Update eip-2031.md * Stateless Clients: Repricing SLOAD and SSTORE to pay for block proofs (ethereum#2035) * Create eip-draft_StatelessClientGasRepricing.md * Update and rename eip-draft_StatelessClientGasRepricing.md to eip-2035.md * Update eip-2035.md * Update eip-2035.md * Update eip-2035.md * Update eip-2035.md * Update eip-2035.md * Update eip-2035.md * Fix typos * Use canonical links to other EIPs * Update eip-2035.md * Fix link to EIP-2028 * Automatically merged updates to draft EIP(s) 1679 (ethereum#2036) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1930 (ethereum#2076) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1679 (ethereum#2042) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1418 (ethereum#2078) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1108 (ethereum#2067) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2083) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2084) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2085) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1930 (ethereum#2086) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 778 (ethereum#2087) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2088) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2089) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Last call for ERC-1155 (ethereum#2091) * add EIP for particle gas costs (ethereum#2045) * add EIP for fractional gas costs * use EIP number 2045, add references, discussion-to * add EIP-2045 to Istanbul * Formatting * Add ewasm to rationale * Clarify cost reduction examples * Clarify the increase of particles * link to eip-2035, edit for clarity * add reference to eip-2035 * add axic as author * rename title to "particle gas costs", edit ewasm section * fix header * Automatically merged updates to draft EIP(s) 1803 (ethereum#2093) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1803, 663 (ethereum#2094) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1193 (ethereum#2092) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2096) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 778 (ethereum#2097) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2101) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1261 (ethereum#2102) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * fix typo: "as follows" (ethereum#2099) see: https://ell.stackexchange.com/a/31673 * EIP-2003 - EVMC modules for implementations of precompiled contracts (ethereum#2003) * Automatically merged updates to draft EIP(s) 1261 (ethereum#2107) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2108) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2109) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2110) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 2003 (ethereum#2112) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2113) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2114) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2116) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2117) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2118) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1155 (ethereum#2120) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * ERC-1155 Final Status (ethereum#2122) * Automatically merged updates to draft EIP(s) 1344 (ethereum#2079) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Propose to move EIP-695 to last call status (ethereum#1566) * Propose to move EIP-695 to last call status * Add a discussion link * Formatting fix * Fix @sorpaas handle in author field * Use EIP155 formatting for `CHAIN_ID` * Formatting fix for "chain ID" The document had places where we use lowercase "id" and uppercase "ID". This unify them to use uppercase "ID". * Update eip-695.md * Move EIP-695 to Last Call status and add 155 requirement (ethereum#2128) * Update eip-1577.md (ethereum#1670) * Automatically merged updates to draft EIP(s) 1702 (ethereum#2130) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1702 (ethereum#2131) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 695 (ethereum#2133) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1202 (ethereum#2134) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1702 (ethereum#2140) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1702 (ethereum#2141) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Funding ETH1.X through a Developer Block Reward for 18 Months (ethereum#2025) * Automatically merged updates to draft EIP(s) 1702 (ethereum#2149) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * EIP 747: wallet_watchAsset (ethereum#1426) * Initial draft * Add eip-747: watchToken * Update discussion link * Update eip-747 to watchAsset * Add image specification and examples EIP747 * Add asset type error * Respond to feedback * Depends on 1474 * Correct type to standards track * Correct spelling * Add eip images locally (ethereum#2150) * Automatically merged updates to draft EIP(s) 823 (ethereum#2151) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1193 (ethereum#2057) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * ERC-1948: Non-fungible Data Token (ethereum#1948) * first draft * remove boilerplate * fix indentations * typos * ethereum code highlights * moved file to id * syntax * naming * link to erc721 * make interface an interface * typo * better comments * Automatically merged updates to draft EIP(s) 1679, 233 (ethereum#2081) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1702 (ethereum#2152) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Introduced Abandoned status in EIP-1 (ethereum#2051) * Introduced Abandoned status in EIP-1 * Fix typo * EIP-1967: Standard Proxy Storage Slots (ethereum#1967) * Proxy storage slots EIP * Apply suggestions from code review Co-Authored-By: spalladino <spalladino@gmail.com> * Add reference to vyper storage slots * Fix links to EIPs Co-Authored-By: spalladino <spalladino@gmail.com> * Apply suggestions from code review Co-Authored-By: spalladino <spalladino@gmail.com> * Applied suggestions by elopio and nventuro * Add discussions-to * Add EIP number * Rename eip file * Fix type attribute * Use zOS independent hash preimage * Implement suggestion by axic * Automatically merged updates to draft EIP(s) 1474 (ethereum#2155) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1613 (ethereum#2163) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1066 (ethereum#2164) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Mark EIP-158 proper superseded and not replaced (ethereum#2160) * Update eip_validator to 0.8.2 (ethereum#2161) * Fix Markdown formatting in EIP-1186 * Update eip_validator to 0.8.2 * Abandone EIP-1355 "Ethash 1a" (ethereum#1785) * Add information EIP: Common Prometheus metrics (ethereum#2159) * Add common metrics EIP. * Fix spelling error. * Assign EIP number, added more information on what Prometheus does. * Add link to prometheus website for further info. * Fix link. * Fix discussion link. * Switch to standards track - interface instead of informational. * Add motivation. * superseded-by EIP 1 (ethereum#2165) * Automatically merged updates to draft EIP(s) 1702 (ethereum#2167) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * EIP-1753 - Define a smart contract interface for permits and licences (ethereum#1753) * First draft * Update eip-x.md * Update eip-x.md * Update eip-x.md * Update eip-x.md * Update eip-x.md * Update eip-x.md * Update eip-x.md * Update eip-x.md * Update authors * Update eip-x.md * Rename eip md * Rollback * Rename md * Add copyright * WIP: Re adding specificaiton * Update example solidity * Update eip-1753.md * Update eip-1753.md * Update eip-1753.md * Update eip-1753.md * Update eip-1753.md * Update eip-1753.md * Do not touch eip-X * Fix typo * EIP-1895: Improvements (ethereum#2153) * EIP-1895: Better constants and address range description Address @Arachnid's comments about presenting constants and how an address value is limited. * EIP-1985: Fix a typo * EIP-1985: Use "instructions" instead of "opcodes" * eip-225: mark as final (ethereum#1954) * set EIP875 to last call and correct errors (ethereum#1549) * Automatically merged updates to draft EIP(s) 1571 (ethereum#2168) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 999 (ethereum#2170) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 2159 (ethereum#2174) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1884 (ethereum#2175) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 2028 (ethereum#2176) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * EIP-1901: Add OpenRPC Service Discovery To JSON-RPC Services (ethereum#1901) * EIP-????: Add OpenRPC Service Discovery To JSON-RPC Services * fix: * fix(openrpc): add openrpc.json to eip assets * fix(openrpc): reference eip asset * Update EIPS/eip-1901.md - document link * Delete openrpc.json * Update eip-1901: move link to spec to top * fix(1901): preamble + author github usernames * fix(1901): add copyright info * fix(1901): add link to eth json rpc spec * fix(1901): type and category in preamble + spelling * fix(1901): motivation section and use vendored assets * fix(1901): add link to multi-geth OpenRPC discovery * fix(1901): change ordering + small fixes * fix(1901): typo * Automatically merged updates to draft EIP(s) 1108 (ethereum#2177) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * Automatically merged updates to draft EIP(s) 1102 (ethereum#2178) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing * EIP-1900 Decentralized Type System for EVM (ethereum#1900) * Automatically merged updates to draft EIP(s) 1884 (ethereum#2180) Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing
ilanolkies
pushed a commit
to ilanolkies/EIPs
that referenced
this pull request
Nov 12, 2019
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
eip: 1965
title: Method to check if a chainID is valid at a specific block Number
author: Ronan Sandford (@wighawag)
category: Core
type: Standards Track
discussions-to: https://ethereum-magicians.org/t/eip-1965-valid-chainid-for-specific-blocknumber-protect-all-forks/3181
status: Draft
created: 2019-04-20
requires: 155
Abstract
This EIP adds a precompile that returns whether a specific chainID (EIP-155 unique identifier) is valid at a specific blockNumber. ChainID are assumed to be valid up to the blockNumber at which they get replaced by a new chainID.
Motivation
EIP-155 proposes to use the chain ID to prevent the replay of transactions between different chains. It would be a great benefit to have the same possibility inside smart contracts when handling off-chain message signatures, especially for Layer 2 signature schemes using EIP-712.
EIP-1344 is attempting to solve this by giving smart contract access to the tip of the chainID history. This is insuficient as such value is changing. Hence why EIP-1344 describes a contract based solution to work arround the problem. It would be better to solve it in a simpler, cheaper and safer manner, removing the potential risk of misuse present in EIP-1344. Furthermore EIP-1344 can't protect replay properly for minority-led hardfork as the caching system cannot guarantee accuracy of the blockNumber at which the new chainID has been introduced.
EIP-1959 solves the issue of EIP-1344 but do not attempt to protect from minority-led hardfork as mentioned in the rationale. We consider this a mistake, since it remove some freedom to fork. We consider that all fork should be given equal oportunities. And while there will always be issues we can't solve for the majority that ignore a particular fork, users that decide to use both the minority-fork and the majority-chain should be protected from replay without having to wait for the majority chain to update its chainID.
Specification
Adds a new precompile which uses 2 argument : a 32 bytes value that represent the chainID to test and a 32 bytes value representing the blockNumber at which the chainID is tested. It return 0x1 if the chainID is valid at the specific blockNumber, 0x0 otherwise. Note that chainID are considered valid up to the blockNumber at which they are replaced. So they are valid for every blockNumber past their replacement.
The operation will costs no more than
G_blockhash
+G_verylow
to execute. This could be lower as chainID are only introduced during hardfork.The cost of the operation might need to be adjusted later as the number of chainID in the history of the chain grows.
Note though that the alternative to keep track of old chainID is to implement a smart contract based caching solution as EIP-1344 proposes comes with an overall higher gas cost and exhibit issues for minority-led hardfork (see Rationale section below). As such the gas cost is simply a necessary cost for the feature.
Rationale
The rationale at EIP-1959 applies here as well too :
The only difference is that this current proposal propose a solution to protect hardfork led by a minority.
To summarize there is 2 possible fork scenario :
The majority decide to make an hardfork but a minority disagree with it (ETC is such example). The fork is planned for block X. If the majority is not taking any action to automate the process of assigning a different chainID for both, the minority has plenty of time to plan for a chainID upgrade to happen at that same block X. Now if they do not do it, their users will face the problem that their messages will be replayable on the majority chain (Note that this is not true the other way around as we assume the majority decided to change the chainID). As such there is no reason that they’ll leave it that way.
A minority decide to create an hardfork that the majority disagree with (or simply ignore). Now, the same as above can happen but since we are talking about a minority there is a chance that the majority do not care about the minority. In that case, there would be no incentive for the majority to upgrade the chainID. This means that user of both side of the fork will have the messages meant for the majority chain replayable on the minority-chain (even if this one changed its chainID) unless extra precaution is taken.
The solution is to add the blockNumber representing the time at which the message was signed and use it as an argument to the opcode proposed here. This way, when the minority forks with a new chainID, the previous chainID become invalid from that time onward. So new messages destinated to the majority chain can't be replayed on the minority fork.
Backwards Compatibility
EIP-712 is still in draft but would need to be updated to include the blockNumber as part of the values that wallets need to verify for the protection of their users.
Since chainID and blockNumber will vary, they should not be part of the domain separator (meant to be generated once) but another part of the message.
While the pair could be optional for contract that do not care about replays or have other ways to prevent them, if chainID is present, the blockNumber must be present too. And if any of them is present, wallet need to ensure that the chainID is indeed the latest one of the chain being used, while the blockNumber is the latest one at the point of signing. During fork transition, the wallet can use the blockNumber to know which chainID to use.
References
This was previously suggested as part of EIP1959 discussion.
Copyright
Copyright and related rights waived via CC0.