{
  "version": 3,
  "sources": ["../../src/managers/LogoutManager/LogoutManager.ts", "../../src/utils/account/refreshAccount.ts", "../../src/methods/trackTransactions/helpers/checkTransactionStatus/helpers/checkBatch/checkBatch.ts", "../../src/methods/trackTransactions/helpers/checkTransactionStatus/checkTransactionStatus.ts", "../../src/methods/trackTransactions/trackTransactions.ts", "../../src/providers/DappProvider/helpers/login/helpers/accountLogin.ts", "../../src/providers/DappProvider/helpers/login/helpers/loginWithNativeToken.ts", "../../src/providers/DappProvider/helpers/login/helpers/loginWithoutNativeToken.ts", "../../src/providers/DappProvider/helpers/login/login.ts", "../../src/providers/DappProvider/helpers/signTransactions/signTransactionsWithProvider.ts", "../../src/providers/DappProvider/DappProvider.ts", "../../src/providers/helpers/accountProvider.ts"],
  "sourcesContent": ["import BigNumber from 'bignumber.js';\nimport { ToastManager } from 'managers/ToastManager';\nimport { getAccountProvider } from 'providers/helpers/accountProvider';\nimport { ProviderTypeEnum } from 'providers/types/providerFactory.types';\nimport { getTokenExpiration } from 'services/nativeAuth/methods/getTokenExpiration';\nimport {\n  addressSelector,\n  isLoggedInSelector\n} from 'store/selectors/accountSelectors';\nimport { nativeAuthConfigSelector } from 'store/selectors/configSelectors';\nimport { tokenLoginSelector } from 'store/selectors/loginInfoSelectors';\nimport { getStore } from 'store/store';\nimport { IconNamesEnum } from 'types/enums.types';\nimport { getHumanReadableTokenExpirationTime } from './helpers/getHumanReadableTokenExpirationTime';\n\nexport class LogoutManager {\n  private static instance: LogoutManager;\n  private store = getStore();\n  private warningLogoutTimeoutRef: ReturnType<typeof setInterval> | null = null;\n  private actualLogoutTimeoutRef: ReturnType<typeof setInterval> | null = null;\n  private plannedLogoutTimeoutRef: ReturnType<typeof setInterval> | null = null;\n  private plannedLogoutKey: string | null = null;\n\n  public static getInstance(): LogoutManager {\n    if (!LogoutManager.instance) {\n      LogoutManager.instance = new LogoutManager();\n    }\n    return LogoutManager.instance;\n  }\n\n  private constructor() {}\n\n  public init = async () => {\n    if (!this.shouldStart()) {\n      return;\n    }\n\n    const state = this.store.getState();\n    const tokenLogin = tokenLoginSelector(state);\n\n    const { isExpired: isNativeAuthTokenExpired } = getTokenExpiration(\n      tokenLogin?.nativeAuthToken\n    );\n\n    if (isNativeAuthTokenExpired) {\n      const provider = getAccountProvider();\n      provider.logout();\n    } else {\n      this.addPlannedLogout();\n    }\n  };\n\n  public stop = () => {\n    clearTimeout(this.warningLogoutTimeoutRef ?? 0);\n    clearTimeout(this.plannedLogoutTimeoutRef ?? 0);\n    clearTimeout(this.actualLogoutTimeoutRef ?? 0);\n\n    this.warningLogoutTimeoutRef = null;\n    this.plannedLogoutTimeoutRef = null;\n    this.actualLogoutTimeoutRef = null;\n    this.plannedLogoutKey = null;\n  };\n\n  private readonly shouldStart = (): boolean => {\n    const state = this.store.getState();\n    const tokenLogin = tokenLoginSelector(state);\n    const isLoggedIn = isLoggedInSelector(state);\n    return Boolean(tokenLogin?.nativeAuthToken && isLoggedIn);\n  };\n\n  private addPlannedLogout = () => {\n    const provider = getAccountProvider();\n    const address = addressSelector(this.store.getState());\n    const isWebviewLogin = provider.getType() === ProviderTypeEnum.webview;\n\n    // prevent unexpected logout if webview login\n    if (!address || isWebviewLogin) {\n      return;\n    }\n\n    this.addLogoutWarning();\n\n    const tokenLogin = tokenLoginSelector(this.store.getState());\n\n    const { secondsUntilExpires, expiresAt } = getTokenExpiration(\n      tokenLogin?.nativeAuthToken\n    );\n\n    // Handle the actual logout functionality.\n    const secondsUntilExpiresBN = new BigNumber(String(secondsUntilExpires));\n    const plannedLogoutKey = `${address}_${expiresAt}`;\n    const plannedLogoutSet = this.plannedLogoutKey === plannedLogoutKey;\n\n    const isValidInterval =\n      secondsUntilExpires && secondsUntilExpiresBN.isGreaterThan(0);\n\n    if (!isValidInterval || plannedLogoutSet) {\n      return;\n    }\n\n    this.plannedLogoutKey = plannedLogoutKey;\n\n    clearTimeout(this.plannedLogoutTimeoutRef ?? 0);\n    const millisecondsUntilLogout = secondsUntilExpiresBN.times(1000);\n\n    this.actualLogoutTimeoutRef = setTimeout(() => {\n      ToastManager.getInstance().createCustomToast({\n        toastId: 'native-auth-logout',\n        iconClassName: 'warning',\n        title: 'Logging out',\n        icon: IconNamesEnum.close,\n        message: 'Your session has expired!'\n      });\n      this.actualLogoutTimeoutRef = null;\n    }, millisecondsUntilLogout.toNumber() - 3000);\n\n    this.plannedLogoutTimeoutRef = setTimeout(() => {\n      provider.logout();\n      this.plannedLogoutTimeoutRef = null;\n      this.plannedLogoutKey = null;\n    }, millisecondsUntilLogout.toNumber());\n  };\n\n  private readonly addLogoutWarning = () => {\n    if (this.warningLogoutTimeoutRef) {\n      return;\n    }\n\n    const nativeAuthConfig = nativeAuthConfigSelector(this.store.getState());\n    const tokenLogin = tokenLoginSelector(this.store.getState());\n\n    const { secondsUntilExpires } = getTokenExpiration(\n      tokenLogin?.nativeAuthToken\n    );\n\n    const secondsUntilExpiresBN = new BigNumber(String(secondsUntilExpires));\n    const millisecondsUntilLogout = secondsUntilExpiresBN.times(1000);\n\n    if (\n      !secondsUntilExpires ||\n      secondsUntilExpiresBN.isLessThanOrEqualTo(0) ||\n      !nativeAuthConfig?.tokenExpirationToastWarningSeconds\n    ) {\n      return;\n    }\n\n    const logoutWarningOffsetSeconds = new BigNumber(\n      nativeAuthConfig?.tokenExpirationToastWarningSeconds ?? 0\n    );\n\n    const logoutWarningOffsetMilliseconds =\n      logoutWarningOffsetSeconds.times(1000);\n\n    const millisecondsUntilLogoutWarning = secondsUntilExpiresBN\n      .times(1000)\n      .minus(logoutWarningOffsetMilliseconds);\n\n    const readableMinutesUntilLogout = getHumanReadableTokenExpirationTime(\n      millisecondsUntilLogout.toNumber()\n    );\n\n    const timeoutUntilLogoutWarning =\n      millisecondsUntilLogoutWarning.isLessThanOrEqualTo(0)\n        ? 0\n        : millisecondsUntilLogoutWarning.toNumber();\n\n    clearTimeout(this.warningLogoutTimeoutRef ?? 0);\n\n    this.warningLogoutTimeoutRef = setTimeout(() => {\n      ToastManager.getInstance().createCustomToast({\n        toastId: 'native-auth-expired',\n        iconClassName: 'warning',\n        title: 'Session Expiration Warning',\n        icon: IconNamesEnum.hourglass,\n        message: `Your session will expire in ${readableMinutesUntilLogout}!`\n      });\n      this.warningLogoutTimeoutRef = null;\n    }, timeoutUntilLogoutWarning);\n  };\n}\n", "import { getAddress } from 'methods/account/getAddress';\nimport { getLatestNonce } from 'methods/account/getLatestNonce';\nimport { getNetworkConfig } from 'methods/network/getNetworkConfig';\nimport { getAccountProvider } from 'providers/helpers/accountProvider';\nimport { setAccount } from 'store/actions/account/accountActions';\nimport { fetchAccount } from './fetchAccount';\nimport { trimUsernameDomain } from './trimUsernameDomain';\n\nconst setNewAccount = async () => {\n  try {\n    const address = getAddress();\n    const { network } = getNetworkConfig();\n\n    try {\n      const account = await fetchAccount({\n        address,\n        baseURL: network.apiAddress\n      });\n\n      if (account != null) {\n        const accountData = {\n          ...account,\n          username: trimUsernameDomain(account.username),\n          nonce: getLatestNonce(account)\n        };\n\n        setAccount(accountData);\n\n        return accountData;\n      }\n    } catch (e) {\n      console.error('Failed getting account ', e);\n    }\n  } catch (e) {\n    console.error('Failed getting address ', e);\n  }\n\n  return null;\n};\n\nexport async function refreshAccount() {\n  const provider = getAccountProvider();\n\n  if (provider == null) {\n    throw 'Provider not initialized';\n  }\n\n  try {\n    if (!provider.init) {\n      throw 'Current provider does not have init() function';\n    }\n\n    const initialized = await provider.init();\n\n    if (!initialized) {\n      return;\n    }\n\n    const account = await setNewAccount();\n\n    return account;\n  } catch (e) {\n    console.error('Failed initializing provider ', e);\n  }\n\n  return undefined;\n}\n", "import { getTransactionsByHashes } from 'apiCalls/transactions/getTransactionsByHashes';\nimport { getIsLoggedIn } from 'methods/account/getIsLoggedIn';\nimport { updateSessionStatus } from 'store/actions/transactions/transactionsActions';\nimport { getState } from 'store/store';\nimport {\n  TransactionBatchStatusesEnum,\n  TransactionServerStatusesEnum\n} from 'types/enums.types';\nimport { SignedTransactionType } from 'types/transactions.types';\n\nimport { refreshAccount } from 'utils/account/refreshAccount';\nimport { getPendingTransactions } from '../getPendingTransactions';\nimport { runTransactionStatusUpdate } from './helpers/runTransactionStatusUpdate';\n\nexport interface TransactionStatusTrackerPropsType {\n  sessionId: string;\n  transactionBatch: SignedTransactionType[];\n  isSequential?: boolean;\n}\n\nexport async function checkBatch({\n  sessionId,\n  transactionBatch: transactions,\n  isSequential\n}: TransactionStatusTrackerPropsType) {\n  try {\n    if (transactions == null) {\n      return;\n    }\n\n    const isLoggedIn = getIsLoggedIn();\n\n    const pendingTransactions = getPendingTransactions(transactions);\n\n    const serverTransactions =\n      await getTransactionsByHashes(pendingTransactions);\n\n    for (const serverTransaction of serverTransactions) {\n      await runTransactionStatusUpdate({\n        serverTransaction,\n        sessionId,\n        isSequential\n      });\n    }\n\n    const hasCompleted = serverTransactions.every(\n      (tx) => tx.status !== TransactionServerStatusesEnum.pending\n    );\n\n    if (!hasCompleted) {\n      return;\n    }\n\n    if (isLoggedIn) {\n      await refreshAccount();\n    }\n\n    // Call the onSuccess or onFail callback only if the transactions are sent normally (not using batch transactions mechanism).\n    // The batch transactions mechanism will call the callbacks separately.\n\n    const { transactions: sessions } = getState();\n    const session = sessions?.[sessionId];\n\n    const isSuccessful = session.transactions.every(\n      (tx) => tx.status === TransactionServerStatusesEnum.success\n    );\n\n    if (isSuccessful) {\n      return updateSessionStatus({\n        sessionId,\n        status: TransactionBatchStatusesEnum.success\n      });\n    }\n\n    const isFailed = session.transactions.some(\n      (tx) => tx.status === TransactionServerStatusesEnum.fail\n    );\n\n    if (isFailed) {\n      return updateSessionStatus({\n        sessionId,\n        status: TransactionBatchStatusesEnum.fail\n      });\n    }\n\n    const isInvalid = session.transactions.every(\n      (tx) => tx.status === TransactionServerStatusesEnum.notExecuted\n    );\n\n    if (isInvalid) {\n      return updateSessionStatus({\n        sessionId,\n        status: TransactionBatchStatusesEnum.invalid\n      });\n    }\n  } catch (error) {\n    console.error(error);\n  }\n}\n", "import { pendingTransactionsSessionsSelector } from 'store/selectors/transactionsSelector';\nimport { getState } from 'store/store';\nimport { checkBatch } from './helpers/checkBatch';\n\nexport async function checkTransactionStatus() {\n  const pendingSessions = pendingTransactionsSessionsSelector(getState());\n\n  const entries = Object.entries(pendingSessions);\n  if (entries.length === 0) {\n    return;\n  }\n\n  await Promise.all(\n    entries.map(([sessionId, { transactions }]) =>\n      checkBatch({\n        sessionId,\n        transactionBatch: transactions\n      })\n    )\n  );\n}\n", "import { subscriptions } from 'constants/storage.constants';\nimport { WebsocketConnectionStatusEnum } from 'constants/websocket.constants';\nimport { websocketEventSelector } from 'store/selectors/accountSelectors';\nimport { getStore } from 'store/store';\nimport { SubscriptionsEnum } from 'types/subscriptions.type';\nimport { checkTransactionStatus } from './helpers/checkTransactionStatus';\nimport { getPollingInterval } from './helpers/getPollingInterval';\n\n/**\n * Tracks transactions using websocket or polling\n * @returns stopTransactionsTracking function\n */\nexport async function trackTransactions(): Promise<{\n  stopTransactionsTracking: () => void;\n}> {\n  const store = getStore();\n  const pollingInterval = getPollingInterval();\n  let pollingIntervalRef: ReturnType<typeof setTimeout> | null = null;\n  let timestamp = websocketEventSelector(store.getState())?.timestamp ?? null;\n\n  const recheckStatus = async (): Promise<void> => {\n    try {\n      await checkTransactionStatus();\n    } catch (error) {\n      console.error(\n        '[trackTransactions] Error checking transaction status:',\n        error\n      );\n    }\n  };\n\n  const startPolling = (): void => {\n    // Prevent multiple polling intervals\n    if (pollingIntervalRef) {\n      return;\n    }\n    pollingIntervalRef = setInterval(recheckStatus, pollingInterval);\n  };\n\n  const stopPolling = (): void => {\n    if (pollingIntervalRef) {\n      clearInterval(pollingIntervalRef);\n      pollingIntervalRef = null;\n    }\n  };\n\n  const setupWebSocketTracking = (): void => {\n    stopPolling();\n    const unsubscribeWebsocketEvent = store.subscribe(\n      ({ account: { websocketEvent } }) => {\n        if (\n          websocketEvent?.message &&\n          websocketEvent.timestamp != null &&\n          timestamp !== websocketEvent.timestamp\n        ) {\n          timestamp = websocketEvent.timestamp;\n          recheckStatus();\n        }\n      }\n    );\n\n    subscriptions.set(\n      SubscriptionsEnum.websocketEventReceived,\n      unsubscribeWebsocketEvent\n    );\n  };\n\n  // Initial execution\n  recheckStatus();\n\n  const stopTransactionsTracking = (): void => {\n    stopPolling();\n  };\n\n  const unsubscribeWebsocketStatus = store.subscribe(\n    ({ account: { address }, config: { websocketStatus } }, prevState) => {\n      const hasStatusChange =\n        prevState.config.websocketStatus !== websocketStatus;\n\n      if (!hasStatusChange) {\n        return;\n      }\n\n      switch (websocketStatus) {\n        case WebsocketConnectionStatusEnum.COMPLETED:\n          setupWebSocketTracking();\n          break;\n        case WebsocketConnectionStatusEnum.PENDING:\n          startPolling();\n          break;\n        default:\n          address ? startPolling() : stopTransactionsTracking();\n          break;\n      }\n    }\n  );\n\n  subscriptions.set(\n    SubscriptionsEnum.websocketStatusChanged,\n    unsubscribeWebsocketStatus\n  );\n  return { stopTransactionsTracking };\n}\n", "import { getLatestNonce } from 'methods/account/getLatestNonce';\nimport { setGasStationMetadata } from 'methods/initApp/gasStationMetadata/setGasStationMetadata';\nimport { registerWebsocketListener } from 'methods/initApp/websocket/registerWebsocket';\nimport { trackTransactions } from 'methods/trackTransactions/trackTransactions';\nimport { IProvider } from 'providers/types/providerFactory.types';\nimport { setAccount } from 'store/actions/account';\nimport { loginAction } from 'store/actions/sharedActions/sharedActions';\nimport { AccountType } from 'types/account.types';\nimport { fetchAccount } from 'utils/account/fetchAccount';\nimport { trimUsernameDomain } from 'utils/account/trimUsernameDomain';\n\ninterface IAccountLoginProps {\n  address: string;\n  provider: IProvider;\n  apiAddress: string;\n}\n\nexport async function accountLogin({\n  address,\n  provider,\n  apiAddress\n}: IAccountLoginProps) {\n  const account = await fetchAccount({\n    address,\n    baseURL: apiAddress\n  });\n\n  if (!account) {\n    throw new Error('Account not found');\n  }\n\n  loginAction({\n    address,\n    providerType: provider.getType()\n  });\n\n  const newAccount: AccountType = {\n    ...account,\n    username: trimUsernameDomain(account.username),\n    nonce: getLatestNonce(account)\n  };\n\n  setAccount(newAccount);\n\n  await registerWebsocketListener(address);\n  trackTransactions();\n\n  if (account.shard != null) {\n    await setGasStationMetadata({\n      shard: Number(account.shard),\n      apiAddress\n    });\n  }\n}\n", "import { getNetworkConfig } from 'methods/network/getNetworkConfig';\nimport { IProvider } from 'providers/types/providerFactory.types';\nimport { nativeAuth } from 'services/nativeAuth';\nimport { decodeNativeAuthToken } from 'services/nativeAuth/helpers/decodeNativeAuthToken';\nimport { NativeAuthConfigType } from 'services/nativeAuth/nativeAuth.types';\nimport { setTokenLogin } from 'store/actions/loginInfo/loginInfoActions';\nimport { accountLogin } from './accountLogin';\nimport { extractAddressFromToken } from './extractAddressFromToken';\nimport { getMultisigLoginToken } from './getMultisigLoginToken';\n\nexport async function loginWithNativeToken({\n  provider,\n  nativeAuthConfig,\n  token\n}: {\n  provider: IProvider;\n  nativeAuthConfig: NativeAuthConfigType;\n  token?: string;\n}) {\n  const {\n    network: { apiAddress }\n  } = getNetworkConfig();\n\n  const nativeAuthClient = nativeAuth(nativeAuthConfig);\n  let loginToken = token;\n\n  if (!loginToken) {\n    loginToken = await nativeAuthClient.initialize({\n      noCache: true\n    });\n  }\n\n  const loginData = await provider.login({\n    token: loginToken\n  });\n\n  const { address, signature, ...loginResult } = loginData;\n\n  if (!address) {\n    console.warn('Login cancelled.');\n    return null;\n  }\n\n  if (!signature) {\n    console.error('Failed to sign login token');\n    return null;\n  }\n\n  // nativeAuthToken received from hub login\n  const decodedToken = decodeNativeAuthToken(loginResult?.accessToken);\n\n  const usedLoginToken = await getMultisigLoginToken({\n    loginData,\n    nativeAuthConfig,\n    loginToken\n  });\n\n  const nativeAuthToken = decodedToken\n    ? loginResult.accessToken\n    : nativeAuthClient.getToken({\n        address,\n        token: usedLoginToken,\n        signature\n      });\n\n  setTokenLogin({\n    loginToken,\n    signature,\n    nativeAuthToken\n  });\n\n  const extractedAddress = await extractAddressFromToken({\n    loginToken,\n    extraInfoData: {\n      multisig: loginResult?.multisig,\n      impersonate: loginResult?.impersonate\n    },\n    address\n  });\n\n  await accountLogin({\n    address: extractedAddress,\n    provider,\n    apiAddress\n  });\n\n  return {\n    address: extractedAddress,\n    signature\n  };\n}\n", "import { getNetworkConfig } from 'methods/network/getNetworkConfig';\nimport { IProvider } from 'providers/types/providerFactory.types';\nimport { accountLogin } from './accountLogin';\n\nexport async function loginWithoutNativeToken(provider: IProvider) {\n  const {\n    network: { apiAddress }\n  } = getNetworkConfig();\n\n  await provider.login();\n\n  const address = await provider.getAddress();\n\n  if (!address) {\n    throw new Error('Address not found');\n  }\n\n  await accountLogin({ address, provider, apiAddress });\n\n  return {\n    address\n  };\n}\n", "import { registerWebsocketListener } from 'methods/initApp/websocket/registerWebsocket';\nimport { trackTransactions } from 'methods/trackTransactions/trackTransactions';\nimport { IProvider } from 'providers/types/providerFactory.types';\nimport { nativeAuthConfigSelector } from 'store/selectors/configSelectors';\nimport { getState } from 'store/store';\nimport { loginWithNativeToken } from './helpers/loginWithNativeToken';\nimport { loginWithoutNativeToken } from './helpers/loginWithoutNativeToken';\n\nexport async function login(\n  provider: IProvider,\n  options?: { token?: string }\n): Promise<{\n  address: string;\n  signature: string;\n} | null> {\n  const nativeAuthConfig = nativeAuthConfigSelector(getState());\n\n  if (nativeAuthConfig) {\n    const data = await loginWithNativeToken({\n      provider,\n      nativeAuthConfig,\n      token: options?.token\n    });\n    return data;\n  }\n\n  const { address } = await loginWithoutNativeToken(provider);\n\n  await registerWebsocketListener(address);\n  trackTransactions();\n\n  return { address, signature: '' };\n}\n", "import {\n  Address,\n  Transaction,\n  TransactionOptions,\n  TransactionVersion\n} from 'lib/sdkCore';\nimport { getAccount } from 'methods/account/getAccount';\nimport {\n  IProvider,\n  ProviderTypeEnum\n} from 'providers/types/providerFactory.types';\nimport { setAccountNonce } from 'store/actions/account/accountActions';\nimport { refreshAccount } from 'utils/account/refreshAccount';\nimport { computeNonces } from '../computeNonces/computeNonces';\n\nexport type SignTransactionsOptionsType = {\n  skipGuardian?: boolean;\n  callback?: (signedTransactions: Transaction[]) => Promise<Transaction[]>;\n};\n\ntype SignTransactionsType = {\n  provider: IProvider;\n  transactions: Transaction[];\n  options?: SignTransactionsOptionsType;\n};\n\nexport async function signTransactionsWithProvider({\n  provider,\n  transactions,\n  options = {}\n}: SignTransactionsType): Promise<Transaction[]> {\n  await refreshAccount();\n  const { isGuarded, activeGuardianAddress, nonce } = getAccount();\n  const isLedger = provider.getType() === ProviderTypeEnum.ledger;\n\n  const transactionsWithComputedNonce = computeNonces({\n    latestNonce: nonce,\n    transactions\n  });\n\n  const transactionsToSign =\n    activeGuardianAddress && isGuarded && !options.skipGuardian\n      ? transactionsWithComputedNonce?.map((transaction) => {\n          transaction.version = TransactionVersion.withTxOptions().valueOf();\n          transaction.options = TransactionOptions.withOptions({\n            guarded: true,\n            ...(isLedger ? { hashSign: true } : {})\n          }).valueOf();\n\n          transaction.guardian = Address.newFromBech32(activeGuardianAddress);\n\n          return transaction;\n        })\n      : transactionsWithComputedNonce;\n\n  const signedTransactions: Transaction[] =\n    (await provider.signTransactions(transactionsToSign, options)) ?? [];\n\n  setAccountNonce(nonce + signedTransactions.length);\n\n  return signedTransactions;\n}\n", "import { Message, Transaction } from 'lib/sdkCore';\nimport { LogoutManager } from 'managers/LogoutManager/LogoutManager';\nimport { setAccountProvider } from 'providers/helpers/accountProvider';\nimport { setProviderType } from 'store/actions/loginInfo/loginInfoActions';\nimport { IProvider } from '../types/providerFactory.types';\nimport { login } from './helpers/login/login';\nimport { logout } from './helpers/logout/logout';\nimport { handleSignError } from './helpers/signErrors/handleSignError';\nimport { signMessageWithProvider } from './helpers/signMessage/signMessageWithProvider';\nimport {\n  signTransactionsWithProvider,\n  SignTransactionsOptionsType\n} from './helpers/signTransactions/signTransactionsWithProvider';\n\nexport class DappProvider {\n  private provider: IProvider;\n  private _isLoggingOut = false;\n\n  constructor(provider: IProvider) {\n    this.provider = provider;\n  }\n\n  init(): Promise<boolean> {\n    return this.provider.init();\n  }\n\n  async login(options?: { token?: string }) {\n    const data = await login(this.provider, options);\n    setProviderType(this.provider.getType());\n    setAccountProvider(this);\n    LogoutManager.getInstance().init();\n    return data;\n  }\n\n  isInitialized(): boolean {\n    return this.provider.isInitialized();\n  }\n\n  async logout(\n    options = {\n      shouldBroadcastLogoutAcrossTabs: true\n    }\n  ): Promise<boolean> {\n    if (this._isLoggingOut) {\n      console.warn('Logout already in progress');\n      return false;\n    }\n\n    this._isLoggingOut = true;\n\n    const isLoggedOut = await logout({ provider: this.provider, options });\n\n    this._isLoggingOut = false;\n\n    return isLoggedOut;\n  }\n\n  getType() {\n    return this.provider.getType();\n  }\n\n  /**\n   * @returns The original provider instance.\n   */\n  getProvider() {\n    return this.provider;\n  }\n\n  async signTransactions(\n    transactions: Transaction[],\n    options?: SignTransactionsOptionsType\n  ): Promise<Transaction[]> {\n    try {\n      const signedTransactions = await signTransactionsWithProvider({\n        provider: this.provider,\n        transactions,\n        options\n      });\n      return signedTransactions;\n    } catch (error) {\n      const errorMessage = handleSignError(error);\n      throw new Error(errorMessage);\n    }\n  }\n\n  async signMessage(\n    message: Message,\n    options?: {\n      hasConsentPopup?: boolean;\n    }\n  ): Promise<Message | null> {\n    try {\n      const signedMessage = await signMessageWithProvider({\n        provider: this.provider,\n        message,\n        options\n      });\n      return signedMessage;\n    } catch (error) {\n      const errorMessage = handleSignError(error, 'warning');\n      throw new Error(errorMessage);\n    }\n  }\n\n  cancelLogin(): void {\n    this.provider.cancelLogin?.();\n  }\n}\n", "import { IProvider } from 'providers/types/providerFactory.types';\nimport { DappProvider } from '../DappProvider';\nimport { emptyProvider } from './emptyProvider';\n\nexport type ProvidersType = IProvider;\n\nlet accountProvider: DappProvider | null = null;\n\nexport function setAccountProvider<TProvider extends DappProvider | null>(\n  provider: TProvider\n) {\n  accountProvider = provider;\n}\n\nexport function getAccountProvider(): DappProvider {\n  return accountProvider || new DappProvider(emptyProvider);\n}\n"],
  "mappings": "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",
  "names": ["BigNumber", "setNewAccount", "address", "getAddress", "network", "getNetworkConfig", "account", "fetchAccount", "accountData", "trimUsernameDomain", "getLatestNonce", "setAccount", "e", "refreshAccount", "provider", "getAccountProvider", "checkBatch", "sessionId", "transactions", "isSequential", "isLoggedIn", "getIsLoggedIn", "pendingTransactions", "getPendingTransactions", "serverTransactions", "getTransactionsByHashes", "serverTransaction", "runTransactionStatusUpdate", "tx", "refreshAccount", "sessions", "getState", "session", "updateSessionStatus", "error", "checkTransactionStatus", "pendingSessions", "pendingTransactionsSessionsSelector", "getState", "entries", "sessionId", "transactions", "checkBatch", "trackTransactions", "store", "getStore", "pollingInterval", "getPollingInterval", "pollingIntervalRef", "timestamp", "websocketEventSelector", "recheckStatus", "checkTransactionStatus", "error", "startPolling", "stopPolling", "setupWebSocketTracking", "unsubscribeWebsocketEvent", "websocketEvent", "subscriptions", "stopTransactionsTracking", "unsubscribeWebsocketStatus", "address", "websocketStatus", "prevState", "accountLogin", "address", "provider", "apiAddress", "account", "fetchAccount", "loginAction", "newAccount", "trimUsernameDomain", "getLatestNonce", "setAccount", "registerWebsocketListener", "trackTransactions", "setGasStationMetadata", "loginWithNativeToken", "provider", "nativeAuthConfig", "token", "apiAddress", "getNetworkConfig", "nativeAuthClient", "nativeAuth", "loginToken", "loginData", "address", "signature", "loginResult", "decodedToken", "decodeNativeAuthToken", "usedLoginToken", "getMultisigLoginToken", "nativeAuthToken", "setTokenLogin", "extractedAddress", "extractAddressFromToken", "accountLogin", "loginWithoutNativeToken", "provider", "apiAddress", "getNetworkConfig", "address", "accountLogin", "login", "provider", "options", "nativeAuthConfig", "nativeAuthConfigSelector", "getState", "loginWithNativeToken", "address", "loginWithoutNativeToken", "registerWebsocketListener", "trackTransactions", "signTransactionsWithProvider", "provider", "transactions", "options", "refreshAccount", "isGuarded", "activeGuardianAddress", "nonce", "getAccount", "isLedger", "ProviderTypeEnum", "transactionsWithComputedNonce", "computeNonces", "transactionsToSign", "transaction", "TransactionVersion", "TransactionOptions", "Address", "signedTransactions", "setAccountNonce", "DappProvider", "provider", "options", "data", "login", "setProviderType", "setAccountProvider", "LogoutManager", "isLoggedOut", "logout", "transactions", "signTransactionsWithProvider", "error", "errorMessage", "handleSignError", "message", "signMessageWithProvider", "accountProvider", "setAccountProvider", "provider", "getAccountProvider", "DappProvider", "emptyProvider", "LogoutManager", "_LogoutManager", "getStore", "state", "tokenLogin", "tokenLoginSelector", "isNativeAuthTokenExpired", "getTokenExpiration", "getAccountProvider", "isLoggedIn", "isLoggedInSelector", "provider", "address", "addressSelector", "isWebviewLogin", "ProviderTypeEnum", "secondsUntilExpires", "expiresAt", "secondsUntilExpiresBN", "BigNumber", "plannedLogoutKey", "plannedLogoutSet", "millisecondsUntilLogout", "ToastManager", "nativeAuthConfig", "nativeAuthConfigSelector", "logoutWarningOffsetMilliseconds", "millisecondsUntilLogoutWarning", "readableMinutesUntilLogout", "getHumanReadableTokenExpirationTime", "timeoutUntilLogoutWarning"]
}
