{
  "version": 3,
  "sources": ["../../../../src/providers/strategies/CrossWindowProviderStrategy/CrossWindowProviderStrategy.ts"],
  "sourcesContent": ["import { providerLabels } from 'constants/providerFactory.constants';\nimport { Message, Transaction } from 'lib/sdkCore';\nimport { IDAppProviderAccount } from 'lib/sdkDappUtils';\nimport { CrossWindowProvider } from 'lib/sdkWebWalletCrossWindowProvider';\nimport { SignTransactionsOptionsType } from 'providers/DappProvider/helpers/signTransactions/signTransactionsWithProvider';\nimport {\n  ProviderTypeEnum,\n  ProviderType\n} from 'providers/types/providerFactory.types';\nimport { networkSelector } from 'store/selectors/networkSelectors';\nimport { getState } from 'store/store';\nimport { ProviderErrorsEnum } from 'types/provider.types';\nimport { BaseProviderStrategy } from '../BaseProviderStrategy/BaseProviderStrategy';\nimport { signMessage } from '../helpers/signMessage/signMessage';\n\ntype CrossWindowProviderProps = {\n  address?: string;\n  walletAddress?: string;\n};\n\nexport class CrossWindowProviderStrategy extends BaseProviderStrategy {\n  private readonly provider: CrossWindowProvider;\n  private readonly walletAddress?: string;\n\n  constructor(config?: CrossWindowProviderProps) {\n    super(config?.address);\n    this.walletAddress = config?.walletAddress;\n    this.provider = CrossWindowProvider.getInstance();\n    this._login = this.provider.login.bind(this.provider);\n  }\n\n  async init(): Promise<boolean> {\n    this.initializeAddress();\n    return this.initializeProvider();\n  }\n\n  private async initializeProvider() {\n    const network = networkSelector(getState());\n\n    const isProviderInitialized = await this.provider.init();\n\n    this.provider.setWalletUrl(this.walletAddress ?? network.walletAddress);\n\n    if (this.address) {\n      this.provider.setAddress(this.address);\n    }\n\n    return isProviderInitialized;\n  }\n\n  logout(): Promise<boolean> {\n    return this.provider.logout();\n  }\n\n  getType(): ProviderType {\n    return ProviderTypeEnum.crossWindow;\n  }\n\n  getAddress(): Promise<string | undefined> {\n    if (!this.provider) {\n      throw new Error(ProviderErrorsEnum.notInitialized);\n    }\n\n    return this.provider.getAddress();\n  }\n\n  setAccount(account: IDAppProviderAccount): void {\n    return this.provider.setAccount(account);\n  }\n\n  isInitialized(): boolean {\n    return this.provider.isInitialized();\n  }\n\n  cancelAction = async () => {\n    this.provider.cancelAction();\n  };\n\n  signTransactions = async (\n    transactions: Transaction[],\n    _options?: SignTransactionsOptionsType\n  ) => {\n    if (!this.provider) {\n      throw new Error(ProviderErrorsEnum.notInitialized);\n    }\n\n    const { onClose, manager } = await this.initSignState();\n\n    try {\n      const signedTransactions: Transaction[] =\n        (await this.provider.signTransactions(transactions)) ?? [];\n\n      return signedTransactions;\n    } catch (error) {\n      await onClose({ shouldCancelAction: true });\n\n      throw error;\n    } finally {\n      manager?.closeUI();\n    }\n  };\n\n  signMessage = async (message: Message) => {\n    if (!this.provider) {\n      throw new Error(ProviderErrorsEnum.notInitialized);\n    }\n\n    const signedMessage = await signMessage({\n      message,\n      handleSignMessage: this.provider.signMessage.bind(this.provider),\n      cancelAction: this.cancelAction,\n      providerType: providerLabels.crossWindow\n    });\n\n    return signedMessage;\n  };\n}\n"],
  "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,iCAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAA+B,+CAG/BC,EAAoC,+CAEpCD,EAGO,iDACPE,EAAgC,4CAChCC,EAAyB,uBACzBC,EAAmC,gCACnCC,EAAqC,wDACrCC,EAA4B,8CAOrB,MAAMR,UAAoC,sBAAqB,CAIpE,YAAYS,EAAmC,CAC7C,MAAMA,GAAQ,OAAO,EAiDvB,kBAAe,SAAY,CACzB,KAAK,SAAS,aAAa,CAC7B,EAEA,sBAAmB,MACjBC,EACAC,IACG,CACH,GAAI,CAAC,KAAK,SACR,MAAM,IAAI,MAAM,qBAAmB,cAAc,EAGnD,KAAM,CAAE,QAAAC,EAAS,QAAAC,CAAQ,EAAI,MAAM,KAAK,cAAc,EAEtD,GAAI,CAIF,OAFG,MAAM,KAAK,SAAS,iBAAiBH,CAAY,GAAM,CAAC,CAG7D,OAASI,EAAO,CACd,YAAMF,EAAQ,CAAE,mBAAoB,EAAK,CAAC,EAEpCE,CACR,QAAE,CACAD,GAAS,QAAQ,CACnB,CACF,EAEA,iBAAc,MAAOE,GAAqB,CACxC,GAAI,CAAC,KAAK,SACR,MAAM,IAAI,MAAM,qBAAmB,cAAc,EAUnD,OAPsB,QAAM,eAAY,CACtC,QAAAA,EACA,kBAAmB,KAAK,SAAS,YAAY,KAAK,KAAK,QAAQ,EAC/D,aAAc,KAAK,aACnB,aAAc,iBAAe,WAC/B,CAAC,CAGH,EAzFE,KAAK,cAAgBN,GAAQ,cAC7B,KAAK,SAAW,sBAAoB,YAAY,EAChD,KAAK,OAAS,KAAK,SAAS,MAAM,KAAK,KAAK,QAAQ,CACtD,CAEA,MAAM,MAAyB,CAC7B,YAAK,kBAAkB,EAChB,KAAK,mBAAmB,CACjC,CAEA,MAAc,oBAAqB,CACjC,MAAMO,KAAU,sBAAgB,YAAS,CAAC,EAEpCC,EAAwB,MAAM,KAAK,SAAS,KAAK,EAEvD,YAAK,SAAS,aAAa,KAAK,eAAiBD,EAAQ,aAAa,EAElE,KAAK,SACP,KAAK,SAAS,WAAW,KAAK,OAAO,EAGhCC,CACT,CAEA,QAA2B,CACzB,OAAO,KAAK,SAAS,OAAO,CAC9B,CAEA,SAAwB,CACtB,OAAO,mBAAiB,WAC1B,CAEA,YAA0C,CACxC,GAAI,CAAC,KAAK,SACR,MAAM,IAAI,MAAM,qBAAmB,cAAc,EAGnD,OAAO,KAAK,SAAS,WAAW,CAClC,CAEA,WAAWC,EAAqC,CAC9C,OAAO,KAAK,SAAS,WAAWA,CAAO,CACzC,CAEA,eAAyB,CACvB,OAAO,KAAK,SAAS,cAAc,CACrC,CA4CF",
  "names": ["CrossWindowProviderStrategy_exports", "__export", "CrossWindowProviderStrategy", "__toCommonJS", "import_providerFactory", "import_sdkWebWalletCrossWindowProvider", "import_networkSelectors", "import_store", "import_provider", "import_BaseProviderStrategy", "import_signMessage", "config", "transactions", "_options", "onClose", "manager", "error", "message", "network", "isProviderInitialized", "account"]
}
