aboutsummaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorPéter Szilágyi <peterke@gmail.com>2017-08-24 17:26:06 +0800
committerPéter Szilágyi <peterke@gmail.com>2017-08-24 22:16:39 +0800
commitb872961ec82ec88a7ac6ef331cfb3eb685ce2c00 (patch)
tree652d5bc27e4f95809637e6f76f6db3162b2e435e /core
parent3c48a25762dfab9382791c33a2f5832466077ac3 (diff)
downloaddexon-b872961ec82ec88a7ac6ef331cfb3eb685ce2c00.tar
dexon-b872961ec82ec88a7ac6ef331cfb3eb685ce2c00.tar.gz
dexon-b872961ec82ec88a7ac6ef331cfb3eb685ce2c00.tar.bz2
dexon-b872961ec82ec88a7ac6ef331cfb3eb685ce2c00.tar.lz
dexon-b872961ec82ec88a7ac6ef331cfb3eb685ce2c00.tar.xz
dexon-b872961ec82ec88a7ac6ef331cfb3eb685ce2c00.tar.zst
dexon-b872961ec82ec88a7ac6ef331cfb3eb685ce2c00.zip
consensus, core, tests: implement Metropolis EIP 649
Diffstat (limited to 'core')
-rw-r--r--core/chain_makers.go2
-rw-r--r--core/vm/logger.go8
2 files changed, 3 insertions, 7 deletions
diff --git a/core/chain_makers.go b/core/chain_makers.go
index cb5825d18..dd3e2fb19 100644
--- a/core/chain_makers.go
+++ b/core/chain_makers.go
@@ -179,7 +179,7 @@ func GenerateChain(config *params.ChainConfig, parent *types.Block, db ethdb.Dat
if gen != nil {
gen(i, b)
}
- ethash.AccumulateRewards(statedb, h, b.uncles)
+ ethash.AccumulateRewards(config, statedb, h, b.uncles)
root, err := statedb.CommitTo(db, config.IsEIP158(h.Number))
if err != nil {
panic(fmt.Sprintf("state write error: %v", err))
diff --git a/core/vm/logger.go b/core/vm/logger.go
index 5ada310f0..623c0d563 100644
--- a/core/vm/logger.go
+++ b/core/vm/logger.go
@@ -128,18 +128,14 @@ func (l *StructLogger) CaptureState(env *EVM, pc uint64, op OpCode, gas, cost ui
}
// capture SSTORE opcodes and determine the changed value and store
- // it in the local storage container. NOTE: we do not need to do any
- // range checks here because that's already handler prior to calling
- // this function.
- switch op {
- case SSTORE:
+ // it in the local storage container.
+ if op == SSTORE && stack.len() >= 2 {
var (
value = common.BigToHash(stack.data[stack.len()-2])
address = common.BigToHash(stack.data[stack.len()-1])
)
l.changedValues[contract.Address()][address] = value
}
-
// copy a snapstot of the current memory state to a new buffer
var mem []byte
if !l.cfg.DisableMemory {