Commit 1e965cb8 authored by obscuren's avatar obscuren

Moved BlockDo to utils

parent fd1ddbce
......@@ -215,7 +215,7 @@ func (self *JSRE) execBlock(call otto.FunctionCall) otto.Value {
return otto.UndefinedValue()
}
err = self.ethereum.BlockDo(ethutil.FromHex(hash))
err = utils.BlockDo(self.ethereum, ethutil.FromHex(hash))
if err != nil {
fmt.Println(err)
return otto.FalseValue()
......
package utils
import (
"fmt"
"github.com/ethereum/eth-go"
"github.com/ethereum/eth-go/ethminer"
"github.com/ethereum/eth-go/ethpub"
......@@ -74,3 +75,21 @@ func StartMining(ethereum *eth.Ethereum) bool {
return false
}
// Replay block
func BlockDo(ethereum *eth.Ethereum, hash []byte) error {
block := ethereum.BlockChain().GetBlock(hash)
if block == nil {
return fmt.Errorf("unknown block %x", hash)
}
parent := ethereum.BlockChain().GetBlock(block.PrevHash)
_, err := ethereum.StateManager().ApplyDiff(parent.State(), parent, block)
if err != nil {
return err
}
return nil
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment