code: func (b *Broadcaster) Broadcast(tx *wire.MsgTx) error {
  	errChan := make(chan error, 1)
  
  	select {
  	case b.broadcastReqs <- &broadcastReq{
  		tx:      tx,
  		errChan: errChan,
  	}:
  	case <-b.quit:
  		return ErrBroadcasterStopped
  	}
  
  	select {
  	case err := <-errChan:
  		return err
  	case <-b.quit:
  		return ErrBroadcasterStopped
  	}
  }
docs: // Broadcast submits a request to the Broadcaster to reliably broadcast the
  // given transaction. An error won't be returned if the transaction already
  // exists within the mempool. Any transaction broadcast through this method will
  // be rebroadcast upon every change of the tip of the chain.