All files / src/Metadata util.ts

100% Statements 10/10
100% Branches 2/2
100% Functions 2/2
100% Lines 8/8

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17      38x   38x 13x   13x 23x 23x 23x     23x    
import { Cardano } from '@cardano-sdk/core';
import { TxMetadataByHashes } from './DbSyncMetadataService';
import { TxMetadataModel } from './types';
import { mapTxMetadata } from './mappers';
 
export const mapTxMetadataByHashes = (listOfMetadata: TxMetadataModel[]): TxMetadataByHashes => {
  const metadataMap: Map<Cardano.TransactionId, TxMetadataModel[]> = new Map();
 
  for (const metadata of listOfMetadata) {
    const txId = metadata.tx_id.toString('hex') as Cardano.TransactionId;
    const currentMetadata: TxMetadataModel[] = metadataMap.get(txId) ?? [];
    metadataMap.set(txId, [...currentMetadata, metadata]);
  }
 
  return new Map([...metadataMap].map(([id, metadata]) => [id, mapTxMetadata(metadata)]));
};