import { getTransactions } from 'src/services/transactions/lcd';
import { CyberLinkSimple } from 'src/types/base';
import { KeywordsItem } from '../studio.context';

export const checkLoopLinks = async (links: CyberLinkSimple[]) => {
  const uniqueLinks: CyberLinkSimple[] = [];
  const loopLink: CyberLinkSimple[] = [];

  for (let index = 0; index < links.length; index++) {
    const item = links[index];
    // eslint-disable-next-line no-await-in-loop
    const response = await getTransactions({
      events: [
        { key: 'cyberlink.particleFrom', value: item.from },
        { key: 'cyberlink.particleTo', value: item.to },
      ],
      pagination: { limit: 1, offset: 0 },
    });

    if (!response?.txs.length) {
      uniqueLinks.push(item);
    } else {
      loopLink.push(item);
    }
  }

  return { uniqueLinks, loopLink };
};

export const mapLinks = (
  cid: string,
  keywords: {
    from: KeywordsItem[];
    to: KeywordsItem[];
  }
) => {
  return [
    ...keywords.from.map((item) => ({
      from: item.cid,
      to: cid,
    })),
    ...keywords.to.map((item) => ({
      from: cid,
      to: item.cid,
    })),
  ];
};

export const reduceLoopKeywords = (loopLink: CyberLinkSimple[], keywords: KeywordsItem[]) => {
  const keywordsArr: string[] = [];

  loopLink.forEach((itemLink) => {
    keywords.forEach((itemKey) => {
      if (itemKey.cid === itemLink.from || itemKey.cid === itemLink.to) {
        keywordsArr.push(itemKey.text);
      }
    });
  });

  return keywordsArr;
};

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/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
cyb/src/pages/robot/_refactor/account/tabs/feeds/utils.ts

Neighbours