From 8c5837a102a08da3016f820d2dc105c4652d6270 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9o=20Vincent?= <28714795+leovct@users.noreply.github.com> Date: Fri, 26 Jan 2024 16:15:06 +0100 Subject: [PATCH] feat: optimism eips diffs (#53) * feat: add optimism eips * chore: update eip diff component * chore: remove eip6049 from optimsim eips * chore: lint * feat: add optimism past bedrock hard forks * chore: change active hardforks of eip1559 on optimism * chore: rename mainnet `getHardforksFrom` into `getMainnetHardforksFrom` * feat: add EIP `category` property * feat: add EIP `type` * fix: remove consensus EIPs in the list of optimism EIPs * chore: mention the different implementation of PREVRANDAO on Optimism * chore: different implementation of eip 4895 on optimism * doc: update notes for optimism eips * fix: broken links * chore: lint * chore: remove EIP `type` * chore: same * chore: add fallback formatting for urls * chore: lint * fix: update link to new specs repo * chore: note correction and typo fixes --------- Co-authored-by: Matt Solomon --- src/chains/mainnet/eips.ts | 216 +++++++++++++----- src/chains/mainnet/hardforks.ts | 9 +- .../mainnet/vm/opcodes/arithmetic/add.ts | 4 +- .../mainnet/vm/opcodes/arithmetic/addmod.ts | 4 +- .../mainnet/vm/opcodes/arithmetic/div.ts | 4 +- .../mainnet/vm/opcodes/arithmetic/exp.ts | 4 +- .../mainnet/vm/opcodes/arithmetic/mod.ts | 4 +- .../mainnet/vm/opcodes/arithmetic/mul.ts | 4 +- .../mainnet/vm/opcodes/arithmetic/mulmod.ts | 4 +- .../mainnet/vm/opcodes/arithmetic/sdiv.ts | 4 +- .../vm/opcodes/arithmetic/signextend.ts | 4 +- .../mainnet/vm/opcodes/arithmetic/smod.ts | 4 +- .../mainnet/vm/opcodes/arithmetic/sub.ts | 4 +- src/chains/mainnet/vm/opcodes/bitwise/and.ts | 4 +- src/chains/mainnet/vm/opcodes/bitwise/byte.ts | 4 +- src/chains/mainnet/vm/opcodes/bitwise/not.ts | 4 +- src/chains/mainnet/vm/opcodes/bitwise/or.ts | 4 +- src/chains/mainnet/vm/opcodes/bitwise/sar.ts | 4 +- src/chains/mainnet/vm/opcodes/bitwise/shl.ts | 4 +- src/chains/mainnet/vm/opcodes/bitwise/shr.ts | 4 +- src/chains/mainnet/vm/opcodes/bitwise/xor.ts | 4 +- .../mainnet/vm/opcodes/block/blockhash.ts | 4 +- .../mainnet/vm/opcodes/block/chainid.ts | 4 +- .../mainnet/vm/opcodes/block/coinbase.ts | 4 +- .../mainnet/vm/opcodes/block/gaslimit.ts | 4 +- src/chains/mainnet/vm/opcodes/block/number.ts | 4 +- .../mainnet/vm/opcodes/block/prevrandao.ts | 4 +- .../mainnet/vm/opcodes/block/timestamp.ts | 4 +- .../mainnet/vm/opcodes/comparison/eq.ts | 4 +- .../mainnet/vm/opcodes/comparison/gt.ts | 4 +- .../mainnet/vm/opcodes/comparison/iszero.ts | 4 +- .../mainnet/vm/opcodes/comparison/lt.ts | 4 +- .../mainnet/vm/opcodes/comparison/sgt.ts | 4 +- .../mainnet/vm/opcodes/comparison/slt.ts | 4 +- .../mainnet/vm/opcodes/controlFlow/gas.ts | 4 +- .../mainnet/vm/opcodes/controlFlow/jump.ts | 4 +- .../vm/opcodes/controlFlow/jumpdest.ts | 4 +- .../mainnet/vm/opcodes/controlFlow/jumpi.ts | 4 +- .../mainnet/vm/opcodes/controlFlow/pc.ts | 4 +- .../mainnet/vm/opcodes/controlFlow/stop.ts | 4 +- .../mainnet/vm/opcodes/environment/address.ts | 4 +- .../mainnet/vm/opcodes/environment/balance.ts | 4 +- .../mainnet/vm/opcodes/environment/basefee.ts | 4 +- .../vm/opcodes/environment/calldatacopy.ts | 4 +- .../vm/opcodes/environment/calldataload.ts | 4 +- .../vm/opcodes/environment/calldatasize.ts | 4 +- .../mainnet/vm/opcodes/environment/caller.ts | 4 +- .../vm/opcodes/environment/callvalue.ts | 4 +- .../vm/opcodes/environment/codecopy.ts | 4 +- .../vm/opcodes/environment/codesize.ts | 4 +- .../vm/opcodes/environment/extcodecopy.ts | 4 +- .../vm/opcodes/environment/extcodehash.ts | 4 +- .../vm/opcodes/environment/extcodesize.ts | 4 +- .../vm/opcodes/environment/gasprice.ts | 4 +- .../mainnet/vm/opcodes/environment/origin.ts | 4 +- .../vm/opcodes/environment/returndatacopy.ts | 4 +- .../vm/opcodes/environment/returndatasize.ts | 4 +- .../vm/opcodes/environment/selfbalance.ts | 4 +- .../mainnet/vm/opcodes/keccak/keccak.ts | 4 +- src/chains/mainnet/vm/opcodes/log/log.ts | 4 +- src/chains/mainnet/vm/opcodes/memory/mload.ts | 4 +- src/chains/mainnet/vm/opcodes/memory/msize.ts | 4 +- .../mainnet/vm/opcodes/memory/mstore.ts | 4 +- .../mainnet/vm/opcodes/memory/mstore8.ts | 4 +- src/chains/mainnet/vm/opcodes/stack/dup.ts | 4 +- src/chains/mainnet/vm/opcodes/stack/pop.ts | 4 +- src/chains/mainnet/vm/opcodes/stack/push.ts | 6 +- src/chains/mainnet/vm/opcodes/stack/swap.ts | 4 +- .../mainnet/vm/opcodes/storage/sload.ts | 4 +- .../mainnet/vm/opcodes/storage/sstore.ts | 4 +- src/chains/mainnet/vm/opcodes/system/call.ts | 4 +- .../mainnet/vm/opcodes/system/callcode.ts | 4 +- .../mainnet/vm/opcodes/system/create.ts | 4 +- .../mainnet/vm/opcodes/system/create2.ts | 4 +- .../mainnet/vm/opcodes/system/delegatecall.ts | 4 +- .../mainnet/vm/opcodes/system/invalid.ts | 4 +- .../mainnet/vm/opcodes/system/return.ts | 4 +- .../mainnet/vm/opcodes/system/revert.ts | 4 +- .../mainnet/vm/opcodes/system/selfdestruct.ts | 4 +- .../mainnet/vm/opcodes/system/staticcall.ts | 4 +- src/chains/optimism/eips.ts | 73 ++++++ src/chains/optimism/hardforks.ts | 33 +++ src/chains/optimism/index.ts | 3 +- src/chains/optimism/signatureTypes.ts | 4 +- .../optimism/vm/opcodes/block/prevrandao.ts | 2 +- src/chains/optimism/vm/predeploys.ts | 3 +- src/components/diff/DiffEIPs.tsx | 26 ++- src/components/diff/DiffOpcodes.tsx | 16 +- src/components/diff/utils/Markdown.tsx | 25 +- src/components/diff/utils/format.tsx | 15 ++ src/types/eip.ts | 8 + 91 files changed, 500 insertions(+), 247 deletions(-) create mode 100644 src/chains/optimism/eips.ts create mode 100644 src/chains/optimism/hardforks.ts diff --git a/src/chains/mainnet/eips.ts b/src/chains/mainnet/eips.ts index 81c18db9..9cafdf44 100644 --- a/src/chains/mainnet/eips.ts +++ b/src/chains/mainnet/eips.ts @@ -1,11 +1,13 @@ -import { EIP, EIPState } from '@/types/eip'; -import { MainnetHardfork, getHardforksFrom } from './hardforks'; +import { EIP, EIPCategory, EIPState } from '@/types/eip'; +import { MainnetHardfork, getMainnetHardforksFrom } from './hardforks'; -const hardforksFromHomestead: string[] = getHardforksFrom(MainnetHardfork.Homestead); +const hardforksFromHomestead: string[] = getMainnetHardforksFrom(MainnetHardfork.Homestead); const homesteadEIPs: EIP[] = [ { number: 2, title: 'Homestead hard-fork changes', + category: EIPCategory.Execution, + status: EIPState.Final, activeHardforks: hardforksFromHomestead, references: ['https://eips.ethereum.org/EIPS/eip-2'], @@ -13,35 +15,38 @@ const homesteadEIPs: EIP[] = [ { number: 7, title: 'Delegatecall', + category: EIPCategory.Execution, + status: EIPState.Final, activeHardforks: hardforksFromHomestead, references: ['https://eips.ethereum.org/EIPS/eip-7'], }, - { - number: 8, - title: 'Devp2p forward compatibility requirements for Homestead', - status: EIPState.Final, - activeHardforks: hardforksFromHomestead, - references: ['https://eips.ethereum.org/EIPS/eip-8'], - }, ]; -const hardforksFromTangerineWhistle: string[] = getHardforksFrom(MainnetHardfork.TangerineWhistle); +const hardforksFromTangerineWhistle: string[] = getMainnetHardforksFrom( + MainnetHardfork.TangerineWhistle +); const tangerineWhistleEIPs: EIP[] = [ { number: 150, title: 'Gas cost changes for IO-heavy operations', + category: EIPCategory.Execution, + status: EIPState.Final, activeHardforks: hardforksFromTangerineWhistle, references: ['https://eips.ethereum.org/EIPS/eip-150'], }, ]; -const hardforksFromSpuriousDragon: string[] = getHardforksFrom(MainnetHardfork.SpuriousDragon); +const hardforksFromSpuriousDragon: string[] = getMainnetHardforksFrom( + MainnetHardfork.SpuriousDragon +); const spuriousDragonEIPS: EIP[] = [ { number: 155, title: 'Simple replay attack protection', + category: EIPCategory.Execution, + status: EIPState.Final, activeHardforks: hardforksFromSpuriousDragon, references: ['https://eips.ethereum.org/EIPS/eip-155'], @@ -49,6 +54,8 @@ const spuriousDragonEIPS: EIP[] = [ { number: 160, title: 'EXP cost increase', + category: EIPCategory.Execution, + status: EIPState.Final, activeHardforks: hardforksFromSpuriousDragon, references: ['https://eips.ethereum.org/EIPS/eip-160'], @@ -56,6 +63,8 @@ const spuriousDragonEIPS: EIP[] = [ { number: 161, title: 'State trie clearing (invariant-preserving alternative)', + category: EIPCategory.Execution, + status: EIPState.Final, activeHardforks: hardforksFromSpuriousDragon, references: ['https://eips.ethereum.org/EIPS/eip-161'], @@ -63,6 +72,8 @@ const spuriousDragonEIPS: EIP[] = [ { number: 170, title: 'Contract code size limit', + category: EIPCategory.Execution, + status: EIPState.Final, activeHardforks: hardforksFromSpuriousDragon, parameters: [ @@ -75,11 +86,13 @@ const spuriousDragonEIPS: EIP[] = [ }, ]; -const hardforksFromByzantium: string[] = getHardforksFrom(MainnetHardfork.Byzantium); +const hardforksFromByzantium: string[] = getMainnetHardforksFrom(MainnetHardfork.Byzantium); const byzantiumEIPs: EIP[] = [ { number: 100, title: 'Change difficulty adjustment to target mean block time including uncles', + category: EIPCategory.Execution, + status: EIPState.Final, activeHardforks: hardforksFromByzantium, references: ['https://eips.ethereum.org/EIPS/eip-100'], @@ -87,6 +100,8 @@ const byzantiumEIPs: EIP[] = [ { number: 140, title: 'REVERT instruction', + category: EIPCategory.Execution, + status: EIPState.Final, activeHardforks: hardforksFromByzantium, references: ['https://eips.ethereum.org/EIPS/eip-140'], @@ -95,6 +110,8 @@ const byzantiumEIPs: EIP[] = [ number: 196, title: 'Precompiled contracts for addition and scalar multiplication on the elliptic curve alt_bn128', + category: EIPCategory.Execution, + status: EIPState.Final, activeHardforks: hardforksFromByzantium, references: ['https://eips.ethereum.org/EIPS/eip-196'], @@ -102,6 +119,8 @@ const byzantiumEIPs: EIP[] = [ { number: 197, title: 'Precompiled contracts for optimal ate pairing check on the elliptic curve alt_bn128', + category: EIPCategory.Execution, + status: EIPState.Final, activeHardforks: hardforksFromByzantium, references: ['https://eips.ethereum.org/EIPS/eip-197'], @@ -109,6 +128,8 @@ const byzantiumEIPs: EIP[] = [ { number: 198, title: 'Big integer modular exponentiation', + category: EIPCategory.Execution, + status: EIPState.Final, activeHardforks: hardforksFromByzantium, parameters: [ @@ -122,6 +143,8 @@ const byzantiumEIPs: EIP[] = [ { number: 211, title: 'New opcodes: RETURNDATASIZE and RETURNDATACOPY', + category: EIPCategory.Execution, + status: EIPState.Final, activeHardforks: hardforksFromByzantium, references: ['https://eips.ethereum.org/EIPS/eip-211'], @@ -129,6 +152,8 @@ const byzantiumEIPs: EIP[] = [ { number: 214, title: 'New opcode STATICCALL', + category: EIPCategory.Execution, + status: EIPState.Final, activeHardforks: hardforksFromByzantium, references: ['https://eips.ethereum.org/EIPS/eip-214'], @@ -136,6 +161,8 @@ const byzantiumEIPs: EIP[] = [ { number: 649, title: 'Metropolis Difficulty Bomb Delay and Block Reward Reduction', + category: EIPCategory.Execution, + status: EIPState.Final, activeHardforks: hardforksFromByzantium, references: ['https://eips.ethereum.org/EIPS/eip-649'], @@ -143,6 +170,8 @@ const byzantiumEIPs: EIP[] = [ { number: 658, title: 'Embedding transaction status code in receipts', + category: EIPCategory.Execution, + status: EIPState.Final, activeHardforks: hardforksFromByzantium, references: ['https://eips.ethereum.org/EIPS/eip-658'], @@ -152,11 +181,15 @@ const byzantiumEIPs: EIP[] = [ // Both the Constantinople and Petersburg hard forks went live at the same time. The Petersburg hard // fork incorporates identical EIPs as the Constantinople hard fork, excluding the final EIP, EIP-1283. // As EIP-1283 was never implemented in a production environment, we have opted not to display it. -const hardforksFromConstantinople: string[] = getHardforksFrom(MainnetHardfork.Constantinople); +const hardforksFromConstantinople: string[] = getMainnetHardforksFrom( + MainnetHardfork.Constantinople +); const constantinopleEIPs: EIP[] = [ { number: 145, title: 'Bitwise shifting instructions in EVM', + category: EIPCategory.Execution, + status: EIPState.Final, activeHardforks: hardforksFromConstantinople, references: ['https://eips.ethereum.org/EIPS/eip-145'], @@ -164,6 +197,8 @@ const constantinopleEIPs: EIP[] = [ { number: 1014, title: 'Skinny CREATE2', + category: EIPCategory.Execution, + status: EIPState.Final, activeHardforks: hardforksFromConstantinople, references: ['https://eips.ethereum.org/EIPS/eip-1014'], @@ -171,6 +206,8 @@ const constantinopleEIPs: EIP[] = [ { number: 1052, title: 'EXTCODEHASH opcode', + category: EIPCategory.Execution, + status: EIPState.Final, activeHardforks: hardforksFromConstantinople, references: ['https://eips.ethereum.org/EIPS/eip-1052'], @@ -178,17 +215,21 @@ const constantinopleEIPs: EIP[] = [ { number: 1234, title: 'Constantinople Difficulty Bomb Delay and Block Reward Adjustment', + category: EIPCategory.Execution, + status: EIPState.Final, activeHardforks: hardforksFromConstantinople, references: ['https://eips.ethereum.org/EIPS/eip-1234'], }, ]; -const hardforksFromIstanbul: string[] = getHardforksFrom(MainnetHardfork.Istanbul); +const hardforksFromIstanbul: string[] = getMainnetHardforksFrom(MainnetHardfork.Istanbul); const istanbulEIPs: EIP[] = [ { number: 152, title: 'BAdd BLAKE2 compression function `F` precompile', + category: EIPCategory.Execution, + status: EIPState.Final, activeHardforks: hardforksFromIstanbul, references: ['https://eips.ethereum.org/EIPS/eip-152'], @@ -196,6 +237,8 @@ const istanbulEIPs: EIP[] = [ { number: 1108, title: 'Reduce alt_bn128 precompile gas costs', + category: EIPCategory.Execution, + status: EIPState.Final, activeHardforks: hardforksFromIstanbul, references: ['https://eips.ethereum.org/EIPS/eip-1108'], @@ -203,6 +246,8 @@ const istanbulEIPs: EIP[] = [ { number: 1344, title: 'ChainID opcode', + category: EIPCategory.Execution, + status: EIPState.Final, activeHardforks: hardforksFromIstanbul, references: ['https://eips.ethereum.org/EIPS/eip-1344'], @@ -210,6 +255,8 @@ const istanbulEIPs: EIP[] = [ { number: 1884, title: 'Repricing for trie-size-dependent opcodes', + category: EIPCategory.Execution, + status: EIPState.Final, activeHardforks: hardforksFromIstanbul, references: ['https://eips.ethereum.org/EIPS/eip-1884'], @@ -217,6 +264,8 @@ const istanbulEIPs: EIP[] = [ { number: 2028, title: 'Transaction data gas cost reduction', + category: EIPCategory.Execution, + status: EIPState.Final, activeHardforks: hardforksFromIstanbul, references: ['https://eips.ethereum.org/EIPS/eip-2028'], @@ -224,28 +273,34 @@ const istanbulEIPs: EIP[] = [ { number: 2200, title: 'Structured Definitions for Net Gas Metering', + category: EIPCategory.Execution, + status: EIPState.Final, activeHardforks: hardforksFromIstanbul, references: ['https://eips.ethereum.org/EIPS/eip-2200'], }, ]; -const hardforksFromMuirGlacier: string[] = getHardforksFrom(MainnetHardfork.MuirGlacier); +const hardforksFromMuirGlacier: string[] = getMainnetHardforksFrom(MainnetHardfork.MuirGlacier); const muirGlacierEIPs: EIP[] = [ { number: 2384, title: 'Muir Glacier Difficulty Bomb Delay', + category: EIPCategory.Execution, + status: EIPState.Final, activeHardforks: hardforksFromMuirGlacier, references: ['https://eips.ethereum.org/EIPS/eip-2384'], }, ]; -const hardforksFromBerlin: string[] = getHardforksFrom(MainnetHardfork.Berlin); +const hardforksFromBerlin: string[] = getMainnetHardforksFrom(MainnetHardfork.Berlin); const berlinEIPs: EIP[] = [ { number: 2565, title: 'ModExp Gas Cost', + category: EIPCategory.Execution, + status: EIPState.Final, activeHardforks: hardforksFromBerlin, references: ['https://eips.ethereum.org/EIPS/eip-2565'], @@ -253,6 +308,8 @@ const berlinEIPs: EIP[] = [ { number: 2929, title: 'Gas cost increases for state access opcodes', + category: EIPCategory.Execution, + status: EIPState.Final, activeHardforks: hardforksFromBerlin, parameters: [ @@ -274,6 +331,8 @@ const berlinEIPs: EIP[] = [ { number: 2718, title: 'Typed Transaction Envelope', + category: EIPCategory.Execution, + status: EIPState.Final, activeHardforks: hardforksFromBerlin, references: ['https://eips.ethereum.org/EIPS/eip-2718'], @@ -281,6 +340,8 @@ const berlinEIPs: EIP[] = [ { number: 2930, title: 'Optional access lists', + category: EIPCategory.Execution, + status: EIPState.Final, activeHardforks: hardforksFromBerlin, parameters: [ @@ -297,32 +358,39 @@ const berlinEIPs: EIP[] = [ }, ]; -const hardforksFromLondon: string[] = getHardforksFrom(MainnetHardfork.London); +const hardforksFromLondon: string[] = getMainnetHardforksFrom(MainnetHardfork.London); + +export const eip1559: EIP = { + number: 1559, + title: 'Fee market change for ETH 1.0 chain', + category: EIPCategory.Execution, + + status: EIPState.Final, + activeHardforks: hardforksFromLondon, + parameters: [ + { + name: 'INITIAL_BASE_FEE', + value: 1000000000, + }, + { + name: 'BASE_FEE_MAX_CHANGE_DENOMINATOR', + value: 8, + }, + { + name: 'ELASTICITY_MULTIPLIER', + value: 2, + }, + ], + references: ['https://eips.ethereum.org/EIPS/eip-1559'], +}; + const londonEIPs: EIP[] = [ - { - number: 1559, - title: 'Fee market change for ETH 1.0 chain', - status: EIPState.Final, - activeHardforks: hardforksFromLondon, - parameters: [ - { - name: 'INITIAL_BASE_FEE', - value: 1000000000, - }, - { - name: 'BASE_FEE_MAX_CHANGE_DENOMINATOR', - value: 8, - }, - { - name: 'ELASTICITY_MULTIPLIER', - value: 2, - }, - ], - references: ['https://eips.ethereum.org/EIPS/eip-1559'], - }, + eip1559, { number: 3198, title: 'BASEFEE opcode', + category: EIPCategory.Execution, + status: EIPState.Final, activeHardforks: hardforksFromLondon, references: ['https://eips.ethereum.org/EIPS/eip-3198'], @@ -330,6 +398,8 @@ const londonEIPs: EIP[] = [ { number: 3529, title: 'Reduction in refunds', + category: EIPCategory.Execution, + status: EIPState.Final, activeHardforks: hardforksFromLondon, parameters: [ @@ -343,6 +413,8 @@ const londonEIPs: EIP[] = [ { number: 3541, title: 'Reject new contract code starting with the 0xEF byte', + category: EIPCategory.Execution, + status: EIPState.Final, activeHardforks: hardforksFromLondon, references: ['https://eips.ethereum.org/EIPS/eip-3541'], @@ -350,39 +422,61 @@ const londonEIPs: EIP[] = [ { number: 3554, title: 'Difficulty Bomb Delay to December 2021', + category: EIPCategory.Execution, + status: EIPState.Final, activeHardforks: hardforksFromLondon, references: ['https://eips.ethereum.org/EIPS/eip-3554'], }, ]; -const hardforksFromArrowGlacier: string[] = getHardforksFrom(MainnetHardfork.ArrowGlacier); +const hardforksFromArrowGlacier: string[] = getMainnetHardforksFrom(MainnetHardfork.ArrowGlacier); const arrowGlacierEIPs: EIP[] = [ { number: 4345, title: 'Difficulty Bomb Delay to June 2022', + category: EIPCategory.Execution, + status: EIPState.Final, activeHardforks: hardforksFromArrowGlacier, references: ['https://eips.ethereum.org/EIPS/eip-4345'], }, ]; -const hardforksFromGrayGlacier: string[] = getHardforksFrom(MainnetHardfork.GrayGlacier); +const hardforksFromGrayGlacier: string[] = getMainnetHardforksFrom(MainnetHardfork.GrayGlacier); const grayGlacierEIPs: EIP[] = [ { number: 5133, title: 'Delaying Difficulty Bomb to mid-September 2022', + category: EIPCategory.Execution, + status: EIPState.Final, activeHardforks: hardforksFromGrayGlacier, references: ['https://eips.ethereum.org/EIPS/eip-5133'], }, ]; -const hardforksFromParis: string[] = getHardforksFrom(MainnetHardfork.Paris); -const parisEIPs: EIP[] = [ +const hardforksFromParis: string[] = getMainnetHardforksFrom(MainnetHardfork.Paris); + +export const eip4399: EIP = { + number: 4399, + title: 'Supplant DIFFICULTY opcode with PREVRANDAO', + category: EIPCategory.Execution, + + status: EIPState.Final, + activeHardforks: hardforksFromParis, + notes: [ + "PREVRANDAO returns the random output of the L1 beacon chain's oracle from approximately 5 L1 blocks ago.", + ], + references: ['https://eips.ethereum.org/EIPS/eip-4399'], +}; + +export const parisEIPs: EIP[] = [ { number: 3675, title: 'Upgrade consensus to Proof-of-Stake', + category: EIPCategory.Consensus, + status: EIPState.Final, activeHardforks: hardforksFromParis, parameters: [ @@ -393,20 +487,25 @@ const parisEIPs: EIP[] = [ ], references: ['https://eips.ethereum.org/EIPS/eip-3675'], }, - { - number: 4399, - title: 'Supplant DIFFICULTY opcode with PREVRANDAO', - status: EIPState.Final, - activeHardforks: hardforksFromParis, - references: ['https://eips.ethereum.org/EIPS/eip-4399'], - }, + eip4399, ]; -const hardforksFromShanghai: string[] = getHardforksFrom(MainnetHardfork.Shanghai); -const shanghaiEIps: EIP[] = [ +const hardforksFromShanghai: string[] = getMainnetHardforksFrom(MainnetHardfork.Shanghai); + +export const eip4895: EIP = { + number: 4895, + title: 'Beacon chain push withdrawals as operations', + category: EIPCategory.Execution, + status: EIPState.Final, + activeHardforks: hardforksFromShanghai, + references: ['https://eips.ethereum.org/EIPS/eip-4895'], +}; + +const shanghaiEIPs: EIP[] = [ { number: 3651, title: 'Warm COINBASE', + category: EIPCategory.Execution, status: EIPState.Final, activeHardforks: hardforksFromShanghai, references: ['https://eips.ethereum.org/EIPS/eip-3651'], @@ -414,6 +513,7 @@ const shanghaiEIps: EIP[] = [ { number: 3855, title: 'PUSH0 instruction', + category: EIPCategory.Execution, status: EIPState.Final, activeHardforks: hardforksFromShanghai, references: ['https://eips.ethereum.org/EIPS/eip-3855'], @@ -421,6 +521,8 @@ const shanghaiEIps: EIP[] = [ { number: 3860, title: 'Limit and meter initcode', + category: EIPCategory.Execution, + status: EIPState.Final, activeHardforks: hardforksFromShanghai, parameters: [ @@ -435,13 +537,7 @@ const shanghaiEIps: EIP[] = [ ], references: ['https://eips.ethereum.org/EIPS/eip-3860'], }, - { - number: 4895, - title: 'Beacon chain push withdrawals as operations', - status: EIPState.Final, - activeHardforks: hardforksFromShanghai, - references: ['https://eips.ethereum.org/EIPS/eip-4895'], - }, + eip4895, ]; export const eips: EIP[] = [ @@ -457,5 +553,5 @@ export const eips: EIP[] = [ ...arrowGlacierEIPs, ...grayGlacierEIPs, ...parisEIPs, - ...shanghaiEIps, + ...shanghaiEIPs, ]; diff --git a/src/chains/mainnet/hardforks.ts b/src/chains/mainnet/hardforks.ts index 872b80e6..8133a8c3 100644 --- a/src/chains/mainnet/hardforks.ts +++ b/src/chains/mainnet/hardforks.ts @@ -20,11 +20,14 @@ export enum MainnetHardfork { export const CURRENT_MAINNET_HARDFORK = MainnetHardfork.Shanghai; // Retrieve all the hard forks from the starting hard fork to the current mainnet hard fork. -export const getHardforksFrom = (startingHardfork: MainnetHardfork): string[] => - getHardforksFromTo(startingHardfork, CURRENT_MAINNET_HARDFORK); +export const getMainnetHardforksFrom = (startingHardfork: MainnetHardfork): string[] => + getMainnetHardforksFromTo(startingHardfork, CURRENT_MAINNET_HARDFORK); // Retrieve an array of hardforks from a starting hardfork to an ending hardfork (inclusive). -export const getHardforksFromTo = (start: MainnetHardfork, end: MainnetHardfork): string[] => { +export const getMainnetHardforksFromTo = ( + start: MainnetHardfork, + end: MainnetHardfork +): string[] => { if (start > end) { throw new Error( `Error: the starting hard fork ${MainnetHardfork[start]} (index: ${start}) occured after the ending hard fork ${MainnetHardfork[end]} (index: ${end}). Arguments are wrong or must have been reversed.` diff --git a/src/chains/mainnet/vm/opcodes/arithmetic/add.ts b/src/chains/mainnet/vm/opcodes/arithmetic/add.ts index bce952ff..49315cfa 100644 --- a/src/chains/mainnet/vm/opcodes/arithmetic/add.ts +++ b/src/chains/mainnet/vm/opcodes/arithmetic/add.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -46,5 +46,5 @@ export const add: Opcode = { evmCodesOpcodesLink(0x01), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Arithmetic, 30), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/arithmetic/addmod.ts b/src/chains/mainnet/vm/opcodes/arithmetic/addmod.ts index 4f6c1a93..c99fa5a3 100644 --- a/src/chains/mainnet/vm/opcodes/arithmetic/addmod.ts +++ b/src/chains/mainnet/vm/opcodes/arithmetic/addmod.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -52,5 +52,5 @@ export const addmod: Opcode = { evmCodesOpcodesLink(0x08), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Arithmetic, 234), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/arithmetic/div.ts b/src/chains/mainnet/vm/opcodes/arithmetic/div.ts index 8d025c54..c8d03d29 100644 --- a/src/chains/mainnet/vm/opcodes/arithmetic/div.ts +++ b/src/chains/mainnet/vm/opcodes/arithmetic/div.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -47,5 +47,5 @@ export const div: Opcode = { evmCodesOpcodesLink(0x04), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Arithmetic, 111), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/arithmetic/exp.ts b/src/chains/mainnet/vm/opcodes/arithmetic/exp.ts index 0cc85752..f9186478 100644 --- a/src/chains/mainnet/vm/opcodes/arithmetic/exp.ts +++ b/src/chains/mainnet/vm/opcodes/arithmetic/exp.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -61,5 +61,5 @@ export const exp: Opcode = { evmCodesOpcodesLink(0x0a), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Arithmetic, 296), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/arithmetic/mod.ts b/src/chains/mainnet/vm/opcodes/arithmetic/mod.ts index fdf07795..31b28fe7 100644 --- a/src/chains/mainnet/vm/opcodes/arithmetic/mod.ts +++ b/src/chains/mainnet/vm/opcodes/arithmetic/mod.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -47,5 +47,5 @@ export const mod: Opcode = { evmCodesOpcodesLink(0x06), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Arithmetic, 174), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/arithmetic/mul.ts b/src/chains/mainnet/vm/opcodes/arithmetic/mul.ts index 6f33c0cc..d770c8ca 100644 --- a/src/chains/mainnet/vm/opcodes/arithmetic/mul.ts +++ b/src/chains/mainnet/vm/opcodes/arithmetic/mul.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -46,5 +46,5 @@ export const mul: Opcode = { evmCodesOpcodesLink(0x02), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Arithmetic, 84), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/arithmetic/mulmod.ts b/src/chains/mainnet/vm/opcodes/arithmetic/mulmod.ts index a25816c5..c9cd44ff 100644 --- a/src/chains/mainnet/vm/opcodes/arithmetic/mulmod.ts +++ b/src/chains/mainnet/vm/opcodes/arithmetic/mulmod.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -56,5 +56,5 @@ export const mulmod: Opcode = { evmCodesOpcodesLink(0x08), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Arithmetic, 265), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/arithmetic/sdiv.ts b/src/chains/mainnet/vm/opcodes/arithmetic/sdiv.ts index afd900cc..582e8a4e 100644 --- a/src/chains/mainnet/vm/opcodes/arithmetic/sdiv.ts +++ b/src/chains/mainnet/vm/opcodes/arithmetic/sdiv.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -53,5 +53,5 @@ export const sdiv: Opcode = { evmCodesOpcodesLink(0x05), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Arithmetic, 141), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/arithmetic/signextend.ts b/src/chains/mainnet/vm/opcodes/arithmetic/signextend.ts index 1e5f2281..e42540cc 100644 --- a/src/chains/mainnet/vm/opcodes/arithmetic/signextend.ts +++ b/src/chains/mainnet/vm/opcodes/arithmetic/signextend.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -46,5 +46,5 @@ export const signextend: Opcode = { evmCodesOpcodesLink(0x0b), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Arithmetic, 329), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/arithmetic/smod.ts b/src/chains/mainnet/vm/opcodes/arithmetic/smod.ts index 475c297b..ff4e942b 100644 --- a/src/chains/mainnet/vm/opcodes/arithmetic/smod.ts +++ b/src/chains/mainnet/vm/opcodes/arithmetic/smod.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -53,5 +53,5 @@ export const smod: Opcode = { evmCodesOpcodesLink(0x07), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Arithmetic, 174), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/arithmetic/sub.ts b/src/chains/mainnet/vm/opcodes/arithmetic/sub.ts index 015a2419..bce98930 100644 --- a/src/chains/mainnet/vm/opcodes/arithmetic/sub.ts +++ b/src/chains/mainnet/vm/opcodes/arithmetic/sub.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -46,5 +46,5 @@ export const sub: Opcode = { evmCodesOpcodesLink(0x03), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Arithmetic, 57), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/bitwise/and.ts b/src/chains/mainnet/vm/opcodes/bitwise/and.ts index 525c3152..bbd768a9 100644 --- a/src/chains/mainnet/vm/opcodes/bitwise/and.ts +++ b/src/chains/mainnet/vm/opcodes/bitwise/and.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -46,5 +46,5 @@ export const and: Opcode = { evmCodesOpcodesLink(0x16), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Bitwise, 22), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/bitwise/byte.ts b/src/chains/mainnet/vm/opcodes/bitwise/byte.ts index 3ceb689b..7b313921 100644 --- a/src/chains/mainnet/vm/opcodes/bitwise/byte.ts +++ b/src/chains/mainnet/vm/opcodes/bitwise/byte.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -47,5 +47,5 @@ export const byte: Opcode = { evmCodesOpcodesLink(0x1a), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Bitwise, 121), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/bitwise/not.ts b/src/chains/mainnet/vm/opcodes/bitwise/not.ts index 42233564..9a04685c 100644 --- a/src/chains/mainnet/vm/opcodes/bitwise/not.ts +++ b/src/chains/mainnet/vm/opcodes/bitwise/not.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -36,5 +36,5 @@ export const not: Opcode = { evmCodesOpcodesLink(0x19), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Bitwise, 97), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/bitwise/or.ts b/src/chains/mainnet/vm/opcodes/bitwise/or.ts index 20892d04..124f425d 100644 --- a/src/chains/mainnet/vm/opcodes/bitwise/or.ts +++ b/src/chains/mainnet/vm/opcodes/bitwise/or.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -46,5 +46,5 @@ export const or: Opcode = { evmCodesOpcodesLink(0x17), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Bitwise, 47), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/bitwise/sar.ts b/src/chains/mainnet/vm/opcodes/bitwise/sar.ts index 4a7e0ea2..8f9b7ead 100644 --- a/src/chains/mainnet/vm/opcodes/bitwise/sar.ts +++ b/src/chains/mainnet/vm/opcodes/bitwise/sar.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -49,5 +49,5 @@ export const sar: Opcode = { evmCodesOpcodesLink(0x1d), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Bitwise, 213), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Constantinople), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Constantinople), }; diff --git a/src/chains/mainnet/vm/opcodes/bitwise/shl.ts b/src/chains/mainnet/vm/opcodes/bitwise/shl.ts index 2f480883..5baebd7d 100644 --- a/src/chains/mainnet/vm/opcodes/bitwise/shl.ts +++ b/src/chains/mainnet/vm/opcodes/bitwise/shl.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -49,5 +49,5 @@ export const shl: Opcode = { evmCodesOpcodesLink(0x1b), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Bitwise, 157), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Constantinople), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Constantinople), }; diff --git a/src/chains/mainnet/vm/opcodes/bitwise/shr.ts b/src/chains/mainnet/vm/opcodes/bitwise/shr.ts index 07f9057b..9d80baf0 100644 --- a/src/chains/mainnet/vm/opcodes/bitwise/shr.ts +++ b/src/chains/mainnet/vm/opcodes/bitwise/shr.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -49,5 +49,5 @@ export const shr: Opcode = { evmCodesOpcodesLink(0x1c), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Bitwise, 185), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Constantinople), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Constantinople), }; diff --git a/src/chains/mainnet/vm/opcodes/bitwise/xor.ts b/src/chains/mainnet/vm/opcodes/bitwise/xor.ts index 17818c65..eadc56b0 100644 --- a/src/chains/mainnet/vm/opcodes/bitwise/xor.ts +++ b/src/chains/mainnet/vm/opcodes/bitwise/xor.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -46,5 +46,5 @@ export const xor: Opcode = { evmCodesOpcodesLink(0x18), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Bitwise, 72), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/block/blockhash.ts b/src/chains/mainnet/vm/opcodes/block/blockhash.ts index 0ed5b983..c62212d2 100644 --- a/src/chains/mainnet/vm/opcodes/block/blockhash.ts +++ b/src/chains/mainnet/vm/opcodes/block/blockhash.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, evmCodesOpcodesLink } from '@/lib/opcodes'; import { Opcode } from '@/types'; @@ -32,5 +32,5 @@ export const blockhash: Opcode = { evmCodesOpcodesLink(0x40), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Block, 22), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/block/chainid.ts b/src/chains/mainnet/vm/opcodes/block/chainid.ts index d748360b..864c735e 100644 --- a/src/chains/mainnet/vm/opcodes/block/chainid.ts +++ b/src/chains/mainnet/vm/opcodes/block/chainid.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -29,5 +29,5 @@ export const chainid: Opcode = { evmCodesOpcodesLink(0x46), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Block, 222), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Istanbul), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Istanbul), }; diff --git a/src/chains/mainnet/vm/opcodes/block/coinbase.ts b/src/chains/mainnet/vm/opcodes/block/coinbase.ts index 2c1f7a32..6cc1d0e3 100644 --- a/src/chains/mainnet/vm/opcodes/block/coinbase.ts +++ b/src/chains/mainnet/vm/opcodes/block/coinbase.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, evmCodesOpcodesLink } from '@/lib/opcodes'; import { Opcode } from '@/types'; @@ -23,5 +23,5 @@ export const coinbase: Opcode = { evmCodesOpcodesLink(0x41), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Block, 60), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/block/gaslimit.ts b/src/chains/mainnet/vm/opcodes/block/gaslimit.ts index 56e310dd..3dce5a64 100644 --- a/src/chains/mainnet/vm/opcodes/block/gaslimit.ts +++ b/src/chains/mainnet/vm/opcodes/block/gaslimit.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, evmCodesOpcodesLink } from '@/lib/opcodes'; import { Opcode } from '@/types'; @@ -23,5 +23,5 @@ export const gaslimit: Opcode = { evmCodesOpcodesLink(0x45), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Block, 190), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/block/number.ts b/src/chains/mainnet/vm/opcodes/block/number.ts index f972e336..9d0600ad 100644 --- a/src/chains/mainnet/vm/opcodes/block/number.ts +++ b/src/chains/mainnet/vm/opcodes/block/number.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, evmCodesOpcodesLink } from '@/lib/opcodes'; import { Opcode } from '@/types'; @@ -23,5 +23,5 @@ export const number: Opcode = { evmCodesOpcodesLink(0x43), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Block, 126), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/block/prevrandao.ts b/src/chains/mainnet/vm/opcodes/block/prevrandao.ts index 5eb1b8d4..becb6f08 100644 --- a/src/chains/mainnet/vm/opcodes/block/prevrandao.ts +++ b/src/chains/mainnet/vm/opcodes/block/prevrandao.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, evmCodesOpcodesLink } from '@/lib/opcodes'; import { Opcode } from '@/types'; @@ -29,5 +29,5 @@ export const prevrandao: Opcode = { ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Block, 158), 'https://eips.ethereum.org/EIPS/eip-4399', ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/block/timestamp.ts b/src/chains/mainnet/vm/opcodes/block/timestamp.ts index f547485b..da78109c 100644 --- a/src/chains/mainnet/vm/opcodes/block/timestamp.ts +++ b/src/chains/mainnet/vm/opcodes/block/timestamp.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, evmCodesOpcodesLink } from '@/lib/opcodes'; import { Opcode } from '@/types'; @@ -23,5 +23,5 @@ export const timestamp: Opcode = { evmCodesOpcodesLink(0x42), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Block, 93), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/comparison/eq.ts b/src/chains/mainnet/vm/opcodes/comparison/eq.ts index d9a98366..bb12760d 100644 --- a/src/chains/mainnet/vm/opcodes/comparison/eq.ts +++ b/src/chains/mainnet/vm/opcodes/comparison/eq.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -47,5 +47,5 @@ export const eq: Opcode = { evmCodesOpcodesLink(0x14), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Comparison, 128), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/comparison/gt.ts b/src/chains/mainnet/vm/opcodes/comparison/gt.ts index 878826c0..3ea09b96 100644 --- a/src/chains/mainnet/vm/opcodes/comparison/gt.ts +++ b/src/chains/mainnet/vm/opcodes/comparison/gt.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -47,5 +47,5 @@ export const gt: Opcode = { evmCodesOpcodesLink(0x11), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Comparison, 75), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/comparison/iszero.ts b/src/chains/mainnet/vm/opcodes/comparison/iszero.ts index a493759c..2116ff56 100644 --- a/src/chains/mainnet/vm/opcodes/comparison/iszero.ts +++ b/src/chains/mainnet/vm/opcodes/comparison/iszero.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -43,5 +43,5 @@ export const iszero: Opcode = { evmCodesOpcodesLink(0x15), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Comparison, 155), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/comparison/lt.ts b/src/chains/mainnet/vm/opcodes/comparison/lt.ts index 70da4639..24996b7f 100644 --- a/src/chains/mainnet/vm/opcodes/comparison/lt.ts +++ b/src/chains/mainnet/vm/opcodes/comparison/lt.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -47,5 +47,5 @@ export const lt: Opcode = { evmCodesOpcodesLink(0x10), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Comparison, 22), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/comparison/sgt.ts b/src/chains/mainnet/vm/opcodes/comparison/sgt.ts index 8ceec1a9..0c5c94e9 100644 --- a/src/chains/mainnet/vm/opcodes/comparison/sgt.ts +++ b/src/chains/mainnet/vm/opcodes/comparison/sgt.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -47,5 +47,5 @@ export const sgt: Opcode = { evmCodesOpcodesLink(0x13), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Comparison, 102), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/comparison/slt.ts b/src/chains/mainnet/vm/opcodes/comparison/slt.ts index e81fc027..29482994 100644 --- a/src/chains/mainnet/vm/opcodes/comparison/slt.ts +++ b/src/chains/mainnet/vm/opcodes/comparison/slt.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -48,5 +48,5 @@ export const slt: Opcode = { evmCodesOpcodesLink(0x12), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Comparison, 49), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/controlFlow/gas.ts b/src/chains/mainnet/vm/opcodes/controlFlow/gas.ts index 492fbe08..d82e9fbf 100644 --- a/src/chains/mainnet/vm/opcodes/controlFlow/gas.ts +++ b/src/chains/mainnet/vm/opcodes/controlFlow/gas.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -27,5 +27,5 @@ export const gas: Omit = { evmCodesOpcodesLink(0x5a), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Arithmetic, 125), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/controlFlow/jump.ts b/src/chains/mainnet/vm/opcodes/controlFlow/jump.ts index 786bf1d0..d45aa301 100644 --- a/src/chains/mainnet/vm/opcodes/controlFlow/jump.ts +++ b/src/chains/mainnet/vm/opcodes/controlFlow/jump.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -34,5 +34,5 @@ export const jump: Omit = { evmCodesOpcodesLink(0x56), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Arithmetic, 45), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/controlFlow/jumpdest.ts b/src/chains/mainnet/vm/opcodes/controlFlow/jumpdest.ts index 6c90d880..7930afc1 100644 --- a/src/chains/mainnet/vm/opcodes/controlFlow/jumpdest.ts +++ b/src/chains/mainnet/vm/opcodes/controlFlow/jumpdest.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, evmCodesOpcodesLink } from '@/lib/opcodes'; import { Opcode } from '@/types'; @@ -14,5 +14,5 @@ export const jumpdest: Omit = { evmCodesOpcodesLink(0x5b), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Arithmetic, 149), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/controlFlow/jumpi.ts b/src/chains/mainnet/vm/opcodes/controlFlow/jumpi.ts index 3d670e6d..583257d7 100644 --- a/src/chains/mainnet/vm/opcodes/controlFlow/jumpi.ts +++ b/src/chains/mainnet/vm/opcodes/controlFlow/jumpi.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -39,5 +39,5 @@ export const jumpi: Omit = { evmCodesOpcodesLink(0x57), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Arithmetic, 70), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/controlFlow/pc.ts b/src/chains/mainnet/vm/opcodes/controlFlow/pc.ts index 805b4d51..aa3bd940 100644 --- a/src/chains/mainnet/vm/opcodes/controlFlow/pc.ts +++ b/src/chains/mainnet/vm/opcodes/controlFlow/pc.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -30,5 +30,5 @@ export const pc: Omit = { evmCodesOpcodesLink(0x58), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Arithmetic, 101), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/controlFlow/stop.ts b/src/chains/mainnet/vm/opcodes/controlFlow/stop.ts index 213a755b..4e2617b7 100644 --- a/src/chains/mainnet/vm/opcodes/controlFlow/stop.ts +++ b/src/chains/mainnet/vm/opcodes/controlFlow/stop.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, evmCodesOpcodesLink } from '@/lib/opcodes'; import { Opcode } from '@/types'; @@ -14,5 +14,5 @@ export const stop: Omit = { evmCodesOpcodesLink(0x00), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.ControlFlow, 23), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/environment/address.ts b/src/chains/mainnet/vm/opcodes/environment/address.ts index 42134abe..93f55e72 100644 --- a/src/chains/mainnet/vm/opcodes/environment/address.ts +++ b/src/chains/mainnet/vm/opcodes/environment/address.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -29,5 +29,5 @@ export const address: Opcode = { evmCodesOpcodesLink(0x30), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Environment, 40), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/environment/balance.ts b/src/chains/mainnet/vm/opcodes/environment/balance.ts index 3625e7f9..81e2c3ac 100644 --- a/src/chains/mainnet/vm/opcodes/environment/balance.ts +++ b/src/chains/mainnet/vm/opcodes/environment/balance.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -47,5 +47,5 @@ export const balance: Opcode = { evmCodesOpcodesLink(0x31), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Environment, 63), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/environment/basefee.ts b/src/chains/mainnet/vm/opcodes/environment/basefee.ts index 4e4c1ab5..269d6d8b 100644 --- a/src/chains/mainnet/vm/opcodes/environment/basefee.ts +++ b/src/chains/mainnet/vm/opcodes/environment/basefee.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -29,5 +29,5 @@ export const basefee: Opcode = { evmCodesOpcodesLink(0x48), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Environment, 517), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.London), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.London), }; diff --git a/src/chains/mainnet/vm/opcodes/environment/calldatacopy.ts b/src/chains/mainnet/vm/opcodes/environment/calldatacopy.ts index ae9df34f..8e7e714f 100644 --- a/src/chains/mainnet/vm/opcodes/environment/calldatacopy.ts +++ b/src/chains/mainnet/vm/opcodes/environment/calldatacopy.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -92,5 +92,5 @@ export const calldatacopy: Opcode = { '[evm.codes, Memory Expansion](https://www.evm.codes/about#memoryexpansion)', ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Environment, 212), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/environment/calldataload.ts b/src/chains/mainnet/vm/opcodes/environment/calldataload.ts index 41cd3d65..14c4bcc9 100644 --- a/src/chains/mainnet/vm/opcodes/environment/calldataload.ts +++ b/src/chains/mainnet/vm/opcodes/environment/calldataload.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -45,5 +45,5 @@ export const calldataload: Opcode = { evmCodesOpcodesLink(0x35), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Environment, 163), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/environment/calldatasize.ts b/src/chains/mainnet/vm/opcodes/environment/calldatasize.ts index 09e6e278..2f7918d0 100644 --- a/src/chains/mainnet/vm/opcodes/environment/calldatasize.ts +++ b/src/chains/mainnet/vm/opcodes/environment/calldatasize.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -30,5 +30,5 @@ export const calldatasize: Opcode = { evmCodesOpcodesLink(0x36), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Environment, 189), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/environment/caller.ts b/src/chains/mainnet/vm/opcodes/environment/caller.ts index d1982d19..e04bdbfe 100644 --- a/src/chains/mainnet/vm/opcodes/environment/caller.ts +++ b/src/chains/mainnet/vm/opcodes/environment/caller.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -30,5 +30,5 @@ export const caller: Opcode = { evmCodesOpcodesLink(0x33), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Environment, 117), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/environment/callvalue.ts b/src/chains/mainnet/vm/opcodes/environment/callvalue.ts index d409ca81..d46c172e 100644 --- a/src/chains/mainnet/vm/opcodes/environment/callvalue.ts +++ b/src/chains/mainnet/vm/opcodes/environment/callvalue.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -29,5 +29,5 @@ export const callvalue: Opcode = { evmCodesOpcodesLink(0x34), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Environment, 140), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/environment/codecopy.ts b/src/chains/mainnet/vm/opcodes/environment/codecopy.ts index 5a000560..9c50a0e9 100644 --- a/src/chains/mainnet/vm/opcodes/environment/codecopy.ts +++ b/src/chains/mainnet/vm/opcodes/environment/codecopy.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -93,5 +93,5 @@ export const codecopy: Opcode = { '[evm.codes, Memory Expansion](https://www.evm.codes/about#memoryexpansion)', ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Environment, 270), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/environment/codesize.ts b/src/chains/mainnet/vm/opcodes/environment/codesize.ts index 99c702f7..ac5b9a8a 100644 --- a/src/chains/mainnet/vm/opcodes/environment/codesize.ts +++ b/src/chains/mainnet/vm/opcodes/environment/codesize.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -34,5 +34,5 @@ export const codesize: Opcode = { evmCodesOpcodesLink(0x38), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Environment, 247), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/environment/extcodecopy.ts b/src/chains/mainnet/vm/opcodes/environment/extcodecopy.ts index 9dc6b937..81a379f1 100644 --- a/src/chains/mainnet/vm/opcodes/environment/extcodecopy.ts +++ b/src/chains/mainnet/vm/opcodes/environment/extcodecopy.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -102,5 +102,5 @@ export const extcodecopy: Opcode = { '[evm.codes, Memory Expansion](https://www.evm.codes/about#memoryexpansion)', ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Environment, 350), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/environment/extcodehash.ts b/src/chains/mainnet/vm/opcodes/environment/extcodehash.ts index 7156ab70..941a3087 100644 --- a/src/chains/mainnet/vm/opcodes/environment/extcodehash.ts +++ b/src/chains/mainnet/vm/opcodes/environment/extcodehash.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -47,5 +47,5 @@ export const extcodehash: Opcode = { evmCodesOpcodesLink(0x3f), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Environment, 444), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Constantinople), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Constantinople), }; diff --git a/src/chains/mainnet/vm/opcodes/environment/extcodesize.ts b/src/chains/mainnet/vm/opcodes/environment/extcodesize.ts index c7089343..18e7f821 100644 --- a/src/chains/mainnet/vm/opcodes/environment/extcodesize.ts +++ b/src/chains/mainnet/vm/opcodes/environment/extcodesize.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -46,5 +46,5 @@ export const extcodesize: Opcode = { evmCodesOpcodesLink(0x3b), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Environment, 324), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/environment/gasprice.ts b/src/chains/mainnet/vm/opcodes/environment/gasprice.ts index 58844f71..e9171071 100644 --- a/src/chains/mainnet/vm/opcodes/environment/gasprice.ts +++ b/src/chains/mainnet/vm/opcodes/environment/gasprice.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -29,5 +29,5 @@ export const gasprice: Opcode = { evmCodesOpcodesLink(0x3a), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Environment, 301), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/environment/origin.ts b/src/chains/mainnet/vm/opcodes/environment/origin.ts index f852b311..a021abdf 100644 --- a/src/chains/mainnet/vm/opcodes/environment/origin.ts +++ b/src/chains/mainnet/vm/opcodes/environment/origin.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -30,5 +30,5 @@ export const origin: Opcode = { evmCodesOpcodesLink(0x32), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Environment, 93), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/environment/returndatacopy.ts b/src/chains/mainnet/vm/opcodes/environment/returndatacopy.ts index a34a3ab9..b7d50e6f 100644 --- a/src/chains/mainnet/vm/opcodes/environment/returndatacopy.ts +++ b/src/chains/mainnet/vm/opcodes/environment/returndatacopy.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -98,5 +98,5 @@ export const returndatacopy: Opcode = { '[evm.codes, Memory Expansion](https://www.evm.codes/about#memoryexpansion)', ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Environment, 406), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Byzantium), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Byzantium), }; diff --git a/src/chains/mainnet/vm/opcodes/environment/returndatasize.ts b/src/chains/mainnet/vm/opcodes/environment/returndatasize.ts index d4caa89d..d7808190 100644 --- a/src/chains/mainnet/vm/opcodes/environment/returndatasize.ts +++ b/src/chains/mainnet/vm/opcodes/environment/returndatasize.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -32,5 +32,5 @@ export const returndatasize: Opcode = { evmCodesOpcodesLink(0x3d), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Environment, 384), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Byzantium), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Byzantium), }; diff --git a/src/chains/mainnet/vm/opcodes/environment/selfbalance.ts b/src/chains/mainnet/vm/opcodes/environment/selfbalance.ts index 991d66c9..c2e592ca 100644 --- a/src/chains/mainnet/vm/opcodes/environment/selfbalance.ts +++ b/src/chains/mainnet/vm/opcodes/environment/selfbalance.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -32,5 +32,5 @@ export const selfbalance: Opcode = { evmCodesOpcodesLink(0x47), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Environment, 491), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Istanbul), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Istanbul), }; diff --git a/src/chains/mainnet/vm/opcodes/keccak/keccak.ts b/src/chains/mainnet/vm/opcodes/keccak/keccak.ts index ce6c7817..5f570f08 100644 --- a/src/chains/mainnet/vm/opcodes/keccak/keccak.ts +++ b/src/chains/mainnet/vm/opcodes/keccak/keccak.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -90,5 +90,5 @@ export const keccak: Opcode = { '[evm.codes, Memory Expansion](https://www.evm.codes/about#memoryexpansion)', ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Keccak, 30), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/log/log.ts b/src/chains/mainnet/vm/opcodes/log/log.ts index 552eda31..c5e24162 100644 --- a/src/chains/mainnet/vm/opcodes/log/log.ts +++ b/src/chains/mainnet/vm/opcodes/log/log.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, evmCodesOpcodesLink } from '@/lib/opcodes'; import { Opcode } from '@/types'; @@ -81,7 +81,7 @@ export const log = (n: number): Omit => { '[evm.codes, Memory Expansion](https://www.evm.codes/about#memoryexpansion)', ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Log, 84 + n), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; }; diff --git a/src/chains/mainnet/vm/opcodes/memory/mload.ts b/src/chains/mainnet/vm/opcodes/memory/mload.ts index 84aeb5fc..7f495ef8 100644 --- a/src/chains/mainnet/vm/opcodes/memory/mload.ts +++ b/src/chains/mainnet/vm/opcodes/memory/mload.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -81,5 +81,5 @@ export const mload: Opcode = { '[evm.codes, Memory Expansion](https://www.evm.codes/about#memoryexpansion)', ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Memory, 90), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/memory/msize.ts b/src/chains/mainnet/vm/opcodes/memory/msize.ts index 885b1aac..159d0b2d 100644 --- a/src/chains/mainnet/vm/opcodes/memory/msize.ts +++ b/src/chains/mainnet/vm/opcodes/memory/msize.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -29,5 +29,5 @@ export const msize: Omit = { evmCodesOpcodesLink(0x59), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Arithmetic, 120), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/memory/mstore.ts b/src/chains/mainnet/vm/opcodes/memory/mstore.ts index 1c1dbb31..0199a353 100644 --- a/src/chains/mainnet/vm/opcodes/memory/mstore.ts +++ b/src/chains/mainnet/vm/opcodes/memory/mstore.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -76,5 +76,5 @@ export const mstore: Opcode = { '[evm.codes, Memory Expansion](https://www.evm.codes/about#memoryexpansion)', ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Memory, 27), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/memory/mstore8.ts b/src/chains/mainnet/vm/opcodes/memory/mstore8.ts index f4aecae2..d5144993 100644 --- a/src/chains/mainnet/vm/opcodes/memory/mstore8.ts +++ b/src/chains/mainnet/vm/opcodes/memory/mstore8.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -76,5 +76,5 @@ export const mstore8: Opcode = { evmCodesOpcodesLink(0x53), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Memory, 58), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/stack/dup.ts b/src/chains/mainnet/vm/opcodes/stack/dup.ts index 2dffaa0b..72327d84 100644 --- a/src/chains/mainnet/vm/opcodes/stack/dup.ts +++ b/src/chains/mainnet/vm/opcodes/stack/dup.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { CURRENT_MAINNET_HARDFORK } from '@/lib/constants'; import { OpcodeGroup, @@ -72,7 +72,7 @@ const dup = (n: number): Opcode => { evmCodesOpcodesLink(number), ethSpecsOpcodeSrc(CURRENT_MAINNET_HARDFORK, OpcodeGroup.Stack, 179 + n), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; }; diff --git a/src/chains/mainnet/vm/opcodes/stack/pop.ts b/src/chains/mainnet/vm/opcodes/stack/pop.ts index 778497b3..384c445f 100644 --- a/src/chains/mainnet/vm/opcodes/stack/pop.ts +++ b/src/chains/mainnet/vm/opcodes/stack/pop.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { CURRENT_MAINNET_HARDFORK } from '@/lib/constants'; import { OpcodeGroup, @@ -30,5 +30,5 @@ export const pop: Opcode = { evmCodesOpcodesLink(0x50), ethSpecsOpcodeSrc(CURRENT_MAINNET_HARDFORK, OpcodeGroup.Stack, 26), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/stack/push.ts b/src/chains/mainnet/vm/opcodes/stack/push.ts index c4433789..c59830fe 100644 --- a/src/chains/mainnet/vm/opcodes/stack/push.ts +++ b/src/chains/mainnet/vm/opcodes/stack/push.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { CURRENT_MAINNET_HARDFORK } from '@/lib/constants'; import { OpcodeGroup, @@ -38,7 +38,7 @@ const push = (n: number): Opcode => { evmCodesOpcodesLink(number), ethSpecsOpcodeSrc(CURRENT_MAINNET_HARDFORK, OpcodeGroup.Stack, 146 + n), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; }; @@ -77,5 +77,5 @@ export const push0: Opcode = { evmCodesOpcodesLink(0x5f), ethSpecsOpcodeSrc(CURRENT_MAINNET_HARDFORK, OpcodeGroup.Stack, 146), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Shanghai), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Shanghai), }; diff --git a/src/chains/mainnet/vm/opcodes/stack/swap.ts b/src/chains/mainnet/vm/opcodes/stack/swap.ts index 4317d133..007143bf 100644 --- a/src/chains/mainnet/vm/opcodes/stack/swap.ts +++ b/src/chains/mainnet/vm/opcodes/stack/swap.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { CURRENT_MAINNET_HARDFORK } from '@/lib/constants'; import { OpcodeGroup, @@ -76,7 +76,7 @@ const swap = (n: number): Opcode => { evmCodesOpcodesLink(number), ethSpecsOpcodeSrc(CURRENT_MAINNET_HARDFORK, OpcodeGroup.Stack, 196 + n), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; }; diff --git a/src/chains/mainnet/vm/opcodes/storage/sload.ts b/src/chains/mainnet/vm/opcodes/storage/sload.ts index be27d548..83d09f10 100644 --- a/src/chains/mainnet/vm/opcodes/storage/sload.ts +++ b/src/chains/mainnet/vm/opcodes/storage/sload.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -67,5 +67,5 @@ export const sload: Opcode = { evmCodesOpcodesLink(0x54), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Storage, 32), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/storage/sstore.ts b/src/chains/mainnet/vm/opcodes/storage/sstore.ts index 8a5063c0..6e54ab12 100644 --- a/src/chains/mainnet/vm/opcodes/storage/sstore.ts +++ b/src/chains/mainnet/vm/opcodes/storage/sstore.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -120,5 +120,5 @@ if value != current_value evmCodesOpcodesLink(0x55), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.Storage, 62), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/system/call.ts b/src/chains/mainnet/vm/opcodes/system/call.ts index 63cb22e7..7ec786f7 100644 --- a/src/chains/mainnet/vm/opcodes/system/call.ts +++ b/src/chains/mainnet/vm/opcodes/system/call.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -121,5 +121,5 @@ export const call: Omit = { evmCodesOpcodesLink(0xf1), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.System, 329), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/system/callcode.ts b/src/chains/mainnet/vm/opcodes/system/callcode.ts index a26314de..9c2fa6cc 100644 --- a/src/chains/mainnet/vm/opcodes/system/callcode.ts +++ b/src/chains/mainnet/vm/opcodes/system/callcode.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -112,5 +112,5 @@ export const callcode: Omit = { evmCodesOpcodesLink(0xf2), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.System, 407), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/system/create.ts b/src/chains/mainnet/vm/opcodes/system/create.ts index 1d394d8a..86ed58db 100644 --- a/src/chains/mainnet/vm/opcodes/system/create.ts +++ b/src/chains/mainnet/vm/opcodes/system/create.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -116,5 +116,5 @@ export const create: Opcode = { evmCodesOpcodesLink(0xf0), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.System, 125), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Constantinople), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Constantinople), }; diff --git a/src/chains/mainnet/vm/opcodes/system/create2.ts b/src/chains/mainnet/vm/opcodes/system/create2.ts index cea987ec..762124a5 100644 --- a/src/chains/mainnet/vm/opcodes/system/create2.ts +++ b/src/chains/mainnet/vm/opcodes/system/create2.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -107,5 +107,5 @@ export const create2: Omit = { evmCodesOpcodesLink(0xf5), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.System, 180), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Constantinople), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Constantinople), }; diff --git a/src/chains/mainnet/vm/opcodes/system/delegatecall.ts b/src/chains/mainnet/vm/opcodes/system/delegatecall.ts index c07c068c..6ee1aeb5 100644 --- a/src/chains/mainnet/vm/opcodes/system/delegatecall.ts +++ b/src/chains/mainnet/vm/opcodes/system/delegatecall.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -107,5 +107,5 @@ export const delegatecall: Omit = { evmCodesOpcodesLink(0xf4), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.System, 536), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Homestead), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Homestead), }; diff --git a/src/chains/mainnet/vm/opcodes/system/invalid.ts b/src/chains/mainnet/vm/opcodes/system/invalid.ts index b59dc2ff..272c5fa4 100644 --- a/src/chains/mainnet/vm/opcodes/system/invalid.ts +++ b/src/chains/mainnet/vm/opcodes/system/invalid.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { evmCodesOpcodesLink } from '@/lib/opcodes'; import { Opcode } from '@/types'; @@ -12,5 +12,5 @@ export const invalid: Omit = { 'All the remaining gas in this context is consumed.', ], references: [evmCodesOpcodesLink(0xfe)], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/system/return.ts b/src/chains/mainnet/vm/opcodes/system/return.ts index a676408f..0e874c85 100644 --- a/src/chains/mainnet/vm/opcodes/system/return.ts +++ b/src/chains/mainnet/vm/opcodes/system/return.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -76,5 +76,5 @@ export const _return: Opcode = { evmCodesOpcodesLink(0xf3), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.System, 233), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Frontier), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Frontier), }; diff --git a/src/chains/mainnet/vm/opcodes/system/revert.ts b/src/chains/mainnet/vm/opcodes/system/revert.ts index 534d6b57..9e1e5628 100644 --- a/src/chains/mainnet/vm/opcodes/system/revert.ts +++ b/src/chains/mainnet/vm/opcodes/system/revert.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -77,5 +77,5 @@ export const revert: Opcode = { evmCodesOpcodesLink(0xfd), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.System, 656), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Byzantium), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Byzantium), }; diff --git a/src/chains/mainnet/vm/opcodes/system/selfdestruct.ts b/src/chains/mainnet/vm/opcodes/system/selfdestruct.ts index 54861568..6137f2d0 100644 --- a/src/chains/mainnet/vm/opcodes/system/selfdestruct.ts +++ b/src/chains/mainnet/vm/opcodes/system/selfdestruct.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, @@ -53,5 +53,5 @@ export const selfdestruct: Omit = { evmCodesOpcodesLink(0xff), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.System, 481), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Constantinople), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Constantinople), }; diff --git a/src/chains/mainnet/vm/opcodes/system/staticcall.ts b/src/chains/mainnet/vm/opcodes/system/staticcall.ts index f4efc814..65020c02 100644 --- a/src/chains/mainnet/vm/opcodes/system/staticcall.ts +++ b/src/chains/mainnet/vm/opcodes/system/staticcall.ts @@ -1,4 +1,4 @@ -import { MainnetHardfork, getHardforksFrom } from '@/chains/mainnet/hardforks'; +import { MainnetHardfork, getMainnetHardforksFrom } from '@/chains/mainnet/hardforks'; import { OpcodeGroup, ethSpecsOpcodeSrc, evmCodesOpcodesLink } from '@/lib/opcodes'; import { Opcode } from '@/types'; @@ -95,5 +95,5 @@ export const staticcall: Omit = { evmCodesOpcodesLink(0xfa), ethSpecsOpcodeSrc(MainnetHardfork.Shanghai, OpcodeGroup.System, 594), ], - supportedHardforks: getHardforksFrom(MainnetHardfork.Byzantium), + supportedHardforks: getMainnetHardforksFrom(MainnetHardfork.Byzantium), }; diff --git a/src/chains/optimism/eips.ts b/src/chains/optimism/eips.ts new file mode 100644 index 00000000..b251222d --- /dev/null +++ b/src/chains/optimism/eips.ts @@ -0,0 +1,73 @@ +import { EIP, EIPCategory } from '@/types/eip'; +import { + eip4399 as eip1399OnMainnet, + eip1559 as eip1559OnMainnet, + eip4895 as eip4895OnMainnet, + eips as ethereumEIPs, +} from '../mainnet/eips'; +import { OptimismHardfork, getOptimismHardforksFrom } from './hardforks'; + +const hardforksFromCanyon: string[] = getOptimismHardforksFrom(OptimismHardfork.Canyon); +const eip1559OnOptimism: EIP = { + ...eip1559OnMainnet, + activeHardforks: hardforksFromCanyon, + parameters: [ + { + name: 'INITIAL_BASE_FEE', + value: 1000000000, + }, + { + name: 'BASE_FEE_MAX_CHANGE_DENOMINATOR', + value: 250, + }, + { + name: 'ELASTICITY_MULTIPLIER', + value: 6, + }, + ], + notes: [ + 'The denominator and elasticity multiplier values of the EIP-1599 formula are modified from their mainnet values.', + ], + references: [ + ...eip1559OnMainnet.references, + 'https://github.com/ethereum-optimism/specs/blob/main/specs/exec-engine.md#1559-parameters', + 'https://github.com/ethereum-optimism/specs/blob/main/specs/superchain-upgrades.md#canyon', + ], +}; + +const eip4399OnOptimism: EIP = { + ...eip1399OnMainnet, + notes: [ + "PREVRANDAO returns the random output of the L1 beacon chain's randomness oracle. This value lags behind the L1 block's prevrandao value by approximately 5 L1 blocks, and is updated when the `L1BlockInfo` predeploy is updated.", + ], + references: [ + ...eip1399OnMainnet.references, + 'https://github.com/ethereum-optimism/specs/blob/main/specs/derivation.md#building-individual-payload-attributes', + 'https://github.com/mds1/evm-diff/issues/21', + ], +}; + +const eip4895OnOptimism: EIP = { + ...eip4895OnMainnet, + notes: [ + 'Optimism has an empty withdrawals list in L2 blocks to be compatible with L1, but since there are no validators the list is always empty.', + ], + references: [ + ...eip4895OnMainnet.references, + 'https://github.com/ethereum-optimism/specs/blob/main/specs/derivation.md#building-individual-payload-attributes', + 'https://github.com/ethereum-optimism/specs/blob/main/specs/superchain-upgrades.md#canyon', + ], +}; + +export const eips: EIP[] = ethereumEIPs + .filter((eip) => { + // Exclude consensus-related EIPs. + return eip.category !== EIPCategory.Consensus; + }) + .map((eip) => { + // EIPs modified by Optimism hard forks. + if (eip.number === 1559) return eip1559OnOptimism; + if (eip.number === 4399) return eip4399OnOptimism; + if (eip.number === 4895) return eip4895OnOptimism; + return eip; + }); diff --git a/src/chains/optimism/hardforks.ts b/src/chains/optimism/hardforks.ts new file mode 100644 index 00000000..f3621126 --- /dev/null +++ b/src/chains/optimism/hardforks.ts @@ -0,0 +1,33 @@ +// List of Optimism's past Bedrock hard forks. +// https://docs.optimism.io/builders/node-operators/network-upgrades/overview#activations +// https://github.com/ethereum-optimism/specs/blob/main/specs/superchain-upgrades.md#post-bedrock-network-upgrades +export enum OptimismHardfork { + Regolith, + Canyon, +} + +export const CURRENT_OPTIMISM_HARDFORK = OptimismHardfork.Canyon; + +// Retrieve all the hard forks from the starting hard fork to the current mainnet hard fork. +export const getOptimismHardforksFrom = (startingHardfork: OptimismHardfork): string[] => + getOptimismHardforksFromTo(startingHardfork, CURRENT_OPTIMISM_HARDFORK); + +// Retrieve an array of hardforks from a starting hardfork to an ending hardfork (inclusive). +export const getOptimismHardforksFromTo = ( + start: OptimismHardfork, + end: OptimismHardfork +): string[] => { + if (start > end) { + throw new Error( + `Error: the starting hard fork ${OptimismHardfork[start]} (index: ${start}) occurred after the ending hard fork ${OptimismHardfork[end]} (index: ${end}). Arguments are wrong or must have been reversed.` + ); + } + + // Create an array made of all the enum key indexes following by all the stringified keys. + // For example, if you had an enum with two keys A and B, you would get ['0', '1', 'A', 'B']. + // Then, we only keep the slice with the values (e.g. ['A', 'B']). + const array = Object.keys(OptimismHardfork); + const length = array.length / 2; + const keys = array.slice(length); + return keys.slice(start, end + 1); +}; diff --git a/src/chains/optimism/index.ts b/src/chains/optimism/index.ts index b202d159..3bb0896a 100644 --- a/src/chains/optimism/index.ts +++ b/src/chains/optimism/index.ts @@ -3,6 +3,7 @@ import { sortedArrayByField, sortedArrayByFields } from '@/lib/utils'; import { Chain } from '@/types'; import { accountTypes } from './accountTypes'; import { deployedContracts } from './deployedContracts'; +import { eips } from './eips'; import { consensusNodes, executionNodes } from './nodes'; import { signatureTypes } from './signatureTypes'; import { opcodes } from './vm/opcodes'; @@ -18,7 +19,7 @@ export const optimism: Chain = { opcodes: sortedArrayByField(opcodes, 'number'), mempools: [], deployedContracts: sortedArrayByFields(deployedContracts, ['kind', 'name']), - eips: [], + eips, executionNodes, consensusNodes, }; diff --git a/src/chains/optimism/signatureTypes.ts b/src/chains/optimism/signatureTypes.ts index 6ab6877b..d0e76368 100644 --- a/src/chains/optimism/signatureTypes.ts +++ b/src/chains/optimism/signatureTypes.ts @@ -9,8 +9,8 @@ const depositTx: SignatureType = { ], signs: 'transaction', references: [ - 'https://github.com/ethereum-optimism/optimism/blob/develop/specs/deposits.md#the-deposited-transaction-type', - 'https://github.com/ethereum-optimism/optimism/blob/develop/specs/glossary.md#deposited-transaction', + 'https://github.com/ethereum-optimism/specs/blob/main/specs/deposits.md#the-deposited-transaction-type', + 'https://github.com/ethereum-optimism/specs/blob/main/specs/glossary.md#deposited-transaction', ], notes: [ `There are two kinds of deposited transactions: diff --git a/src/chains/optimism/vm/opcodes/block/prevrandao.ts b/src/chains/optimism/vm/opcodes/block/prevrandao.ts index 389e277c..8c898300 100644 --- a/src/chains/optimism/vm/opcodes/block/prevrandao.ts +++ b/src/chains/optimism/vm/opcodes/block/prevrandao.ts @@ -14,7 +14,7 @@ export const prevrandao: Omit = { description: "Returns the random output of the L1 beacon chain's randomness oracle. This value lags behind the L1 block's prevrandao value by approximately 5 L1 blocks, and is updated when the `L1BlockInfo` predeploy is updated.", references: [ - 'https://github.com/ethereum-optimism/optimism/blob/develop/specs/derivation.md#building-individual-payload-attributes', + 'https://github.com/ethereum-optimism/specs/blob/main/specs/derivation.md#building-individual-payload-attributes', 'https://github.com/mds1/evm-diff/issues/21', ], }; diff --git a/src/chains/optimism/vm/predeploys.ts b/src/chains/optimism/vm/predeploys.ts index b6ff79f9..7f23cd05 100644 --- a/src/chains/optimism/vm/predeploys.ts +++ b/src/chains/optimism/vm/predeploys.ts @@ -1,7 +1,6 @@ import { Predeploy } from '@/types'; -const PREDEPLOYS_SPEC = - 'https://github.com/ethereum-optimism/optimism/blob/47aec81ae66f9833afc5a65cd43a17d49edfea09/specs/predeploys.md'; +const PREDEPLOYS_SPEC = 'https://github.com/ethereum-optimism/specs/blob/main/specs/predeploys.md'; export const predeploys: Predeploy[] = [ { diff --git a/src/components/diff/DiffEIPs.tsx b/src/components/diff/DiffEIPs.tsx index 31c8d6a5..d37d318c 100644 --- a/src/components/diff/DiffEIPs.tsx +++ b/src/components/diff/DiffEIPs.tsx @@ -2,8 +2,8 @@ import { Collapsible } from '@/components/diff/utils/Collapsible'; import { Markdown } from '@/components/diff/utils/Markdown'; import { RenderDiff } from '@/components/diff/utils/RenderDiff'; import { Copyable } from '@/components/ui/Copyable'; -import { EIP, EIPParameter, EIPState } from '@/types/eip'; -import { formatHardfork } from './utils/format'; +import { EIP, EIPCategory, EIPParameter, EIPState } from '@/types/eip'; +import { formatHardfork, formatStringList } from './utils/format'; type Props = { base: EIP[]; @@ -37,7 +37,15 @@ export const DiffEIPs = ({ base, target, onlyShowDiff }: Props): JSX.Element => className='grid grid-cols-12 items-center border-b border-zinc-500/10 py-6 dark:border-zinc-500/20' >
- +
{formatEIP(baseEIP)}
{formatEIP(targetEIP)}
@@ -58,6 +66,8 @@ const formatEIP = (eip: EIP | undefined): JSX.Element => { {formatHardfork(eip.activeHardforks)}
+
Category
+
{formatEIPCategory(eip.category)}
Status
{formatEIPState(eip.status)}
{eip.deprecated && ( @@ -68,6 +78,7 @@ const formatEIP = (eip: EIP | undefined): JSX.Element => { )}
{eip.parameters && formatEIPParameters(eip.parameters)} + {formatStringList('Notes', eip.notes)}
@@ -75,6 +86,15 @@ const formatEIP = (eip: EIP | undefined): JSX.Element => { ); }; +const formatEIPCategory = (s: EIPCategory): string => + s === EIPCategory.Execution + ? 'Execution' + : s === EIPCategory.Consensus + ? 'Consensus' + : (() => { + throw new Error(`Unsupported category: ${s}`); + })(); + const formatEIPState = (s: EIPState): string => s === EIPState.Draft ? 'Draft' diff --git a/src/components/diff/DiffOpcodes.tsx b/src/components/diff/DiffOpcodes.tsx index 6cc91131..7a8728c6 100644 --- a/src/components/diff/DiffOpcodes.tsx +++ b/src/components/diff/DiffOpcodes.tsx @@ -7,7 +7,7 @@ import { classNames, formatPrefixByte } from '@/lib/utils'; import { toUppercase } from '@/lib/utils'; import { Example, Opcode, Variable } from '@/types'; import { GasComputation } from '@/types/opcode'; -import { formatHardfork } from './utils/format'; +import { formatHardfork, formatStringList } from './utils/format'; type Props = { base: Opcode[]; @@ -213,20 +213,6 @@ const formatGasComputation = (gc: GasComputation | undefined): JSX.Element => { return ; }; -const formatStringList = (title: string, array: string[] | undefined): JSX.Element => { - if (array === undefined || array.length === 0) return <>; - return ( - <> -

{toUppercase(title)}

-
    - {array.map((v, id) => ( -
  • {toUppercase(v)}
  • - ))} -
- - ); -}; - const formatOpcode = (opcode: Opcode | undefined): JSX.Element => { if (!opcode) return

Not present

; return ( diff --git a/src/components/diff/utils/Markdown.tsx b/src/components/diff/utils/Markdown.tsx index a6813b9d..c6665efd 100644 --- a/src/components/diff/utils/Markdown.tsx +++ b/src/components/diff/utils/Markdown.tsx @@ -8,7 +8,7 @@ export const Markdown: React.FC<{ content: string; codeSize?: string; className? className, }) => { // --- Transform Content --- - const transformURLs = (content: string) => { + const transformURLs = (content: string): string => { // Define regex patterns for the different types of URLs we want to convert to named links. const eipURLPattern = /(https:\/\/eips\.ethereum\.org\/EIPS\/eip-(\d+))/g; const evmCodesURLPattern = /(https:\/\/www\.evm\.codes\/#([0-9a-fA-F]{2}))/g; @@ -17,17 +17,36 @@ export const Markdown: React.FC<{ content: string; codeSize?: string; className? /(https:\/\/github\.com\/([^/]+)\/([^/]+)\/blob\/([^/]+)\/([^#]+)(?:#([^ ]+))?)/g; // Do the conversions. - return content - .replace(eipURLPattern, (_match, fullUrl, number) => `[EIP-${number}](${fullUrl})`) + let matched = false; + const transformedContent: string = content + .replace(eipURLPattern, (_match, fullUrl, number) => { + matched = true; + return `[EIP-${number}](${fullUrl})`; + }) .replace(evmCodesURLPattern, (_match, fullUrl, opcode) => { + matched = true; return `[evm.codes, opcode \`0x${opcode}\`](${fullUrl})`; }) .replace(githubIssueURLPattern, (_match, fullUrl, user, repo, issueNumber) => { + matched = true; return `[${user}/${repo}, Issue #${issueNumber}](${fullUrl})`; }) .replace(githubURLPattern, (_match, fullUrl, user, repo, commit, path, _line) => { + matched = true; return `[${user}/${repo}, \`${path}@${commit.substring(0, 7)}\`](${fullUrl})`; }); + + if (matched) { + return transformedContent; + } + + // Add a fallback for any URLs that don't match the predefined patterns. + // We take care to avoid matching URLs that are already included in markdown style. + const fallbackPattern = /(? `[${fullUrl}](${fullUrl})` + ); }; const transformedContent = transformURLs(content); diff --git a/src/components/diff/utils/format.tsx b/src/components/diff/utils/format.tsx index 185cb671..7c470b15 100644 --- a/src/components/diff/utils/format.tsx +++ b/src/components/diff/utils/format.tsx @@ -1,5 +1,6 @@ import { MainnetHardfork } from '@/chains/mainnet/hardforks'; import { CURRENT_MAINNET_HARDFORK } from '@/lib/constants'; +import { classNames, toUppercase } from '@/lib/utils'; export const formatHardfork = (array: string[]): JSX.Element => { if (!array || array.length == 0) { @@ -29,3 +30,17 @@ export const formatHardfork = (array: string[]): JSX.Element => {

); }; + +export const formatStringList = (title: string, array: string[] | undefined): JSX.Element => { + if (array === undefined || array.length === 0) return <>; + return ( + <> +

{toUppercase(title)}

+
    + {array.map((v, id) => ( +
  • {toUppercase(v)}
  • + ))} +
+ + ); +}; diff --git a/src/types/eip.ts b/src/types/eip.ts index 52b5f366..432979ea 100644 --- a/src/types/eip.ts +++ b/src/types/eip.ts @@ -1,15 +1,23 @@ export type EIP = { number: number; title: string; + category: EIPCategory; status: EIPState; // The status should always be `Final` for now. activeHardforks: string[]; deprecated?: boolean; // Some EIPs have parameters, such as EIP-1559, but these parameters may not be the same on all // chains. This field is intended to list the names and values of any parameters that exist. parameters?: EIPParameter[]; + notes?: string[]; references: string[]; }; +// EIPCategory defines if the EIP is execution or consensus related. +export enum EIPCategory { + Execution, + Consensus, +} + export enum EIPState { Draft, Review,