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,