diff options
author | obscuren <geffobscura@gmail.com> | 2014-06-23 17:25:14 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2014-06-23 17:25:14 +0800 |
commit | a4e26bf7c2c0cfc65be14ef98af695a0d663609f (patch) | |
tree | 016d6708baba175a1670986a76bdd984b7504a80 | |
parent | 9350ecd36fe3a30bea4cfd60db9a53787d4d5852 (diff) | |
download | dexon-a4e26bf7c2c0cfc65be14ef98af695a0d663609f.tar dexon-a4e26bf7c2c0cfc65be14ef98af695a0d663609f.tar.gz dexon-a4e26bf7c2c0cfc65be14ef98af695a0d663609f.tar.bz2 dexon-a4e26bf7c2c0cfc65be14ef98af695a0d663609f.tar.lz dexon-a4e26bf7c2c0cfc65be14ef98af695a0d663609f.tar.xz dexon-a4e26bf7c2c0cfc65be14ef98af695a0d663609f.tar.zst dexon-a4e26bf7c2c0cfc65be14ef98af695a0d663609f.zip |
Added Block do which replays the given block or error
-rw-r--r-- | ethereum.go | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/ethereum.go b/ethereum.go index a6cb78b1f..77a7c92c7 100644 --- a/ethereum.go +++ b/ethereum.go @@ -113,6 +113,24 @@ func New(caps Caps, usePnp bool) (*Ethereum, error) { return ethereum, nil } +// Replay block +func (self *Ethereum) BlockDo(hash []byte) error { + block := self.blockChain.GetBlock(hash) + if block == nil { + return fmt.Errorf("unknown block %x", hash) + } + + parent := self.blockChain.GetBlock(block.PrevHash) + + _, err := self.stateManager.ApplyDiff(parent.State(), parent, block) + if err != nil { + return err + } + + return nil + +} + func (s *Ethereum) Reactor() *ethutil.ReactorEngine { return s.reactor } |