func printPeer(p peer.Peer) (interface{}, error) { if p == nil { return nil, errors.New("Attempted to print nil peer!") } info := new(IdOutput) info.ID = p.ID().String() if p.PubKey() == nil { return nil, errors.New(`peer publickey not populated on offline runs, please run the daemon to use ipfs id!`) } pkb, err := p.PubKey().Bytes() if err != nil { return nil, err } info.PublicKey = base64.StdEncoding.EncodeToString(pkb) for _, a := range p.Addresses() { info.Addresses = append(info.Addresses, a.String()) } agent, protocol := p.GetVersions() info.AgentVersion = agent info.ProtocolVersion = protocol return info, nil }