{
  "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": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,yBAAAE,IAAA,eAAAC,EAAAH,GAEA,IAAAI,EAGO,6BACPC,EAAwC,6CACxCC,EAA2B,uCAC3BC,EAAgD,6CAEhDC,EAAqC,kCAEhCC,OACHA,EAAA,gBAAkB,kBAClBA,EAAA,iBAAmB,mBAFhBA,OAAA,IAeE,MAAMP,EAAsB,CAAC,CAClC,SAAAQ,EACA,OAAAC,EACA,aAAAC,EACA,eAAAC,EACA,kBAAAC,EACA,iBAAAC,EAAmB,GACnB,OAAAC,CACF,IAAoE,CAClE,MAAMC,EAAiBP,IAAaC,EAC9BO,EAAwBD,KAC1B,cAAWN,CAAM,KACjB,cAAWD,CAAQ,EAEjBS,KAAoB,wBAAqB,CAC7C,aAAAP,EACA,eAAAC,EACA,eAAAI,CACF,CAAC,EAEK,CAACG,CAAW,EAAIN,GAAqB,CAAC,EACtCO,EAAmBP,EAAkB,OAAS,EAC9CQ,EAAaF,GAAa,OAAS,kBACnCG,EAAaH,GAAa,OAAS,mBAEnCI,EACJV,GAAmB,MAChBW,GAAUL,GAAeK,EAAM,cAAgBL,EAAY,WAC9D,GAAK,GAEDM,KAA+B,mCAAgCV,CAAM,EACrEW,EAAuBX,IAAW,gCAA8B,QAKtE,OAFEW,GAAwBD,IAEQ,CAACX,EAC1B,CACL,KAAMY,EAAuB,gBAAc,UAAY,gBAAc,KACvE,EAGEN,GAAoB,CAACG,EAChB,CACL,KAAM,gBAAc,KACtB,EAGEJ,GAAa,WACR,CACL,SAAUA,EAAY,UACxB,EAGEE,GAAcC,EACT,CACL,KAAMA,EACF,0BAAwB,IACxB,0BAAwB,GAC9B,EAGEL,EACK,CACL,SAAUC,GAAqB,MACjC,EAGK,IACT",
  "names": ["getTransactionAsset_exports", "__export", "getTransactionAsset", "__toCommonJS", "import_enums", "import_transaction_list_item", "import_isContract", "import_getIsTransactionInvalidOrFailed", "import_getTransactionAvatar", "NftTypeEnum", "receiver", "sender", "senderAssets", "receiverAssets", "transactionAssets", "showDefaultState", "status", "userIsReceiver", "isContractInteraction", "transactionAvatar", "latestAsset", "isMultipleAssets", "assetIsNft", "assetIsSft", "areMultipleAssetsSameType", "asset", "isTransactionFailedOrInvalid", "isTransactionPending"]
}
