Skip to content

Commit f5f5ded

Browse files
Merge pull request #16296 from argotorg/set-osaka-default
Set `osaka` as the default EVM version
2 parents f7b4626 + 5fc0f34 commit f5f5ded

File tree

20 files changed

+54
-34
lines changed

20 files changed

+54
-34
lines changed

.circleci/config.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ parameters:
3434
default: "ghcr.io/argotorg/solidity-buildpack-deps@sha256:fc53d68a4680ffa7d5f70164e13a903478964f15bcc07434d74833a05f4fbc19"
3535
evm-version:
3636
type: string
37-
default: prague
37+
default: osaka
3838

3939
orbs:
4040
win: circleci/[email protected]

.circleci/soltest_all.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ EVMS_WITH_EOF=(osaka)
3838
# set EVM_VALUES to the default values.
3939
IFS=" " read -ra EVM_VALUES <<< "${1:-${DEFAULT_EVM_VALUES[@]}}"
4040

41-
DEFAULT_EVM=prague
41+
DEFAULT_EVM=osaka
4242
OPTIMIZE_VALUES=(0 1)
4343
# TODO: EOF is marked as experimental in evmone. Reenable when proper handling for that is added here.
4444
EOF_VERSIONS=(0)

Changelog.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ Language Features:
55

66
Compiler Features:
77
* ethdebug: Experimental support for instructions and source locations under EOF.
8+
* EVM: Set default EVM Version to `osaka`.
89

910
Bugfixes:
1011
* Assembler: Fix not using a fixed-width type for IDs being assigned to subassemblies nested more than one level away, resulting in inconsistent `--asm-json` output between target architectures.

docs/using-the-compiler.rst

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -181,9 +181,9 @@ at each version. Backward compatibility is not guaranteed between each version.
181181
- Introduces ``blobhash()`` in inline assembly and a corresponding global function to retrieve versioned hashes of blobs associated with the transaction (see `EIP-4844 <https://eips.ethereum.org/EIPS/eip-4844>`_).
182182
- Opcode ``mcopy`` is available in assembly (see `EIP-5656 <https://eips.ethereum.org/EIPS/eip-5656>`_).
183183
- Opcodes ``tstore`` and ``tload`` are available in assembly (see `EIP-1153 <https://eips.ethereum.org/EIPS/eip-1153>`_).
184-
- ``prague`` (**default**)
185-
- ``osaka`` (**experimental**)
186-
- Experimental compilation to EOF is available starting from this version. (`EIP-7692 <https://eips.ethereum.org/EIPS/eip-7692>`_)
184+
- ``prague``
185+
- ``osaka`` (**default**)
186+
- ``clz`` builtin function is available in inline assembly. (`EIP-7939 <https://eips.ethereum.org/EIPS/eip-7939>`_)
187187

188188
.. index:: ! standard JSON, ! --standard-json
189189
.. _compiler-api:
@@ -356,10 +356,11 @@ Input Description
356356
// Version of the EVM to compile for (optional).
357357
// Affects type checking and code generation. Can be homestead,
358358
// tangerineWhistle, spuriousDragon, byzantium, constantinople,
359-
// petersburg, istanbul, berlin, london, paris, shanghai, cancun, prague (default) or osaka (experimental).
360-
"evmVersion": "prague",
359+
// petersburg, istanbul, berlin, london, paris, shanghai, cancun, prague or osaka (default).
360+
"evmVersion": "osaka",
361361
// EVM Object Format version to compile for (optional, experimental).
362362
// Currently the only valid value is 1. If not specified, legacy non-EOF bytecode will be generated.
363+
// Requires `evmVersion` >= osaka.
363364
"eofVersion": null,
364365
// Optional: Change compilation pipeline to go through the Yul intermediate representation.
365366
// This is false by default.

liblangutil/EVMVersion.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ class EVMVersion
170170
Prague,
171171
Osaka,
172172
};
173-
static auto constexpr currentVersion = Version::Prague;
173+
static auto constexpr currentVersion = Version::Osaka;
174174

175175
constexpr EVMVersion(Version _version): m_version(_version) {}
176176

scripts/externalTests/common.sh

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ set -e
2222

2323
# Requires $REPO_ROOT to be defined and "${REPO_ROOT}/scripts/common.sh" to be included before.
2424

25-
CURRENT_EVM_VERSION=prague
25+
CURRENT_EVM_VERSION=osaka
2626

