diff --git a/go.mod b/go.mod index 88b1714..ab40529 100644 --- a/go.mod +++ b/go.mod @@ -16,7 +16,6 @@ require ( github.com/google/uuid v1.6.0 github.com/lib/pq v1.12.3 github.com/libp2p/go-libp2p/core v0.43.0-rc2 - github.com/mr-tron/base58 v1.3.0 github.com/multiformats/go-multiaddr v0.16.1 github.com/prometheus/client_golang v1.24.1 github.com/prometheus/client_model v0.6.2 @@ -363,6 +362,7 @@ require ( github.com/moby/term v0.5.2 // indirect github.com/modelcontextprotocol/registry v1.4.0 // indirect github.com/moricho/tparallel v0.3.2 // indirect + github.com/mr-tron/base58 v1.3.0 // indirect github.com/muesli/cancelreader v0.2.2 // indirect github.com/muesli/mango v0.2.0 // indirect github.com/muesli/mango-cobra v1.3.0 // indirect diff --git a/pkg/net/multiaddrutil.go b/pkg/net/multiaddrutil.go index 2ac8d2d..edbcd4b 100644 --- a/pkg/net/multiaddrutil.go +++ b/pkg/net/multiaddrutil.go @@ -6,7 +6,6 @@ import ( stdnet "net" "github.com/libp2p/go-libp2p/core/peer" - b58 "github.com/mr-tron/base58/base58" "github.com/multiformats/go-multiaddr" ) @@ -59,12 +58,12 @@ func AddressInfoFromString(s string) (peer.AddrInfo, error) { if err := json.Unmarshal([]byte(s), &res); err != nil { return peer.AddrInfo{}, err } - pID, err := b58.Decode(res.ID) + pID, err := peer.Decode(res.ID) if err != nil { return peer.AddrInfo{}, fmt.Errorf("failed to parse peer ID %q: %w", res.ID, err) } return peer.AddrInfo{ - ID: peer.ID(pID), + ID: pID, Addrs: res.Addrs, }, nil } diff --git a/pkg/net/multiaddrutil_test.go b/pkg/net/multiaddrutil_test.go index be68ce3..8c78edf 100644 --- a/pkg/net/multiaddrutil_test.go +++ b/pkg/net/multiaddrutil_test.go @@ -44,8 +44,11 @@ func TestAddressInfoToStringAndBack(t *testing.T) { maList = append(maList, m) } + peerID, err := peer.Decode("16Uiu2HAkxohm96jeTn18K7iKVdNDd5A2jgY1pFoj6SkegPFq6Tzb") + require.NoError(t, err) + original := peer.AddrInfo{ - ID: "16Uiu2HAkxohm96jeTn18K7iKVdNDd5A2jgY1pFoj6SkegPFq6Tzb", + ID: peerID, Addrs: maList, } encoded := netpkg.AddressInfoToString(original) @@ -68,6 +71,13 @@ func TestAddressInfoFromString_InvalidID(t *testing.T) { require.Contains(t, err.Error(), "failed to parse peer ID") } +func TestAddressInfoFromString_RejectsEmptyPeerID(t *testing.T) { + jsonStr := `{"peerID": "", "addrs": []}` + _, err := netpkg.AddressInfoFromString(jsonStr) + require.Error(t, err) + require.Contains(t, err.Error(), "failed to parse peer ID") +} + func TestAddressInfoFromString_InvalidJSON(t *testing.T) { _, err := netpkg.AddressInfoFromString(`{invalid json}`) require.Error(t, err)