|
9 | 9 | "github.com/nspcc-dev/neo-go/cli/options" |
10 | 10 | "github.com/nspcc-dev/neo-go/cli/server" |
11 | 11 | "github.com/nspcc-dev/neo-go/pkg/core" |
12 | | - "github.com/nspcc-dev/neo-go/pkg/core/mpt" |
13 | | - "github.com/nspcc-dev/neo-go/pkg/core/storage" |
14 | 12 | "github.com/nspcc-dev/neo-go/pkg/crypto/keys" |
15 | 13 | gio "github.com/nspcc-dev/neo-go/pkg/io" |
16 | 14 | "github.com/nspcc-dev/neo-go/pkg/services/helpers/neofs" |
@@ -53,7 +51,7 @@ func uploadState(ctx *cli.Context) error { |
53 | 51 | defer func() { _ = logCloser() }() |
54 | 52 | } |
55 | 53 |
|
56 | | - chain, store, prometheus, pprof, err := server.InitBCWithMetrics(cfg, log) |
| 54 | + chain, _, prometheus, pprof, err := server.InitBCWithMetrics(cfg, log) |
57 | 55 | if err != nil { |
58 | 56 | return err |
59 | 57 | } |
@@ -133,7 +131,7 @@ func uploadState(ctx *cli.Context) error { |
133 | 131 | wrt.WriteU32LE(uint32(chain.GetConfig().Magic)) |
134 | 132 | wrt.WriteU32LE(height) |
135 | 133 | wrt.WriteBytes(stateRoot.Root[:]) |
136 | | - err = traverseMPT(stateRoot.Root, store, wrt) |
| 134 | + err = traverseMPT(stateRoot.Root, stateModule, wrt) |
137 | 135 | if err != nil { |
138 | 136 | _ = writer.Close() |
139 | 137 | return err |
@@ -192,15 +190,11 @@ func searchStateIndex(ctx *cli.Context, p neofs.PoolWrapper, containerID cid.ID, |
192 | 190 | } |
193 | 191 | } |
194 | 192 |
|
195 | | -func traverseMPT(root util.Uint256, store storage.Store, writer *gio.BinWriter) error { |
196 | | - cache := storage.NewMemCachedStore(store) |
197 | | - billet := mpt.NewBillet(root, mpt.ModeAll, mpt.DummySTTempStoragePrefix, cache) |
198 | | - err := billet.Traverse(func(pathToNode []byte, node mpt.Node, nodeBytes []byte) bool { |
199 | | - writer.WriteVarBytes(nodeBytes) |
200 | | - return writer.Err != nil |
201 | | - }, false) |
202 | | - if err != nil { |
203 | | - return fmt.Errorf("billet traversal error: %w", err) |
204 | | - } |
205 | | - return nil |
| 193 | +func traverseMPT(root util.Uint256, stateModule core.StateRoot, writer *gio.BinWriter) error { |
| 194 | + stateModule.SeekStates(root, []byte{}, func(k, v []byte) bool { |
| 195 | + writer.WriteVarBytes(k) |
| 196 | + writer.WriteVarBytes(v) |
| 197 | + return writer.Err == nil |
| 198 | + }) |
| 199 | + return writer.Err |
206 | 200 | } |
0 commit comments