2727
AVAILABLE_PRESETS=(
2828
legacy-no-optimize
@@ -334,6 +334,12 @@ function force_hardhat_compiler_settings
334334
echo "module.exports.solidity = ${compiler_settings};"
335335
echo "module.exports.networks.hardhat = module.exports.networks.hardhat || { hardfork: '${evm_version}' }"
336336
echo "module.exports.networks.hardhat.hardfork = '${evm_version}'"
337+
if [[ $evm_version == "osaka" ]]; then
338+
# Transaction gas limit introduced by EIP-7825; the default value is 30_000_000
339+
# and should be automatically handled by EDR - however, EDR with the relevant change
340+
# was not released in time.
341+
echo "module.exports.networks.hardhat.blockGasLimit = 16_777_216"
342+
fi
337343
else
338344
[[ $config_file == *\.ts ]] || assertFail
339345
[[ $config_var_name != "" ]] || assertFail
@@ -342,6 +348,12 @@ function force_hardhat_compiler_settings
342348
echo "${config_var_name}.solidity = {compilers: [${compiler_settings}]};"
343349
echo "${config_var_name}.networks!.hardhat = ${config_var_name}.networks!.hardhat ?? { hardfork: '${evm_version}' };"
344350
echo "${config_var_name}.networks!.hardhat!.hardfork = '${evm_version}'"
351+
if [[ $evm_version == "osaka" ]]; then
352+
# Transaction gas limit introduced by EIP-7825; the default value is 30_000_000
353+
# and should be automatically handled by EDR - however, EDR with the relevant change
354+
# was not released in time.
355+
echo "${config_var_name}.networks!.hardhat!.blockGasLimit = 16_777_216"
356+
fi
345357
fi >> "$config_file"
346358
}
347359

scripts/externalTests/runners/base.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
from test_helpers import settings_from_preset
4242
from test_helpers import SettingsPreset
4343

44-
CURRENT_EVM_VERSION: str = "prague"
44+
CURRENT_EVM_VERSION: str = "osaka"
4545

4646
@dataclass
4747
class TestConfig:

scripts/tests.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,9 +115,9 @@ do
115115
for vm in $EVM_VERSIONS
116116
do
117117
FORCE_ABIV1_RUNS="no"
118-
if [[ "$vm" == "prague" ]]
118+
if [[ "$vm" == "osaka" ]]
119119
then
120-
FORCE_ABIV1_RUNS="no yes" # run both in paris
120+
FORCE_ABIV1_RUNS="no yes" # run both when testing the current EVM version
121121
fi
122122
for abiv1 in $FORCE_ABIV1_RUNS
123123
do

test/cmdlineTests/metadata/output

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11

22
======= input.sol:C =======
33
Metadata:
4-
{"compiler":{"version": "<VERSION REMOVED>"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"compilationTarget":{"input.sol":"C"},"evmVersion":"prague","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":false,"runs":200},"remappings":[]},"sources":{"input.sol":{"keccak256":"0x5cf617b1707a484e3c4bd59643013dec76ab7d75900b46855214729ae3e0ceb0","license":"GPL-3.0","urls":["bzz-raw://ac418a02dfadf87234150d3568f33269e3f49460345cb39300e017a6d755eff2","dweb:/ipfs/QmQq3owBu25x2WV46HB1WyKzJpxiAPecU7eMKqtXCF7eeS"]}},"version":1}
4+
{"compiler":{"version": "<VERSION REMOVED>"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"compilationTarget":{"input.sol":"C"},"evmVersion":"osaka","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":false,"runs":200},"remappings":[]},"sources":{"input.sol":{"keccak256":"0x5cf617b1707a484e3c4bd59643013dec76ab7d75900b46855214729ae3e0ceb0","license":"GPL-3.0","urls":["bzz-raw://ac418a02dfadf87234150d3568f33269e3f49460345cb39300e017a6d755eff2","dweb:/ipfs/QmQq3owBu25x2WV46HB1WyKzJpxiAPecU7eMKqtXCF7eeS"]}},"version":1}

test/cmdlineTests/standard_metadata/output.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"contracts": {
33
"C": {
44
"C": {
5-
"metadata": "{\"compiler\":{\"version\":\"<VERSION REMOVED>\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"C\":\"C\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"C\":{\"keccak256\":\"0x5cf617b1707a484e3c4bd59643013dec76ab7d75900b46855214729ae3e0ceb0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://ac418a02dfadf87234150d3568f33269e3f49460345cb39300e017a6d755eff2\",\"dweb:/ipfs/QmQq3owBu25x2WV46HB1WyKzJpxiAPecU7eMKqtXCF7eeS\"]}},\"version\":1}"
5+
"metadata": "{\"compiler\":{\"version\":\"<VERSION REMOVED>\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"C\":\"C\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"C\":{\"keccak256\":\"0x5cf617b1707a484e3c4bd59643013dec76ab7d75900b46855214729ae3e0ceb0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://ac418a02dfadf87234150d3568f33269e3f49460345cb39300e017a6d755eff2\",\"dweb:/ipfs/QmQq3owBu25x2WV46HB1WyKzJpxiAPecU7eMKqtXCF7eeS\"]}},\"version\":1}"
66
}
77
}
88
},

0 commit comments

Comments
 (0)