{
  "version": 3,
  "sources": ["../../../../../src/utils/transactions/getDecodedDataField/helpers/decodeByMethod.ts"],
  "sourcesContent": ["import BigNumber from 'bignumber.js';\nimport { Address } from 'lib/sdkCore';\n\nimport {\n  DecodeMethodEnum,\n  TransactionTokensType\n} from 'types/serverTransactions.types';\nimport { isUtf8 } from 'utils/decoders/isUtf8';\nimport { addressIsValid } from 'utils/validation/addressIsValid';\n\ninterface IDecodeByMethod {\n  data: string;\n  decodeMethod: DecodeMethodEnum | string;\n  transactionTokens?: TransactionTokensType;\n}\n\nexport const decodeByMethod = ({\n  data,\n  decodeMethod,\n  transactionTokens\n}: IDecodeByMethod) => {\n  switch (decodeMethod) {\n    case DecodeMethodEnum.text:\n      try {\n        return Buffer.from(data, 'hex').toString('utf8');\n      } catch {\n        return data;\n      }\n\n    case DecodeMethodEnum.decimal:\n      return data !== '' ? new BigNumber(data, 16).toString(10) : '';\n    case DecodeMethodEnum.smart:\n      try {\n        const bech32Encoded = Address.newFromHex(data).toString();\n\n        if (addressIsValid(bech32Encoded)) {\n          return bech32Encoded;\n        }\n      } catch {\n        // skip\n      }\n\n      try {\n        const decoded = Buffer.from(data, 'hex').toString('utf8');\n\n        if (!isUtf8(decoded)) {\n          if (transactionTokens) {\n            const tokens = [\n              ...transactionTokens.esdts,\n              ...transactionTokens.nfts\n            ];\n\n            if (tokens.some((token) => decoded.includes(token))) {\n              return decoded;\n            }\n          }\n\n          const bigNumber = new BigNumber(data, 16);\n\n          return bigNumber.isFinite() ? bigNumber.toString(10) : data;\n        } else {\n          return decoded;\n        }\n      } catch {\n        return data;\n      }\n\n    case DecodeMethodEnum.raw:\n    default:\n      return data;\n  }\n};\n"],
  "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,oBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAsB,2BACtBC,EAAwB,uBAExBC,EAGO,0CACPC,EAAuB,iCACvBC,EAA+B,2CAQxB,MAAMN,EAAiB,CAAC,CAC7B,KAAAO,EACA,aAAAC,EACA,kBAAAC,CACF,IAAuB,CACrB,OAAQD,EAAc,CACpB,KAAK,mBAAiB,KACpB,GAAI,CACF,OAAO,OAAO,KAAKD,EAAM,KAAK,EAAE,SAAS,MAAM,CACjD,MAAQ,CACN,OAAOA,CACT,CAEF,KAAK,mBAAiB,QACpB,OAAOA,IAAS,GAAK,IAAI,EAAAG,QAAUH,EAAM,EAAE,EAAE,SAAS,EAAE,EAAI,GAC9D,KAAK,mBAAiB,MACpB,GAAI,CACF,MAAMI,EAAgB,UAAQ,WAAWJ,CAAI,EAAE,SAAS,EAExD,MAAI,kBAAeI,CAAa,EAC9B,OAAOA,CAEX,MAAQ,CAER,CAEA,GAAI,CACF,MAAMC,EAAU,OAAO,KAAKL,EAAM,KAAK,EAAE,SAAS,MAAM,EAExD,MAAK,UAAOK,CAAO,EAgBjB,OAAOA,EAhBa,CACpB,GAAIH,GACa,CACb,GAAGA,EAAkB,MACrB,GAAGA,EAAkB,IACvB,EAEW,KAAMI,GAAUD,EAAQ,SAASC,CAAK,CAAC,EAChD,OAAOD,EAIX,MAAME,EAAY,IAAI,EAAAJ,QAAUH,EAAM,EAAE,EAExC,OAAOO,EAAU,SAAS,EAAIA,EAAU,SAAS,EAAE,EAAIP,CACzD,CAGF,MAAQ,CACN,OAAOA,CACT,CAEF,KAAK,mBAAiB,IACtB,QACE,OAAOA,CACX,CACF",
  "names": ["decodeByMethod_exports", "__export", "decodeByMethod", "__toCommonJS", "import_bignumber", "import_sdkCore", "import_serverTransactions", "import_isUtf8", "import_addressIsValid", "data", "decodeMethod", "transactionTokens", "BigNumber", "bech32Encoded", "decoded", "token", "bigNumber"]
}
