diff options
author | Martin Holst Swende <martin@swende.se> | 2018-11-29 16:51:57 +0800 |
---|---|---|
committer | Péter Szilágyi <peterke@gmail.com> | 2018-11-29 16:51:57 +0800 |
commit | 7c657fc78957d7ed302eba68bb6122b515364ac4 (patch) | |
tree | 61672d4974be958002d960b638a1e4f182d1f8b0 /core/vm/evm.go | |
parent | 3d21d455dca6e75a635ab5742c66c80ee175c3e7 (diff) | |
download | dexon-7c657fc78957d7ed302eba68bb6122b515364ac4.tar dexon-7c657fc78957d7ed302eba68bb6122b515364ac4.tar.gz dexon-7c657fc78957d7ed302eba68bb6122b515364ac4.tar.bz2 dexon-7c657fc78957d7ed302eba68bb6122b515364ac4.tar.lz dexon-7c657fc78957d7ed302eba68bb6122b515364ac4.tar.xz dexon-7c657fc78957d7ed302eba68bb6122b515364ac4.tar.zst dexon-7c657fc78957d7ed302eba68bb6122b515364ac4.zip |
tests, core: update tests and make STATICCALL cause touch-delete (#18187)
Diffstat (limited to 'core/vm/evm.go')
-rw-r--r-- | core/vm/evm.go | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/core/vm/evm.go b/core/vm/evm.go index 968d2219e..ba4d1e9eb 100644 --- a/core/vm/evm.go +++ b/core/vm/evm.go @@ -339,6 +339,12 @@ func (evm *EVM) StaticCall(caller ContractRef, addr common.Address, input []byte contract := NewContract(caller, to, new(big.Int), gas) contract.SetCallCode(&addr, evm.StateDB.GetCodeHash(addr), evm.StateDB.GetCode(addr)) + // We do an AddBalance of zero here, just in order to trigger a touch. + // This doesn't matter on Mainnet, where all empties are gone at the time of Byzantium, + // but is the correct thing to do and matters on other networks, in tests, and potential + // future scenarios + evm.StateDB.AddBalance(addr, bigZero) + // When an error was returned by the EVM or when setting the creation code // above we revert to the snapshot and consume any gas remaining. Additionally // when we're in Homestead this also counts for code storage gas errors. |