code: def get_virtual_transactions(blockchain_name, blockchain_opts, first_block_height, last_block_height, tx_filter=None, **hints):
      
      if blockchain_name == 'bitcoin':
          return get_bitcoin_virtual_transactions(blockchain_opts, first_block_height, last_block_height, tx_filter=tx_filter, **hints)
  
      else:
          raise ValueError("Unknown blockchain {}".format(blockchain_name))
docs: Get the sequence of virtualchain transactions from a particular blockchain over a given range of block heights.
      Returns a list of tuples in the format of [(block height, [txs])], where
      each tx in [txs] is the parsed transaction.  The parsed transaction will conform to... # TODO write a spec for this
      
      Each transaction has at least the following fields:
      
      `version`: the version of the transaction
      `txindex`: the index into the block where this tx occurs
      `ins`: a list of transaction inputs, where each member is a dict with:
          `outpoint`: a dict of {'hash': txid of transaction that fed it in, 'index': the index into the feeder tx's outputs list}
          `script`: the signature script for this input
      `outs`: a list of transaction outputs, where each member is a dict with:
          `value`: the amount of currency units spent (in the fundamental units of the chain)
          `script`: the spending script for this input
      `senders`: a list of information in 1-to-1 correspondence with each input regarding the transactions that funded it:
          `value`: the amount of currency units sent (in fundamental units of the chain) 
          `script_pubkey`: the spending script for the sending transaction
      
      Returns [(block height, [txs])] on success
      Returns None on error.
      Raises ValueError on unknown blockchain