code: func (swap *Swap) SetRemote(remote *Profile) {
  	defer swap.lock.Unlock()
  	swap.lock.Lock()
  
  	swap.remote = remote
  	if swap.Sells && (remote.BuyAt.Sign() <= 0 || swap.local.SellAt.Sign() <= 0 || remote.BuyAt.Cmp(swap.local.SellAt) < 0) {
  		swap.Out.Stop()
  		swap.Sells = false
  	}
  	if swap.Buys && (remote.SellAt.Sign() <= 0 || swap.local.BuyAt.Sign() <= 0 || swap.local.BuyAt.Cmp(swap.remote.SellAt) < 0) {
  		swap.In.Stop()
  		swap.Buys = false
  	}
  
  	log.Debug(fmt.Sprintf("<%v> remote profile set: pay at: %v, drop at: %v, buy at: %v, sell at: %v", swap.proto, remote.PayAt, remote.DropAt, remote.BuyAt, remote.SellAt))
  
  }
docs: // SetRemote - entry point for setting remote swap profile (e.g from handshake or other message)