diff options
author | Determinant <[email protected]> | 2020-09-20 16:52:45 -0400 |
---|---|---|
committer | Determinant <[email protected]> | 2020-09-20 16:52:45 -0400 |
commit | 30fae395d465eb79ee8bc122d67a58cea3ccfcf2 (patch) | |
tree | e8dfa653348550237903e349fe2d5a2cf8b05bdd | |
parent | 9284f6d1193247adfaa29025934a3514a46188a3 (diff) |
execute full state transfer during block validation
-rw-r--r-- | coreth.go | 4 | ||||
-rw-r--r-- | plugin/evm/block.go | 4 |
2 files changed, 7 insertions, 1 deletions
@@ -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 } } |