{
  "version": 3,
  "sources": ["../../../../src/store/actions/transactions/transactionsActions.ts"],
  "sourcesContent": ["import { current } from 'immer';\nimport { getStore } from 'store/store';\nimport {\n  TransactionBatchStatusesEnum,\n  TransactionServerStatusesEnum\n} from 'types/enums.types';\nimport {\n  TransactionsDisplayInfoType,\n  SignedTransactionType\n} from 'types/transactions.types';\n\nexport type CreateTransactionsSessionType = {\n  transactions: SignedTransactionType[];\n  transactionsDisplayInfo?: TransactionsDisplayInfoType;\n  status: TransactionBatchStatusesEnum | TransactionServerStatusesEnum;\n  sessionInformation?: any;\n};\n\nexport function createTransactionsSession({\n  transactions,\n  transactionsDisplayInfo,\n  status,\n  sessionInformation\n}: CreateTransactionsSessionType) {\n  const sessionId = Date.now().toString();\n  getStore().setState(\n    ({ transactions: state }) => {\n      state[sessionId] = {\n        transactions,\n        status,\n        transactionsDisplayInfo,\n        interpretedTransactions: {},\n        sessionInformation\n      };\n    },\n    false,\n    {\n      type: 'createTransactionsSession',\n      // @ts-ignore\n      payload: {\n        value: {\n          transactions,\n          status,\n          transactionsDisplayInfo,\n          sessionInformation\n        }\n      }\n    }\n  );\n  return sessionId;\n}\n\nexport function updateSessionStatus({\n  sessionId,\n  status,\n  errorMessage\n}: {\n  sessionId: string;\n  status: TransactionBatchStatusesEnum;\n  errorMessage?: string;\n}) {\n  getStore().setState(\n    ({ transactions: state }) => {\n      if (!state[sessionId]) {\n        return;\n      }\n      const transactionsDisplayInfo =\n        current(state[sessionId]).transactionsDisplayInfo ?? {};\n\n      const newErrorMessage =\n        errorMessage || transactionsDisplayInfo?.errorMessage;\n\n      state[sessionId].status = status;\n      state[sessionId].errorMessage = newErrorMessage;\n      state[sessionId].transactionsDisplayInfo = {\n        ...transactionsDisplayInfo,\n        errorMessage: newErrorMessage\n      };\n    },\n    false,\n    {\n      type: 'updateSessionStatus',\n      // @ts-ignore\n      payload: {\n        value: { sessionId, status, errorMessage }\n      }\n    }\n  );\n}\n\nexport type UpdateTransactionStatusPropsType = {\n  sessionId: string;\n  transaction: SignedTransactionType;\n};\n\nexport function updateTransactionStatus({\n  sessionId,\n  transaction: updatedTransaction\n}: UpdateTransactionStatusPropsType) {\n  getStore().setState(\n    ({ transactions: state }) => {\n      const transactions = state[sessionId]?.transactions;\n      if (transactions != null) {\n        state[sessionId].transactions = transactions.map((transaction) => {\n          if (transaction.hash === updatedTransaction.hash) {\n            return {\n              ...transaction,\n              ...(updatedTransaction ?? {})\n            };\n          }\n          return transaction;\n        });\n      }\n    },\n    false,\n    {\n      type: 'updateTransactionStatus',\n      // @ts-ignore\n      payload: {\n        value: { sessionId, transaction: updatedTransaction }\n      }\n    }\n  );\n}\n\nexport const clearCompletedTransactions = () => {\n  getStore().setState(\n    ({ transactions: state, toasts: toastsState }) => {\n      const sessionIds = Object.keys(state);\n\n      const completedSessionIds = sessionIds.filter((sessionId) => {\n        const session = state[sessionId];\n        if (!session) {\n          return false;\n        }\n\n        const { status } = session;\n\n        const isPending =\n          status === TransactionServerStatusesEnum.pending ||\n          status === TransactionBatchStatusesEnum.signed ||\n          status === TransactionBatchStatusesEnum.sent;\n\n        return !isPending;\n      });\n\n      completedSessionIds.forEach((sessionId) => {\n        delete state[sessionId];\n      });\n\n      const filteredTransactionToasts = toastsState.transactionToasts.filter(\n        (toast) => !completedSessionIds.includes(toast.toastId)\n      );\n\n      toastsState.transactionToasts = filteredTransactionToasts;\n    },\n    false,\n    {\n      type: 'clearCompletedTransactions',\n      // @ts-ignore\n      payload: {\n        value: null\n      }\n    }\n  );\n};\n"],
  "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,gCAAAE,EAAA,8BAAAC,EAAA,wBAAAC,EAAA,4BAAAC,IAAA,eAAAC,EAAAN,GAAA,IAAAO,EAAwB,iBACxBC,EAAyB,uBACzBC,EAGO,6BAaA,SAASN,EAA0B,CACxC,aAAAO,EACA,wBAAAC,EACA,OAAAC,EACA,mBAAAC,CACF,EAAkC,CAChC,MAAMC,EAAY,KAAK,IAAI,EAAE,SAAS,EACtC,qBAAS,EAAE,SACT,CAAC,CAAE,aAAcC,CAAM,IAAM,CAC3BA,EAAMD,CAAS,EAAI,CACjB,aAAAJ,EACA,OAAAE,EACA,wBAAAD,EACA,wBAAyB,CAAC,EAC1B,mBAAAE,CACF,CACF,EACA,GACA,CACE,KAAM,4BAEN,QAAS,CACP,MAAO,CACL,aAAAH,EACA,OAAAE,EACA,wBAAAD,EACA,mBAAAE,CACF,CACF,CACF,CACF,EACOC,CACT,CAEO,SAASV,EAAoB,CAClC,UAAAU,EACA,OAAAF,EACA,aAAAI,CACF,EAIG,IACD,YAAS,EAAE,SACT,CAAC,CAAE,aAAcD,CAAM,IAAM,CAC3B,GAAI,CAACA,EAAMD,CAAS,EAClB,OAEF,MAAMH,KACJ,WAAQI,EAAMD,CAAS,CAAC,EAAE,yBAA2B,CAAC,EAElDG,EACJD,GAAgBL,GAAyB,aAE3CI,EAAMD,CAAS,EAAE,OAASF,EAC1BG,EAAMD,CAAS,EAAE,aAAeG,EAChCF,EAAMD,CAAS,EAAE,wBAA0B,CACzC,GAAGH,EACH,aAAcM,CAChB,CACF,EACA,GACA,CACE,KAAM,sBAEN,QAAS,CACP,MAAO,CAAE,UAAAH,EAAW,OAAAF,EAAQ,aAAAI,CAAa,CAC3C,CACF,CACF,CACF,CAOO,SAASX,EAAwB,CACtC,UAAAS,EACA,YAAaI,CACf,EAAqC,IACnC,YAAS,EAAE,SACT,CAAC,CAAE,aAAcH,CAAM,IAAM,CAC3B,MAAML,EAAeK,EAAMD,CAAS,GAAG,aACnCJ,GAAgB,OAClBK,EAAMD,CAAS,EAAE,aAAeJ,EAAa,IAAKS,GAC5CA,EAAY,OAASD,EAAmB,KACnC,CACL,GAAGC,EACH,GAAID,GAAsB,CAAC,CAC7B,EAEKC,CACR,EAEL,EACA,GACA,CACE,KAAM,0BAEN,QAAS,CACP,MAAO,CAAE,UAAAL,EAAW,YAAaI,CAAmB,CACtD,CACF,CACF,CACF,CAEO,MAAMhB,EAA6B,IAAM,IAC9C,YAAS,EAAE,SACT,CAAC,CAAE,aAAca,EAAO,OAAQK,CAAY,IAAM,CAGhD,MAAMC,EAFa,OAAO,KAAKN,CAAK,EAEG,OAAQD,GAAc,CAC3D,MAAMQ,EAAUP,EAAMD,CAAS,EAC/B,GAAI,CAACQ,EACH,MAAO,GAGT,KAAM,CAAE,OAAAV,CAAO,EAAIU,EAOnB,MAAO,EAJLV,IAAW,gCAA8B,SACzCA,IAAW,+BAA6B,QACxCA,IAAW,+BAA6B,KAG5C,CAAC,EAEDS,EAAoB,QAASP,GAAc,CACzC,OAAOC,EAAMD,CAAS,CACxB,CAAC,EAED,MAAMS,EAA4BH,EAAY,kBAAkB,OAC7DI,GAAU,CAACH,EAAoB,SAASG,EAAM,OAAO,CACxD,EAEAJ,EAAY,kBAAoBG,CAClC,EACA,GACA,CACE,KAAM,6BAEN,QAAS,CACP,MAAO,IACT,CACF,CACF,CACF",
  "names": ["transactionsActions_exports", "__export", "clearCompletedTransactions", "createTransactionsSession", "updateSessionStatus", "updateTransactionStatus", "__toCommonJS", "import_immer", "import_store", "import_enums", "transactions", "transactionsDisplayInfo", "status", "sessionInformation", "sessionId", "state", "errorMessage", "newErrorMessage", "updatedTransaction", "transaction", "toastsState", "completedSessionIds", "session", "filteredTransactionToasts", "toast"]
}
