{
  "version": 3,
  "sources": ["../../../../../../src/providers/strategies/LedgerProviderStrategy/helpers/authenticateLedgerAccount/authenticateLedgerAccount.ts"],
  "sourcesContent": ["import { HWProvider } from '@multiversx/sdk-hw-provider/out';\nimport { LedgerConnectStateManager } from 'managers/internal/LedgerConnectStateManager/LedgerConnectStateManager';\nimport { getExplorerAddress } from 'methods/network/getExplorerAddress';\nimport { ProviderTypeEnum } from 'providers/types/providerFactory.types';\nimport { setLedgerAccount } from 'store/actions/account/accountActions';\nimport { setLedgerLogin } from 'store/actions/loginInfo/loginInfoActions';\n\nimport { getAuthTokenText } from './helpers/getAuthTokenText';\nimport { updateAccountsList } from './helpers/updateAccountsList';\nimport { waitForLedgerSelection } from './helpers/waitForLedgerSelection';\nimport {\n  LedgerConfigType,\n  LedgerLoginType\n} from '../../types/ledgerProvider.types';\n\ninterface IGetLedgerLogin {\n  options?: {\n    callbackUrl?: string;\n    token?: string;\n  };\n  config: LedgerConfigType;\n  provider: HWProvider | null;\n  login: LedgerLoginType | null;\n}\n\nexport async function authenticateLedgerAccount({\n  options,\n  config,\n  provider,\n  login\n}: IGetLedgerLogin) {\n  const manager = LedgerConnectStateManager.getInstance();\n\n  const explorerAddress = getExplorerAddress();\n\n  const authData = getAuthTokenText({\n    loginToken: options?.token,\n    version: config.version\n  });\n\n  // refresh account list\n  await updateAccountsList({ manager, provider });\n\n  // cycle through accounts until user makes a choice\n  const selectedAccount = await waitForLedgerSelection({\n    manager,\n    provider,\n    login,\n    token: options?.token,\n    explorerAddress,\n    authData\n  });\n\n  const { version, dataEnabled } = config;\n\n  // login is finished, data can be persisted in the store\n  setLedgerLogin({\n    index: selectedAccount.addressIndex,\n    loginType: ProviderTypeEnum.ledger\n  });\n\n  setLedgerAccount({\n    address: selectedAccount.address,\n    index: selectedAccount.addressIndex,\n    version,\n    hasContractDataEnabled: dataEnabled\n  });\n\n  return {\n    address: selectedAccount.address,\n    signature: selectedAccount.signature\n  };\n}\n"],
  "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,+BAAAE,IAAA,eAAAC,EAAAH,GACA,IAAAI,EAA0C,iFAC1CC,EAAmC,8CACnCC,EAAiC,iDACjCC,EAAiC,gDACjCC,EAA+B,oDAE/BC,EAAiC,sCACjCC,EAAmC,wCACnCC,EAAuC,4CAgBvC,eAAsBT,EAA0B,CAC9C,QAAAU,EACA,OAAAC,EACA,SAAAC,EACA,MAAAC,CACF,EAAoB,CAClB,MAAMC,EAAU,4BAA0B,YAAY,EAEhDC,KAAkB,sBAAmB,EAErCC,KAAW,oBAAiB,CAChC,WAAYN,GAAS,MACrB,QAASC,EAAO,OAClB,CAAC,EAGD,QAAM,sBAAmB,CAAE,QAAAG,EAAS,SAAAF,CAAS,CAAC,EAG9C,MAAMK,EAAkB,QAAM,0BAAuB,CACnD,QAAAH,EACA,SAAAF,EACA,MAAAC,EACA,MAAOH,GAAS,MAChB,gBAAAK,EACA,SAAAC,CACF,CAAC,EAEK,CAAE,QAAAE,EAAS,YAAAC,CAAY,EAAIR,EAGjC,2BAAe,CACb,MAAOM,EAAgB,aACvB,UAAW,mBAAiB,MAC9B,CAAC,KAED,oBAAiB,CACf,QAASA,EAAgB,QACzB,MAAOA,EAAgB,aACvB,QAAAC,EACA,uBAAwBC,CAC1B,CAAC,EAEM,CACL,QAASF,EAAgB,QACzB,UAAWA,EAAgB,SAC7B,CACF",
  "names": ["authenticateLedgerAccount_exports", "__export", "authenticateLedgerAccount", "__toCommonJS", "import_LedgerConnectStateManager", "import_getExplorerAddress", "import_providerFactory", "import_accountActions", "import_loginInfoActions", "import_getAuthTokenText", "import_updateAccountsList", "import_waitForLedgerSelection", "options", "config", "provider", "login", "manager", "explorerAddress", "authData", "selectedAccount", "version", "dataEnabled"]
}
