{
  "version": 3,
  "sources": ["../../src/controllers/TransactionsTableController/TransactionsTableController.ts"],
  "sourcesContent": ["import { DECIMALS } from 'lib/sdkDappUtils';\nimport {\n  ServerTransactionType,\n  TransactionDirectionEnum\n} from 'types/serverTransactions.types';\nimport { NftEnumType } from 'types/tokens.types';\nimport { getExplorerLink } from 'utils/transactions/getExplorerLink';\nimport { getInterpretedTransaction } from 'utils/transactions/getInterpretedTransaction/getInterpretedTransaction';\nimport { getTransactionValue } from 'utils/transactions/getInterpretedTransaction/getTransactionValue/getTransactionValue';\nimport { getLockedAccountName } from 'utils/transactions/getInterpretedTransaction/helpers/getLockedAccountName';\nimport { getShardText } from 'utils/transactions/getInterpretedTransaction/helpers/getShardText';\nimport { isContract } from 'utils/validation/isContract';\nimport {\n  TransactionsRowType,\n  TransactionValueType\n} from './transactionsTableController.types';\nimport { FormatAmountController } from '../FormatAmountController';\n\ninterface TransactionsTableProcessTransactionsParamsType {\n  address: string;\n  egldLabel: string;\n  explorerAddress: string;\n  transactions: ServerTransactionType[];\n}\n\nexport class TransactionsTableController {\n  public static async processTransactions({\n    address,\n    egldLabel,\n    explorerAddress,\n    transactions\n  }: TransactionsTableProcessTransactionsParamsType): Promise<\n    TransactionsRowType[]\n  > {\n    const interpretedTransactions = transactions.map((transaction) =>\n      getInterpretedTransaction({\n        address,\n        explorerAddress,\n        transaction\n      })\n    );\n\n    const transactionRows = await Promise.all(\n      interpretedTransactions.map(async (transaction) => {\n        const receiverName = transaction.receiverAssets?.name.replace(\n          /\\p{Emoji}/gu,\n          ''\n        );\n\n        const senderName = transaction.senderAssets?.name.replace(\n          /\\p{Emoji}/gu,\n          ''\n        );\n\n        const { senderLockedAccount, receiverLockedAccount } =\n          await getLockedAccountName({\n            receiver: transaction.receiver,\n            sender: transaction.sender,\n            tokenId: transaction.tokenIdentifier\n          });\n\n        const { egldValueData, tokenValueData, nftValueData } =\n          getTransactionValue({\n            transaction\n          });\n\n        const hideBadgeForMetaESDT =\n          nftValueData?.token.type === NftEnumType.MetaESDT;\n\n        const badge = hideBadgeForMetaESDT\n          ? undefined\n          : nftValueData?.badgeText;\n\n        const formattedAmount = FormatAmountController.getData({\n          input:\n            egldValueData?.value ??\n            tokenValueData?.value ??\n            nftValueData?.value ??\n            '',\n          decimals:\n            egldValueData?.decimals ??\n            tokenValueData?.decimals ??\n            nftValueData?.decimals ??\n            DECIMALS,\n          digits: 2\n        });\n\n        const transactionValue: TransactionValueType = {\n          badge: badge ?? undefined,\n          collection:\n            tokenValueData?.token.collection ?? nftValueData?.token.collection,\n          egldLabel: egldValueData ? egldLabel : '',\n          link: getExplorerLink({\n            explorerAddress,\n            to:\n              tokenValueData?.tokenExplorerLink ??\n              nftValueData?.tokenExplorerLink ??\n              ''\n          }),\n          linkText:\n            tokenValueData?.tokenLinkText ?? nftValueData?.tokenLinkText,\n          name: tokenValueData?.token.name ?? nftValueData?.token.name,\n          showFormattedAmount: Boolean(\n            egldValueData ||\n              tokenValueData?.tokenFormattedAmount ||\n              nftValueData?.tokenFormattedAmount\n          ),\n          svgUrl: tokenValueData?.token.svgUrl ?? nftValueData?.token.svgUrl,\n          ticker: tokenValueData?.token.ticker ?? nftValueData?.token.ticker,\n          titleText: tokenValueData?.titleText ?? nftValueData?.titleText,\n          valueDecimal: formattedAmount.valueDecimal,\n          valueInteger: formattedAmount.valueInteger\n        };\n\n        const receiverShard = getShardText(transaction.receiverShard);\n        const senderShard = getShardText(transaction.senderShard);\n\n        const transactionRow: TransactionsRowType = {\n          age: transaction.transactionDetails.age,\n          direction: transaction.transactionDetails.direction,\n          method: transaction.transactionDetails.method,\n          iconInfo: transaction.transactionDetails.iconInfo,\n          link: transaction.links.transactionLink ?? '',\n          txHash: transaction.txHash,\n          receiver: {\n            address: transaction.receiver,\n            name: receiverName ?? '',\n            description: `${receiverName ?? transaction.receiver} (${\n              transaction.receiver\n            })`,\n            isContract: isContract(transaction.receiver),\n            isTokenLocked: Boolean(receiverLockedAccount),\n            link: transaction.links.receiverLink ?? '',\n            shard: receiverShard,\n            shardLink: transaction.links.receiverShardLink,\n            showLink:\n              transaction.transactionDetails.direction !==\n              TransactionDirectionEnum.IN\n          },\n          sender: {\n            address: transaction.sender,\n            name: senderName ?? '',\n            description: `${senderName ?? transaction.sender} (${\n              transaction.sender\n            })`,\n            isContract: isContract(transaction.sender),\n            isTokenLocked: Boolean(senderLockedAccount),\n            link: transaction.links.senderLink ?? '',\n            shard: senderShard,\n            shardLink: transaction.links.senderShardLink,\n            showLink:\n              transaction.transactionDetails.direction !==\n              TransactionDirectionEnum.OUT\n          },\n          value: transactionValue\n        };\n\n        return transactionRow;\n      })\n    );\n\n    return transactionRows;\n  }\n}\n"],
  "mappings": "wUAyBO,IAAMA,EAAN,KAAkC,CACvC,aAAoB,oBAAoB,CACtC,QAAAC,EACA,UAAAC,EACA,gBAAAC,EACA,aAAAC,CACF,EAEE,CACA,IAAMC,EAA0BD,EAAa,IAAKE,GAChDC,EAA0B,CACxB,QAAAN,EACA,gBAAAE,EACA,YAAAG,CACF,CAAC,CACH,EAyHA,OAvHwB,MAAM,QAAQ,IACpCD,EAAwB,IAAI,MAAOC,GAAgB,CACjD,IAAME,EAAeF,EAAY,gBAAgB,KAAK,QACpD,cACA,EACF,EAEMG,EAAaH,EAAY,cAAc,KAAK,QAChD,cACA,EACF,EAEM,CAAE,oBAAAI,EAAqB,sBAAAC,CAAsB,EACjD,MAAMC,EAAqB,CACzB,SAAUN,EAAY,SACtB,OAAQA,EAAY,OACpB,QAASA,EAAY,eACvB,CAAC,EAEG,CAAE,cAAAO,EAAe,eAAAC,EAAgB,aAAAC,CAAa,EAClDC,EAAoB,CAClB,YAAAV,CACF,CAAC,EAKGW,EAFJF,GAAc,MAAM,kBAGlB,OACAA,GAAc,UAEZG,EAAkBC,EAAuB,QAAQ,CACrD,MACEN,GAAe,OACfC,GAAgB,OAChBC,GAAc,OACd,GACF,SACEF,GAAe,UACfC,GAAgB,UAChBC,GAAc,UACdK,EACF,OAAQ,CACV,CAAC,EAEKC,EAAyC,CAC7C,MAAOJ,GAAS,OAChB,WACEH,GAAgB,MAAM,YAAcC,GAAc,MAAM,WAC1D,UAAWF,EAAgBX,EAAY,GACvC,KAAMoB,EAAgB,CACpB,gBAAAnB,EACA,GACEW,GAAgB,mBAChBC,GAAc,mBACd,EACJ,CAAC,EACD,SACED,GAAgB,eAAiBC,GAAc,cACjD,KAAMD,GAAgB,MAAM,MAAQC,GAAc,MAAM,KACxD,oBAAqB,GACnBF,GACEC,GAAgB,sBAChBC,GAAc,sBAElB,OAAQD,GAAgB,MAAM,QAAUC,GAAc,MAAM,OAC5D,OAAQD,GAAgB,MAAM,QAAUC,GAAc,MAAM,OAC5D,UAAWD,GAAgB,WAAaC,GAAc,UACtD,aAAcG,EAAgB,aAC9B,aAAcA,EAAgB,YAChC,EAEMK,EAAgBC,EAAalB,EAAY,aAAa,EACtDmB,EAAcD,EAAalB,EAAY,WAAW,EA0CxD,MAxC4C,CAC1C,IAAKA,EAAY,mBAAmB,IACpC,UAAWA,EAAY,mBAAmB,UAC1C,OAAQA,EAAY,mBAAmB,OACvC,SAAUA,EAAY,mBAAmB,SACzC,KAAMA,EAAY,MAAM,iBAAmB,GAC3C,OAAQA,EAAY,OACpB,SAAU,CACR,QAASA,EAAY,SACrB,KAAME,GAAgB,GACtB,YAAa,GAAGA,GAAgBF,EAAY,QAAQ,KAClDA,EAAY,QACd,IACA,WAAYoB,EAAWpB,EAAY,QAAQ,EAC3C,cAAe,EAAQK,EACvB,KAAML,EAAY,MAAM,cAAgB,GACxC,MAAOiB,EACP,UAAWjB,EAAY,MAAM,kBAC7B,SACEA,EAAY,mBAAmB,gBAEnC,EACA,OAAQ,CACN,QAASA,EAAY,OACrB,KAAMG,GAAc,GACpB,YAAa,GAAGA,GAAcH,EAAY,MAAM,KAC9CA,EAAY,MACd,IACA,WAAYoB,EAAWpB,EAAY,MAAM,EACzC,cAAe,EAAQI,EACvB,KAAMJ,EAAY,MAAM,YAAc,GACtC,MAAOmB,EACP,UAAWnB,EAAY,MAAM,gBAC7B,SACEA,EAAY,mBAAmB,iBAEnC,EACA,MAAOe,CACT,CAGF,CAAC,CACH,CAGF,CACF",
  "names": ["TransactionsTableController", "address", "egldLabel", "explorerAddress", "transactions", "interpretedTransactions", "transaction", "getInterpretedTransaction", "receiverName", "senderName", "senderLockedAccount", "receiverLockedAccount", "getLockedAccountName", "egldValueData", "tokenValueData", "nftValueData", "getTransactionValue", "badge", "formattedAmount", "FormatAmountController", "DECIMALS", "transactionValue", "getExplorerLink", "receiverShard", "getShardText", "senderShard", "isContract"]
}
