code: function getLocalAndRemoteTransactions(api, options, callback) {
  
    function queryRippled(_callback) {
      getAccountTx(api, options, function(error, results) {
        if (error) {
          _callback(error);
        } else {
          // Set marker so that when this function is called again
          // recursively it starts from the last place it left off
          options.marker = results.marker;
  
          _callback(null, results.transactions);
        }
      });
    }
  
    function queryDB(_callback) {
      if (options.exclude_failed) {
        _callback(null, []);
      } else {
        api.db.getFailedTransactions(options, _callback);
      }
    }
  
    var transactionSources = [
      queryRippled,
      queryDB
    ];
  
    async.parallel(transactionSources, function(error, sourceResults) {
      if (error) {
        return callback(error);
      }
      var results = sourceResults[0].concat(sourceResults[1]);
      var transactions = _.uniq(results, function(tx) {
        return tx.hash;
      });
      callback(null, transactions);
    });
  
  }
docs: Retrieve transactions from the Remote as well as the local database.
  
  @param {Remote} remote
  @param {/lib/db-interface} dbinterface
  @param {RippleAddress} options.account
  @param {Number} [-1] options.ledger_index_min
  @param {Number} [-1] options.ledger_index_max
  @param {Boolean} [false] options.earliestFirst
  @param {Boolean} [false] options.binary
  @param {Boolean} [false] options.exclude_failed
  @param {opaque value} options.marker
  @param {Function} callback
  
  @callback
  @param {Error} error
  @param {Array of transactions in JSON format} transactions