code: def get_transaction_details(tx_hash, coin_symbol='btc', limit=None, tx_input_offset=None, tx_output_offset=None,
          include_hex=False, show_confidence=False, confidence_only=False, api_key=None):
      
  
      assert is_valid_hash(tx_hash), tx_hash
      assert is_valid_coin_symbol(coin_symbol), coin_symbol
  
      added = 'txs/{}{}'.format(tx_hash, '/confidence' if confidence_only else  '')
      url = make_url(coin_symbol, added)
  
      params = {}
      if api_key:
          params['token'] = api_key
      if limit:
          params['limit'] = limit
      if tx_input_offset:
          params['inStart'] = tx_input_offset
      if tx_output_offset:
          params['outStart'] = tx_output_offset
      if include_hex:
          params['includeHex'] = 'true'
      if show_confidence and not confidence_only:
          params['includeConfidence'] = 'true'
  
      r = requests.get(url, params=params, verify=True, timeout=TIMEOUT_IN_SECONDS)
      response_dict = get_valid_json(r)
  
      if 'error' not in response_dict and not confidence_only:
          if response_dict['block_height'] > 0:
              response_dict['confirmed'] = parser.parse(response_dict['confirmed'])
          else:
              response_dict['block_height'] = None
              # Blockcypher reports fake times if it's not in a block
              response_dict['confirmed'] = None
  
          # format this string as a datetime object
          response_dict['received'] = parser.parse(response_dict['received'])
  
      return response_dict
docs: Takes a tx_hash, coin_symbol, and limit and returns the transaction details
  
      Optional:
        - limit: # inputs/ouputs to include (applies to both)
        - tx_input_offset: input offset
        - tx_output_offset: output offset
        - include_hex: include the raw TX hex
        - show_confidence: adds confidence information to unconfirmed TXRefs.
        - confidence_only: show only the confidence statistics and don't return the rest of the endpoint details (faster)