import dateFormat from 'dateformat';
import { RegistryTypes } from 'src/services/soft.js/types';
import { LogItem } from './type';

export const mapLogData = (data: any): LogItem[] =>
  data.reduce((acc, item) => {
    let cyberLinkMessage = item.tx.body.messages[0];

    if (!cyberLinkMessage) {
      return acc;
    }

    if (cyberLinkMessage['@type'] === RegistryTypes.MsgExec) {
      [cyberLinkMessage] = cyberLinkMessage.msgs;
    }

    const cid = cyberLinkMessage.links[0].to;

    if (!cid) {
      return acc;
    }

    return [
      ...acc,
      {
        timestamp: item.timestamp,
        txhash: item.txhash,
        cid,
      },
    ];
  }, []);

type LogItemByDate = {
  [key: string]: LogItem[];
};

export const reduceByDate = (data: LogItem[]) => {
  return Object.entries(
    data.reduce<LogItemByDate>((acc, item) => {
      const date = dateFormat(item.timestamp, 'yyyy-mm-dd');

      if (!acc[date]) {
        acc[date] = [];
      }

      acc[date].push(item);

      return acc;
    }, {})
  );
};

Synonyms

soft3.js/examples/utils.ts
cyb/src/utils/utils.ts
pussy-ts/src/utils/utils.ts
bostrom.network/src/lib/utils.ts
pussy-ts/src/services/ibc-history/utils.ts
cyb/src/services/CozoDb/utils.ts
cyb/src/features/ibc-history/utils.ts
cyb/src/containers/mint/utils.ts
cyb/src/containers/portal/utils.ts
pussy-ts/src/containers/portal/utils.ts
cyb/src/utils/search/utils.ts
pussy-ts/src/services/CozoDb/utils.ts
pussy-ts/src/utils/search/utils.ts
cyb/src/containers/warp/utils.ts
cyb/src/components/time/utils.ts
pussy-ts/src/containers/warp/utils.ts
cyb/src/pages/teleport/swap/utils.ts
pussy-ts/src/pages/teleport/swap/utils.ts
cyb/src/features/studio/utils/utils.ts
cyb/src/containers/sigma/hooks/utils.ts
cyb/src/pages/robot/Brain/utils.ts
cyb/src/services/backend/services/sync/utils.ts
pussy-ts/src/services/backend/services/sync/utils.ts
cyb/src/pages/teleport/components/Inputs/utils.ts
pussy-ts/src/services/backend/services/indexer/utils.ts
pussy-ts/src/services/backend/services/lcd/utils.ts
pussy-ts/src/pages/teleport/components/Inputs/utils.ts
cyb/src/features/studio/components/Editor/utils/utils.ts

Neighbours