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 }