{
  "version": 3,
  "sources": ["../../src/utils/transactions/getTransactionsHistory/helpers/getTransactionAction.ts"],
  "sourcesContent": ["import startCase from 'lodash.startcase';\nimport uniq from 'lodash.uniq';\nimport { ITransactionListItemAction } from 'lib/sdkDappUi';\n\nimport type { ServerTransactionType } from 'types/serverTransactions.types';\nimport { TransactionActionMethodTypeEnum } from 'types/transaction-list-item.types';\nimport { getTransactionActionDirectionLabel } from './getTransactionActionDirectionLabel';\nimport { getTransactionActionTransferLabel } from './getTransactionActionTransferLabel';\n\nexport enum TransactionActionCategoryTypeEnum {\n  mex = 'mex',\n  stake = 'stake'\n}\n\nexport interface IGetTransactionActionParams {\n  currentUserAddress: string;\n  transaction: ServerTransactionType;\n  egldLabel?: string;\n  isPending?: boolean;\n}\n\nexport const getTransactionAction = ({\n  currentUserAddress,\n  transaction,\n  egldLabel,\n  isPending = false\n}: IGetTransactionActionParams): ITransactionListItemAction => {\n  if (isPending) {\n    return {\n      name: 'Pending...'\n    };\n  }\n\n  const defaultTransactionObject: Record<\n    string,\n    TransactionActionMethodTypeEnum\n  > = {};\n\n  const transactionMethodsEntries = Object.entries(\n    TransactionActionMethodTypeEnum\n  );\n\n  const transactionMethods = transactionMethodsEntries.reduce(\n    (transactionMethodsObject, [methodValue, methodLabel]) =>\n      Object.assign(transactionMethodsObject, { [methodValue]: methodLabel }),\n    defaultTransactionObject\n  );\n\n  const transactionAction = transaction.action;\n  const transactionArguments = transactionAction && transactionAction.arguments;\n\n  const transactionActionCategory =\n    transactionAction && transactionAction.category\n      ? (transactionAction.category as TransactionActionCategoryTypeEnum)\n      : null;\n\n  const isTransfer =\n    transactionArguments && transactionAction.name === 'transfer';\n\n  const transactionTransfers: Record<string, string>[] =\n    transactionArguments && Array.isArray(transactionArguments.transfers)\n      ? transactionArguments.transfers\n      : [];\n\n  const allTransferTypes = transactionTransfers.map(\n    (transfer): string => transfer.type\n  );\n\n  const [transferType] = uniq(allTransferTypes);\n  const processedEgldLabel = egldLabel ?? 'EGLD';\n  const directionLabel = getTransactionActionDirectionLabel({\n    transaction,\n    transferType,\n    currentUserAddress\n  });\n\n  const transferLabel = getTransactionActionTransferLabel({\n    allTransferTypes,\n    transferType,\n    transactionTransfers\n  });\n\n  const transactionActionDescriptionCategories = [\n    TransactionActionCategoryTypeEnum.mex,\n    TransactionActionCategoryTypeEnum.stake\n  ];\n\n  const showTransactionActionDescription =\n    transactionActionCategory &&\n    transactionActionDescriptionCategories.includes(transactionActionCategory);\n\n  const transactionActionDescription =\n    transactionAction && showTransactionActionDescription\n      ? transactionAction.description\n      : undefined;\n\n  const defaultTransactionActionLabel =\n    transaction.function && transaction.function !== 'transfer'\n      ? transactionMethods[transaction.function] ??\n        startCase(transaction.function)\n      : null;\n\n  if (isTransfer && transactionArguments) {\n    return {\n      name: `${directionLabel} ${transferLabel}`,\n      description: transactionActionDescription\n    };\n  }\n\n  if (defaultTransactionActionLabel) {\n    return {\n      name: defaultTransactionActionLabel,\n      description: transactionActionDescription\n    };\n  }\n\n  return {\n    name: `${directionLabel} ${processedEgldLabel}`,\n    description: transactionActionDescription\n  };\n};\n"],
  "mappings": "2HAAA,OAAOA,MAAe,mBACtB,OAAOC,MAAU,cAQV,IAAKC,OACVA,EAAA,IAAM,MACNA,EAAA,MAAQ,QAFEA,OAAA,IAYCC,EAAuB,CAAC,CACnC,mBAAAC,EACA,YAAAC,EACA,UAAAC,EACA,UAAAC,EAAY,EACd,IAA+D,CAC7D,GAAIA,EACF,MAAO,CACL,KAAM,YACR,EAGF,IAAMC,EAGF,CAAC,EAMCC,EAJ4B,OAAO,QACvCC,CACF,EAEqD,OACnD,CAACC,EAA0B,CAACC,EAAaC,CAAW,IAClD,OAAO,OAAOF,EAA0B,CAAE,CAACC,CAAW,EAAGC,CAAY,CAAC,EACxEL,CACF,EAEMM,EAAoBT,EAAY,OAChCU,EAAuBD,GAAqBA,EAAkB,UAE9DE,EACJF,GAAqBA,EAAkB,SAClCA,EAAkB,SACnB,KAEAG,EACJF,GAAwBD,EAAkB,OAAS,WAE/CI,EACJH,GAAwB,MAAM,QAAQA,EAAqB,SAAS,EAChEA,EAAqB,UACrB,CAAC,EAEDI,EAAmBD,EAAqB,IAC3CE,GAAqBA,EAAS,IACjC,EAEM,CAACC,CAAY,EAAIC,EAAKH,CAAgB,EACtCI,EAAqBjB,GAAa,OAClCkB,EAAiBC,EAAmC,CACxD,YAAApB,EACA,aAAAgB,EACA,mBAAAjB,CACF,CAAC,EAEKsB,EAAgBC,EAAkC,CACtD,iBAAAR,EACA,aAAAE,EACA,qBAAAH,CACF,CAAC,EAOKU,EACJZ,GAN6C,CAC7C,MACA,OACF,EAIyC,SAASA,CAAyB,EAErEa,EACJf,GAAqBc,EACjBd,EAAkB,YAClB,OAEAgB,EACJzB,EAAY,UAAYA,EAAY,WAAa,WAC7CI,EAAmBJ,EAAY,QAAQ,GACvC0B,EAAU1B,EAAY,QAAQ,EAC9B,KAEN,OAAIY,GAAcF,EACT,CACL,KAAM,GAAGS,CAAc,IAAIE,CAAa,GACxC,YAAaG,CACf,EAGEC,EACK,CACL,KAAMA,EACN,YAAaD,CACf,EAGK,CACL,KAAM,GAAGL,CAAc,IAAID,CAAkB,GAC7C,YAAaM,CACf,CACF",
  "names": ["startCase", "uniq", "TransactionActionCategoryTypeEnum", "getTransactionAction", "currentUserAddress", "transaction", "egldLabel", "isPending", "defaultTransactionObject", "transactionMethods", "TransactionActionMethodTypeEnum", "transactionMethodsObject", "methodValue", "methodLabel", "transactionAction", "transactionArguments", "transactionActionCategory", "isTransfer", "transactionTransfers", "allTransferTypes", "transfer", "transferType", "uniq", "processedEgldLabel", "directionLabel", "getTransactionActionDirectionLabel", "transferLabel", "getTransactionActionTransferLabel", "showTransactionActionDescription", "transactionActionDescription", "defaultTransactionActionLabel", "startCase"]
}
