From c3b00e001104b015af81d05c9d859957d541ed4c Mon Sep 17 00:00:00 2001 From: Evgenii Stratonikov Date: Fri, 30 Sep 2022 17:38:37 +0300 Subject: [PATCH] [#278] netmap: Migrate from the old storage format Signed-off-by: Evgenii Stratonikov --- netmap/netmap_contract.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/netmap/netmap_contract.go b/netmap/netmap_contract.go index 6112032..80f9560 100644 --- a/netmap/netmap_contract.go +++ b/netmap/netmap_contract.go @@ -94,6 +94,25 @@ func _deploy(data interface{}, isUpdate bool) { if isUpdate { common.CheckVersion(args.version) + + count := getSnapshotCount(ctx) + prefix := []byte(snapshotKeyPrefix) + for i := 0; i < count; i++ { + key := append(prefix, byte(i)) + data := storage.Get(ctx, key) + if data != nil { + nodes := std.Deserialize(data.([]byte)).([]Node) + for i := range nodes { + // Old structure contains only the first field, + // second is implicitly assumed to be Online. + nodes[i] = Node{ + BLOB: nodes[i].BLOB, + State: NodeStateOnline, + } + } + common.SetSerialized(ctx, key, nodes) + } + } return }