{
  "version": 3,
  "sources": ["../../../src/providers/DappProvider/DappProvider.ts"],
  "sourcesContent": ["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"],
  "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,kBAAAE,IAAA,eAAAC,EAAAH,GACA,IAAAI,EAA8B,gDAC9BC,EAAmC,6CACnCC,EAAgC,oDAEhCC,EAAsB,iCACtBC,EAAuB,mCACvBC,EAAgC,gDAChCC,EAAwC,yDACxCC,EAGO,mEAEA,MAAMT,CAAa,CAIxB,YAAYU,EAAqB,CAFjC,KAAQ,cAAgB,GAGtB,KAAK,SAAWA,CAClB,CAEA,MAAyB,CACvB,OAAO,KAAK,SAAS,KAAK,CAC5B,CAEA,MAAM,MAAMC,EAA8B,CACxC,MAAMC,EAAO,QAAM,SAAM,KAAK,SAAUD,CAAO,EAC/C,4BAAgB,KAAK,SAAS,QAAQ,CAAC,KACvC,sBAAmB,IAAI,EACvB,gBAAc,YAAY,EAAE,KAAK,EAC1BC,CACT,CAEA,eAAyB,CACvB,OAAO,KAAK,SAAS,cAAc,CACrC,CAEA,MAAM,OACJD,EAAU,CACR,gCAAiC,EACnC,EACkB,CAClB,GAAI,KAAK,cACP,eAAQ,KAAK,4BAA4B,EAClC,GAGT,KAAK,cAAgB,GAErB,MAAME,EAAc,QAAM,UAAO,CAAE,SAAU,KAAK,SAAU,QAAAF,CAAQ,CAAC,EAErE,YAAK,cAAgB,GAEdE,CACT,CAEA,SAAU,CACR,OAAO,KAAK,SAAS,QAAQ,CAC/B,CAKA,aAAc,CACZ,OAAO,KAAK,QACd,CAEA,MAAM,iBACJC,EACAH,EACwB,CACxB,GAAI,CAMF,OAL2B,QAAM,gCAA6B,CAC5D,SAAU,KAAK,SACf,aAAAG,EACA,QAAAH,CACF,CAAC,CAEH,OAASI,EAAO,CACd,MAAMC,KAAe,mBAAgBD,CAAK,EAC1C,MAAM,IAAI,MAAMC,CAAY,CAC9B,CACF,CAEA,MAAM,YACJC,EACAN,EAGyB,CACzB,GAAI,CAMF,OALsB,QAAM,2BAAwB,CAClD,SAAU,KAAK,SACf,QAAAM,EACA,QAAAN,CACF,CAAC,CAEH,OAASI,EAAO,CACd,MAAMC,KAAe,mBAAgBD,EAAO,SAAS,EACrD,MAAM,IAAI,MAAMC,CAAY,CAC9B,CACF,CAEA,aAAoB,CAClB,KAAK,SAAS,cAAc,CAC9B,CACF",
  "names": ["DappProvider_exports", "__export", "DappProvider", "__toCommonJS", "import_LogoutManager", "import_accountProvider", "import_loginInfoActions", "import_login", "import_logout", "import_handleSignError", "import_signMessageWithProvider", "import_signTransactionsWithProvider", "provider", "options", "data", "isLoggedOut", "transactions", "error", "errorMessage", "message"]
}
