mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Update default evm version to paris
This commit is contained in:
parent
939b916f4a
commit
d9d9ab30a2
@ -32,7 +32,7 @@ REPODIR="$(realpath "$(dirname "$0")"/..)"
|
|||||||
source "${REPODIR}/scripts/common.sh"
|
source "${REPODIR}/scripts/common.sh"
|
||||||
|
|
||||||
EVM_VALUES=(homestead byzantium constantinople petersburg istanbul berlin london paris)
|
EVM_VALUES=(homestead byzantium constantinople petersburg istanbul berlin london paris)
|
||||||
DEFAULT_EVM=london
|
DEFAULT_EVM=paris
|
||||||
[[ " ${EVM_VALUES[*]} " =~ $DEFAULT_EVM ]]
|
[[ " ${EVM_VALUES[*]} " =~ $DEFAULT_EVM ]]
|
||||||
OPTIMIZE_VALUES=(0 1)
|
OPTIMIZE_VALUES=(0 1)
|
||||||
|
|
||||||
|
@ -9,6 +9,7 @@ Compiler Features:
|
|||||||
* Commandline Interface: Add `--no-cbor-metadata` that skips CBOR metadata from getting appended at the end of the bytecode.
|
* Commandline Interface: Add `--no-cbor-metadata` that skips CBOR metadata from getting appended at the end of the bytecode.
|
||||||
* EVM: Deprecate ``block.difficulty`` and disallow ``difficulty()`` in inline assembly for EVM versions >= paris. The change is due to the renaming introduced by [EIP-4399](https://eips.ethereum.org/EIPS/eip-4399).
|
* EVM: Deprecate ``block.difficulty`` and disallow ``difficulty()`` in inline assembly for EVM versions >= paris. The change is due to the renaming introduced by [EIP-4399](https://eips.ethereum.org/EIPS/eip-4399).
|
||||||
* EVM: Introduce ``block.prevrandao`` in Solidity and ``prevrandao()`` in inline assembly for EVM versions >= paris.
|
* EVM: Introduce ``block.prevrandao`` in Solidity and ``prevrandao()`` in inline assembly for EVM versions >= paris.
|
||||||
|
* EVM: Set the default EVM version to "Paris".
|
||||||
* EVM: Support for the EVM version "Paris".
|
* EVM: Support for the EVM version "Paris".
|
||||||
* Natspec: Add event Natspec inheritance for devdoc.
|
* Natspec: Add event Natspec inheritance for devdoc.
|
||||||
* Standard JSON: Add a boolean field `settings.metadata.appendCBOR` that skips CBOR metadata from getting appended at the end of the bytecode.
|
* Standard JSON: Add a boolean field `settings.metadata.appendCBOR` that skips CBOR metadata from getting appended at the end of the bytecode.
|
||||||
|
@ -170,10 +170,10 @@ at each version. Backward compatibility is not guaranteed between each version.
|
|||||||
- Gas costs for ``SLOAD``, ``*CALL``, ``BALANCE``, ``EXT*`` and ``SELFDESTRUCT`` increased. The
|
- Gas 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
|
compiler assumes cold gas costs for such operations. This is relevant for gas estimation and
|
||||||
the optimizer.
|
the optimizer.
|
||||||
- ``london`` (**default**)
|
- ``london``
|
||||||
- The block's base fee (`EIP-3198 <https://eips.ethereum.org/EIPS/eip-3198>`_ and `EIP-1559 <https://eips.ethereum.org/EIPS/eip-1559>`_) can be accessed via the global ``block.basefee`` or ``basefee()`` in inline assembly.
|
- The block's base fee (`EIP-3198 <https://eips.ethereum.org/EIPS/eip-3198>`_ and `EIP-1559 <https://eips.ethereum.org/EIPS/eip-1559>`_) can be accessed via the global ``block.basefee`` or ``basefee()`` in inline assembly.
|
||||||
- ``paris``
|
- ``paris`` (**default**)
|
||||||
- No changes, however the semantics of the ``difficulty`` value have changed (see `EIP-4399 <https://eips.ethereum.org/EIPS/eip-4399>`_).
|
- Introduces ``prevrandao()`` and ``block.prevrandao``, and changes the semantics of the ``block.difficulty``, disallowing ``difficulty()`` in inline assembly (see `EIP-4399 <https://eips.ethereum.org/EIPS/eip-4399>`_).
|
||||||
|
|
||||||
.. index:: ! standard JSON, ! --standard-json
|
.. index:: ! standard JSON, ! --standard-json
|
||||||
.. _compiler-api:
|
.. _compiler-api:
|
||||||
|
@ -109,7 +109,7 @@ private:
|
|||||||
|
|
||||||
EVMVersion(Version _version): m_version(_version) {}
|
EVMVersion(Version _version): m_version(_version) {}
|
||||||
|
|
||||||
Version m_version = Version::London;
|
Version m_version = Version::Paris;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -115,9 +115,9 @@ do
|
|||||||
for vm in $EVM_VERSIONS
|
for vm in $EVM_VERSIONS
|
||||||
do
|
do
|
||||||
FORCE_ABIV1_RUNS="no"
|
FORCE_ABIV1_RUNS="no"
|
||||||
if [[ "$vm" == "london" ]]
|
if [[ "$vm" == "paris" ]]
|
||||||
then
|
then
|
||||||
FORCE_ABIV1_RUNS="no yes" # run both in london
|
FORCE_ABIV1_RUNS="no yes" # run both in paris
|
||||||
fi
|
fi
|
||||||
for abiv1 in $FORCE_ABIV1_RUNS
|
for abiv1 in $FORCE_ABIV1_RUNS
|
||||||
do
|
do
|
||||||
|
@ -22,7 +22,7 @@ set -e
|
|||||||
|
|
||||||
# Requires $REPO_ROOT to be defined and "${REPO_ROOT}/scripts/common.sh" to be included before.
|
# Requires $REPO_ROOT to be defined and "${REPO_ROOT}/scripts/common.sh" to be included before.
|
||||||
|
|
||||||
CURRENT_EVM_VERSION=london
|
CURRENT_EVM_VERSION=paris
|
||||||
|
|
||||||
AVAILABLE_PRESETS=(
|
AVAILABLE_PRESETS=(
|
||||||
legacy-no-optimize
|
legacy-no-optimize
|
||||||
|
@ -1086,7 +1086,7 @@ BOOST_AUTO_TEST_CASE(evm_version)
|
|||||||
BOOST_CHECK(result["contracts"]["fileA"]["A"]["metadata"].asString().find("\"evmVersion\":\"paris\"") != string::npos);
|
BOOST_CHECK(result["contracts"]["fileA"]["A"]["metadata"].asString().find("\"evmVersion\":\"paris\"") != string::npos);
|
||||||
// test default
|
// test default
|
||||||
result = compile(inputForVersion(""));
|
result = compile(inputForVersion(""));
|
||||||
BOOST_CHECK(result["contracts"]["fileA"]["A"]["metadata"].asString().find("\"evmVersion\":\"london\"") != string::npos);
|
BOOST_CHECK(result["contracts"]["fileA"]["A"]["metadata"].asString().find("\"evmVersion\":\"paris\"") != string::npos);
|
||||||
// test invalid
|
// test invalid
|
||||||
result = compile(inputForVersion("\"evmVersion\": \"invalid\","));
|
result = compile(inputForVersion("\"evmVersion\": \"invalid\","));
|
||||||
BOOST_CHECK(result["errors"][0]["message"].asString() == "Invalid EVM version requested.");
|
BOOST_CHECK(result["errors"][0]["message"].asString() == "Invalid EVM version requested.");
|
||||||
|
Loading…
Reference in New Issue
Block a user