github.com/ethereum-optimism/optimism@v1.7.2/op-node/cmd/p2p/cmd_test.go (about)

     1  package p2p
     2  
     3  import (
     4  	"bytes"
     5  	"encoding/hex"
     6  	"testing"
     7  
     8  	"github.com/libp2p/go-libp2p/core/crypto"
     9  	"github.com/libp2p/go-libp2p/core/peer"
    10  	"github.com/stretchr/testify/require"
    11  )
    12  
    13  func TestPrivPub2PeerID(t *testing.T) {
    14  	priv, pub, err := crypto.GenerateKeyPair(crypto.Secp256k1, 32)
    15  	require.NoError(t, err)
    16  	privRaw, err := priv.Raw()
    17  	require.NoError(t, err)
    18  	pubRaw, err := pub.Raw()
    19  	require.NoError(t, err)
    20  
    21  	t.Run("with a private key", func(t *testing.T) {
    22  		privPidLib, err := peer.IDFromPrivateKey(priv)
    23  		require.NoError(t, err)
    24  		privPidImpl, err := Priv2PeerID(bytes.NewReader([]byte(hex.EncodeToString(privRaw))))
    25  		require.NoError(t, err)
    26  		require.Equal(t, privPidLib.String(), privPidImpl)
    27  	})
    28  	t.Run("with a public key", func(t *testing.T) {
    29  		pubPidLib, err := peer.IDFromPublicKey(pub)
    30  		require.NoError(t, err)
    31  		pubPidImpl, err := Pub2PeerID(bytes.NewReader([]byte(hex.EncodeToString(pubRaw))))
    32  		require.NoError(t, err)
    33  		require.Equal(t, pubPidLib.String(), pubPidImpl)
    34  	})
    35  	t.Run("with bad hex", func(t *testing.T) {
    36  		_, err := Priv2PeerID(bytes.NewReader([]byte("I am not hex.")))
    37  		require.Error(t, err)
    38  	})
    39  }