package testutil import ( "testing" peer "gx/ipfs/QmY1xNhBfF9xA1pmD8yejyQAyd77K68qNN6JPM1CN2eiRu/go-libp2p-peer" ci "gx/ipfs/QmaP38GJApheTr84f8R89vsT7oJLQw1AeCz4HqrQgv2njB/go-libp2p-crypto" ma "gx/ipfs/QmcobAGsCjYt5DXoq9et9L8yR8er7o7Cu3DTvpaq12jYSz/go-multiaddr" ) type Identity interface { Address() ma.Multiaddr ID() peer.ID PrivateKey() ci.PrivKey PublicKey() ci.PubKey } // TODO add a cheaper way to generate identities func RandIdentity() (Identity, error) { p, err := RandPeerNetParams() if err != nil { return nil, err } return &identity{*p}, nil } func RandIdentityOrFatal(t *testing.T) Identity { p, err := RandPeerNetParams() if err != nil { t.Fatal(err) } return &identity{*p} } // identity is a temporary shim to delay binding of PeerNetParams. type identity struct { PeerNetParams } func (p *identity) ID() peer.ID { return p.PeerNetParams.ID } func (p *identity) Address() ma.Multiaddr { return p.Addr } func (p *identity) PrivateKey() ci.PrivKey { return p.PrivKey } func (p *identity) PublicKey() ci.PubKey { return p.PubKey }