aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDeterminant <tederminant@gmail.com>2020-09-20 16:52:45 -0400
committerDeterminant <tederminant@gmail.com>2020-09-20 16:52:45 -0400
commit30fae395d465eb79ee8bc122d67a58cea3ccfcf2 (patch)
treee8dfa653348550237903e349fe2d5a2cf8b05bdd
parent9284f6d1193247adfaa29025934a3514a46188a3 (diff)
execute full state transfer during block validation
-rw-r--r--coreth.go4
-rw-r--r--plugin/evm/block.go4
2 files changed, 7 insertions, 1 deletions
diff --git a/coreth.go b/coreth.go
index 1d6b92e..d1fd29f 100644
--- a/coreth.go
+++ b/coreth.go
@@ -90,6 +90,10 @@ func (self *ETHChain) SubscribeNewMinedBlockEvent() *event.TypeMuxSubscription {
return self.backend.Miner().GetWorkerMux().Subscribe(core.NewMinedBlockEvent{})
}
+func (self *ETHChain) BlockChain() *core.BlockChain {
+ return self.backend.BlockChain()
+}
+
func (self *ETHChain) VerifyBlock(block *types.Block) bool {
txnHash := types.DeriveSha(block.Transactions(), new(trie.Trie))
uncleHash := types.CalcUncleHash(block.Uncles())
diff --git a/plugin/evm/block.go b/plugin/evm/block.go
index 1e1d710..556f171 100644
--- a/plugin/evm/block.go
+++ b/plugin/evm/block.go
@@ -136,7 +136,9 @@ func (b *Block) Verify() error {
if utx.SemanticVerify(vm, tx) != nil {
return errInvalidBlock
}
- if utx.EVMStateTransfer(vm, pState) != nil {
+ bc := vm.chain.BlockChain()
+ _, _, _, err = bc.Processor().Process(b.ethBlock, pState, *bc.GetVMConfig())
+ if err != nil {
return errInvalidBlock
}
}