{
  "version": 3,
  "sources": ["../../src/store/selectors/transactionsSelector.ts"],
  "sourcesContent": ["import { StoreType } from 'store/store.types';\nimport {\n  TransactionBatchStatusesEnum,\n  TransactionServerStatusesEnum\n} from 'types/enums.types';\nimport {\n  SignedTransactionType,\n  SessionTransactionType\n} from 'types/transactions.types';\n\nexport const transactionsSliceSelector = ({ transactions }: StoreType) =>\n  transactions;\n\nexport const pendingTransactionsSessionsSelector = ({\n  transactions: state\n}: StoreType): Record<string, SessionTransactionType> => {\n  const pendingSessions: Record<string, SessionTransactionType> = {};\n\n  Object.entries(state).forEach(([sessionId, data]) => {\n    const hasPendingTransactions = data.transactions.some(\n      ({ status }) => status === TransactionServerStatusesEnum.pending\n    );\n    if (hasPendingTransactions && data.status === 'sent') {\n      pendingSessions[sessionId] = data;\n    }\n  });\n\n  return pendingSessions;\n};\n\nexport const successfulTransactionsSessionsSelector = ({\n  transactions: state\n}: StoreType): Record<string, SessionTransactionType> => {\n  const successfulSessions: Record<string, SessionTransactionType> = {};\n\n  Object.entries(state).forEach(([sessionId, data]) => {\n    const hasSuccessfulTransactions = data.transactions.some(\n      ({ status }) => status === TransactionServerStatusesEnum.success\n    );\n    if (hasSuccessfulTransactions && data.status === 'sent') {\n      successfulSessions[sessionId] = data;\n    }\n  });\n\n  return successfulSessions;\n};\n\nexport const failedTransactionsSessionsSelector = ({\n  transactions: state\n}: StoreType): Record<string, SessionTransactionType> => {\n  const failedSessions: Record<string, SessionTransactionType> = {};\n\n  Object.entries(state).forEach(([sessionId, data]) => {\n    const hasFailedTransactions = data.transactions.some(\n      ({ status }) =>\n        status &&\n        [\n          TransactionServerStatusesEnum.fail,\n          TransactionServerStatusesEnum.invalid,\n          TransactionBatchStatusesEnum.cancelled,\n          TransactionBatchStatusesEnum.timedOut\n        ]\n          .map((el) => String(el))\n          .includes(status)\n    );\n    if (hasFailedTransactions && data.status === 'sent') {\n      failedSessions[sessionId] = data;\n    }\n  });\n\n  return failedSessions;\n};\n\nexport const pendingTransactionsSelector = ({\n  transactions: state\n}: StoreType): SignedTransactionType[] => {\n  const pendingTransactions: SignedTransactionType[] = [];\n\n  Object.values(state).forEach(({ transactions }) => {\n    transactions.forEach((transaction) => {\n      if (\n        transaction.status &&\n        [\n          TransactionServerStatusesEnum.pending,\n          TransactionBatchStatusesEnum.sent\n        ]\n          .map((el) => String(el))\n          .includes(transaction.status)\n      ) {\n        pendingTransactions.push(transaction);\n      }\n    });\n  });\n\n  return pendingTransactions;\n};\n\nexport const successfulTransactionsSelector = ({\n  transactions: state\n}: StoreType) => {\n  const successfulTransactions: SignedTransactionType[] = [];\n\n  Object.values(state).forEach(({ transactions }) => {\n    transactions.forEach((transaction) => {\n      if (transaction.status === TransactionServerStatusesEnum.success) {\n        successfulTransactions.push(transaction);\n      }\n    });\n  });\n\n  return successfulTransactions;\n};\n\nexport const failedTransactionsSelector = ({\n  transactions: state\n}: StoreType) => {\n  const failedTransactions: SignedTransactionType[] = [];\n\n  Object.values(state).forEach(({ transactions }) => {\n    transactions.forEach((transaction) => {\n      if (\n        transaction.status &&\n        [\n          TransactionServerStatusesEnum.fail,\n          TransactionServerStatusesEnum.invalid,\n          TransactionBatchStatusesEnum.cancelled,\n          TransactionBatchStatusesEnum.timedOut\n        ]\n          .map((el) => String(el))\n          .includes(transaction.status)\n      ) {\n        failedTransactions.push(transaction);\n      }\n    });\n  });\n\n  return failedTransactions;\n};\n\nexport const timedOutTransactionsSelector = ({\n  transactions: state\n}: StoreType) => {\n  const timedOutTransactions: SignedTransactionType[] = [];\n\n  Object.values(state).forEach(({ transactions }) => {\n    transactions.forEach((transaction) => {\n      if (transaction.status === TransactionBatchStatusesEnum.timedOut) {\n        timedOutTransactions.push(transaction);\n      }\n    });\n  });\n\n  return timedOutTransactions;\n};\n"],
  "mappings": "AAUO,IAAMA,EAA4B,CAAC,CAAE,aAAAC,CAAa,IACvDA,EAEWC,EAAsC,CAAC,CAClD,aAAcC,CAChB,IAAyD,CACvD,IAAMC,EAA0D,CAAC,EAEjE,cAAO,QAAQD,CAAK,EAAE,QAAQ,CAAC,CAACE,EAAWC,CAAI,IAAM,CACpBA,EAAK,aAAa,KAC/C,CAAC,CAAE,OAAAC,CAAO,IAAMA,aAClB,GAC8BD,EAAK,SAAW,SAC5CF,EAAgBC,CAAS,EAAIC,EAEjC,CAAC,EAEMF,CACT,EAEaI,EAAyC,CAAC,CACrD,aAAcL,CAChB,IAAyD,CACvD,IAAMM,EAA6D,CAAC,EAEpE,cAAO,QAAQN,CAAK,EAAE,QAAQ,CAAC,CAACE,EAAWC,CAAI,IAAM,CACjBA,EAAK,aAAa,KAClD,CAAC,CAAE,OAAAC,CAAO,IAAMA,aAClB,GACiCD,EAAK,SAAW,SAC/CG,EAAmBJ,CAAS,EAAIC,EAEpC,CAAC,EAEMG,CACT,EAEaC,EAAqC,CAAC,CACjD,aAAcP,CAChB,IAAyD,CACvD,IAAMQ,EAAyD,CAAC,EAEhE,cAAO,QAAQR,CAAK,EAAE,QAAQ,CAAC,CAACE,EAAWC,CAAI,IAAM,CACrBA,EAAK,aAAa,KAC9C,CAAC,CAAE,OAAAC,CAAO,IACRA,GACA,wCAKA,EACG,IAAKK,GAAO,OAAOA,CAAE,CAAC,EACtB,SAASL,CAAM,CACtB,GAC6BD,EAAK,SAAW,SAC3CK,EAAeN,CAAS,EAAIC,EAEhC,CAAC,EAEMK,CACT,EAEaE,EAA8B,CAAC,CAC1C,aAAcV,CAChB,IAA0C,CACxC,IAAMW,EAA+C,CAAC,EAEtD,cAAO,OAAOX,CAAK,EAAE,QAAQ,CAAC,CAAE,aAAAF,CAAa,IAAM,CACjDA,EAAa,QAASc,GAAgB,CAElCA,EAAY,QACZ,iBAGA,EACG,IAAKH,GAAO,OAAOA,CAAE,CAAC,EACtB,SAASG,EAAY,MAAM,GAE9BD,EAAoB,KAAKC,CAAW,CAExC,CAAC,CACH,CAAC,EAEMD,CACT,EAEaE,EAAiC,CAAC,CAC7C,aAAcb,CAChB,IAAiB,CACf,IAAMc,EAAkD,CAAC,EAEzD,cAAO,OAAOd,CAAK,EAAE,QAAQ,CAAC,CAAE,aAAAF,CAAa,IAAM,CACjDA,EAAa,QAASc,GAAgB,CAChCA,EAAY,oBACdE,EAAuB,KAAKF,CAAW,CAE3C,CAAC,CACH,CAAC,EAEME,CACT,EAEaC,EAA6B,CAAC,CACzC,aAAcf,CAChB,IAAiB,CACf,IAAMgB,EAA8C,CAAC,EAErD,cAAO,OAAOhB,CAAK,EAAE,QAAQ,CAAC,CAAE,aAAAF,CAAa,IAAM,CACjDA,EAAa,QAASc,GAAgB,CAElCA,EAAY,QACZ,wCAKA,EACG,IAAKH,GAAO,OAAOA,CAAE,CAAC,EACtB,SAASG,EAAY,MAAM,GAE9BI,EAAmB,KAAKJ,CAAW,CAEvC,CAAC,CACH,CAAC,EAEMI,CACT,EAEaC,EAA+B,CAAC,CAC3C,aAAcjB,CAChB,IAAiB,CACf,IAAMkB,EAAgD,CAAC,EAEvD,cAAO,OAAOlB,CAAK,EAAE,QAAQ,CAAC,CAAE,aAAAF,CAAa,IAAM,CACjDA,EAAa,QAASc,GAAgB,CAChCA,EAAY,qBACdM,EAAqB,KAAKN,CAAW,CAEzC,CAAC,CACH,CAAC,EAEMM,CACT",
  "names": ["transactionsSliceSelector", "transactions", "pendingTransactionsSessionsSelector", "state", "pendingSessions", "sessionId", "data", "status", "successfulTransactionsSessionsSelector", "successfulSessions", "failedTransactionsSessionsSelector", "failedSessions", "el", "pendingTransactionsSelector", "pendingTransactions", "transaction", "successfulTransactionsSelector", "successfulTransactions", "failedTransactionsSelector", "failedTransactions", "timedOutTransactionsSelector", "timedOutTransactions"]
}
