{
  "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": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,uCAAAE,EAAA,yBAAAC,IAAA,eAAAC,EAAAJ,GAAA,IAAAK,EAAsB,+BACtBA,EAAiB,0BAIjBC,EAAgD,6CAChDC,EAAmD,gDACnDC,EAAkD,+CAEtCN,OACVA,EAAA,IAAM,MACNA,EAAA,MAAQ,QAFEA,OAAA,IAYL,MAAMC,EAAuB,CAAC,CACnC,mBAAAM,EACA,YAAAC,EACA,UAAAC,EACA,UAAAC,EAAY,EACd,IAA+D,CAC7D,GAAIA,EACF,MAAO,CACL,KAAM,YACR,EAGF,MAAMC,EAGF,CAAC,EAMCC,EAJ4B,OAAO,QACvC,iCACF,EAEqD,OACnD,CAACC,EAA0B,CAACC,EAAaC,CAAW,IAClD,OAAO,OAAOF,EAA0B,CAAE,CAACC,CAAW,EAAGC,CAAY,CAAC,EACxEJ,CACF,EAEMK,EAAoBR,EAAY,OAChCS,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,KAAI,EAAAC,SAAKH,CAAgB,EACtCI,EAAqBhB,GAAa,OAClCiB,KAAiB,sCAAmC,CACxD,YAAAlB,EACA,aAAAe,EACA,mBAAAhB,CACF,CAAC,EAEKoB,KAAgB,qCAAkC,CACtD,iBAAAN,EACA,aAAAE,EACA,qBAAAH,CACF,CAAC,EAOKQ,EACJV,GAN6C,CAC7C,MACA,OACF,EAIyC,SAASA,CAAyB,EAErEW,EACJb,GAAqBY,EACjBZ,EAAkB,YAClB,OAEAc,EACJtB,EAAY,UAAYA,EAAY,WAAa,WAC7CI,EAAmBJ,EAAY,QAAQ,MACvC,EAAAuB,SAAUvB,EAAY,QAAQ,EAC9B,KAEN,OAAIW,GAAcF,EACT,CACL,KAAM,GAAGS,CAAc,IAAIC,CAAa,GACxC,YAAaE,CACf,EAGEC,EACK,CACL,KAAMA,EACN,YAAaD,CACf,EAGK,CACL,KAAM,GAAGH,CAAc,IAAID,CAAkB,GAC7C,YAAaI,CACf,CACF",
  "names": ["getTransactionAction_exports", "__export", "TransactionActionCategoryTypeEnum", "getTransactionAction", "__toCommonJS", "import_lodash", "import_transaction_list_item", "import_getTransactionActionDirectionLabel", "import_getTransactionActionTransferLabel", "currentUserAddress", "transaction", "egldLabel", "isPending", "defaultTransactionObject", "transactionMethods", "transactionMethodsObject", "methodValue", "methodLabel", "transactionAction", "transactionArguments", "transactionActionCategory", "isTransfer", "transactionTransfers", "allTransferTypes", "transfer", "transferType", "uniq", "processedEgldLabel", "directionLabel", "transferLabel", "showTransactionActionDescription", "transactionActionDescription", "defaultTransactionActionLabel", "startCase"]
}
