code: def process_tx_receipt(tx_hash, event, event_name):
      
      web3 = Web3Provider.get_web3()
      try:
          web3.eth.waitForTransactionReceipt(tx_hash, timeout=20)
      except Timeout:
          logger.info('Waiting for transaction receipt timed out. Cannot verify receipt and event.')
          return
  
      receipt = web3.eth.getTransactionReceipt(tx_hash)
      event = event().processReceipt(receipt)
      if event:
          logger.info(f'Success: got {event_name} event after fulfilling condition.')
          logger.debug(
              f'Success: got {event_name} event after fulfilling condition. {receipt}, ::: {event}')
      else:
          logger.debug(f'Something is not right, cannot find the {event_name} event after calling the'
                       f' fulfillment condition. This is the transaction receipt {receipt}')
  
      if receipt and receipt.status == 0:
          logger.warning(
              f'Transaction failed: tx_hash {tx_hash}, tx event {event_name}, receipt {receipt}')
docs: Wait until the tx receipt is processed.
  
      :param tx_hash: hash of the transaction
      :param event: AttributeDict with the event data.
      :param event_name: name of the event to subscribe, str
      :return: