code: func (swap *Swap) send() {
  	if swap.local.BuyAt != nil && swap.balance < 0 {
  		amount := big.NewInt(int64(-swap.balance))
  		amount.Mul(amount, swap.remote.SellAt)
  		promise, err := swap.Out.Issue(amount)
  		if err != nil {
  			log.Warn(fmt.Sprintf("<%v> cannot issue cheque (amount: %v, channel: %v): %v", swap.proto, amount, swap.Out, err))
  		} else {
  			log.Warn(fmt.Sprintf("<%v> cheque issued (amount: %v, channel: %v)", swap.proto, amount, swap.Out))
  			swap.proto.Pay(-swap.balance, promise)
  			swap.balance = 0
  		}
  	}
  }
docs: // send (units) is called when payment is due
  // In case of insolvency no promise is issued and sent, safe against fraud
  // No return value: no error = payment is opportunistic = hang in till dropped