forked from filecoin-project/go-fil-markets
-
Notifications
You must be signed in to change notification settings - Fork 2
/
migrations.go
37 lines (31 loc) · 1.22 KB
/
migrations.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package migrations
import (
versioning "github.com/filecoin-project/go-ds-versioning/pkg"
"github.com/filecoin-project/go-ds-versioning/pkg/versioned"
"github.com/filecoin-project/boost-gfm/discovery"
"github.com/filecoin-project/boost-gfm/retrievalmarket"
"github.com/filecoin-project/boost-gfm/retrievalmarket/migrations"
)
//go:generate cbor-gen-for RetrievalPeers0
// RetrievalPeers0 is version 0 of RetrievalPeers
type RetrievalPeers0 struct {
Peers []migrations.RetrievalPeer0
}
// MigrateRetrievalPeers0To1 migrates a tuple encoded list of retrieval peers to a map encoded list
func MigrateRetrievalPeers0To1(oldRps *RetrievalPeers0) (*discovery.RetrievalPeers, error) {
peers := make([]retrievalmarket.RetrievalPeer, 0, len(oldRps.Peers))
for _, oldRp := range oldRps.Peers {
peers = append(peers, retrievalmarket.RetrievalPeer{
Address: oldRp.Address,
ID: oldRp.ID,
PieceCID: oldRp.PieceCID,
})
}
return &discovery.RetrievalPeers{
Peers: peers,
}, nil
}
// RetrievalPeersMigrations are migrations for the store local discovery list of peers we can retrieve from
var RetrievalPeersMigrations = versioned.BuilderList{
versioned.NewVersionedBuilder(MigrateRetrievalPeers0To1, versioning.VersionKey("1")),
}