Skip to content

Commit db3db1c

Browse files
authored
Merge pull request ethereumjs#392 from ethereumjs/reset-selfdestruct-on-revert
Reset selfdestruct on revert
2 parents 839417d + 70dd74a commit db3db1c

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

lib/opFns.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -988,12 +988,13 @@ function checkOutOfGas (runState, callOptions) {
988988

989989
// sets up and calls runCall
990990
function makeCall (runState, callOptions, localOpts, cb) {
991+
var selfdestruct = Object.assign({}, runState.selfdestruct)
991992
callOptions.caller = callOptions.caller || runState.address
992993
callOptions.origin = runState.origin
993994
callOptions.gasPrice = runState.gasPrice
994995
callOptions.block = runState.block
995996
callOptions.static = callOptions.static || false
996-
callOptions.selfdestruct = runState.selfdestruct
997+
callOptions.selfdestruct = selfdestruct
997998
callOptions.storageReader = runState.storageReader
998999

9991000
// increment the runState.depth
@@ -1053,6 +1054,7 @@ function makeCall (runState, callOptions, localOpts, cb) {
10531054
}
10541055

10551056
if (!results.vm.exceptionError) {
1057+
Object.assign(runState.selfdestruct, selfdestruct)
10561058
// update stateRoot on current contract
10571059
runState.stateManager.getAccount(runState.address, function (err, account) {
10581060
if (err) return cb(err)

0 commit comments

Comments
 (0)