From 19360c00795d356d052a379663c3f36aedba3f9e Mon Sep 17 00:00:00 2001
From: Taylor Gerring <taylor.gerring@gmail.com>
Date: Thu, 19 Mar 2015 23:28:45 -0400
Subject: Move stateAt func to XEth

---
 xeth/xeth.go | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

(limited to 'xeth')

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{
-- 
cgit v1.2.3