message: Make getItemAcrossStores more flexible
diff: @@ -36,9 +36,9 @@ export interface StoreServiceType {
  getAllItems(): DimItem[];
  getStoresStream(account: DestinyAccount): ConnectableObservable<DimStore[]>;
  getItemAcrossStores(params: {
  - id: string;
  - hash: number;
  - notransfer: boolean;
  + id?: string;
  + hash?: number;
  + notransfer?: boolean;
  }): DimItem | undefined;
  updateCharacters(account: DestinyAccount): IPromise<DimStore[]>;
  reloadStores(): Promise<DimStore[]>;
  @@ -104,7 +104,7 @@ export function D2StoresService(
  /**
  * Find an item among all stores that matches the params provided.
  */
  - function getItemAcrossStores(params: { id: string; hash: number; notransfer: boolean }) {
  + function getItemAcrossStores(params: { id?: string; hash?: number; notransfer?: boolean }) {
  const predicate = _.iteratee(_.pick(params, 'id', 'hash', 'notransfer')) as (DimItem) => boolean;
  for (const store of _stores) {
  const result = store.items.find(predicate);
  