diff options
author | Taylor Gerring <taylor.gerring@gmail.com> | 2015-03-20 11:28:45 +0800 |
---|---|---|
committer | Taylor Gerring <taylor.gerring@gmail.com> | 2015-03-20 11:28:45 +0800 |
commit | 19360c00795d356d052a379663c3f36aedba3f9e (patch) | |
tree | 1cadbb43e1490221d8ae0e18d022514be39f4cce /xeth | |
parent | 6669ef5b701f8b060287c8a63e9f3c1116b4b74a (diff) | |
download | go-tangerine-19360c00795d356d052a379663c3f36aedba3f9e.tar.gz go-tangerine-19360c00795d356d052a379663c3f36aedba3f9e.tar.zst go-tangerine-19360c00795d356d052a379663c3f36aedba3f9e.zip |
Move stateAt func to XEth
Diffstat (limited to 'xeth')
-rw-r--r-- | xeth/xeth.go | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/xeth/xeth.go b/xeth/xeth.go index 922fce8f1..504a93f58 100644 --- a/xeth/xeth.go +++ b/xeth/xeth.go @@ -154,6 +154,24 @@ func (self *XEth) stop() { close(self.quit) } +func (self *XEth) AtStateNum(num int64) *XEth { + chain := self.Backend().ChainManager() + var block *types.Block + + if num < 0 { + num = chain.CurrentBlock().Number().Int64() + num + 1 + } + block = chain.GetBlockByNumber(uint64(num)) + + var st *state.StateDB + if block != nil { + st = state.New(block.Root(), self.Backend().StateDb()) + } else { + st = chain.State() + } + return self.WithState(st) +} + func (self *XEth) Backend() Backend { return self.eth } func (self *XEth) WithState(statedb *state.StateDB) *XEth { xeth := &XEth{ |