Skip to content

Commit

Permalink
fix: switch to go-multicodec mappings (#240)
Browse files Browse the repository at this point in the history
The mappings in go-cid were maintained by hand and are invalid.
More details in ipfs/go-cid#137

This is switching to go-multicodec which has correct mappings
that are generated, not written by hand.

Co-authored-by: Daniel Martí <mvdan@mvdan.cc>
  • Loading branch information
lidel and mvdan committed Mar 31, 2022
1 parent 0b87f23 commit a5df506
Showing 1 changed file with 4 additions and 7 deletions.
11 changes: 4 additions & 7 deletions core/peer/peer.go
Expand Up @@ -9,6 +9,7 @@ import (
"github.com/ipfs/go-cid"
ic "github.com/libp2p/go-libp2p-core/crypto"
b58 "github.com/mr-tron/base58/base58"
mc "github.com/multiformats/go-multicodec"
mh "github.com/multiformats/go-multihash"
)

Expand Down Expand Up @@ -162,13 +163,9 @@ func Encode(id ID) string {

// FromCid converts a CID to a peer ID, if possible.
func FromCid(c cid.Cid) (ID, error) {
ty := c.Type()
if ty != cid.Libp2pKey {
s := cid.CodecToStr[ty]
if s == "" {
s = fmt.Sprintf("[unknown multicodec %d]", ty)
}
return "", fmt.Errorf("can't convert CID of type %s to a peer ID", s)
code := mc.Code(c.Type())
if code != mc.Libp2pKey {
return "", fmt.Errorf("can't convert CID of type %q to a peer ID", code)
}
return ID(c.Hash()), nil
}
Expand Down

0 comments on commit a5df506

Please sign in to comment.