conn.go
func (c *Conn) RemoteMultiaddr() ma.Multiaddr {
	proto := ma.ProtocolWithCode(ma.P_P2P).Name
	peerid := c.Conn().RemotePeer().Pretty()
	p2paddr := ma.StringCast(fmt.Sprintf("/%s/%s", proto, peerid))

	circaddr := ma.Cast(ma.CodeToVarint(P_CIRCUIT))
	return p2paddr.Encapsulate(circaddr)
}
func (c *Conn) RemoteMultiaddr() ma.Multiaddr {
	proto := ma.ProtocolWithCode(ma.P_P2P).Name
	peerid := c.Conn().RemotePeer().Pretty()
	p2paddr := ma.StringCast(fmt.Sprintf("/%s/%s", proto, peerid))

	circaddr := ma.Cast(ma.CodeToVarint(P_CIRCUIT))
	return p2paddr.Encapsulate(circaddr)
}
func ( c * Conn ) RemoteMultiaddr ( ) ma . Multiaddr { proto := ma . ProtocolWithCode ( ma . P_P2P ) . Name peerid := c . Conn ( ) . RemotePeer ( ) . Pretty ( ) p2paddr := ma . StringCast ( fmt . Sprintf ( " " , proto , peerid ) ) circaddr := ma . Cast ( ma . CodeToVarint ( P_CIRCUIT ) ) return p2paddr . Encapsulate ( circaddr ) }
// TODO: is it okay to cast c.Conn().RemotePeer() into a multiaddr? might be "user input"
TODO : is it okay to cast c . Conn () . RemotePeer () into a multiaddr? might be user input