aboutsummaryrefslogtreecommitdiffstats
path: root/light/state.go
diff options
context:
space:
mode:
authorJeffrey Wilcke <jeffrey@ethereum.org>2017-02-23 06:29:59 +0800
committerFelix Lange <fjl@users.noreply.github.com>2017-02-23 06:29:59 +0800
commit024d41d0c2660d8f1dfbeb14921c7109e30493a2 (patch)
treea2b4ed630b84084c7f439d1539ed0551ec729cbd /light/state.go
parent46ec4357e73dd0c43951d11638d9aed94f8ffd29 (diff)
downloadgo-tangerine-024d41d0c2660d8f1dfbeb14921c7109e30493a2.tar.gz
go-tangerine-024d41d0c2660d8f1dfbeb14921c7109e30493a2.tar.zst
go-tangerine-024d41d0c2660d8f1dfbeb14921c7109e30493a2.zip
core, core/state, core/vm: remove exported account getters (#3618)
Removed exported statedb object accessors, reducing the chance for nasty bugs to creep in. It's also ugly and unnecessary to have these methods.
Diffstat (limited to 'light/state.go')
-rw-r--r--light/state.go20
1 files changed, 20 insertions, 0 deletions
diff --git a/light/state.go b/light/state.go
index b6cefc9b9..f19748e89 100644
--- a/light/state.go
+++ b/light/state.go
@@ -268,6 +268,26 @@ func (self *LightState) CreateStateObject(ctx context.Context, addr common.Addre
return newSo, nil
}
+// ForEachStorage calls a callback function for every key/value pair found
+// in the local storage cache. Note that unlike core/state.StateObject,
+// light.StateObject only returns cached values and doesn't download the
+// entire storage tree.
+func (self *LightState) ForEachStorage(ctx context.Context, addr common.Address, cb func(key, value common.Hash) bool) error {
+ so, err := self.GetStateObject(ctx, addr)
+ if err != nil {
+ return err
+ }
+
+ if so == nil {
+ return nil
+ }
+
+ for h, v := range so.storage {
+ cb(h, v)
+ }
+ return nil
+}
+
//
// Setting, copying of the state methods
//