code: def get_block_details(block_representation, coin_symbol='btc', txn_limit=None,
          txn_offset=None, in_out_limit=None, api_key=None):
      
  
      assert is_valid_coin_symbol(coin_symbol)
  
      block_overview = get_block_overview(
              block_representation=block_representation,
              coin_symbol=coin_symbol,
              txn_limit=txn_limit,
              txn_offset=txn_offset,
              api_key=api_key,
              )
  
      if 'error' in block_overview:
          return block_overview
  
      txids_to_lookup = block_overview['txids']
  
      txs_details = get_transactions_details(
              tx_hash_list=txids_to_lookup,
              coin_symbol=coin_symbol,
              limit=in_out_limit,
              api_key=api_key,
              )
  
      if 'error' in txs_details:
          return txs_details
  
      # build comparator dict to use for fast sorting of batched results later
      txids_comparator_dict = {}
      for cnt, tx_id in enumerate(txids_to_lookup):
          txids_comparator_dict[tx_id] = cnt
  
      # sort results using comparator dict
      block_overview['txids'] = sorted(
              txs_details,
              key=lambda k: txids_comparator_dict.get(k.get('hash'), 9999),  # anything that fails goes last
              )
  
      return block_overview
docs: Takes a block_representation, coin_symbol and txn_limit and
      1) Gets the block overview
      2) Makes a separate API call to get specific data on txn_limit transactions
  
      Note: block_representation may be the block number or block hash
  
      WARNING: using a high txn_limit will make this *extremely* slow.