{
  "version": 3,
  "sources": ["../../../../../src/providers/strategies/LedgerProviderStrategy/helpers/initializeLedgerProvider.ts"],
  "sourcesContent": ["import { LedgerConnectStateManager } from 'managers/internal/LedgerConnectStateManager/LedgerConnectStateManager';\nimport { getIsLoggedIn } from 'methods/account/getIsLoggedIn';\nimport { getLedgerErrorCodes } from './getLedgerErrorCodes';\nimport { getLedgerProvider } from './getLedgerProvider/getLedgerProvider';\n\ntype InitializeLedgerProviderType = {\n  manager: LedgerConnectStateManager | null;\n  resolve: (value: Awaited<ReturnType<typeof getLedgerProvider>>) => void;\n  reject: (reason?: string) => void;\n  shouldInitProvider?: boolean;\n};\n\nconst failInitializeErrorText = 'Check if the MultiversX App is open on Ledger';\n\nexport async function initializeLedgerProvider({\n  manager,\n  resolve,\n  reject,\n  shouldInitProvider\n}: InitializeLedgerProviderType) {\n  const shouldInitiateLogin = !getIsLoggedIn();\n\n  // Calls itself to handle retry logic if the user needs to reconnect to the Ledger provider.\n  const handleRetry = () =>\n    initializeLedgerProvider({ manager, resolve, reject, shouldInitProvider });\n\n  const handleCancel = () => reject('Device unavailable');\n\n  try {\n    manager?.updateAccountScreen({\n      isLoading: true\n    });\n\n    if (manager && shouldInitiateLogin) {\n      manager.subscribeToProviderInit({ handleRetry, handleCancel });\n    }\n\n    const data = await getLedgerProvider({ shouldInitProvider });\n\n    if (manager && shouldInitiateLogin) {\n      manager.unsubscribeFromProviderInit({ handleRetry, handleCancel });\n    }\n\n    resolve(data);\n  } catch (err) {\n    if (!shouldInitiateLogin) {\n      throw err;\n    }\n\n    const { errorMessage, defaultErrorMessage } = getLedgerErrorCodes(err);\n    manager?.updateConnectScreen({\n      error: errorMessage ?? defaultErrorMessage ?? failInitializeErrorText\n    });\n\n    if (manager) {\n      manager.subscribeToProviderInit({ handleRetry, handleCancel });\n    }\n  }\n}\n"],
  "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,8BAAAE,IAAA,eAAAC,EAAAH,GACA,IAAAI,EAA8B,yCAC9BC,EAAoC,iCACpCC,EAAkC,iDASlC,MAAMC,EAA0B,gDAEhC,eAAsBL,EAAyB,CAC7C,QAAAM,EACA,QAAAC,EACA,OAAAC,EACA,mBAAAC,CACF,EAAiC,CAC/B,MAAMC,EAAsB,IAAC,iBAAc,EAGrCC,EAAc,IAClBX,EAAyB,CAAE,QAAAM,EAAS,QAAAC,EAAS,OAAAC,EAAQ,mBAAAC,CAAmB,CAAC,EAErEG,EAAe,IAAMJ,EAAO,oBAAoB,EAEtD,GAAI,CACFF,GAAS,oBAAoB,CAC3B,UAAW,EACb,CAAC,EAEGA,GAAWI,GACbJ,EAAQ,wBAAwB,CAAE,YAAAK,EAAa,aAAAC,CAAa,CAAC,EAG/D,MAAMC,EAAO,QAAM,qBAAkB,CAAE,mBAAAJ,CAAmB,CAAC,EAEvDH,GAAWI,GACbJ,EAAQ,4BAA4B,CAAE,YAAAK,EAAa,aAAAC,CAAa,CAAC,EAGnEL,EAAQM,CAAI,CACd,OAASC,EAAK,CACZ,GAAI,CAACJ,EACH,MAAMI,EAGR,KAAM,CAAE,aAAAC,EAAc,oBAAAC,CAAoB,KAAI,uBAAoBF,CAAG,EACrER,GAAS,oBAAoB,CAC3B,MAAOS,GAAgBC,GAAuBX,CAChD,CAAC,EAEGC,GACFA,EAAQ,wBAAwB,CAAE,YAAAK,EAAa,aAAAC,CAAa,CAAC,CAEjE,CACF",
  "names": ["initializeLedgerProvider_exports", "__export", "initializeLedgerProvider", "__toCommonJS", "import_getIsLoggedIn", "import_getLedgerErrorCodes", "import_getLedgerProvider", "failInitializeErrorText", "manager", "resolve", "reject", "shouldInitProvider", "shouldInitiateLogin", "handleRetry", "handleCancel", "data", "err", "errorMessage", "defaultErrorMessage"]
}
