mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-06-21 22:24:32 +00:00
core/vm: check readonly guard before charging for access list
This commit is contained in:
parent
057723ca03
commit
1cd9d4dec7
1 changed files with 6 additions and 6 deletions
|
|
@ -165,6 +165,12 @@ func makeCallVariantGasCall(oldCalculatorStateful, oldCalculatorStateless gasFun
|
|||
err error
|
||||
)
|
||||
|
||||
// Compute stateless gas (memory expansion, value transfer)
|
||||
eip150BaseGas, err := oldCalculatorStateless(evm, contract, stack, mem, memorySize)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
// EIP-2929: cold/warm access list charge
|
||||
if evm.chainRules.IsEIP2929 && !evm.StateDB.AddressInAccessList(addr) {
|
||||
evm.StateDB.AddAddressToAccessList(addr)
|
||||
|
|
@ -179,12 +185,6 @@ func makeCallVariantGasCall(oldCalculatorStateful, oldCalculatorStateless gasFun
|
|||
eip2929Gas = coldCost
|
||||
}
|
||||
|
||||
// Compute stateless gas (memory expansion, value transfer)
|
||||
eip150BaseGas, err := oldCalculatorStateless(evm, contract, stack, mem, memorySize)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
// Ensure the stateless portion is covered
|
||||
if contract.Gas < eip150BaseGas {
|
||||
return 0, ErrOutOfGas
|
||||
|
|
|
|||
Loading…
Reference in a new issue