mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Adds support for the EVM version "Paris".
Deprecates `block.difficulty` and disallow `difficulty()` in inline assembly for EVM versions >= paris. The change is due to the renaming introduced by EIP-4399 (see: https://eips.ethereum.org/EIPS/eip-4399). Introduces `block.prevrandao` in Solidity and `prevrandao()` in inline assembly for EVM versions >= paris. Co-authored-by: Alex Beregszaszi <alex@rtfs.hu> Co-authored-by: Daniel <daniel@ekpyron.org> Co-authored-by: matheusaaguiar <95899911+matheusaaguiar@users.noreply.github.com> Co-authored-by: Nikola Matić <nikola.matic@ethereum.org>
This commit is contained in:
co-authored by
Alex Beregszaszi
Daniel
matheusaaguiar
Nikola Matić
parent
d70d79af4a
commit
ef6ff2f055
@@ -88,7 +88,7 @@ void GasMeterVisitor::operator()(FunctionCall const& _funCall)
|
||||
|
||||
void GasMeterVisitor::operator()(Literal const& _lit)
|
||||
{
|
||||
m_runGas += evmasm::GasMeter::runGas(evmasm::Instruction::PUSH1);
|
||||
m_runGas += evmasm::GasMeter::runGas(evmasm::Instruction::PUSH1, m_dialect.evmVersion());
|
||||
m_dataGas +=
|
||||
singleByteDataGas() +
|
||||
evmasm::GasMeter::dataGas(
|
||||
@@ -100,7 +100,7 @@ void GasMeterVisitor::operator()(Literal const& _lit)
|
||||
|
||||
void GasMeterVisitor::operator()(Identifier const&)
|
||||
{
|
||||
m_runGas += evmasm::GasMeter::runGas(evmasm::Instruction::DUP1);
|
||||
m_runGas += evmasm::GasMeter::runGas(evmasm::Instruction::DUP1, m_dialect.evmVersion());
|
||||
m_dataGas += singleByteDataGas();
|
||||
}
|
||||
|
||||
@@ -120,6 +120,6 @@ void GasMeterVisitor::instructionCostsInternal(evmasm::Instruction _instruction)
|
||||
// Assumes that Keccak-256 is computed on a single word (rounded up).
|
||||
m_runGas += evmasm::GasCosts::keccak256Gas + evmasm::GasCosts::keccak256WordGas;
|
||||
else
|
||||
m_runGas += evmasm::GasMeter::runGas(_instruction);
|
||||
m_runGas += evmasm::GasMeter::runGas(_instruction, m_dialect.evmVersion());
|
||||
m_dataGas += singleByteDataGas();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user