code: def broadcast_tx_with_chain(tx, bitcoin_chain, bitcoind=False):
          
          last_exception = None
          final_tx_id = None
  
          # Unlike other providers, we want to broadcast to all available apis
          for attempt_number in range(0, MAX_BROADCAST_ATTEMPTS):
              for method_provider in service_provider_methods('broadcast_tx',
                                                              get_providers_for_chain(bitcoin_chain, bitcoind)):
                  try:
                      tx_id = method_provider(tx)
                      if tx_id:
                          logging.info('Broadcasting succeeded with method_provider=%s, txid=%s', str(method_provider),
                                       tx_id)
                          if final_tx_id and final_tx_id != tx_id:
                              logging.error(
                                  'This should never happen; fail and investigate if it does. Got conflicting tx_ids=%s and %s. Hextx=%s',
                                  final_tx_id, tx_id, tx.as_hex())
                              raise Exception('Got conflicting tx_ids.')
                          final_tx_id = tx_id
                  except Exception as e:
                      logging.warning('Caught exception trying provider %s. Trying another. Exception=%s',
                                      str(method_provider), e)
                      last_exception = e
              # At least 1 provider succeeded, so return
              if final_tx_id:
                  return final_tx_id
              else:
                  logging.warning('Broadcasting failed. Waiting before retrying. This is attempt number %d',
                                  attempt_number)
                  time.sleep(BROADCAST_RETRY_INTERVAL)
          logging.error('Failed broadcasting through all providers')
          logging.error(last_exception, exc_info=True)
          raise BroadcastError(last_exception)
docs: Broadcast the transaction through the configured set of providers
  
          :param tx:
          :param bitcoin_chain:
          :return: