Skip to content

Latest commit

 

History

History
9 lines (5 loc) · 7.11 KB

evm-version-information.md

File metadata and controls

9 lines (5 loc) · 7.11 KB

EVM Version Information

You are asked to provide the EVM version the contract uses during the verification process. If the bytecode does not match the version, we try to verify using the latest EVM version.

For more information, see the Solidity docs on specifying the EVM version when compiling a contract. Note that backward compatibility is not guaranteed between each version.

NameDateMainnet Block #Relevant changes / opcode specsEIP details
NameDateMainnet Block #Relevant changes / opcode specsEIP details
Homestead14 Mar 20161,150,000Oldest versionhttp://eips.ethereum.org/EIPS/eip-606
Tangerine Whistle18 Oct 20162,463,000Gas cost to access other accounts increased, impacts gas estimation and optimization.

All gas sent by default for external calls, previously a certain amount had to be retained.
http://eips.ethereum.org/EIPS/eip-608
Spurious Dragon22 Nov 20162,675,000Gas cost for the exp opcode increased, impacts gas estimation and optimization.http://eips.ethereum.org/EIPS/eip-607
Byzantium16 Oct 20174,370,000Opcodes returndatacopy, returndatasize and staticcall available in assembly.

staticcall opcode used when calling non-library view or pure functions, which prevents the functions from modifying state at the EVM level, this even applies to invalid type conversions.

Ability to access dynamic data returned from function calls.

revert opcode introduced, revert() will not waste gas.
http://eips.ethereum.org/EIPS/eip-609
Constantinople / Petersburg28 Feb 20197,280,000Opcodes create2, extcodehash, shl, shr and sar are available in assembly.

Bitwise shifting operators use shifting opcodes (shl,shr,sar), requiring less gas.
http://eips.ethereum.org/EIPS/eip-1013
Istanbul08 Dec 20199,069,000Opcodes chainid and selfbalance are available in assembly.https://eips.ethereum.org/EIPS/eip-1679
Berlin14 Apr 202112,244,000Gas costs for SLOAD, *CALL, BALANCE, EXT* and SELFDESTRUCT increased. The compiler assumes cold gas costs for such operations. This is relevant for gas estimation and the optimizer.https://eips.ethereum.org/EIPS/eip-2070
London05 Aug 202112,965,000The block’s base fee (EIP-3198 and EIP-1559) can be accessed via the global block.basefee or basefee() in inline assembly.
Arrow Glacier*09 Aug 202113,773,000Delays the difficulty bomb until June 2022.https://eips.ethereum.org/EIPS/eip-4345
Gray Glacier*30 June 202215,050,000Delays the difficulty bomb by an additional 3 months to September 2022.https://eips.ethereum.org/EIPS/eip-5133
Paris (The Merge)15 Sep 202215,537,394Introduces prevrandao() and block.prevrandao, and changes the semantics of the now deprecated block.difficulty, disallowing difficulty() in inline assembly (see EIP-4399).
Shanghai12 Apr 202317,034,870Smaller code size and gas savings due to the introduction of push0 (see EIP-3855).
Dencun*13 Mar 2024
  • Epoch number: 269,568
  • Slot number: 8,626,176
The block’s blob base fee (EIP-7516 and EIP-4844) can be accessed via the global block.blobbasefee or blobbasefee() in inline assembly.

Introduces blobhash() in inline assembly and a corresponding global function to retrieve versioned hashes of blobs associated with the transaction (see EIP-4844).

Opcode mcopy is available in assembly (see EIP-5656).

Opcodes tstore and tload are available in assembly (see EIP-1153).

*Does not impact version for contract verification.