diff options
Diffstat (limited to 'core/execution.go')
-rw-r--r-- | core/execution.go | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/core/execution.go b/core/execution.go index d2008bc3e..7f4c64758 100644 --- a/core/execution.go +++ b/core/execution.go @@ -84,10 +84,12 @@ func exec(env vm.Environment, caller vm.ContractRef, address, codeAddr *common.A address = &addr createAccount = true } - // Mark all contracts doing outbound value transfers to allow DAO filtering. + + // mark the code hash if the execution is a call, callcode or delegate. if value.Cmp(common.Big0) > 0 { env.MarkCodeHash(env.Db().GetCodeHash(caller.Address())) } + snapshotPreTransfer := env.MakeSnapshot() var ( from = env.Db().GetAccount(caller.Address()) @@ -146,7 +148,7 @@ func execDelegateCall(env vm.Environment, caller vm.ContractRef, originAddr, toA caller.ReturnGas(gas, gasPrice) return nil, common.Address{}, vm.DepthError } - // Mark all contracts doing outbound value transfers to allow DAO filtering. + if value.Cmp(common.Big0) > 0 { env.MarkCodeHash(env.Db().GetCodeHash(caller.Address())) } |