Moved BlockDo to utils

pull/84/head
obscuren 11 years ago
parent fd1ddbce68
commit 1e965cb8f5
  1. 2
      ethereum/javascript_runtime.go
  2. 19
      utils/cmd.go

@ -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()

@ -1,6 +1,7 @@
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
}

Loading…
Cancel
Save