{
  "version": 3,
  "sources": ["../../src/utils/transactions/getTransactionsHistory/helpers/getTransactionAsset.ts"],
  "sourcesContent": ["import { ITransactionListItemAsset } from 'lib/sdkDappUi';\nimport { AssetType } from 'types/account.types';\nimport {\n  IconNamesEnum,\n  TransactionServerStatusesEnum\n} from 'types/enums.types';\nimport { TransactionIconTypeEnum } from 'types/transaction-list-item.types';\nimport { isContract } from 'utils/validation/isContract';\nimport { getIsTransactionInvalidOrFailed } from './getIsTransactionInvalidOrFailed';\nimport { ITransactionAsset } from './getTransactionAssets';\nimport { getTransactionAvatar } from './getTransactionAvatar';\n\nenum NftTypeEnum {\n  NonFungibleESDT = 'NonFungibleESDT',\n  SemiFungibleESDT = 'SemiFungibleESDT'\n}\n\ninterface IGetTransactionAssetParams {\n  receiver: string;\n  sender: string;\n  receiverAssets?: AssetType;\n  senderAssets?: AssetType;\n  transactionAssets: ITransactionAsset[];\n  showDefaultState?: boolean;\n  status: TransactionServerStatusesEnum;\n}\n\nexport const getTransactionAsset = ({\n  receiver,\n  sender,\n  senderAssets,\n  receiverAssets,\n  transactionAssets,\n  showDefaultState = false,\n  status\n}: IGetTransactionAssetParams): ITransactionListItemAsset | null => {\n  const userIsReceiver = receiver === sender;\n  const isContractInteraction = userIsReceiver\n    ? isContract(sender)\n    : isContract(receiver);\n\n  const transactionAvatar = getTransactionAvatar({\n    senderAssets,\n    receiverAssets,\n    userIsReceiver\n  });\n\n  const [latestAsset] = transactionAssets ?? [];\n  const isMultipleAssets = transactionAssets.length > 1;\n  const assetIsNft = latestAsset?.type === NftTypeEnum.NonFungibleESDT;\n  const assetIsSft = latestAsset?.type === NftTypeEnum.SemiFungibleESDT;\n\n  const areMultipleAssetsSameType =\n    transactionAssets?.every(\n      (asset) => latestAsset && asset.assetTicker === latestAsset.assetTicker\n    ) ?? false;\n\n  const isTransactionFailedOrInvalid = getIsTransactionInvalidOrFailed(status);\n  const isTransactionPending = status === TransactionServerStatusesEnum.pending;\n\n  const showDefaultTransactionIcon =\n    isTransactionPending || isTransactionFailedOrInvalid;\n\n  if (showDefaultTransactionIcon && !showDefaultState) {\n    return {\n      icon: isTransactionPending ? IconNamesEnum.hourglass : IconNamesEnum.close\n    };\n  }\n\n  if (isMultipleAssets && !areMultipleAssetsSameType) {\n    return {\n      icon: IconNamesEnum.coins\n    };\n  }\n\n  if (latestAsset?.assetImage) {\n    return {\n      imageUrl: latestAsset.assetImage\n    };\n  }\n\n  if (assetIsNft || assetIsSft) {\n    return {\n      text: assetIsSft\n        ? TransactionIconTypeEnum.SFT\n        : TransactionIconTypeEnum.NFT\n    };\n  }\n\n  if (isContractInteraction) {\n    return {\n      imageUrl: transactionAvatar || undefined\n    };\n  }\n\n  return null;\n};\n"],
  "mappings": "2HA2BO,IAAMA,EAAsB,CAAC,CAClC,SAAAC,EACA,OAAAC,EACA,aAAAC,EACA,eAAAC,EACA,kBAAAC,EACA,iBAAAC,EAAmB,GACnB,OAAAC,CACF,IAAoE,CAClE,IAAMC,EAAiBP,IAAaC,EAC9BO,EAAwBD,EAC1BE,EAAWR,CAAM,EACjBQ,EAAWT,CAAQ,EAEjBU,EAAoBC,EAAqB,CAC7C,aAAAT,EACA,eAAAC,EACA,eAAAI,CACF,CAAC,EAEK,CAACK,CAAW,EAAIR,GAAqB,CAAC,EACtCS,EAAmBT,EAAkB,OAAS,EAC9CU,EAAaF,GAAa,OAAS,kBACnCG,EAAaH,GAAa,OAAS,mBAEnCI,EACJZ,GAAmB,MAChBa,GAAUL,GAAeK,EAAM,cAAgBL,EAAY,WAC9D,GAAK,GAEDM,EAA+BC,EAAgCb,CAAM,EACrEc,EAAuBd,cAK7B,OAFEc,GAAwBF,IAEQ,CAACb,EAC1B,CACL,KAAMe,qBACR,EAGEP,GAAoB,CAACG,EAChB,CACL,YACF,EAGEJ,GAAa,WACR,CACL,SAAUA,EAAY,UACxB,EAGEE,GAAcC,EACT,CACL,KAAMA,aAGR,EAGEP,EACK,CACL,SAAUE,GAAqB,MACjC,EAGK,IACT",
  "names": ["getTransactionAsset", "receiver", "sender", "senderAssets", "receiverAssets", "transactionAssets", "showDefaultState", "status", "userIsReceiver", "isContractInteraction", "isContract", "transactionAvatar", "getTransactionAvatar", "latestAsset", "isMultipleAssets", "assetIsNft", "assetIsSft", "areMultipleAssetsSameType", "asset", "isTransactionFailedOrInvalid", "getIsTransactionInvalidOrFailed", "isTransactionPending"]
}
