@multiversx/sdk-dapp 5.2.10 → 5.2.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (405) hide show
  1. package/out/__chunks__/{chunk-GX4KNYGP.mjs → chunk-2GWRGSHX.mjs} +2 -2
  2. package/out/__chunks__/{chunk-HPTXBXHJ.mjs → chunk-3Z2CWDRX.mjs} +2 -2
  3. package/out/__chunks__/{chunk-Y7ZCHIBP.mjs → chunk-5STPHU5I.mjs} +2 -2
  4. package/out/__chunks__/{chunk-4W7VD2PQ.mjs → chunk-5UEYQ2KL.mjs} +2 -2
  5. package/out/__chunks__/{chunk-HBVPPEMP.mjs → chunk-6F3EV2Y4.mjs} +2 -2
  6. package/out/__chunks__/{chunk-32ZP2NA6.mjs → chunk-6NWGAFI5.mjs} +2 -2
  7. package/out/__chunks__/{chunk-SQUXVDTO.mjs → chunk-73NTM43N.mjs} +2 -2
  8. package/out/__chunks__/chunk-7CT7RHSK.mjs +2 -0
  9. package/out/__chunks__/{chunk-FCAIW3C4.mjs.map → chunk-7CT7RHSK.mjs.map} +3 -3
  10. package/out/__chunks__/{chunk-X3RT7CXY.mjs → chunk-7Z26MA4H.mjs} +2 -2
  11. package/out/__chunks__/{chunk-IKZRDQXB.mjs → chunk-AU76TGKZ.mjs} +2 -2
  12. package/out/__chunks__/{chunk-BOKD6CTQ.mjs → chunk-BDZ33IMP.mjs} +2 -2
  13. package/out/__chunks__/{chunk-2IPQUVFZ.mjs → chunk-BHLMFKLS.mjs} +2 -2
  14. package/out/__chunks__/{chunk-DR2RQBDW.mjs → chunk-BOJYDCZ5.mjs} +2 -2
  15. package/out/__chunks__/chunk-BQS32EX5.mjs +2 -0
  16. package/out/__chunks__/chunk-BQS32EX5.mjs.map +7 -0
  17. package/out/__chunks__/{chunk-RMKDRVVK.mjs → chunk-BWBYU7R4.mjs} +2 -2
  18. package/out/__chunks__/{chunk-6J4ZOG53.mjs → chunk-BXQLGIN7.mjs} +2 -2
  19. package/out/__chunks__/{chunk-VAQUUZMV.mjs → chunk-C2LXUREL.mjs} +2 -2
  20. package/out/__chunks__/chunk-C7S2TI5Y.mjs +2 -0
  21. package/out/__chunks__/{chunk-53HH2AX6.mjs → chunk-CG2SW6XW.mjs} +2 -2
  22. package/out/__chunks__/{chunk-XYI6Z7HW.mjs → chunk-CMFJB4UN.mjs} +2 -2
  23. package/out/__chunks__/chunk-CP36QS3V.mjs +2 -0
  24. package/out/__chunks__/{chunk-AOEO2MCS.mjs → chunk-D52CJHAM.mjs} +2 -2
  25. package/out/__chunks__/chunk-D5UNIS2B.mjs +2 -0
  26. package/out/__chunks__/{chunk-BDOAKSWS.mjs → chunk-DJOKOGGV.mjs} +2 -2
  27. package/out/__chunks__/{chunk-EKETQ62A.mjs → chunk-DSC7OKM6.mjs} +2 -2
  28. package/out/__chunks__/{chunk-5B3IMNMM.mjs → chunk-EEZK3T5O.mjs} +2 -2
  29. package/out/__chunks__/{chunk-U5QF5Y2B.mjs → chunk-ENBZNLXA.mjs} +2 -2
  30. package/out/__chunks__/{chunk-T7BIXMLU.mjs → chunk-EZOGRX23.mjs} +2 -2
  31. package/out/__chunks__/{chunk-CIL2QDFE.mjs → chunk-F5JYH2GE.mjs} +2 -2
  32. package/out/__chunks__/chunk-FCIYC4FM.mjs +2 -0
  33. package/out/__chunks__/chunk-FEP3SR47.mjs +2 -0
  34. package/out/__chunks__/{chunk-KMBJLWMI.mjs → chunk-FEYKZZ67.mjs} +2 -2
  35. package/out/__chunks__/{chunk-KMBJLWMI.mjs.map → chunk-FEYKZZ67.mjs.map} +2 -2
  36. package/out/__chunks__/{chunk-WY6AKFN5.mjs → chunk-FJAJCSAI.mjs} +2 -2
  37. package/out/__chunks__/{chunk-2KIBXIRH.mjs → chunk-FL33O3CM.mjs} +2 -2
  38. package/out/__chunks__/{chunk-KWBVQ7SO.mjs → chunk-G26FRQE7.mjs} +2 -2
  39. package/out/__chunks__/{chunk-BIJ6JKRA.mjs → chunk-G7FYMZJO.mjs} +2 -2
  40. package/out/__chunks__/{chunk-27NRVV55.mjs → chunk-GC3EGW65.mjs} +2 -2
  41. package/out/__chunks__/chunk-GO33UPCG.mjs +2 -0
  42. package/out/__chunks__/chunk-H5OF5YQF.mjs +2 -0
  43. package/out/__chunks__/{chunk-YYZ3NO6N.mjs.map → chunk-H5OF5YQF.mjs.map} +2 -2
  44. package/out/__chunks__/chunk-HD6AKORP.mjs +2 -0
  45. package/out/__chunks__/{chunk-6GCLPDPY.mjs.map → chunk-HD6AKORP.mjs.map} +2 -2
  46. package/out/__chunks__/{chunk-QLK4G3MB.mjs → chunk-HWI2QO32.mjs} +2 -2
  47. package/out/__chunks__/chunk-I6JLRP5Y.mjs +2 -0
  48. package/out/__chunks__/chunk-IECHAN5Y.mjs +2 -0
  49. package/out/__chunks__/{chunk-GHYWHCEU.mjs → chunk-IJTXME3Q.mjs} +2 -2
  50. package/out/__chunks__/{chunk-DM7INZPL.mjs → chunk-J4GRXGQI.mjs} +2 -2
  51. package/out/__chunks__/{chunk-AXCZ6LN5.mjs → chunk-J5MXSFGF.mjs} +2 -2
  52. package/out/__chunks__/{chunk-UCYO4ETU.mjs → chunk-JFWHJ7VA.mjs} +2 -2
  53. package/out/__chunks__/chunk-JOXEQBHW.mjs +2 -0
  54. package/out/__chunks__/{chunk-ELMZZQ4D.mjs → chunk-JUX7RQED.mjs} +2 -2
  55. package/out/__chunks__/chunk-LAOAFA7S.mjs +2 -0
  56. package/out/__chunks__/{chunk-4LUDQ3EQ.mjs → chunk-LBFTX44W.mjs} +2 -2
  57. package/out/__chunks__/{chunk-VIAELTP4.mjs → chunk-LQ3UGB46.mjs} +2 -2
  58. package/out/__chunks__/chunk-NKZX4KJF.mjs +2 -0
  59. package/out/__chunks__/{chunk-TEY7ZFKW.mjs → chunk-O4PUBLYW.mjs} +2 -2
  60. package/out/__chunks__/{chunk-LQ2CV7ZR.mjs → chunk-OHK76MFX.mjs} +2 -2
  61. package/out/__chunks__/{chunk-4DWIKUKQ.mjs → chunk-OR3D6ZH4.mjs} +2 -2
  62. package/out/__chunks__/chunk-Q7KYVZUM.mjs +2 -0
  63. package/out/__chunks__/{chunk-SYU7YQKL.mjs → chunk-Q7TZ6C22.mjs} +2 -2
  64. package/out/__chunks__/{chunk-5AHEAMRS.mjs → chunk-QAAOGNH4.mjs} +2 -2
  65. package/out/__chunks__/{chunk-ITSOIUFJ.mjs → chunk-QG4NGBHS.mjs} +2 -2
  66. package/out/__chunks__/{chunk-TL4LQKTJ.mjs → chunk-QN2SFLFO.mjs} +2 -2
  67. package/out/__chunks__/{chunk-44MMZR2Y.mjs → chunk-QOP5T5R4.mjs} +2 -2
  68. package/out/__chunks__/{chunk-PHIMW3C4.mjs → chunk-R6UWDERK.mjs} +2 -2
  69. package/out/__chunks__/{chunk-QO2675JJ.mjs → chunk-RDTT74OC.mjs} +2 -2
  70. package/out/__chunks__/chunk-SERW2VL6.mjs +2 -0
  71. package/out/__chunks__/{chunk-7KQH4A7J.mjs → chunk-SINQBCBO.mjs} +2 -2
  72. package/out/__chunks__/{chunk-Z54TI7XZ.mjs → chunk-STNUKKSC.mjs} +2 -2
  73. package/out/__chunks__/{chunk-MPLWNVA3.mjs → chunk-U6FDF6V4.mjs} +2 -2
  74. package/out/__chunks__/{chunk-QLNOICTW.mjs → chunk-UWUJKOLU.mjs} +2 -2
  75. package/out/__chunks__/chunk-UXPWG7TI.mjs +2 -0
  76. package/out/__chunks__/{chunk-MZP7PTLY.mjs.map → chunk-UXPWG7TI.mjs.map} +1 -1
  77. package/out/__chunks__/{chunk-7UQ3RVF2.mjs → chunk-VFY6KWJ2.mjs} +2 -2
  78. package/out/__chunks__/{chunk-5EUVZR4Y.mjs → chunk-W3L462S3.mjs} +2 -2
  79. package/out/__chunks__/{chunk-BD47IK6A.mjs → chunk-WNJKPQDV.mjs} +2 -2
  80. package/out/__chunks__/{chunk-OPWW3Q7G.mjs → chunk-WPNLIPMJ.mjs} +2 -2
  81. package/out/__chunks__/{chunk-EYVJKOIC.mjs → chunk-XGW74YF7.mjs} +2 -2
  82. package/out/__chunks__/chunk-XJ4DOOWN.mjs +2 -0
  83. package/out/__chunks__/chunk-XUUR76YU.mjs +2 -0
  84. package/out/__chunks__/{chunk-YIWK24UR.mjs → chunk-XVPO7ZMT.mjs} +2 -2
  85. package/out/__chunks__/{chunk-Y6N7WJ2H.mjs → chunk-YGMSU5HA.mjs} +2 -2
  86. package/out/__chunks__/{chunk-Z6PALKZ5.mjs → chunk-ZATPIKZ2.mjs} +2 -2
  87. package/out/__chunks__/chunk-ZD74AW3C.mjs +2 -0
  88. package/out/__chunks__/{chunk-I5NREA3G.mjs → chunk-ZQEBGI5N.mjs} +2 -2
  89. package/out/__chunks__/{chunk-TZCNJURP.mjs → chunk-ZRN5QF4U.mjs} +2 -2
  90. package/out/__chunks__/{chunk-WTZJYGFF.mjs → chunk-ZVF3CROB.mjs} +2 -2
  91. package/out/apiCalls/account/getScamAddressData.mjs +1 -1
  92. package/out/apiCalls/configuration/getCleanApiAddress.mjs +1 -1
  93. package/out/apiCalls/configuration/getGasStationMetadata.mjs +1 -1
  94. package/out/apiCalls/index.mjs +1 -1
  95. package/out/apiCalls/tokens/getPersistedTokenDetails.mjs +1 -1
  96. package/out/apiCalls/tokens/getTokenDetails.mjs +1 -1
  97. package/out/apiCalls/tokens/index.mjs +1 -1
  98. package/out/apiCalls/transactions/getServerTransactionsByHashes.mjs +1 -1
  99. package/out/apiCalls/transactions/getTransactionByHash.mjs +1 -1
  100. package/out/apiCalls/transactions/getTransactionsByHashes.mjs +1 -1
  101. package/out/constants/browser.constants.mjs +1 -1
  102. package/out/constants/index.mjs +1 -1
  103. package/out/constants/storage.constants.mjs +1 -1
  104. package/out/constants/window.constants.cjs +1 -1
  105. package/out/constants/window.constants.cjs.map +1 -1
  106. package/out/constants/window.constants.mjs +1 -1
  107. package/out/controllers/TransactionsHistoryController/TransactionsHistoryController.mjs +1 -1
  108. package/out/controllers/TransactionsHistoryController/index.mjs +1 -1
  109. package/out/controllers/TransactionsTableController/TransactionsTableController.mjs +1 -1
  110. package/out/controllers/TransactionsTableController/index.mjs +1 -1
  111. package/out/index.mjs +1 -1
  112. package/out/lib/sdkDappUi.mjs +1 -1
  113. package/out/managers/LogoutManager/LogoutManager.mjs +1 -1
  114. package/out/managers/NotificationsFeedManager/NotificationsFeedManager.mjs +1 -1
  115. package/out/managers/NotificationsFeedManager/index.mjs +1 -1
  116. package/out/managers/ToastManager/ToastManager.mjs +1 -1
  117. package/out/managers/ToastManager/ToastUICoordinator.mjs +1 -1
  118. package/out/managers/ToastManager/helpers/LifetimeManager.mjs +1 -1
  119. package/out/managers/ToastManager/helpers/createToastsFromTransactions.mjs +1 -1
  120. package/out/managers/ToastManager/helpers/createTransactionToast.mjs +1 -1
  121. package/out/managers/ToastManager/index.mjs +1 -1
  122. package/out/managers/TransactionManager/TransactionManager.mjs +1 -1
  123. package/out/managers/TransactionManager/helpers/getAreTransactionsCorssShards.mjs +1 -1
  124. package/out/managers/TransactionManager/helpers/getToastDuration.mjs +1 -1
  125. package/out/managers/TransactionManager/index.mjs +1 -1
  126. package/out/managers/UnlockPanelManager/UnlockPanelManager.mjs +1 -1
  127. package/out/managers/UnlockPanelManager/index.mjs +1 -1
  128. package/out/managers/index.mjs +1 -1
  129. package/out/managers/internal/LedgerConnectStateManager/LedgerConnectStateManager.mjs +1 -1
  130. package/out/managers/internal/LedgerConnectStateManager/index.mjs +1 -1
  131. package/out/managers/internal/LedgerIdleStateManager/LedgerIdleStateManager.mjs +1 -1
  132. package/out/managers/internal/PendingTransactionsStateManager/PendingTransactionsStateManager.mjs +1 -1
  133. package/out/managers/internal/PendingTransactionsStateManager/index.mjs +1 -1
  134. package/out/managers/internal/SidePanelBaseManager/SidePanelBaseManager.mjs +1 -1
  135. package/out/managers/internal/SidePanelBaseManager/index.mjs +1 -1
  136. package/out/managers/internal/SignTransactionsStateManager/SignTransactionsStateManager.mjs +1 -1
  137. package/out/managers/internal/SignTransactionsStateManager/index.mjs +1 -1
  138. package/out/managers/internal/UIBaseManager/UIBaseManager.mjs +1 -1
  139. package/out/managers/internal/WalletConnectStateManager/WalletConnectStateManager.mjs +1 -1
  140. package/out/managers/internal/WalletConnectStateManager/index.mjs +1 -1
  141. package/out/managers/internal/index.mjs +1 -1
  142. package/out/methods/account/getAccount.mjs +1 -1
  143. package/out/methods/account/getAccountInfo.mjs +1 -1
  144. package/out/methods/account/getAddress.mjs +1 -1
  145. package/out/methods/account/getIsLoggedIn.mjs +1 -1
  146. package/out/methods/account/getLatestNonce.mjs +1 -1
  147. package/out/methods/initApp/gastStationMetadata/setGasStationMetadata.mjs +1 -1
  148. package/out/methods/initApp/initApp.mjs +1 -1
  149. package/out/methods/initApp/initApp.mjs.map +1 -1
  150. package/out/methods/initApp/websocket/initializeWebsocketConnection.mjs +1 -1
  151. package/out/methods/initApp/websocket/registerWebsocket.mjs +1 -1
  152. package/out/methods/loginInfo/getLoginInfo.mjs +1 -1
  153. package/out/methods/network/getEgldLabel.mjs +1 -1
  154. package/out/methods/network/getExplorerAddress.mjs +1 -1
  155. package/out/methods/network/getNetworkConfig.mjs +1 -1
  156. package/out/methods/trackTransactions/helpers/checkTransactionStatus/checkTransactionStatus.mjs +1 -1
  157. package/out/methods/trackTransactions/helpers/checkTransactionStatus/helpers/checkBatch/checkBatch.mjs +1 -1
  158. package/out/methods/trackTransactions/helpers/checkTransactionStatus/helpers/checkBatch/helpers/runTransactionFailure.mjs +1 -1
  159. package/out/methods/trackTransactions/helpers/checkTransactionStatus/helpers/checkBatch/helpers/runTransactionStatusUpdate.mjs +1 -1
  160. package/out/methods/trackTransactions/helpers/checkTransactionStatus/helpers/checkBatch/helpers/updateTransactionAndSessionStatus.mjs +1 -1
  161. package/out/methods/trackTransactions/helpers/checkTransactionStatus/helpers/checkBatch/index.mjs +1 -1
  162. package/out/methods/trackTransactions/helpers/checkTransactionStatus/index.mjs +1 -1
  163. package/out/methods/trackTransactions/helpers/getPollingInterval.mjs +1 -1
  164. package/out/methods/trackTransactions/trackTransactions.mjs +1 -1
  165. package/out/methods/transactions/getFailedTransactions.mjs +1 -1
  166. package/out/methods/transactions/getFailedTransactionsSessions.mjs +1 -1
  167. package/out/methods/transactions/getPendingTransactions.mjs +1 -1
  168. package/out/methods/transactions/getPendingTransactionsSessions.mjs +1 -1
  169. package/out/methods/transactions/getSuccessfulTransactions.mjs +1 -1
  170. package/out/methods/transactions/getSuccessfulTransactionsSessions.mjs +1 -1
  171. package/out/methods/transactions/getTransactionSessions.mjs +1 -1
  172. package/out/providers/DappProvider/DappProvider.mjs +1 -1
  173. package/out/providers/DappProvider/helpers/login/helpers/accountLogin.mjs +1 -1
  174. package/out/providers/DappProvider/helpers/login/helpers/extractAddressFromToken.mjs +1 -1
  175. package/out/providers/DappProvider/helpers/login/helpers/getAccountFromToken.mjs +1 -1
  176. package/out/providers/DappProvider/helpers/login/helpers/getModifiedLoginToken.mjs +1 -1
  177. package/out/providers/DappProvider/helpers/login/helpers/getMultisigLoginToken.cjs +2 -0
  178. package/out/providers/DappProvider/helpers/login/helpers/getMultisigLoginToken.cjs.map +7 -0
  179. package/out/providers/DappProvider/helpers/login/helpers/getMultisigLoginToken.d.ts +7 -0
  180. package/out/providers/DappProvider/helpers/login/helpers/getMultisigLoginToken.mjs +2 -0
  181. package/out/providers/DappProvider/helpers/login/helpers/getMultisigLoginToken.mjs.map +7 -0
  182. package/out/providers/DappProvider/helpers/login/login.cjs +1 -1
  183. package/out/providers/DappProvider/helpers/login/login.cjs.map +3 -3
  184. package/out/providers/DappProvider/helpers/login/login.mjs +1 -1
  185. package/out/providers/DappProvider/helpers/logout/logout.cjs +1 -1
  186. package/out/providers/DappProvider/helpers/logout/logout.cjs.map +2 -2
  187. package/out/providers/DappProvider/helpers/logout/logout.mjs +1 -1
  188. package/out/providers/DappProvider/helpers/signErrors/handleSignError.mjs +1 -1
  189. package/out/providers/DappProvider/helpers/signMessage/signMessageWithProvider.mjs +1 -1
  190. package/out/providers/DappProvider/helpers/signTransactions/signTransactionsWithProvider.mjs +1 -1
  191. package/out/providers/DappProvider/index.mjs +1 -1
  192. package/out/providers/ProviderFactory.mjs +1 -1
  193. package/out/providers/helpers/accountProvider.mjs +1 -1
  194. package/out/providers/helpers/cancelCrossWindowAction.mjs +1 -1
  195. package/out/providers/helpers/restoreProvider.mjs +1 -1
  196. package/out/providers/index.mjs +1 -1
  197. package/out/providers/strategies/BaseProviderStrategy/BaseProviderStrategy.mjs +1 -1
  198. package/out/providers/strategies/CrossWindowProviderStrategy/CrossWindowProviderStrategy.mjs +1 -1
  199. package/out/providers/strategies/CrossWindowProviderStrategy/index.mjs +1 -1
  200. package/out/providers/strategies/ExtensionProviderStrategy/ExtensionProviderStrategy.mjs +1 -1
  201. package/out/providers/strategies/ExtensionProviderStrategy/index.mjs +1 -1
  202. package/out/providers/strategies/IframeProviderStrategy/IframeProviderStrategy.mjs +1 -1
  203. package/out/providers/strategies/IframeProviderStrategy/index.mjs +1 -1
  204. package/out/providers/strategies/LedgerProviderStrategy/LedgerProviderStrategy.mjs +1 -1
  205. package/out/providers/strategies/LedgerProviderStrategy/helpers/authenticateLedgerAccount.mjs +1 -1
  206. package/out/providers/strategies/LedgerProviderStrategy/helpers/getAuthTokenText.mjs +1 -1
  207. package/out/providers/strategies/LedgerProviderStrategy/helpers/getLedgerConfiguration.mjs +1 -1
  208. package/out/providers/strategies/LedgerProviderStrategy/helpers/getLedgerProvider.mjs +1 -1
  209. package/out/providers/strategies/LedgerProviderStrategy/helpers/getLedgerVersionOptions.mjs +1 -1
  210. package/out/providers/strategies/LedgerProviderStrategy/helpers/index.mjs +1 -1
  211. package/out/providers/strategies/LedgerProviderStrategy/helpers/initializeLedgerProvider.mjs +1 -1
  212. package/out/providers/strategies/LedgerProviderStrategy/helpers/signLedgerMessage.mjs +1 -1
  213. package/out/providers/strategies/LedgerProviderStrategy/helpers/updateAccountsList/index.mjs +1 -1
  214. package/out/providers/strategies/LedgerProviderStrategy/helpers/updateAccountsList/updateAccountsList.mjs +1 -1
  215. package/out/providers/strategies/LedgerProviderStrategy/index.mjs +1 -1
  216. package/out/providers/strategies/WalletConnectProviderStrategy/WalletConnectProviderStrategy.mjs +1 -1
  217. package/out/providers/strategies/WalletConnectProviderStrategy/index.mjs +1 -1
  218. package/out/providers/strategies/WebviewProviderStrategy/WebviewClient/WebviewClient.mjs +1 -1
  219. package/out/providers/strategies/WebviewProviderStrategy/WebviewClient/index.mjs +1 -1
  220. package/out/providers/strategies/WebviewProviderStrategy/WebviewProviderStrategy.mjs +1 -1
  221. package/out/providers/strategies/WebviewProviderStrategy/index.mjs +1 -1
  222. package/out/providers/strategies/helpers/getPendingTransactionsHandlers.mjs +1 -1
  223. package/out/providers/strategies/helpers/index.mjs +1 -1
  224. package/out/providers/strategies/helpers/signMessage/signMessage.mjs +1 -1
  225. package/out/providers/strategies/helpers/signTransactions/helpers/calculateFeeLimit.mjs +1 -1
  226. package/out/providers/strategies/helpers/signTransactions/helpers/getCommonData/getCommonData.mjs +1 -1
  227. package/out/providers/strategies/helpers/signTransactions/helpers/getCommonData/helpers/getExtractTransactionsInfo.mjs +1 -1
  228. package/out/providers/strategies/helpers/signTransactions/helpers/getFeeData.mjs +1 -1
  229. package/out/providers/strategies/helpers/signTransactions/helpers/guardTransactions/guardTransactions.mjs +1 -1
  230. package/out/providers/strategies/helpers/signTransactions/signTransactions.mjs +1 -1
  231. package/out/providers/strategies/index.mjs +1 -1
  232. package/out/react/account/useGetAccount.mjs +1 -1
  233. package/out/react/account/useGetAccountInfo.mjs +1 -1
  234. package/out/react/account/useGetIsLoggedIn.mjs +1 -1
  235. package/out/react/account/useGetLatestNonce.mjs +1 -1
  236. package/out/react/index.mjs +1 -1
  237. package/out/react/loginInfo/useGetLoginInfo.mjs +1 -1
  238. package/out/react/network/useGetNetworkConfig.mjs +1 -1
  239. package/out/react/store/getReactStore.mjs +1 -1
  240. package/out/react/store/useSelector.mjs +1 -1
  241. package/out/react/transactions/useGetFailedTransactions.mjs +1 -1
  242. package/out/react/transactions/useGetFailedTransactionsSessions.mjs +1 -1
  243. package/out/react/transactions/useGetPendingTransactions.mjs +1 -1
  244. package/out/react/transactions/useGetPendingTransactionsSessions.mjs +1 -1
  245. package/out/react/transactions/useGetSuccessfulTransactions.mjs +1 -1
  246. package/out/react/transactions/useGetSuccessfulTransactionsSessions.mjs +1 -1
  247. package/out/react/transactions/useGetTransactionSessions.mjs +1 -1
  248. package/out/services/index.mjs +1 -1
  249. package/out/services/nativeAuth/index.mjs +1 -1
  250. package/out/services/nativeAuth/methods/buildNativeAuthConfig.mjs +1 -1
  251. package/out/services/nativeAuth/methods/getDefaultNativeAuthConfig.mjs +1 -1
  252. package/out/services/nativeAuth/methods/index.mjs +1 -1
  253. package/out/services/nativeAuth/nativeAuth.mjs +1 -1
  254. package/out/store/actions/account/accountActions.mjs +1 -1
  255. package/out/store/actions/account/index.mjs +1 -1
  256. package/out/store/actions/cache/cacheActions.mjs +1 -1
  257. package/out/store/actions/cache/index.mjs +1 -1
  258. package/out/store/actions/config/configActions.mjs +1 -1
  259. package/out/store/actions/config/index.mjs +1 -1
  260. package/out/store/actions/index.mjs +1 -1
  261. package/out/store/actions/loginInfo/loginInfoActions.mjs +1 -1
  262. package/out/store/actions/network/index.mjs +1 -1
  263. package/out/store/actions/network/initializeNetwork.mjs +1 -1
  264. package/out/store/actions/network/networkActions.mjs +1 -1
  265. package/out/store/actions/sharedActions/index.mjs +1 -1
  266. package/out/store/actions/sharedActions/sharedActions.mjs +1 -1
  267. package/out/store/actions/toasts/index.mjs +1 -1
  268. package/out/store/actions/toasts/toastsActions.mjs +1 -1
  269. package/out/store/actions/transactions/transactionsActions.mjs +1 -1
  270. package/out/store/actions/ui/index.mjs +1 -1
  271. package/out/store/actions/ui/uiActions.mjs +1 -1
  272. package/out/store/middleware/applyMiddlewares.mjs +1 -1
  273. package/out/store/middleware/index.mjs +1 -1
  274. package/out/store/middleware/logoutMiddleware.mjs +1 -1
  275. package/out/store/storage/index.mjs +1 -1
  276. package/out/store/storage/storageCallback.mjs +1 -1
  277. package/out/store/store.mjs +1 -1
  278. package/out/utils/ComponentFactory.mjs +1 -1
  279. package/out/utils/account/index.mjs +1 -1
  280. package/out/utils/account/refreshAccount.mjs +1 -1
  281. package/out/utils/account/refreshNativeAuthTokenLogin.mjs +1 -1
  282. package/out/utils/index.mjs +1 -1
  283. package/out/utils/transactions/getActiveTransactionsStatus.mjs +1 -1
  284. package/out/utils/transactions/getInterpretedTransaction/getInterpretedTransaction.mjs +1 -1
  285. package/out/utils/transactions/getInterpretedTransaction/helpers/getLockedAccountName.cjs +1 -1
  286. package/out/utils/transactions/getInterpretedTransaction/helpers/getLockedAccountName.cjs.map +2 -2
  287. package/out/utils/transactions/getInterpretedTransaction/helpers/getLockedAccountName.mjs +1 -1
  288. package/out/utils/transactions/getInterpretedTransaction/helpers/getReceiptMessage.mjs +1 -1
  289. package/out/utils/transactions/getInterpretedTransaction/helpers/getShardText.mjs +1 -1
  290. package/out/utils/transactions/getInterpretedTransaction/helpers/getTransactionIconInfo.mjs +1 -1
  291. package/out/utils/transactions/getInterpretedTransaction/helpers/getTransactionMessages.mjs +1 -1
  292. package/out/utils/transactions/getInterpretedTransaction/helpers/index.mjs +1 -1
  293. package/out/utils/transactions/getInterpretedTransaction/index.mjs +1 -1
  294. package/out/utils/transactions/getTransactionsHistory/getTransactionsHistory.mjs +1 -1
  295. package/out/utils/transactions/getTransactionsHistory/helpers/getCachedTransactionListItem.mjs +1 -1
  296. package/out/utils/transactions/getTransactionsHistory/helpers/index.mjs +1 -1
  297. package/out/utils/transactions/getTransactionsHistory/helpers/mapServerTransactionsToListItems.cjs +1 -1
  298. package/out/utils/transactions/getTransactionsHistory/helpers/mapServerTransactionsToListItems.cjs.map +2 -2
  299. package/out/utils/transactions/getTransactionsHistory/helpers/mapServerTransactionsToListItems.mjs +1 -1
  300. package/out/utils/transactions/getTransactionsHistory/index.mjs +1 -1
  301. package/out/utils/transactions/index.mjs +1 -1
  302. package/out/utils/visual/index.mjs +1 -1
  303. package/out/utils/visual/switchTheme.mjs +1 -1
  304. package/out/utils/window/getIsInIframe.mjs +1 -1
  305. package/out/utils/window/getWindowParentOrigin.mjs +1 -1
  306. package/out/utils/window/index.mjs +1 -1
  307. package/package.json +1 -1
  308. package/out/__chunks__/chunk-2POUIERX.mjs +0 -2
  309. package/out/__chunks__/chunk-52J37XY4.mjs +0 -2
  310. package/out/__chunks__/chunk-6GCLPDPY.mjs +0 -2
  311. package/out/__chunks__/chunk-FCAIW3C4.mjs +0 -2
  312. package/out/__chunks__/chunk-GFCATFXX.mjs +0 -2
  313. package/out/__chunks__/chunk-GZYKKRIS.mjs +0 -2
  314. package/out/__chunks__/chunk-HS54AKGS.mjs +0 -2
  315. package/out/__chunks__/chunk-HZNMVLJ7.mjs +0 -2
  316. package/out/__chunks__/chunk-LLSDJHEP.mjs +0 -2
  317. package/out/__chunks__/chunk-M3FTKLQZ.mjs +0 -2
  318. package/out/__chunks__/chunk-MZP7PTLY.mjs +0 -2
  319. package/out/__chunks__/chunk-PGM343MK.mjs +0 -2
  320. package/out/__chunks__/chunk-QJYSB7SV.mjs +0 -2
  321. package/out/__chunks__/chunk-R6G6DHC2.mjs +0 -2
  322. package/out/__chunks__/chunk-UQ2HW3W6.mjs +0 -2
  323. package/out/__chunks__/chunk-W47J6OJW.mjs +0 -2
  324. package/out/__chunks__/chunk-XT7FQUTK.mjs +0 -2
  325. package/out/__chunks__/chunk-YP47KPSN.mjs +0 -2
  326. package/out/__chunks__/chunk-YXPGYZJT.mjs +0 -2
  327. package/out/__chunks__/chunk-YYZ3NO6N.mjs +0 -2
  328. /package/out/__chunks__/{chunk-GX4KNYGP.mjs.map → chunk-2GWRGSHX.mjs.map} +0 -0
  329. /package/out/__chunks__/{chunk-HPTXBXHJ.mjs.map → chunk-3Z2CWDRX.mjs.map} +0 -0
  330. /package/out/__chunks__/{chunk-Y7ZCHIBP.mjs.map → chunk-5STPHU5I.mjs.map} +0 -0
  331. /package/out/__chunks__/{chunk-4W7VD2PQ.mjs.map → chunk-5UEYQ2KL.mjs.map} +0 -0
  332. /package/out/__chunks__/{chunk-HBVPPEMP.mjs.map → chunk-6F3EV2Y4.mjs.map} +0 -0
  333. /package/out/__chunks__/{chunk-32ZP2NA6.mjs.map → chunk-6NWGAFI5.mjs.map} +0 -0
  334. /package/out/__chunks__/{chunk-SQUXVDTO.mjs.map → chunk-73NTM43N.mjs.map} +0 -0
  335. /package/out/__chunks__/{chunk-X3RT7CXY.mjs.map → chunk-7Z26MA4H.mjs.map} +0 -0
  336. /package/out/__chunks__/{chunk-IKZRDQXB.mjs.map → chunk-AU76TGKZ.mjs.map} +0 -0
  337. /package/out/__chunks__/{chunk-BOKD6CTQ.mjs.map → chunk-BDZ33IMP.mjs.map} +0 -0
  338. /package/out/__chunks__/{chunk-2IPQUVFZ.mjs.map → chunk-BHLMFKLS.mjs.map} +0 -0
  339. /package/out/__chunks__/{chunk-DR2RQBDW.mjs.map → chunk-BOJYDCZ5.mjs.map} +0 -0
  340. /package/out/__chunks__/{chunk-RMKDRVVK.mjs.map → chunk-BWBYU7R4.mjs.map} +0 -0
  341. /package/out/__chunks__/{chunk-6J4ZOG53.mjs.map → chunk-BXQLGIN7.mjs.map} +0 -0
  342. /package/out/__chunks__/{chunk-VAQUUZMV.mjs.map → chunk-C2LXUREL.mjs.map} +0 -0
  343. /package/out/__chunks__/{chunk-M3FTKLQZ.mjs.map → chunk-C7S2TI5Y.mjs.map} +0 -0
  344. /package/out/__chunks__/{chunk-53HH2AX6.mjs.map → chunk-CG2SW6XW.mjs.map} +0 -0
  345. /package/out/__chunks__/{chunk-XYI6Z7HW.mjs.map → chunk-CMFJB4UN.mjs.map} +0 -0
  346. /package/out/__chunks__/{chunk-YP47KPSN.mjs.map → chunk-CP36QS3V.mjs.map} +0 -0
  347. /package/out/__chunks__/{chunk-AOEO2MCS.mjs.map → chunk-D52CJHAM.mjs.map} +0 -0
  348. /package/out/__chunks__/{chunk-W47J6OJW.mjs.map → chunk-D5UNIS2B.mjs.map} +0 -0
  349. /package/out/__chunks__/{chunk-BDOAKSWS.mjs.map → chunk-DJOKOGGV.mjs.map} +0 -0
  350. /package/out/__chunks__/{chunk-EKETQ62A.mjs.map → chunk-DSC7OKM6.mjs.map} +0 -0
  351. /package/out/__chunks__/{chunk-5B3IMNMM.mjs.map → chunk-EEZK3T5O.mjs.map} +0 -0
  352. /package/out/__chunks__/{chunk-U5QF5Y2B.mjs.map → chunk-ENBZNLXA.mjs.map} +0 -0
  353. /package/out/__chunks__/{chunk-T7BIXMLU.mjs.map → chunk-EZOGRX23.mjs.map} +0 -0
  354. /package/out/__chunks__/{chunk-CIL2QDFE.mjs.map → chunk-F5JYH2GE.mjs.map} +0 -0
  355. /package/out/__chunks__/{chunk-GFCATFXX.mjs.map → chunk-FCIYC4FM.mjs.map} +0 -0
  356. /package/out/__chunks__/{chunk-UQ2HW3W6.mjs.map → chunk-FEP3SR47.mjs.map} +0 -0
  357. /package/out/__chunks__/{chunk-WY6AKFN5.mjs.map → chunk-FJAJCSAI.mjs.map} +0 -0
  358. /package/out/__chunks__/{chunk-2KIBXIRH.mjs.map → chunk-FL33O3CM.mjs.map} +0 -0
  359. /package/out/__chunks__/{chunk-KWBVQ7SO.mjs.map → chunk-G26FRQE7.mjs.map} +0 -0
  360. /package/out/__chunks__/{chunk-BIJ6JKRA.mjs.map → chunk-G7FYMZJO.mjs.map} +0 -0
  361. /package/out/__chunks__/{chunk-27NRVV55.mjs.map → chunk-GC3EGW65.mjs.map} +0 -0
  362. /package/out/__chunks__/{chunk-QJYSB7SV.mjs.map → chunk-GO33UPCG.mjs.map} +0 -0
  363. /package/out/__chunks__/{chunk-QLK4G3MB.mjs.map → chunk-HWI2QO32.mjs.map} +0 -0
  364. /package/out/__chunks__/{chunk-GZYKKRIS.mjs.map → chunk-I6JLRP5Y.mjs.map} +0 -0
  365. /package/out/__chunks__/{chunk-PGM343MK.mjs.map → chunk-IECHAN5Y.mjs.map} +0 -0
  366. /package/out/__chunks__/{chunk-GHYWHCEU.mjs.map → chunk-IJTXME3Q.mjs.map} +0 -0
  367. /package/out/__chunks__/{chunk-DM7INZPL.mjs.map → chunk-J4GRXGQI.mjs.map} +0 -0
  368. /package/out/__chunks__/{chunk-AXCZ6LN5.mjs.map → chunk-J5MXSFGF.mjs.map} +0 -0
  369. /package/out/__chunks__/{chunk-UCYO4ETU.mjs.map → chunk-JFWHJ7VA.mjs.map} +0 -0
  370. /package/out/__chunks__/{chunk-2POUIERX.mjs.map → chunk-JOXEQBHW.mjs.map} +0 -0
  371. /package/out/__chunks__/{chunk-ELMZZQ4D.mjs.map → chunk-JUX7RQED.mjs.map} +0 -0
  372. /package/out/__chunks__/{chunk-HZNMVLJ7.mjs.map → chunk-LAOAFA7S.mjs.map} +0 -0
  373. /package/out/__chunks__/{chunk-4LUDQ3EQ.mjs.map → chunk-LBFTX44W.mjs.map} +0 -0
  374. /package/out/__chunks__/{chunk-VIAELTP4.mjs.map → chunk-LQ3UGB46.mjs.map} +0 -0
  375. /package/out/__chunks__/{chunk-LLSDJHEP.mjs.map → chunk-NKZX4KJF.mjs.map} +0 -0
  376. /package/out/__chunks__/{chunk-TEY7ZFKW.mjs.map → chunk-O4PUBLYW.mjs.map} +0 -0
  377. /package/out/__chunks__/{chunk-LQ2CV7ZR.mjs.map → chunk-OHK76MFX.mjs.map} +0 -0
  378. /package/out/__chunks__/{chunk-4DWIKUKQ.mjs.map → chunk-OR3D6ZH4.mjs.map} +0 -0
  379. /package/out/__chunks__/{chunk-HS54AKGS.mjs.map → chunk-Q7KYVZUM.mjs.map} +0 -0
  380. /package/out/__chunks__/{chunk-SYU7YQKL.mjs.map → chunk-Q7TZ6C22.mjs.map} +0 -0
  381. /package/out/__chunks__/{chunk-5AHEAMRS.mjs.map → chunk-QAAOGNH4.mjs.map} +0 -0
  382. /package/out/__chunks__/{chunk-ITSOIUFJ.mjs.map → chunk-QG4NGBHS.mjs.map} +0 -0
  383. /package/out/__chunks__/{chunk-TL4LQKTJ.mjs.map → chunk-QN2SFLFO.mjs.map} +0 -0
  384. /package/out/__chunks__/{chunk-44MMZR2Y.mjs.map → chunk-QOP5T5R4.mjs.map} +0 -0
  385. /package/out/__chunks__/{chunk-PHIMW3C4.mjs.map → chunk-R6UWDERK.mjs.map} +0 -0
  386. /package/out/__chunks__/{chunk-QO2675JJ.mjs.map → chunk-RDTT74OC.mjs.map} +0 -0
  387. /package/out/__chunks__/{chunk-YXPGYZJT.mjs.map → chunk-SERW2VL6.mjs.map} +0 -0
  388. /package/out/__chunks__/{chunk-7KQH4A7J.mjs.map → chunk-SINQBCBO.mjs.map} +0 -0
  389. /package/out/__chunks__/{chunk-Z54TI7XZ.mjs.map → chunk-STNUKKSC.mjs.map} +0 -0
  390. /package/out/__chunks__/{chunk-MPLWNVA3.mjs.map → chunk-U6FDF6V4.mjs.map} +0 -0
  391. /package/out/__chunks__/{chunk-QLNOICTW.mjs.map → chunk-UWUJKOLU.mjs.map} +0 -0
  392. /package/out/__chunks__/{chunk-7UQ3RVF2.mjs.map → chunk-VFY6KWJ2.mjs.map} +0 -0
  393. /package/out/__chunks__/{chunk-5EUVZR4Y.mjs.map → chunk-W3L462S3.mjs.map} +0 -0
  394. /package/out/__chunks__/{chunk-BD47IK6A.mjs.map → chunk-WNJKPQDV.mjs.map} +0 -0
  395. /package/out/__chunks__/{chunk-OPWW3Q7G.mjs.map → chunk-WPNLIPMJ.mjs.map} +0 -0
  396. /package/out/__chunks__/{chunk-EYVJKOIC.mjs.map → chunk-XGW74YF7.mjs.map} +0 -0
  397. /package/out/__chunks__/{chunk-R6G6DHC2.mjs.map → chunk-XJ4DOOWN.mjs.map} +0 -0
  398. /package/out/__chunks__/{chunk-XT7FQUTK.mjs.map → chunk-XUUR76YU.mjs.map} +0 -0
  399. /package/out/__chunks__/{chunk-YIWK24UR.mjs.map → chunk-XVPO7ZMT.mjs.map} +0 -0
  400. /package/out/__chunks__/{chunk-Y6N7WJ2H.mjs.map → chunk-YGMSU5HA.mjs.map} +0 -0
  401. /package/out/__chunks__/{chunk-Z6PALKZ5.mjs.map → chunk-ZATPIKZ2.mjs.map} +0 -0
  402. /package/out/__chunks__/{chunk-52J37XY4.mjs.map → chunk-ZD74AW3C.mjs.map} +0 -0
  403. /package/out/__chunks__/{chunk-I5NREA3G.mjs.map → chunk-ZQEBGI5N.mjs.map} +0 -0
  404. /package/out/__chunks__/{chunk-TZCNJURP.mjs.map → chunk-ZRN5QF4U.mjs.map} +0 -0
  405. /package/out/__chunks__/{chunk-WTZJYGFF.mjs.map → chunk-ZVF3CROB.mjs.map} +0 -0
@@ -1,2 +1,2 @@
1
- import{a as s}from"./chunk-SUBC3H4J.mjs";import{a as t}from"./chunk-U64LDJTG.mjs";import{a as n}from"./chunk-PGM343MK.mjs";import{s as e}from"./chunk-5EUVZR4Y.mjs";import{b as o}from"./chunk-7VHTZYM2.mjs";var w=async r=>{let{isGuarded:i}=n();if(!s({isGuarded:i,transactions:r}))return r;let a=r[0].sender.toBech32(),{walletAddress:d}=o(e());return await(await t({address:a,walletUrl:d}))?.guardTransactions(r)||[]};export{w as a};
2
- //# sourceMappingURL=chunk-GX4KNYGP.mjs.map
1
+ import{a as s}from"./chunk-SUBC3H4J.mjs";import{a as t}from"./chunk-U64LDJTG.mjs";import{a as n}from"./chunk-IECHAN5Y.mjs";import{s as e}from"./chunk-W3L462S3.mjs";import{b as o}from"./chunk-7VHTZYM2.mjs";var w=async r=>{let{isGuarded:i}=n();if(!s({isGuarded:i,transactions:r}))return r;let a=r[0].sender.toBech32(),{walletAddress:d}=o(e());return await(await t({address:a,walletUrl:d}))?.guardTransactions(r)||[]};export{w as a};
2
+ //# sourceMappingURL=chunk-2GWRGSHX.mjs.map
@@ -1,2 +1,2 @@
1
- import{a as s}from"./chunk-IKZRDQXB.mjs";import{c as e}from"./chunk-MGFIOCA4.mjs";var o=class i extends s{constructor(){super({uiDataUpdateEvent:"DATA_UPDATE_SIGN_TRANSACTIONS",uiTag:"mvx-sign-transactions-panel"});this.addressesPerPage=10;this._ppuMap={};this.initialData={commonData:{transactionsCount:0,currentIndexToSign:0,egldLabel:"",currentIndex:0,ppuOptions:[],address:"",origin:""},tokenTransaction:null,nftTransaction:null,sftTransaction:null};this.data={...this.initialData}}static getInstance(){return i.instance||(i.instance=new i),i.instance}get transactionsCount(){return this.data.commonData.transactionsCount}initializeGasPriceMap(a){let t=0;a.filter(n=>n!=null).forEach(n=>{let r=n?Number(n.gasPrice):0;this.updateGasPriceMap({nonce:Number(n.nonce),ppu:t,initialGasPrice:r})}),this.updateCommonData({ppu:t})}updateGasPriceMap({nonce:a,ppu:t,initialGasPrice:n}){this._ppuMap[a]={...this._ppuMap[a],ppu:t},n&&(this._ppuMap[a].initialGasPrice=n)}updateCommonData(a){this.data.commonData={...this.data.commonData,...a},this.notifyDataUpdate()}updateIsLoading(a){this.data.isLoading=a,this.notifyDataUpdate()}updateTokenTransaction(a){this.data.tokenTransaction=a,this.data.sftTransaction=null,this.data.nftTransaction=null,this.notifyDataUpdate()}updateNonFungibleTransaction(a,t){switch(a){case"NonFungibleESDT":this.data.nftTransaction=t,this.data.tokenTransaction=null,this.data.sftTransaction=null;break;case"SemiFungibleESDT":this.data.sftTransaction=t,this.data.nftTransaction=null,this.data.tokenTransaction=null;break;default:break}this.notifyDataUpdate()}get currentScreenIndex(){return this.data.commonData.currentIndex}get ppuMap(){return this._ppuMap}async setupEventListeners(){this.eventBus&&this.subscribeToEventBus("CLOSE_SIGN_TRANSACTIONS",this.closeUI.bind(this))}};export{o as a};
2
- //# sourceMappingURL=chunk-HPTXBXHJ.mjs.map
1
+ import{a as s}from"./chunk-AU76TGKZ.mjs";import{c as e}from"./chunk-MGFIOCA4.mjs";var o=class i extends s{constructor(){super({uiDataUpdateEvent:"DATA_UPDATE_SIGN_TRANSACTIONS",uiTag:"mvx-sign-transactions-panel"});this.addressesPerPage=10;this._ppuMap={};this.initialData={commonData:{transactionsCount:0,currentIndexToSign:0,egldLabel:"",currentIndex:0,ppuOptions:[],address:"",origin:""},tokenTransaction:null,nftTransaction:null,sftTransaction:null};this.data={...this.initialData}}static getInstance(){return i.instance||(i.instance=new i),i.instance}get transactionsCount(){return this.data.commonData.transactionsCount}initializeGasPriceMap(a){let t=0;a.filter(n=>n!=null).forEach(n=>{let r=n?Number(n.gasPrice):0;this.updateGasPriceMap({nonce:Number(n.nonce),ppu:t,initialGasPrice:r})}),this.updateCommonData({ppu:t})}updateGasPriceMap({nonce:a,ppu:t,initialGasPrice:n}){this._ppuMap[a]={...this._ppuMap[a],ppu:t},n&&(this._ppuMap[a].initialGasPrice=n)}updateCommonData(a){this.data.commonData={...this.data.commonData,...a},this.notifyDataUpdate()}updateIsLoading(a){this.data.isLoading=a,this.notifyDataUpdate()}updateTokenTransaction(a){this.data.tokenTransaction=a,this.data.sftTransaction=null,this.data.nftTransaction=null,this.notifyDataUpdate()}updateNonFungibleTransaction(a,t){switch(a){case"NonFungibleESDT":this.data.nftTransaction=t,this.data.tokenTransaction=null,this.data.sftTransaction=null;break;case"SemiFungibleESDT":this.data.sftTransaction=t,this.data.nftTransaction=null,this.data.tokenTransaction=null;break;default:break}this.notifyDataUpdate()}get currentScreenIndex(){return this.data.commonData.currentIndex}get ppuMap(){return this._ppuMap}async setupEventListeners(){this.eventBus&&this.subscribeToEventBus("CLOSE_SIGN_TRANSACTIONS",this.closeUI.bind(this))}};export{o as a};
2
+ //# sourceMappingURL=chunk-3Z2CWDRX.mjs.map
@@ -1,2 +1,2 @@
1
- import{a as e}from"./chunk-MZP7PTLY.mjs";function r(t){try{if(!e)return;e.document.documentElement.dataset.mvxTheme=t}catch{console.log("Error switching the theme!")}}export{r as a};
2
- //# sourceMappingURL=chunk-Y7ZCHIBP.mjs.map
1
+ import{a as e}from"./chunk-UXPWG7TI.mjs";function r(t){try{if(!e)return;e.document.documentElement.dataset.mvxTheme=t}catch{console.log("Error switching the theme!")}}export{r as a};
2
+ //# sourceMappingURL=chunk-5STPHU5I.mjs.map
@@ -1,2 +1,2 @@
1
- import{a as l}from"./chunk-YK7T6MBD.mjs";import{a as u}from"./chunk-KMJMQEXI.mjs";import{q as c}from"./chunk-5EUVZR4Y.mjs";import{a as w}from"./chunk-SQVKVA7X.mjs";import{a as i}from"./chunk-PKDR5ERF.mjs";var e=o=>c().setState(({network:t})=>{t.network={...t.network,...o}},!1,{type:"initializeNetworkConfig",payload:{value:o}});var y=async({customNetworkConfig:o={},environment:t})=>{let d=!o?.skipFetchFromServer,g=o?.apiAddress,n=t&&t in i,p=n?i[t]:{},s={...w,...p,...o},r={...s,apiTimeout:String(s.apiTimeout)},N=p?.apiAddress;if(!n&&d){let a=g||N,m=await l(a),f=r.roundDuration?null:await u(a);if(f!=null&&(r.roundDuration=f.erd_round_duration),m!=null){let k={...r,...m,...o};return e(k),k}}return e(r),r};export{y as a,e as b};
2
- //# sourceMappingURL=chunk-4W7VD2PQ.mjs.map
1
+ import{a as l}from"./chunk-YK7T6MBD.mjs";import{a as u}from"./chunk-KMJMQEXI.mjs";import{q as c}from"./chunk-W3L462S3.mjs";import{a as w}from"./chunk-SQVKVA7X.mjs";import{a as i}from"./chunk-PKDR5ERF.mjs";var e=o=>c().setState(({network:t})=>{t.network={...t.network,...o}},!1,{type:"initializeNetworkConfig",payload:{value:o}});var y=async({customNetworkConfig:o={},environment:t})=>{let d=!o?.skipFetchFromServer,g=o?.apiAddress,n=t&&t in i,p=n?i[t]:{},s={...w,...p,...o},r={...s,apiTimeout:String(s.apiTimeout)},N=p?.apiAddress;if(!n&&d){let a=g||N,m=await l(a),f=r.roundDuration?null:await u(a);if(f!=null&&(r.roundDuration=f.erd_round_duration),m!=null){let k={...r,...m,...o};return e(k),k}}return e(r),r};export{y as a,e as b};
2
+ //# sourceMappingURL=chunk-5UEYQ2KL.mjs.map
@@ -1,2 +1,2 @@
1
- import{a as r}from"./chunk-RWQNLK3I.mjs";import{a as g}from"./chunk-VJBLHJYB.mjs";import{a}from"./chunk-RRK6GTWZ.mjs";import{a as o}from"./chunk-IPMSVHGJ.mjs";import{a as c}from"./chunk-PSJI2G34.mjs";import{a as d}from"./chunk-2CG6PNPJ.mjs";import{a as i}from"./chunk-FROSOADM.mjs";import{a as p,b as e}from"./chunk-4VUMAG4J.mjs";import{rest as t}from"msw";import{setupServer as u}from"msw/node";var s=m=>(R,f,n)=>f(n.status(200),n.json(m)),k=[t.get(`${e.apiAddress}/dapp/config`,s(i)),t.get(`${e.apiAddress}/network/config`,s(d)),t.get(`https://${o.url}/socket.io/`,s(c)),t.get(`${e.apiAddress}/websocket/config`,s(o)),t.get(`${e.apiAddress}/accounts/${p}`,s(a)),t.get(`${e.apiAddress}/accounts/${r.address}`,s(r)),t.get(`${e.apiAddress}/blocks`,s(g))],P=u(...k);export{t as a,s as b,P as c};
2
- //# sourceMappingURL=chunk-HBVPPEMP.mjs.map
1
+ import{a as r}from"./chunk-RWQNLK3I.mjs";import{a as i}from"./chunk-FROSOADM.mjs";import{a as g}from"./chunk-VJBLHJYB.mjs";import{a}from"./chunk-RRK6GTWZ.mjs";import{a as o}from"./chunk-IPMSVHGJ.mjs";import{a as c}from"./chunk-PSJI2G34.mjs";import{a as d}from"./chunk-2CG6PNPJ.mjs";import{a as p,b as e}from"./chunk-4VUMAG4J.mjs";import{rest as t}from"msw";import{setupServer as u}from"msw/node";var s=m=>(R,f,n)=>f(n.status(200),n.json(m)),k=[t.get(`${e.apiAddress}/dapp/config`,s(i)),t.get(`${e.apiAddress}/network/config`,s(d)),t.get(`https://${o.url}/socket.io/`,s(c)),t.get(`${e.apiAddress}/websocket/config`,s(o)),t.get(`${e.apiAddress}/accounts/${p}`,s(a)),t.get(`${e.apiAddress}/accounts/${r.address}`,s(r)),t.get(`${e.apiAddress}/blocks`,s(g))],P=u(...k);export{t as a,s as b,P as c};
2
+ //# sourceMappingURL=chunk-6F3EV2Y4.mjs.map
@@ -1,2 +1,2 @@
1
- import{a as s}from"./chunk-AXCZ6LN5.mjs";var a=class{constructor({uiDataUpdateEvent:t,uiTag:e}){this.eventBus=null;this.uiElement=null;this.isCreatingElement=!1;this.unsubscribeFunctions=new Map;this.uiDataUpdateEvent=t,this.uiTag=e,this.data=this.getInitialData()}async init(t){this.anchor=t,await this.createUIElement(t),await this.setupEventListeners()}updateData(t){this.data={...this.data,...t},this.notifyDataUpdate()}subscribeToEventBus(t,e){if(!this.eventBus)throw new Error("eventBus is not initialized");let i=this.eventBus?.subscribe(t,e);if(i){let n=this.unsubscribeFunctions.get(t)||[];n.push(i),this.unsubscribeFunctions.set(t,n)}}notifyDataUpdate(){this.eventBus?.publish(this.uiDataUpdateEvent,this.data)}destroy(){this.unsubscribeFunctions.forEach(t=>t.forEach(e=>e())),this.unsubscribeFunctions.clear(),this.eventBus=null,this.uiElement?.remove?.(),this.uiElement=null}getInitialData(){return this.initialData}resetData(){this.data=this.getInitialData()}async createUIElement(t=this.anchor){if(this.isCreatingElement||this.uiElement)return this.uiElement;if(this.isCreatingElement=!0,this.uiElement=await s.create({name:this.uiTag,anchor:t}),this.isCreatingElement=!1,!this.uiElement)throw new Error(`Failed to create ${this.uiTag} element`);if(this.eventBus||(this.eventBus=await this.uiElement.getEventBus()),!this.eventBus)throw new Error("eventBus is not initialized");return this.uiElement}};export{a};
2
- //# sourceMappingURL=chunk-32ZP2NA6.mjs.map
1
+ import{a as s}from"./chunk-J5MXSFGF.mjs";var a=class{constructor({uiDataUpdateEvent:t,uiTag:e}){this.eventBus=null;this.uiElement=null;this.isCreatingElement=!1;this.unsubscribeFunctions=new Map;this.uiDataUpdateEvent=t,this.uiTag=e,this.data=this.getInitialData()}async init(t){this.anchor=t,await this.createUIElement(t),await this.setupEventListeners()}updateData(t){this.data={...this.data,...t},this.notifyDataUpdate()}subscribeToEventBus(t,e){if(!this.eventBus)throw new Error("eventBus is not initialized");let i=this.eventBus?.subscribe(t,e);if(i){let n=this.unsubscribeFunctions.get(t)||[];n.push(i),this.unsubscribeFunctions.set(t,n)}}notifyDataUpdate(){this.eventBus?.publish(this.uiDataUpdateEvent,this.data)}destroy(){this.unsubscribeFunctions.forEach(t=>t.forEach(e=>e())),this.unsubscribeFunctions.clear(),this.eventBus=null,this.uiElement?.remove?.(),this.uiElement=null}getInitialData(){return this.initialData}resetData(){this.data=this.getInitialData()}async createUIElement(t=this.anchor){if(this.isCreatingElement||this.uiElement)return this.uiElement;if(this.isCreatingElement=!0,this.uiElement=await s.create({name:this.uiTag,anchor:t}),this.isCreatingElement=!1,!this.uiElement)throw new Error(`Failed to create ${this.uiTag} element`);if(this.eventBus||(this.eventBus=await this.uiElement.getEventBus()),!this.eventBus)throw new Error("eventBus is not initialized");return this.uiElement}};export{a};
2
+ //# sourceMappingURL=chunk-6NWGAFI5.mjs.map
@@ -1,2 +1,2 @@
1
- import{a as n}from"./chunk-4TBVQD27.mjs";import{q as o}from"./chunk-5EUVZR4Y.mjs";var C=t=>o().setState(({config:e})=>{e.nativeAuthConfig=t},!1,{type:"setNativeAuthConfig",payload:{value:t}}),c=t=>o().setState(({config:e})=>{e.websocketStatus=t},!1,{type:"setWebsocketStatus",payload:{value:t}}),f=t=>o().setState(({config:e})=>{let a=t.walletConnectV2RelayAddress||n.walletConnectV2RelayAddress,l=t.walletConnectDeepLink||n.walletConnectDeepLink;e.walletConnectConfig={...t,walletConnectDeepLink:l,walletConnectV2RelayAddress:a}},!1,{type:"setWalletConnectConfig",payload:{value:t}});export{C as a,c as b,f as c};
2
- //# sourceMappingURL=chunk-SQUXVDTO.mjs.map
1
+ import{a as n}from"./chunk-4TBVQD27.mjs";import{q as o}from"./chunk-W3L462S3.mjs";var C=t=>o().setState(({config:e})=>{e.nativeAuthConfig=t},!1,{type:"setNativeAuthConfig",payload:{value:t}}),c=t=>o().setState(({config:e})=>{e.websocketStatus=t},!1,{type:"setWebsocketStatus",payload:{value:t}}),f=t=>o().setState(({config:e})=>{let a=t.walletConnectV2RelayAddress||n.walletConnectV2RelayAddress,l=t.walletConnectDeepLink||n.walletConnectDeepLink;e.walletConnectConfig={...t,walletConnectDeepLink:l,walletConnectV2RelayAddress:a}},!1,{type:"setWalletConnectConfig",payload:{value:t}});export{C as a,c as b,f as c};
2
+ //# sourceMappingURL=chunk-73NTM43N.mjs.map
@@ -0,0 +1,2 @@
1
+ import{a as St}from"./chunk-QG4NGBHS.mjs";import{a as dt}from"./chunk-ZD74AW3C.mjs";import{a as vt}from"./chunk-6UZHM5LW.mjs";import{a as w}from"./chunk-FL33O3CM.mjs";import{a as wt}from"./chunk-HWI2QO32.mjs";import{a as bt}from"./chunk-FCIYC4FM.mjs";import{a as It}from"./chunk-QOP5T5R4.mjs";import{a as Et}from"./chunk-CP36QS3V.mjs";import{a as Ct}from"./chunk-ABBDCZHP.mjs";import{a as Mt}from"./chunk-4ODPAHHA.mjs";import{a as Nt}from"./chunk-H5OF5YQF.mjs";import{b as x}from"./chunk-ZRN5QF4U.mjs";import{a as xt}from"./chunk-BQS32EX5.mjs";import{a as At}from"./chunk-NKZX4KJF.mjs";import{a as Pt}from"./chunk-MDVI45IV.mjs";import{a as Ot}from"./chunk-G26FRQE7.mjs";import{a as v}from"./chunk-D5UNIS2B.mjs";import{a as it}from"./chunk-GO33UPCG.mjs";import{a as ht}from"./chunk-AU76TGKZ.mjs";import{a as E}from"./chunk-BXQLGIN7.mjs";import{a as A,f as yt}from"./chunk-YGMSU5HA.mjs";import{b as L,d as gt}from"./chunk-ZVF3CROB.mjs";import{k as pt,l as lt,n as Tt}from"./chunk-E2GGD7D4.mjs";import{b as Lt}from"./chunk-QN2SFLFO.mjs";import{a as N}from"./chunk-HORSXVIV.mjs";import{a as Ft}from"./chunk-IECHAN5Y.mjs";import{a as nt}from"./chunk-O4PUBLYW.mjs";import{a as C}from"./chunk-QTKK6OSJ.mjs";import{a as et}from"./chunk-6ACLOUQ3.mjs";import{a as I}from"./chunk-G7GU37XI.mjs";import{a as st}from"./chunk-YSCND2MX.mjs";import{a as Rt}from"./chunk-NJN53MJV.mjs";import{a as rt,b as ct,g as ut,l as mt}from"./chunk-M6MN4RXG.mjs";import{b as at}from"./chunk-NGM3AVCY.mjs";import{a as tt,b as ot,q as u,s as g}from"./chunk-W3L462S3.mjs";import{c as V,d as Y,f as J}from"./chunk-UERJ6AKK.mjs";import{b as h}from"./chunk-VNLGNNIL.mjs";import{b as S}from"./chunk-6JM4DPOH.mjs";import{b as Q,c as X,f as Z}from"./chunk-NTEMINYA.mjs";import{b as kt}from"./chunk-UCRVRBTA.mjs";import{a as ft}from"./chunk-J5MXSFGF.mjs";import{c as $}from"./chunk-WPNLIPMJ.mjs";import{a as b}from"./chunk-LJX4MW7B.mjs";import K from"bignumber.js";import G from"lodash.isequal";var Bt=1e4,O=class{constructor(){this.timeoutIntervals=new Map;this.successfulToastLifetime=Bt;this.start=t=>{if(this.stop(t),this.successfulToastLifetime<=0)return;let o=setTimeout(()=>{F(t)},this.successfulToastLifetime);this.timeoutIntervals.set(t,o)};this.startWithCustomDuration=(t,o)=>{if(this.stop(t),o<=0)return;let e=setTimeout(()=>{P(t);let n=f[t];n?.()},o);this.timeoutIntervals.set(t,e)};this.stop=t=>{let o=this.timeoutIntervals.get(t);o&&(clearTimeout(o),this.timeoutIntervals.delete(t))}}init({successfulToastLifetime:t}){this.successfulToastLifetime=t??Bt}destroy(){this.timeoutIntervals.forEach(t=>clearTimeout(t)),this.timeoutIntervals.clear()}};import Dt from"lodash.isequal";var Yt="NOTIFICATIONS_FEED_STORE_SUBSCRIBE",M=class s extends ht{constructor(o){super({uiDataUpdateEvent:"OPEN_NOTIFICATIONS_FEED",uiTag:"mvx-notifications-feed"});this.initialData={pendingTransactions:[],historicTransactions:[]};this.store=o||u(),this.data={...this.initialData}}static getInstance(){return s.instance||(s.instance=new s),s.instance}isNotificationsFeedOpen(){return this.isOpen}async openNotificationsFeed(){d.getInstance().hideToasts(),await this.openUI(),await this.updateDataAndNotifications();let e=this.store.subscribe(async({toasts:n,transactions:i},{toasts:r,transactions:c})=>{(!Dt(r.transactionToasts,n.transactionToasts)||!Dt(c,i))&&await this.updateDataAndNotifications()});this.unsubscribeFunctions.set(Yt,[e]),this.eventBus?.publish("OPEN_NOTIFICATIONS_FEED"),await this.updateDataAndNotifications()}async handleCloseUI(){let o=d.getInstance();this.closeUI(),await o.showToasts()}async setupEventListeners(){this.eventBus&&(this.subscribeToEventBus("CLOSE_NOTIFICATIONS_FEED",this.handleCloseUI.bind(this)),this.subscribeToEventBus("CLEAR_NOTIFICATIONS_FEED_HISTORY",this.handleClearNotificationsFeedHistory.bind(this)))}async updateDataAndNotifications(){let{transactions:o}=this.store.getState(),{pendingTransactionToasts:e}=await w();this.data.pendingTransactions=e;let n=Object.keys(o).reduce((i,r)=>(["sent","pending"].includes(String(o[r].status))||(i[r]=o[r]),i),{});this.data.historicTransactions=await dt.getTransactionsHistory({transactionsSessions:n}),await this.updateNotificationsFeed()}handleClearNotificationsFeedHistory(){gt(),this.resetData(),this.updateNotificationsFeed()}async updateNotificationsFeed(){this.eventBus&&(this.eventBus.publish("PENDING_TRANSACTIONS_UPDATE",this.data.pendingTransactions),this.eventBus.publish("TRANSACTIONS_HISTORY_UPDATE",this.data.historicTransactions))}};var k=class{constructor(t){this.toastsElement=null;this.eventBus=null;this.isCreatingElement=!1;this.eventBusUnsubscribeFunctions=[];this.onCloseToast=t.onCloseToast,this.store=t.store||u(),this.notificationsFeedManager=t.notificationsFeedManager||M.getInstance()}async init(){await this.subscribeToEventBusNotifications()}showToasts(){this.eventBus?.publish("SHOW_TOAST_LIST",null)}hideToasts(){this.eventBus?.publish("HIDE_TOAST_LIST",null)}async publishTransactionToasts(t){if(this.notificationsFeedManager.isNotificationsFeedOpen()&&this.eventBus){this.eventBus.publish("TRANSACTION_TOAST_DATA_UPDATE",t),this.hideToasts();return}if(!this.eventBus){let o=await this.createToastListElement();if(!o)return;this.eventBus=await o.getEventBus()}this.eventBus?.publish("TRANSACTION_TOAST_DATA_UPDATE",t)}async publishCustomToasts(t){this.eventBus?.publish("CUSTOM_TOAST_DATA_UPDATE",t)}handleOpenNotificationsFeed(){this.notificationsFeedManager.openNotificationsFeed()}destroy(){this.eventBusUnsubscribeFunctions.forEach(t=>t()),this.eventBusUnsubscribeFunctions=[],this.notificationsFeedManager?.destroy()}async createToastListElement(){return this.toastsElement?this.toastsElement:(this.isCreatingElement||(this.isCreatingElement=!0,this.toastsElement=await ft.create({name:"mvx-toast-list"}),this.isCreatingElement=!1),this.toastsElement)}async subscribeToEventBusNotifications(){let t=await this.createToastListElement();if(t){if(this.eventBus=await t.getEventBus(),!this.eventBus)throw new Error("eventBus is not initialized");this.eventBus.subscribe("CLOSE_TOAST",this.onCloseToast),this.eventBusUnsubscribeFunctions.push(()=>{this.eventBus?.unsubscribe("CLOSE_TOAST",this.onCloseToast)}),this.eventBus.subscribe("OPEN_NOTIFICATIONS_FEED",this.handleOpenNotificationsFeed.bind(this)),this.eventBusUnsubscribeFunctions.push(()=>{this.eventBus?.unsubscribe("OPEN_NOTIFICATIONS_FEED",this.handleOpenNotificationsFeed.bind(this))})}}};var d=class s{constructor(t){this.transactionToasts=[];this.customToasts=[];this.unsubscribeFromStore=()=>null;this.uiCoordinator=null;this.destroy(),this.store=t?.store||u(),this.lifetimeManager=t?.lifetimeManager??new O,this.uiCoordinator=t?.uiCoordinator??new k({onCloseToast:this.closeToast.bind(this)})}async init({successfulToastLifetime:t=5e3}={}){this.successfulToastLifetime=t,this.lifetimeManager.init({successfulToastLifetime:t}),await this.updateTransactionToastsList(),await this.updateCustomToastList(),await this.uiCoordinator?.init(),this.unsubscribeFromStore=this.store.subscribe(async({toasts:o,transactions:e},{toasts:n,transactions:i})=>{let r=!G(n.transactionToasts,o.transactionToasts),c=!G(i,e);(r||c)&&await this.updateTransactionToastsList(),!G(n.customToasts,o.customToasts)&&await this.updateCustomToastList()})}static getInstance(){return s.instance||(s.instance=new s),s.instance}handleCompletedTransaction(t){let{transactions:o}=this.store.getState(),e=o[t];if(!e)return!1;let{status:n}=e,i=Tt(n),r=lt(n),c=pt(n),a=r||c||i;return a?(this.successfulToastLifetime&&this.lifetimeManager.start(t),a):(this.lifetimeManager.stop(t),a)}async createTransactionToast(t,o){let e=_t({toastId:t,totalDuration:o});return this.handleCompletedTransaction(t),await this.updateTransactionToastsList(),e}async createCustomToast(t){let o=B(t);return await this.updateCustomToastList(),o}async updateTransactionToastsList(){let t=this.store.getState(),{toasts:o}=t,{pendingTransactionToasts:e,completedTransactionToasts:n}=await w({store:t});this.transactionToasts=[...e,...n];for(let i of o.transactionToasts)this.handleCompletedTransaction(i.toastId);await this.publishTransactionToasts()}async updateCustomToastList(){let{toasts:t}=this.store.getState();this.customToasts=[];for(let o of t.customToasts){let n="message"in o?{...o}:{...o,instantiateToastElement:R[o.toastId]};this.customToasts.push(n),o.duration&&this.lifetimeManager.startWithCustomDuration(o.toastId,o.duration)}await this.uiCoordinator?.publishCustomToasts(this.customToasts)}handleTransactionToastClose(t){return this.handleCompletedTransaction(t)?(F(t),!0):!1}async showToasts(){this.uiCoordinator?.showToasts(),await this.updateCustomToastList(),await this.updateTransactionToastsList()}hideToasts(){this.uiCoordinator?.hideToasts()}closeToast(t){if(this.customToasts.find(e=>e.toastId===t)){this.lifetimeManager.stop(t);let e=f[t];return e?.(),P(t),!0}return this.handleTransactionToastClose(t)}async publishTransactionToasts(){await this.uiCoordinator?.publishTransactionToasts(this.transactionToasts)}destroy(){this.unsubscribeFromStore(),this.lifetimeManager?.destroy(),this.uiCoordinator?.destroy(),Ut()}};var D=class s{constructor(){this.store=u();this.warningLogoutTimeoutRef=null;this.actualLogoutTimeoutRef=null;this.plannedLogoutTimeoutRef=null;this.plannedLogoutKey=null;this.init=async()=>{if(!this.shouldStart())return;let t=this.store.getState(),o=h(t),{isExpired:e}=C(o?.nativeAuthToken);e?y().logout():this.addPlannedLogout()};this.stop=()=>{clearTimeout(this.warningLogoutTimeoutRef??0),clearTimeout(this.plannedLogoutTimeoutRef??0),clearTimeout(this.actualLogoutTimeoutRef??0),this.warningLogoutTimeoutRef=null,this.plannedLogoutTimeoutRef=null,this.actualLogoutTimeoutRef=null,this.plannedLogoutKey=null};this.shouldStart=()=>{let t=this.store.getState(),o=h(t),e=J(t);return!!(o?.nativeAuthToken&&e)};this.addPlannedLogout=()=>{let t=y(),o=V(this.store.getState()),e=t.getType()===b.webview;if(!o||e)return;this.addLogoutWarning();let n=h(this.store.getState()),{secondsUntilExpires:i,expiresAt:r}=C(n?.nativeAuthToken),c=new K(String(i)),a=`${o}_${r}`,m=this.plannedLogoutKey===a;if(!(i&&c.isGreaterThan(0))||m)return;this.plannedLogoutKey=a,clearTimeout(this.plannedLogoutTimeoutRef??0);let l=c.times(1e3);this.actualLogoutTimeoutRef=setTimeout(()=>{d.getInstance().createCustomToast({toastId:"native-auth-logout",iconClassName:"warning",title:"Logging out",icon:"close",message:"Your session has expired!"}),this.actualLogoutTimeoutRef=null},l.toNumber()-3e3),this.plannedLogoutTimeoutRef=setTimeout(()=>{t.logout(),this.plannedLogoutTimeoutRef=null,this.plannedLogoutKey=null},l.toNumber())};this.addLogoutWarning=()=>{if(this.warningLogoutTimeoutRef)return;let t=S(this.store.getState()),o=h(this.store.getState()),{secondsUntilExpires:e}=C(o?.nativeAuthToken),n=new K(String(e)),i=n.times(1e3);if(!e||n.isLessThanOrEqualTo(0)||!t?.tokenExpirationToastWarningSeconds)return;let c=new K(t?.tokenExpirationToastWarningSeconds??0).times(1e3),a=n.times(1e3).minus(c),m=vt(i.toNumber()),p=a.isLessThanOrEqualTo(0)?0:a.toNumber();clearTimeout(this.warningLogoutTimeoutRef??0),this.warningLogoutTimeoutRef=setTimeout(()=>{d.getInstance().createCustomToast({toastId:"native-auth-expired",iconClassName:"warning",title:"Session Expiration Warning",icon:"hourglass",message:`Your session will expire in ${m}!`}),this.warningLogoutTimeoutRef=null},p)}}static getInstance(){return s.instance||(s.instance=new s),s.instance}};async function Wt({sessionId:s,transactionBatch:t,isSequential:o}){try{if(t==null)return;let e=bt(),n=Ct(t),i=await St(n);for(let T of i)await It({serverTransaction:T,sessionId:s,isSequential:o});if(!i.every(T=>T.status!=="pending"))return;e&&await U();let{transactions:c}=g(),a=c?.[s];if(a.transactions.every(T=>T.status==="success"))return L({sessionId:s,status:"success"});if(a.transactions.some(T=>T.status==="fail"))return L({sessionId:s,status:"fail"});if(a.transactions.every(T=>T.status==="not executed"))return L({sessionId:s,status:"invalid"})}catch(e){console.error(e)}}async function Ht(){let s=at(g()),t=Object.entries(s);t.length!==0&&await Promise.all(t.map(([o,{transactions:e}])=>Wt({sessionId:o,transactionBatch:e})))}async function _(){let s=u(),t=Et(),o=null,e=Y(s.getState())?.timestamp??null,n=async()=>{try{await Ht()}catch(p){console.error("[trackTransactions] Error checking transaction status:",p)}},i=()=>{o||(o=setInterval(n,t))},r=()=>{o&&(clearInterval(o),o=null)},c=()=>{r();let p=s.subscribe(({account:{websocketEvent:l}})=>{l?.message&&l.timestamp!=null&&e!==l.timestamp&&(e=l.timestamp,n())});$.set("websocketEventReceived",p)};n();let a=()=>{r()},m=s.subscribe(({account:{address:p},config:{websocketStatus:l}},T)=>{if(T.config.websocketStatus!==l)switch(l){case"completed":c();break;case"pending":i();break;default:p?i():a();break}});return $.set("websocketStatusChanged",m),{stopTransactionsTracking:a}}async function j({address:s,provider:t,apiAddress:o}){let e=await I({address:s,baseURL:o});if(!e)throw new Error("Account not found");Lt({address:s,providerType:t.getType()});let n={...e,username:N(e.username),nonce:E(e)};A(n),await x(s),_(),e.shard!=null&&await wt({shard:Number(e.shard),apiAddress:o})}async function Qt(s){let{network:{apiAddress:t}}=v();await s.login();let o=await s.getAddress();if(!o)throw new Error("Address not found");return await j({address:o,provider:s,apiAddress:t}),{address:o}}async function Xt({provider:s,nativeAuthConfig:t,token:o}){let{network:{apiAddress:e}}=v(),n=nt(t),i=o;i||(i=await n.initialize({noCache:!0}));let r=await s.login({token:i}),{address:c,signature:a,...m}=r;if(!c)return console.warn("Login cancelled."),null;if(!a)return console.error("Failed to sign login token"),null;let p=et(m?.accessToken),l=await xt({loginData:r,nativeAuthConfig:t,loginToken:i}),T=p?m.accessToken:n.getToken({address:c,token:l,signature:a});ot({loginToken:i,signature:a,nativeAuthToken:T});let H=await At({loginToken:i,extraInfoData:{multisig:m?.multisig,impersonate:m?.impersonate},address:c});return await j({address:H,provider:s,apiAddress:e}),{address:H,signature:a}}async function $t(s,t){let o=S(g());if(o)return await Xt({provider:s,nativeAuthConfig:o,token:t?.token});let{address:e}=await Qt(s);return await x(e),_(),{address:e,signature:""}}var z={error:{title:"Error when signing".toString(),iconClassName:"danger",toastId:`${ct}-${Date.now()}`},warning:{title:"Signing canceled".toString(),iconClassName:"warning",toastId:`${rt}-${Date.now()}`}},Zt={extensionResponse:"Unable to sign transactions","Transaction canceled":"Transaction canceled","cancelled by user":"Transaction signing cancelled by user","denied by the user":"Transaction signing denied by the user"},to=s=>{for(let[t,o]of Object.entries(Zt))if(s.includes(t))return o;return"Error when signing"};function q(s,t="error"){let o=s?.message,e=to(o),i=e!=="Error when signing"?"warning":t,r=Object.keys(z).includes(i)?z[i]:z.error,{toastId:c,iconClassName:a,title:m}=r;return B({toastId:c,duration:1e4,icon:"close",iconClassName:a,message:e,title:m}),e}async function Gt({provider:s,transactions:t,options:o={}}){await U();let{isGuarded:e,activeGuardianAddress:n,nonce:i}=Ft(),r=s.getType()===b.ledger,c=Mt({latestNonce:i,transactions:t}),a=n&&e&&!o.skipGuardian?c?.map(p=>(p.version=Q.withTxOptions().valueOf(),p.options=Z.withOptions({guarded:!0,...r?{hashSign:!0}:{}}).valueOf(),p.guardian=X.newFromBech32(n),p)):c,m=await s.signTransactions(a)??[];return yt(i+m.length),m}var W=class{constructor(t){this._isLoggingOut=!1;this.provider=t}init(){return this.provider.init()}async login(t){let o=await $t(this.provider,t);return tt(this.provider.getType()),Kt(this),D.getInstance().init(),o}isInitialized(){return this.provider.isInitialized()}async logout(t={shouldBroadcastLogoutAcrossTabs:!0}){if(this._isLoggingOut)return console.warn("Logout already in progress"),!1;this._isLoggingOut=!0;let o=await Nt({provider:this.provider,options:t});return this._isLoggingOut=!1,o}getType(){return this.provider.getType()}getProvider(){return this.provider}async signTransactions(t,o){try{return await Gt({provider:this.provider,transactions:t,options:o})}catch(e){let n=q(e);throw new Error(n)}}async signMessage(t,o){try{return await Ot({provider:this.provider,message:t,options:o})}catch(e){let n=q(e,"warning");throw new Error(n)}}async verifyMessage(t){return await Pt(t)}cancelLogin(){this.provider.cancelLogin?.()}};var jt=null;function Kt(s){jt=s}function y(){return jt||new W(kt)}var oo=async()=>{try{let s=it(),{network:t}=v();try{let o=await I({address:s,baseURL:t.apiAddress});if(o!=null){let e={...o,username:N(o.username),nonce:E(o)};return A(e),e}}catch(o){console.error("Failed getting account ",o)}}catch(s){console.error("Failed getting address ",s)}return null};async function U(){let s=y();if(s==null)throw"Provider not initialized";try{if(!s.init)throw"Current provider does not have init() function";return await s.init()?await oo():void 0}catch(t){console.error("Failed initializing provider ",t)}}var R={},f={},so=(s,t)=>{u().setState(({toasts:o})=>{let e=o.customToasts.length>0?Math.max(...o.customToasts.map(a=>parseInt(a.toastId.split("-").pop()??"0"))):0,n=t??`custom-toast-${e+1}`,i=o.customToasts.findIndex(a=>a.toastId===n),r={...s,toastId:n};if(i!==-1){o.customToasts[i]=r;return}o.customToasts.push({...r,toastId:n})},!1,{type:"addCustomToast",payload:{value:{customToast:s,currentToastId:t}}})},P=s=>{u().setState(({toasts:t})=>{t.customToasts=t.customToasts.filter(o=>o.toastId!==s)},!1,{type:"removeCustomToast",payload:{value:s}})},Ut=()=>{u().setState(({toasts:s})=>{s.customToasts=[]},!1,{type:"removeAllCustomToasts",payload:{value:null}})},an=()=>{u().setState(({toasts:s})=>{s.transactionToasts=[]})},_t=({toastId:s,totalDuration:t})=>{let o="";return u().setState(({toasts:e})=>{let n=e.transactionToasts.length>0?Math.max(...e.transactionToasts.map(i=>parseInt(i.toastId.split("-").pop()??"0"))):0;o=s??`transaction-toast-${n+1}`,e.transactionToasts.push({startTime:st(),endTime:Rt(t),toastId:o})},!1,"addTransactionToast"),o},F=s=>{u().setState(({toasts:t})=>{t.transactionToasts=t.transactionToasts.filter(o=>o.toastId!==s)},!1,"removeTransactionToast"),delete f[s],delete R[s]},B=s=>{let{toasts:t}=u().getState(),o=t.customToasts.length>0?Math.max(...t.customToasts.map(n=>parseInt(n.toastId.split("-").pop()??"0"))):0,e=s.toastId||`custom-toast-${o+1}`;return s.onClose&&(f[e]=s.onClose),s.instantiateToastElement?(R[e]=s.instantiateToastElement,u().setState(({toasts:n})=>{let i=n.customToasts.findIndex(a=>a.toastId===e),r={...s,instantiateToastElement:null,toastId:e};i!==-1?n.customToasts[i]=r:n.customToasts.push(r)},!1,"createCustomToast"),e):(so(s,e),e)};export{R as a,f as b,so as c,P as d,Ut as e,an as f,_t as g,F as h,B as i,O as j,M as k,k as l,d as m,D as n,Wt as o,Ht as p,_ as q,j as r,$t as s,q as t,Gt as u,W as v,Kt as w,y as x,U as y};
2
+ //# sourceMappingURL=chunk-7CT7RHSK.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/managers/LogoutManager/LogoutManager.ts", "../../src/managers/ToastManager/ToastManager.ts", "../../src/managers/ToastManager/helpers/LifetimeManager.ts", "../../src/managers/NotificationsFeedManager/NotificationsFeedManager.ts", "../../src/managers/ToastManager/ToastUICoordinator.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/login.ts", "../../src/providers/DappProvider/helpers/signErrors/handleSignError.ts", "../../src/providers/DappProvider/helpers/signTransactions/signTransactionsWithProvider.ts", "../../src/providers/DappProvider/DappProvider.ts", "../../src/providers/helpers/accountProvider.ts", "../../src/utils/account/refreshAccount.ts", "../../src/store/actions/toasts/toastsActions.ts"],
4
- "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';\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 isEqual from 'lodash.isequal';\nimport { DEFAULT_TOAST_LIFETIME } from 'constants/transactions.constants';\nimport {\n customToastCloseHandlersDictionary,\n customToastComponentDictionary,\n removeAllCustomToasts,\n removeCustomToast,\n removeTransactionToast,\n addTransactionToast,\n createCustomToast\n} from 'store/actions/toasts/toastsActions';\nimport {\n getIsTransactionFailed,\n getIsTransactionSuccessful,\n getIsTransactionTimedOut\n} from 'store/actions/transactions/transactionStateByStatus';\n\nimport { CustomToastType } from 'store/slices/toast/toastSlice.types';\nimport { getStore } from 'store/store';\nimport { createToastsFromTransactions } from './helpers/createToastsFromTransactions';\nimport { LifetimeManager } from './helpers/LifetimeManager';\nimport { ToastUICoordinator } from './ToastUICoordinator';\nimport { ITransactionToast } from './types';\n\ninterface IToastManager {\n successfulToastLifetime?: number;\n}\n\nexport class ToastManager {\n private readonly lifetimeManager: LifetimeManager;\n private store: ReturnType<typeof getStore>;\n private static instance: ToastManager;\n private transactionToasts: ITransactionToast[] = [];\n private customToasts: CustomToastType[] = [];\n private successfulToastLifetime?: number;\n private unsubscribeFromStore: () => void = () => null;\n private uiCoordinator: ToastUICoordinator | null = null;\n\n constructor(props?: {\n store?: ReturnType<typeof getStore>;\n lifetimeManager?: LifetimeManager;\n uiCoordinator?: ToastUICoordinator;\n }) {\n this.destroy();\n this.store = props?.store || getStore();\n this.lifetimeManager = props?.lifetimeManager ?? new LifetimeManager();\n this.uiCoordinator =\n props?.uiCoordinator ??\n new ToastUICoordinator({\n onCloseToast: this.closeToast.bind(this)\n });\n }\n\n public async init({\n successfulToastLifetime = DEFAULT_TOAST_LIFETIME\n }: IToastManager = {}) {\n this.successfulToastLifetime = successfulToastLifetime;\n\n this.lifetimeManager.init({ successfulToastLifetime });\n\n await this.updateTransactionToastsList();\n await this.updateCustomToastList();\n\n await this.uiCoordinator?.init();\n\n this.unsubscribeFromStore = this.store.subscribe(\n async (\n { toasts, transactions },\n { toasts: prevToasts, transactions: prevTransactions }\n ) => {\n const newToastsWereCreated = !isEqual(\n prevToasts.transactionToasts,\n toasts.transactionToasts\n );\n const checkBatchHasNewData = !isEqual(prevTransactions, transactions);\n\n if (newToastsWereCreated || checkBatchHasNewData) {\n await this.updateTransactionToastsList();\n }\n\n const newCustomToastsWereCreated = !isEqual(\n prevToasts.customToasts,\n toasts.customToasts\n );\n\n if (newCustomToastsWereCreated) {\n await this.updateCustomToastList();\n }\n }\n );\n }\n\n public static getInstance(): ToastManager {\n if (!ToastManager.instance) {\n ToastManager.instance = new ToastManager();\n }\n return ToastManager.instance;\n }\n\n private handleCompletedTransaction(toastId: string): boolean {\n const { transactions } = this.store.getState();\n const transaction = transactions[toastId];\n\n if (!transaction) {\n return false;\n }\n\n const { status } = transaction;\n const isTimedOut = getIsTransactionTimedOut(status);\n const isFailed = getIsTransactionFailed(status);\n const isSuccessful = getIsTransactionSuccessful(status);\n const isCompleted = isFailed || isSuccessful || isTimedOut;\n\n if (isCompleted) {\n if (this.successfulToastLifetime) {\n this.lifetimeManager.start(toastId);\n }\n return isCompleted;\n }\n\n this.lifetimeManager.stop(toastId);\n return isCompleted;\n }\n\n public async createTransactionToast(\n toastId: string,\n totalDuration: number\n ): Promise<string> {\n const newToastId = addTransactionToast({\n toastId,\n totalDuration\n });\n\n this.handleCompletedTransaction(toastId);\n await this.updateTransactionToastsList();\n return newToastId;\n }\n\n public async createCustomToast(toast: CustomToastType): Promise<string> {\n const toastId = createCustomToast(toast);\n await this.updateCustomToastList();\n return toastId;\n }\n\n private async updateTransactionToastsList() {\n const store = this.store.getState();\n const { toasts: toastList } = store;\n\n const { pendingTransactionToasts, completedTransactionToasts } =\n await createToastsFromTransactions({\n store\n });\n\n this.transactionToasts = [\n ...pendingTransactionToasts,\n ...completedTransactionToasts\n ];\n\n for (const toast of toastList.transactionToasts) {\n this.handleCompletedTransaction(toast.toastId);\n }\n\n await this.publishTransactionToasts();\n }\n\n private async updateCustomToastList() {\n const { toasts: toastList } = this.store.getState();\n this.customToasts = [];\n\n for (const toast of toastList.customToasts) {\n const isSimpleToast = 'message' in toast;\n\n const newToast: CustomToastType = isSimpleToast\n ? { ...toast }\n : {\n ...toast,\n instantiateToastElement:\n customToastComponentDictionary[toast.toastId]\n };\n this.customToasts.push(newToast);\n\n if (toast.duration) {\n this.lifetimeManager.startWithCustomDuration(\n toast.toastId,\n toast.duration\n );\n }\n }\n await this.uiCoordinator?.publishCustomToasts(this.customToasts);\n }\n\n private handleTransactionToastClose(toastId: string): boolean {\n const isCompleted = this.handleCompletedTransaction(toastId);\n\n if (isCompleted) {\n removeTransactionToast(toastId);\n return true;\n }\n\n return false;\n }\n\n public async showToasts() {\n this.uiCoordinator?.showToasts();\n await this.updateCustomToastList();\n await this.updateTransactionToastsList();\n }\n\n public hideToasts() {\n this.uiCoordinator?.hideToasts();\n }\n\n public closeToast(toastId: string): boolean {\n const customToast = this.customToasts.find(\n (toast) => toast.toastId === toastId\n );\n\n if (customToast) {\n this.lifetimeManager.stop(toastId);\n const handleClose = customToastCloseHandlersDictionary[toastId];\n handleClose?.();\n removeCustomToast(toastId);\n return true;\n }\n\n return this.handleTransactionToastClose(toastId);\n }\n\n private async publishTransactionToasts() {\n await this.uiCoordinator?.publishTransactionToasts(this.transactionToasts);\n }\n\n public destroy() {\n this.unsubscribeFromStore();\n this.lifetimeManager?.destroy();\n this.uiCoordinator?.destroy();\n removeAllCustomToasts();\n }\n}\n", "import {\n customToastCloseHandlersDictionary,\n removeCustomToast,\n removeTransactionToast\n} from 'store/actions/toasts/toastsActions';\n\ninterface IToastProgressManagerParams {\n successfulToastLifetime?: number;\n}\n\nconst DEFAULT_SUCCESSFUL_TOAST_LIFETIME = 10_000;\n\nexport class LifetimeManager {\n private timeoutIntervals: Map<string, ReturnType<typeof setTimeout>> =\n new Map();\n private successfulToastLifetime: number = DEFAULT_SUCCESSFUL_TOAST_LIFETIME;\n\n constructor() {}\n\n public init({ successfulToastLifetime }: IToastProgressManagerParams) {\n this.successfulToastLifetime =\n successfulToastLifetime ?? DEFAULT_SUCCESSFUL_TOAST_LIFETIME;\n }\n\n public start = (toastId: string) => {\n this.stop(toastId);\n\n if (this.successfulToastLifetime <= 0) {\n return;\n }\n\n const timeout = setTimeout(() => {\n removeTransactionToast(toastId);\n }, this.successfulToastLifetime);\n\n this.timeoutIntervals.set(toastId, timeout);\n };\n\n public startWithCustomDuration = (toastId: string, duration: number) => {\n this.stop(toastId);\n\n if (duration <= 0) {\n return;\n }\n\n const timeout = setTimeout(() => {\n removeCustomToast(toastId);\n const handleClose = customToastCloseHandlersDictionary[toastId];\n handleClose?.();\n }, duration);\n\n this.timeoutIntervals.set(toastId, timeout);\n };\n\n public stop = (toastId: string) => {\n const timeout = this.timeoutIntervals.get(toastId);\n if (timeout) {\n clearTimeout(timeout);\n this.timeoutIntervals.delete(toastId);\n }\n };\n\n public destroy() {\n this.timeoutIntervals.forEach((interval) => clearTimeout(interval));\n this.timeoutIntervals.clear();\n }\n}\n", "import isEqual from 'lodash.isequal';\nimport { UITagsEnum } from 'constants/UITags.enum';\nimport { TransactionsHistoryController } from 'controllers/TransactionsHistoryController';\nimport { ITransactionListItem, MvxNotificationsFeed } from 'lib/sdkDappUi';\nimport { clearCompletedTransactions } from 'store/actions/transactions/transactionsActions';\nimport { TransactionsSliceType } from 'store/slices/transactions/transactionsSlice.types';\nimport { getStore } from 'store/store';\nimport { TransactionServerStatusesEnum } from 'types/enums.types';\nimport { TransactionBatchStatusesEnum } from 'types/enums.types';\nimport { NotificationsFeedEventsEnum } from './types';\nimport { SidePanelBaseManager } from '../internal/SidePanelBaseManager/SidePanelBaseManager';\nimport { ToastManager } from '../ToastManager';\nimport { createToastsFromTransactions } from '../ToastManager/helpers/createToastsFromTransactions';\nimport { ITransactionToast } from '../ToastManager/types';\n\ninterface INotificationsFeedManagerData {\n pendingTransactions: ITransactionToast[];\n historicTransactions: ITransactionListItem[];\n}\n\nconst NOTIFICATIONS_FEED_STORE_SUBSCRIBE = 'NOTIFICATIONS_FEED_STORE_SUBSCRIBE';\n\nexport class NotificationsFeedManager extends SidePanelBaseManager<\n MvxNotificationsFeed,\n INotificationsFeedManagerData,\n NotificationsFeedEventsEnum | typeof NOTIFICATIONS_FEED_STORE_SUBSCRIBE\n> {\n private static instance: NotificationsFeedManager;\n private readonly store: ReturnType<typeof getStore>;\n\n protected initialData: INotificationsFeedManagerData = {\n pendingTransactions: [],\n historicTransactions: []\n };\n\n public static getInstance(): NotificationsFeedManager {\n if (!NotificationsFeedManager.instance) {\n NotificationsFeedManager.instance = new NotificationsFeedManager();\n }\n return NotificationsFeedManager.instance;\n }\n\n constructor(store?: ReturnType<typeof getStore>) {\n super({\n uiDataUpdateEvent: NotificationsFeedEventsEnum.OPEN,\n uiTag: UITagsEnum.NOTIFICATIONS_FEED\n });\n this.store = store || getStore();\n this.data = { ...this.initialData };\n }\n\n public isNotificationsFeedOpen(): boolean {\n return this.isOpen;\n }\n\n /**\n * Open the notifications feed and toggle off the toast manager.\n */\n public async openNotificationsFeed(): Promise<void> {\n const toastManager = ToastManager.getInstance();\n toastManager.hideToasts();\n await this.openUI();\n await this.updateDataAndNotifications();\n\n const storeToastsUnsubscribe = this.store.subscribe(\n async (\n { toasts, transactions },\n { toasts: prevToasts, transactions: prevTransactions }\n ) => {\n if (\n !isEqual(prevToasts.transactionToasts, toasts.transactionToasts) ||\n !isEqual(prevTransactions, transactions)\n ) {\n await this.updateDataAndNotifications();\n }\n }\n );\n this.unsubscribeFunctions.set(NOTIFICATIONS_FEED_STORE_SUBSCRIBE, [\n storeToastsUnsubscribe\n ]);\n\n this.eventBus?.publish(NotificationsFeedEventsEnum.OPEN);\n await this.updateDataAndNotifications();\n }\n\n /**\n * Close the notifications feed and toggle on the toast manager.\n */\n protected async handleCloseUI() {\n const toastManager = ToastManager.getInstance();\n this.closeUI();\n await toastManager.showToasts();\n }\n\n protected async setupEventListeners() {\n if (!this.eventBus) {\n return;\n }\n\n this.subscribeToEventBus(\n NotificationsFeedEventsEnum.CLOSE,\n this.handleCloseUI.bind(this)\n );\n\n this.subscribeToEventBus(\n NotificationsFeedEventsEnum.CLEAR,\n this.handleClearNotificationsFeedHistory.bind(this)\n );\n }\n\n protected async updateDataAndNotifications() {\n const { transactions } = this.store.getState();\n\n const { pendingTransactionToasts } = await createToastsFromTransactions();\n\n this.data.pendingTransactions = pendingTransactionToasts;\n\n const transactionsSessions = Object.keys(transactions).reduce(\n (acc, key) => {\n const isPendingStatus = [\n TransactionBatchStatusesEnum.sent,\n `${TransactionServerStatusesEnum.pending}`\n ].includes(String(transactions[key].status));\n\n if (!isPendingStatus) {\n acc[key] = transactions[key];\n }\n return acc;\n },\n {} as TransactionsSliceType\n );\n\n this.data.historicTransactions =\n await TransactionsHistoryController.getTransactionsHistory({\n transactionsSessions\n });\n\n await this.updateNotificationsFeed();\n }\n\n private handleClearNotificationsFeedHistory() {\n clearCompletedTransactions();\n this.resetData();\n this.updateNotificationsFeed();\n }\n\n private async updateNotificationsFeed() {\n if (!this.eventBus) {\n return;\n }\n\n this.eventBus.publish(\n NotificationsFeedEventsEnum.PENDING_TRANSACTIONS_UPDATE,\n this.data.pendingTransactions\n );\n\n this.eventBus.publish(\n NotificationsFeedEventsEnum.TRANSACTIONS_HISTORY_UPDATE,\n this.data.historicTransactions\n );\n }\n}\n", "import { UITagsEnum } from 'constants/UITags.enum';\nimport { MvxToastList } from 'lib/sdkDappUi';\nimport { NotificationsFeedManager } from 'managers/NotificationsFeedManager/NotificationsFeedManager';\nimport type { CustomToastType } from 'store/slices/toast/toastSlice.types';\nimport { getStore } from 'store/store';\nimport { IEventBus } from 'types/manager.types';\nimport { ProviderErrorsEnum } from 'types/provider.types';\nimport { ComponentFactory } from 'utils/ComponentFactory';\nimport { ToastEventsEnum } from './types';\nimport type { ITransactionToast } from './types';\n\ntype OnCloseToastType = (toastId: string) => boolean;\ntype StoreObjectType = ReturnType<typeof getStore>;\n\nexport class ToastUICoordinator {\n private toastsElement: MvxToastList | null = null;\n private eventBus: IEventBus<\n ITransactionToast[] | CustomToastType[] | null\n > | null = null;\n private isCreatingElement = false;\n private eventBusUnsubscribeFunctions: (() => void)[] = [];\n private readonly notificationsFeedManager: NotificationsFeedManager;\n private readonly store: StoreObjectType;\n private readonly onCloseToast: OnCloseToastType;\n\n constructor(props: {\n onCloseToast: OnCloseToastType;\n store?: StoreObjectType;\n notificationsFeedManager?: NotificationsFeedManager;\n }) {\n this.onCloseToast = props.onCloseToast;\n this.store = props.store || getStore();\n this.notificationsFeedManager =\n props.notificationsFeedManager || NotificationsFeedManager.getInstance();\n }\n\n public async init() {\n await this.subscribeToEventBusNotifications();\n }\n\n public showToasts() {\n this.eventBus?.publish(ToastEventsEnum.SHOW, null);\n }\n\n public hideToasts() {\n this.eventBus?.publish(ToastEventsEnum.HIDE, null);\n }\n\n public async publishTransactionToasts(toasts: ITransactionToast[]) {\n if (\n this.notificationsFeedManager.isNotificationsFeedOpen() &&\n this.eventBus\n ) {\n this.eventBus.publish(\n ToastEventsEnum.TRANSACTION_TOAST_DATA_UPDATE,\n toasts\n );\n this.hideToasts();\n return;\n }\n\n if (!this.eventBus) {\n const toastsElement = await this.createToastListElement();\n if (!toastsElement) {\n return;\n }\n this.eventBus = await toastsElement.getEventBus();\n }\n\n this.eventBus?.publish(\n ToastEventsEnum.TRANSACTION_TOAST_DATA_UPDATE,\n toasts\n );\n }\n\n public async publishCustomToasts(customToasts: CustomToastType[]) {\n this.eventBus?.publish(\n ToastEventsEnum.CUSTOM_TOAST_DATA_UPDATE,\n customToasts\n );\n }\n\n private handleOpenNotificationsFeed() {\n this.notificationsFeedManager.openNotificationsFeed();\n }\n\n public destroy() {\n this.eventBusUnsubscribeFunctions.forEach((unsubscribe) => unsubscribe());\n this.eventBusUnsubscribeFunctions = [];\n this.notificationsFeedManager?.destroy();\n }\n\n private async createToastListElement(): Promise<MvxToastList | null> {\n if (this.toastsElement) {\n return this.toastsElement;\n }\n\n if (!this.isCreatingElement) {\n this.isCreatingElement = true;\n this.toastsElement = await ComponentFactory.create<MvxToastList>({\n name: UITagsEnum.TOAST_LIST\n });\n this.isCreatingElement = false;\n }\n\n return this.toastsElement;\n }\n\n private async subscribeToEventBusNotifications() {\n const toastsElement = await this.createToastListElement();\n\n if (!toastsElement) {\n return;\n }\n\n this.eventBus = await toastsElement.getEventBus();\n if (!this.eventBus) {\n throw new Error(ProviderErrorsEnum.eventBusError);\n }\n\n this.eventBus.subscribe(ToastEventsEnum.CLOSE, this.onCloseToast);\n\n this.eventBusUnsubscribeFunctions.push(() => {\n this.eventBus?.unsubscribe(ToastEventsEnum.CLOSE, this.onCloseToast);\n });\n\n this.eventBus.subscribe(\n ToastEventsEnum.OPEN_NOTIFICATIONS_FEED,\n this.handleOpenNotificationsFeed.bind(this)\n );\n\n this.eventBusUnsubscribeFunctions.push(() => {\n this.eventBus?.unsubscribe(\n ToastEventsEnum.OPEN_NOTIFICATIONS_FEED,\n this.handleOpenNotificationsFeed.bind(this)\n );\n });\n }\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';\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/gastStationMetadata/setGasStationMetadata';\nimport { registerWebsocketListener } from 'methods/initApp/websocket/registerWebsocket';\nimport { trackTransactions } from 'methods/trackTransactions/trackTransactions';\nimport { IProvider } from 'providers/types/providerFactory.types';\nimport { loginAction } from 'store/actions';\nimport { setAccount } from 'store/actions/account';\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 { registerWebsocketListener } from 'methods/initApp/websocket/registerWebsocket';\nimport { getNetworkConfig } from 'methods/network/getNetworkConfig';\nimport { trackTransactions } from 'methods/trackTransactions/trackTransactions';\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 { nativeAuthConfigSelector } from 'store/selectors';\nimport { getState } from 'store/store';\nimport { accountLogin } from './helpers/accountLogin';\nimport { extractAddressFromToken } from './helpers/extractAddressFromToken';\n\nasync 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\nasync 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 { address, signature, ...loginResult } = await provider.login({\n token: loginToken\n });\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 nativeAuthToken = decodedToken\n ? loginResult.accessToken\n : nativeAuthClient.getToken({\n address,\n token: loginToken,\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\nexport async function login(provider: IProvider, options?: { token?: string }) {\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 CANCEL_TRANSACTION_TOAST_DEFAULT_DURATION,\n CANCEL_TRANSACTION_TOAST_ID,\n ERROR_SIGNING_TOAST_ID\n} from 'constants/transactions.constants';\nimport { createCustomToast } from 'store/actions';\nimport {\n IconNamesEnum,\n SigningErrorsEnum,\n SigningWarningsEnum\n} from 'types/enums.types';\n\nconst states = {\n error: {\n title: SigningErrorsEnum.errorSigning.toString(),\n iconClassName: 'danger',\n toastId: `${ERROR_SIGNING_TOAST_ID}-${Date.now()}`\n },\n warning: {\n title: SigningWarningsEnum.cancelled.toString(),\n iconClassName: 'warning',\n toastId: `${CANCEL_TRANSACTION_TOAST_ID}-${Date.now()}`\n }\n};\n\nconst errorsMap = {\n extensionResponse: 'Unable to sign transactions', // extension\n 'Transaction canceled': 'Transaction canceled', // web wallet\n 'cancelled by user': 'Transaction signing cancelled by user', // custom\n 'denied by the user': 'Transaction signing denied by the user' // ledger\n};\n\nconst getUserError = (error: string) => {\n for (const [key, value] of Object.entries(errorsMap)) {\n if (error.includes(key)) {\n return value;\n }\n }\n return SigningErrorsEnum.errorSigning;\n};\n\nexport function handleSignError(\n error: unknown,\n type: 'error' | 'warning' = 'error'\n) {\n const originalError = (error as Error)?.message;\n const errorMessage = getUserError(originalError);\n\n const isKnownError = errorMessage !== SigningErrorsEnum.errorSigning;\n\n const errorType = isKnownError ? 'warning' : type;\n\n const state = Object.keys(states).includes(errorType)\n ? states[errorType]\n : states.error;\n\n const { toastId, iconClassName, title } = state;\n\n createCustomToast({\n toastId,\n duration: CANCEL_TRANSACTION_TOAST_DEFAULT_DURATION,\n icon: IconNamesEnum.close,\n iconClassName,\n message: errorMessage,\n title\n });\n\n return errorMessage;\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';\nimport { refreshAccount } from 'utils';\nimport { computeNonces } from '../computeNonces/computeNonces';\n\nexport type SignTransactionsOptionsType = {\n skipGuardian?: boolean;\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)) ?? [];\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 verifyMessage,\n VerifyMessageReturnType\n} from './helpers/signMessage/verifyMessage';\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 /**\n * @param signedMessage - The signed message to verify in form of a JSON string with `address`, `message` and `signature` properties.\n * @returns The verification result with `isVerified`, `message` and `address` properties.\n */\n async verifyMessage(signedMessage: string): Promise<VerifyMessageReturnType> {\n return await verifyMessage(signedMessage);\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", "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';\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 {\n CustomToastType,\n IComponentToast\n} from 'store/slices/toast/toastSlice.types';\nimport { getStore } from 'store/store';\nimport { getUnixTimestamp, getUnixTimestampWithAddedMilliseconds } from 'utils';\n\nexport const customToastComponentDictionary: Record<\n string,\n IComponentToast['instantiateToastElement']\n> = {};\nexport const customToastCloseHandlersDictionary: Record<string, () => void> =\n {};\n\nexport const addCustomToast = (\n customToast: CustomToastType,\n currentToastId?: string\n) => {\n getStore().setState(\n ({ toasts: state }) => {\n const lastToastIndex =\n state.customToasts.length > 0\n ? Math.max(\n ...state.customToasts.map((toast) =>\n parseInt(toast.toastId.split('-').pop() ?? '0')\n )\n )\n : 0;\n const toastId = currentToastId ?? `custom-toast-${lastToastIndex + 1}`;\n\n const existingToastIndex = state.customToasts.findIndex(\n (toast) => toast.toastId === toastId\n );\n\n const newToast: CustomToastType = {\n ...customToast,\n toastId\n };\n\n const isToastFound = existingToastIndex !== -1;\n\n if (isToastFound) {\n state.customToasts[existingToastIndex] = newToast;\n return;\n }\n\n state.customToasts.push({\n ...newToast,\n toastId\n });\n },\n false,\n {\n type: 'addCustomToast',\n // @ts-ignore\n payload: {\n value: { customToast, currentToastId }\n }\n }\n );\n};\n\nexport const removeCustomToast = (toastId: string) => {\n getStore().setState(\n ({ toasts: state }) => {\n state.customToasts = state.customToasts.filter(\n (toast) => toast.toastId !== toastId\n );\n },\n false,\n {\n type: 'removeCustomToast',\n // @ts-ignore\n payload: {\n value: toastId\n }\n }\n );\n};\n\nexport const removeAllCustomToasts = () => {\n getStore().setState(\n ({ toasts: state }) => {\n state.customToasts = [];\n },\n false,\n {\n type: 'removeAllCustomToasts',\n // @ts-ignore\n payload: {\n value: null\n }\n }\n );\n};\n\nexport const removeAllTransactionToasts = () => {\n getStore().setState(({ toasts: state }) => {\n state.transactionToasts = [];\n });\n};\n\nexport const addTransactionToast = ({\n toastId,\n totalDuration\n}: {\n toastId: string;\n totalDuration: number;\n}): string => {\n let newToastId: string = '';\n getStore().setState(\n ({ toasts: state }) => {\n const lastToastIndex =\n state.transactionToasts.length > 0\n ? Math.max(\n ...state.transactionToasts.map((toast) =>\n parseInt(toast.toastId.split('-').pop() ?? '0')\n )\n )\n : 0;\n newToastId = toastId ?? `transaction-toast-${lastToastIndex + 1}`;\n\n state.transactionToasts.push({\n startTime: getUnixTimestamp(),\n endTime: getUnixTimestampWithAddedMilliseconds(totalDuration),\n toastId: newToastId\n });\n },\n false,\n 'addTransactionToast'\n );\n\n return newToastId;\n};\n\nexport const removeTransactionToast = (toastId: string) => {\n getStore().setState(\n ({ toasts: state }) => {\n state.transactionToasts = state.transactionToasts.filter((toast) => {\n return toast.toastId !== toastId;\n });\n },\n false,\n 'removeTransactionToast'\n );\n\n delete customToastCloseHandlersDictionary[toastId];\n delete customToastComponentDictionary[toastId];\n};\n\nexport const createCustomToast = (props: CustomToastType) => {\n const { toasts } = getStore().getState();\n\n const lastToastIndex =\n toasts.customToasts.length > 0\n ? Math.max(\n ...toasts.customToasts.map((toast) =>\n parseInt(toast.toastId.split('-').pop() ?? '0')\n )\n )\n : 0;\n\n const toastId = props.toastId || `custom-toast-${lastToastIndex + 1}`;\n\n if (props.onClose) {\n customToastCloseHandlersDictionary[toastId] = props.onClose;\n }\n\n if (props.instantiateToastElement) {\n customToastComponentDictionary[toastId] = props.instantiateToastElement;\n\n getStore().setState(\n ({ toasts: state }) => {\n const existingToastIndex = state.customToasts.findIndex(\n (toast) => toast.toastId === toastId\n );\n\n const toast: CustomToastType = {\n ...props,\n instantiateToastElement: null,\n toastId\n };\n\n const isToastFound = existingToastIndex !== -1;\n\n if (isToastFound) {\n state.customToasts[existingToastIndex] = toast;\n } else {\n state.customToasts.push(toast);\n }\n },\n false,\n 'createCustomToast'\n );\n\n return toastId;\n }\n\n addCustomToast(props, toastId);\n return toastId;\n};\n"],
5
- "mappings": "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",
6
- "names": ["BigNumber", "isEqual", "DEFAULT_SUCCESSFUL_TOAST_LIFETIME", "LifetimeManager", "toastId", "timeout", "removeTransactionToast", "duration", "removeCustomToast", "handleClose", "customToastCloseHandlersDictionary", "successfulToastLifetime", "interval", "isEqual", "NOTIFICATIONS_FEED_STORE_SUBSCRIBE", "NotificationsFeedManager", "_NotificationsFeedManager", "SidePanelBaseManager", "store", "getStore", "ToastManager", "storeToastsUnsubscribe", "toasts", "transactions", "prevToasts", "prevTransactions", "isEqual", "toastManager", "pendingTransactionToasts", "createToastsFromTransactions", "transactionsSessions", "acc", "key", "TransactionsHistoryController", "clearCompletedTransactions", "ToastUICoordinator", "props", "getStore", "NotificationsFeedManager", "toasts", "toastsElement", "customToasts", "unsubscribe", "ComponentFactory", "ToastManager", "_ToastManager", "props", "getStore", "LifetimeManager", "ToastUICoordinator", "successfulToastLifetime", "toasts", "transactions", "prevToasts", "prevTransactions", "newToastsWereCreated", "isEqual", "checkBatchHasNewData", "toastId", "transaction", "status", "isTimedOut", "getIsTransactionTimedOut", "isFailed", "getIsTransactionFailed", "isSuccessful", "getIsTransactionSuccessful", "isCompleted", "totalDuration", "newToastId", "addTransactionToast", "toast", "createCustomToast", "store", "toastList", "pendingTransactionToasts", "completedTransactionToasts", "createToastsFromTransactions", "newToast", "customToastComponentDictionary", "removeTransactionToast", "handleClose", "customToastCloseHandlersDictionary", "removeCustomToast", "removeAllCustomToasts", "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", "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", "loginWithoutNativeToken", "provider", "apiAddress", "getNetworkConfig", "address", "accountLogin", "loginWithNativeToken", "nativeAuthConfig", "token", "nativeAuthClient", "nativeAuth", "loginToken", "signature", "loginResult", "nativeAuthToken", "decodeNativeAuthToken", "setTokenLogin", "extractedAddress", "extractAddressFromToken", "login", "options", "nativeAuthConfigSelector", "getState", "registerWebsocketListener", "trackTransactions", "states", "ERROR_SIGNING_TOAST_ID", "CANCEL_TRANSACTION_TOAST_ID", "errorsMap", "getUserError", "error", "key", "value", "handleSignError", "type", "originalError", "errorMessage", "errorType", "state", "toastId", "iconClassName", "title", "createCustomToast", "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", "signedMessage", "verifyMessage", "accountProvider", "setAccountProvider", "provider", "getAccountProvider", "DappProvider", "emptyProvider", "setNewAccount", "address", "getAddress", "network", "getNetworkConfig", "account", "fetchAccount", "accountData", "trimUsernameDomain", "getLatestNonce", "setAccount", "e", "refreshAccount", "provider", "getAccountProvider", "customToastComponentDictionary", "customToastCloseHandlersDictionary", "addCustomToast", "customToast", "currentToastId", "getStore", "state", "lastToastIndex", "toast", "toastId", "existingToastIndex", "newToast", "removeCustomToast", "removeAllCustomToasts", "removeAllTransactionToasts", "addTransactionToast", "totalDuration", "newToastId", "getUnixTimestamp", "getUnixTimestampWithAddedMilliseconds", "removeTransactionToast", "createCustomToast", "props", "toasts"]
4
+ "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';\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 isEqual from 'lodash.isequal';\nimport { DEFAULT_TOAST_LIFETIME } from 'constants/transactions.constants';\nimport {\n customToastCloseHandlersDictionary,\n customToastComponentDictionary,\n removeAllCustomToasts,\n removeCustomToast,\n removeTransactionToast,\n addTransactionToast,\n createCustomToast\n} from 'store/actions/toasts/toastsActions';\nimport {\n getIsTransactionFailed,\n getIsTransactionSuccessful,\n getIsTransactionTimedOut\n} from 'store/actions/transactions/transactionStateByStatus';\n\nimport { CustomToastType } from 'store/slices/toast/toastSlice.types';\nimport { getStore } from 'store/store';\nimport { createToastsFromTransactions } from './helpers/createToastsFromTransactions';\nimport { LifetimeManager } from './helpers/LifetimeManager';\nimport { ToastUICoordinator } from './ToastUICoordinator';\nimport { ITransactionToast } from './types';\n\ninterface IToastManager {\n successfulToastLifetime?: number;\n}\n\nexport class ToastManager {\n private readonly lifetimeManager: LifetimeManager;\n private store: ReturnType<typeof getStore>;\n private static instance: ToastManager;\n private transactionToasts: ITransactionToast[] = [];\n private customToasts: CustomToastType[] = [];\n private successfulToastLifetime?: number;\n private unsubscribeFromStore: () => void = () => null;\n private uiCoordinator: ToastUICoordinator | null = null;\n\n constructor(props?: {\n store?: ReturnType<typeof getStore>;\n lifetimeManager?: LifetimeManager;\n uiCoordinator?: ToastUICoordinator;\n }) {\n this.destroy();\n this.store = props?.store || getStore();\n this.lifetimeManager = props?.lifetimeManager ?? new LifetimeManager();\n this.uiCoordinator =\n props?.uiCoordinator ??\n new ToastUICoordinator({\n onCloseToast: this.closeToast.bind(this)\n });\n }\n\n public async init({\n successfulToastLifetime = DEFAULT_TOAST_LIFETIME\n }: IToastManager = {}) {\n this.successfulToastLifetime = successfulToastLifetime;\n\n this.lifetimeManager.init({ successfulToastLifetime });\n\n await this.updateTransactionToastsList();\n await this.updateCustomToastList();\n\n await this.uiCoordinator?.init();\n\n this.unsubscribeFromStore = this.store.subscribe(\n async (\n { toasts, transactions },\n { toasts: prevToasts, transactions: prevTransactions }\n ) => {\n const newToastsWereCreated = !isEqual(\n prevToasts.transactionToasts,\n toasts.transactionToasts\n );\n const checkBatchHasNewData = !isEqual(prevTransactions, transactions);\n\n if (newToastsWereCreated || checkBatchHasNewData) {\n await this.updateTransactionToastsList();\n }\n\n const newCustomToastsWereCreated = !isEqual(\n prevToasts.customToasts,\n toasts.customToasts\n );\n\n if (newCustomToastsWereCreated) {\n await this.updateCustomToastList();\n }\n }\n );\n }\n\n public static getInstance(): ToastManager {\n if (!ToastManager.instance) {\n ToastManager.instance = new ToastManager();\n }\n return ToastManager.instance;\n }\n\n private handleCompletedTransaction(toastId: string): boolean {\n const { transactions } = this.store.getState();\n const transaction = transactions[toastId];\n\n if (!transaction) {\n return false;\n }\n\n const { status } = transaction;\n const isTimedOut = getIsTransactionTimedOut(status);\n const isFailed = getIsTransactionFailed(status);\n const isSuccessful = getIsTransactionSuccessful(status);\n const isCompleted = isFailed || isSuccessful || isTimedOut;\n\n if (isCompleted) {\n if (this.successfulToastLifetime) {\n this.lifetimeManager.start(toastId);\n }\n return isCompleted;\n }\n\n this.lifetimeManager.stop(toastId);\n return isCompleted;\n }\n\n public async createTransactionToast(\n toastId: string,\n totalDuration: number\n ): Promise<string> {\n const newToastId = addTransactionToast({\n toastId,\n totalDuration\n });\n\n this.handleCompletedTransaction(toastId);\n await this.updateTransactionToastsList();\n return newToastId;\n }\n\n public async createCustomToast(toast: CustomToastType): Promise<string> {\n const toastId = createCustomToast(toast);\n await this.updateCustomToastList();\n return toastId;\n }\n\n private async updateTransactionToastsList() {\n const store = this.store.getState();\n const { toasts: toastList } = store;\n\n const { pendingTransactionToasts, completedTransactionToasts } =\n await createToastsFromTransactions({\n store\n });\n\n this.transactionToasts = [\n ...pendingTransactionToasts,\n ...completedTransactionToasts\n ];\n\n for (const toast of toastList.transactionToasts) {\n this.handleCompletedTransaction(toast.toastId);\n }\n\n await this.publishTransactionToasts();\n }\n\n private async updateCustomToastList() {\n const { toasts: toastList } = this.store.getState();\n this.customToasts = [];\n\n for (const toast of toastList.customToasts) {\n const isSimpleToast = 'message' in toast;\n\n const newToast: CustomToastType = isSimpleToast\n ? { ...toast }\n : {\n ...toast,\n instantiateToastElement:\n customToastComponentDictionary[toast.toastId]\n };\n this.customToasts.push(newToast);\n\n if (toast.duration) {\n this.lifetimeManager.startWithCustomDuration(\n toast.toastId,\n toast.duration\n );\n }\n }\n await this.uiCoordinator?.publishCustomToasts(this.customToasts);\n }\n\n private handleTransactionToastClose(toastId: string): boolean {\n const isCompleted = this.handleCompletedTransaction(toastId);\n\n if (isCompleted) {\n removeTransactionToast(toastId);\n return true;\n }\n\n return false;\n }\n\n public async showToasts() {\n this.uiCoordinator?.showToasts();\n await this.updateCustomToastList();\n await this.updateTransactionToastsList();\n }\n\n public hideToasts() {\n this.uiCoordinator?.hideToasts();\n }\n\n public closeToast(toastId: string): boolean {\n const customToast = this.customToasts.find(\n (toast) => toast.toastId === toastId\n );\n\n if (customToast) {\n this.lifetimeManager.stop(toastId);\n const handleClose = customToastCloseHandlersDictionary[toastId];\n handleClose?.();\n removeCustomToast(toastId);\n return true;\n }\n\n return this.handleTransactionToastClose(toastId);\n }\n\n private async publishTransactionToasts() {\n await this.uiCoordinator?.publishTransactionToasts(this.transactionToasts);\n }\n\n public destroy() {\n this.unsubscribeFromStore();\n this.lifetimeManager?.destroy();\n this.uiCoordinator?.destroy();\n removeAllCustomToasts();\n }\n}\n", "import {\n customToastCloseHandlersDictionary,\n removeCustomToast,\n removeTransactionToast\n} from 'store/actions/toasts/toastsActions';\n\ninterface IToastProgressManagerParams {\n successfulToastLifetime?: number;\n}\n\nconst DEFAULT_SUCCESSFUL_TOAST_LIFETIME = 10_000;\n\nexport class LifetimeManager {\n private timeoutIntervals: Map<string, ReturnType<typeof setTimeout>> =\n new Map();\n private successfulToastLifetime: number = DEFAULT_SUCCESSFUL_TOAST_LIFETIME;\n\n constructor() {}\n\n public init({ successfulToastLifetime }: IToastProgressManagerParams) {\n this.successfulToastLifetime =\n successfulToastLifetime ?? DEFAULT_SUCCESSFUL_TOAST_LIFETIME;\n }\n\n public start = (toastId: string) => {\n this.stop(toastId);\n\n if (this.successfulToastLifetime <= 0) {\n return;\n }\n\n const timeout = setTimeout(() => {\n removeTransactionToast(toastId);\n }, this.successfulToastLifetime);\n\n this.timeoutIntervals.set(toastId, timeout);\n };\n\n public startWithCustomDuration = (toastId: string, duration: number) => {\n this.stop(toastId);\n\n if (duration <= 0) {\n return;\n }\n\n const timeout = setTimeout(() => {\n removeCustomToast(toastId);\n const handleClose = customToastCloseHandlersDictionary[toastId];\n handleClose?.();\n }, duration);\n\n this.timeoutIntervals.set(toastId, timeout);\n };\n\n public stop = (toastId: string) => {\n const timeout = this.timeoutIntervals.get(toastId);\n if (timeout) {\n clearTimeout(timeout);\n this.timeoutIntervals.delete(toastId);\n }\n };\n\n public destroy() {\n this.timeoutIntervals.forEach((interval) => clearTimeout(interval));\n this.timeoutIntervals.clear();\n }\n}\n", "import isEqual from 'lodash.isequal';\nimport { UITagsEnum } from 'constants/UITags.enum';\nimport { TransactionsHistoryController } from 'controllers/TransactionsHistoryController';\nimport { ITransactionListItem, MvxNotificationsFeed } from 'lib/sdkDappUi';\nimport { clearCompletedTransactions } from 'store/actions/transactions/transactionsActions';\nimport { TransactionsSliceType } from 'store/slices/transactions/transactionsSlice.types';\nimport { getStore } from 'store/store';\nimport { TransactionServerStatusesEnum } from 'types/enums.types';\nimport { TransactionBatchStatusesEnum } from 'types/enums.types';\nimport { NotificationsFeedEventsEnum } from './types';\nimport { SidePanelBaseManager } from '../internal/SidePanelBaseManager/SidePanelBaseManager';\nimport { ToastManager } from '../ToastManager';\nimport { createToastsFromTransactions } from '../ToastManager/helpers/createToastsFromTransactions';\nimport { ITransactionToast } from '../ToastManager/types';\n\ninterface INotificationsFeedManagerData {\n pendingTransactions: ITransactionToast[];\n historicTransactions: ITransactionListItem[];\n}\n\nconst NOTIFICATIONS_FEED_STORE_SUBSCRIBE = 'NOTIFICATIONS_FEED_STORE_SUBSCRIBE';\n\nexport class NotificationsFeedManager extends SidePanelBaseManager<\n MvxNotificationsFeed,\n INotificationsFeedManagerData,\n NotificationsFeedEventsEnum | typeof NOTIFICATIONS_FEED_STORE_SUBSCRIBE\n> {\n private static instance: NotificationsFeedManager;\n private readonly store: ReturnType<typeof getStore>;\n\n protected initialData: INotificationsFeedManagerData = {\n pendingTransactions: [],\n historicTransactions: []\n };\n\n public static getInstance(): NotificationsFeedManager {\n if (!NotificationsFeedManager.instance) {\n NotificationsFeedManager.instance = new NotificationsFeedManager();\n }\n return NotificationsFeedManager.instance;\n }\n\n constructor(store?: ReturnType<typeof getStore>) {\n super({\n uiDataUpdateEvent: NotificationsFeedEventsEnum.OPEN,\n uiTag: UITagsEnum.NOTIFICATIONS_FEED\n });\n this.store = store || getStore();\n this.data = { ...this.initialData };\n }\n\n public isNotificationsFeedOpen(): boolean {\n return this.isOpen;\n }\n\n /**\n * Open the notifications feed and toggle off the toast manager.\n */\n public async openNotificationsFeed(): Promise<void> {\n const toastManager = ToastManager.getInstance();\n toastManager.hideToasts();\n await this.openUI();\n await this.updateDataAndNotifications();\n\n const storeToastsUnsubscribe = this.store.subscribe(\n async (\n { toasts, transactions },\n { toasts: prevToasts, transactions: prevTransactions }\n ) => {\n if (\n !isEqual(prevToasts.transactionToasts, toasts.transactionToasts) ||\n !isEqual(prevTransactions, transactions)\n ) {\n await this.updateDataAndNotifications();\n }\n }\n );\n this.unsubscribeFunctions.set(NOTIFICATIONS_FEED_STORE_SUBSCRIBE, [\n storeToastsUnsubscribe\n ]);\n\n this.eventBus?.publish(NotificationsFeedEventsEnum.OPEN);\n await this.updateDataAndNotifications();\n }\n\n /**\n * Close the notifications feed and toggle on the toast manager.\n */\n protected async handleCloseUI() {\n const toastManager = ToastManager.getInstance();\n this.closeUI();\n await toastManager.showToasts();\n }\n\n protected async setupEventListeners() {\n if (!this.eventBus) {\n return;\n }\n\n this.subscribeToEventBus(\n NotificationsFeedEventsEnum.CLOSE,\n this.handleCloseUI.bind(this)\n );\n\n this.subscribeToEventBus(\n NotificationsFeedEventsEnum.CLEAR,\n this.handleClearNotificationsFeedHistory.bind(this)\n );\n }\n\n protected async updateDataAndNotifications() {\n const { transactions } = this.store.getState();\n\n const { pendingTransactionToasts } = await createToastsFromTransactions();\n\n this.data.pendingTransactions = pendingTransactionToasts;\n\n const transactionsSessions = Object.keys(transactions).reduce(\n (acc, key) => {\n const isPendingStatus = [\n TransactionBatchStatusesEnum.sent,\n `${TransactionServerStatusesEnum.pending}`\n ].includes(String(transactions[key].status));\n\n if (!isPendingStatus) {\n acc[key] = transactions[key];\n }\n return acc;\n },\n {} as TransactionsSliceType\n );\n\n this.data.historicTransactions =\n await TransactionsHistoryController.getTransactionsHistory({\n transactionsSessions\n });\n\n await this.updateNotificationsFeed();\n }\n\n private handleClearNotificationsFeedHistory() {\n clearCompletedTransactions();\n this.resetData();\n this.updateNotificationsFeed();\n }\n\n private async updateNotificationsFeed() {\n if (!this.eventBus) {\n return;\n }\n\n this.eventBus.publish(\n NotificationsFeedEventsEnum.PENDING_TRANSACTIONS_UPDATE,\n this.data.pendingTransactions\n );\n\n this.eventBus.publish(\n NotificationsFeedEventsEnum.TRANSACTIONS_HISTORY_UPDATE,\n this.data.historicTransactions\n );\n }\n}\n", "import { UITagsEnum } from 'constants/UITags.enum';\nimport { MvxToastList } from 'lib/sdkDappUi';\nimport { NotificationsFeedManager } from 'managers/NotificationsFeedManager/NotificationsFeedManager';\nimport type { CustomToastType } from 'store/slices/toast/toastSlice.types';\nimport { getStore } from 'store/store';\nimport { IEventBus } from 'types/manager.types';\nimport { ProviderErrorsEnum } from 'types/provider.types';\nimport { ComponentFactory } from 'utils/ComponentFactory';\nimport { ToastEventsEnum } from './types';\nimport type { ITransactionToast } from './types';\n\ntype OnCloseToastType = (toastId: string) => boolean;\ntype StoreObjectType = ReturnType<typeof getStore>;\n\nexport class ToastUICoordinator {\n private toastsElement: MvxToastList | null = null;\n private eventBus: IEventBus<\n ITransactionToast[] | CustomToastType[] | null\n > | null = null;\n private isCreatingElement = false;\n private eventBusUnsubscribeFunctions: (() => void)[] = [];\n private readonly notificationsFeedManager: NotificationsFeedManager;\n private readonly store: StoreObjectType;\n private readonly onCloseToast: OnCloseToastType;\n\n constructor(props: {\n onCloseToast: OnCloseToastType;\n store?: StoreObjectType;\n notificationsFeedManager?: NotificationsFeedManager;\n }) {\n this.onCloseToast = props.onCloseToast;\n this.store = props.store || getStore();\n this.notificationsFeedManager =\n props.notificationsFeedManager || NotificationsFeedManager.getInstance();\n }\n\n public async init() {\n await this.subscribeToEventBusNotifications();\n }\n\n public showToasts() {\n this.eventBus?.publish(ToastEventsEnum.SHOW, null);\n }\n\n public hideToasts() {\n this.eventBus?.publish(ToastEventsEnum.HIDE, null);\n }\n\n public async publishTransactionToasts(toasts: ITransactionToast[]) {\n if (\n this.notificationsFeedManager.isNotificationsFeedOpen() &&\n this.eventBus\n ) {\n this.eventBus.publish(\n ToastEventsEnum.TRANSACTION_TOAST_DATA_UPDATE,\n toasts\n );\n this.hideToasts();\n return;\n }\n\n if (!this.eventBus) {\n const toastsElement = await this.createToastListElement();\n if (!toastsElement) {\n return;\n }\n this.eventBus = await toastsElement.getEventBus();\n }\n\n this.eventBus?.publish(\n ToastEventsEnum.TRANSACTION_TOAST_DATA_UPDATE,\n toasts\n );\n }\n\n public async publishCustomToasts(customToasts: CustomToastType[]) {\n this.eventBus?.publish(\n ToastEventsEnum.CUSTOM_TOAST_DATA_UPDATE,\n customToasts\n );\n }\n\n private handleOpenNotificationsFeed() {\n this.notificationsFeedManager.openNotificationsFeed();\n }\n\n public destroy() {\n this.eventBusUnsubscribeFunctions.forEach((unsubscribe) => unsubscribe());\n this.eventBusUnsubscribeFunctions = [];\n this.notificationsFeedManager?.destroy();\n }\n\n private async createToastListElement(): Promise<MvxToastList | null> {\n if (this.toastsElement) {\n return this.toastsElement;\n }\n\n if (!this.isCreatingElement) {\n this.isCreatingElement = true;\n this.toastsElement = await ComponentFactory.create<MvxToastList>({\n name: UITagsEnum.TOAST_LIST\n });\n this.isCreatingElement = false;\n }\n\n return this.toastsElement;\n }\n\n private async subscribeToEventBusNotifications() {\n const toastsElement = await this.createToastListElement();\n\n if (!toastsElement) {\n return;\n }\n\n this.eventBus = await toastsElement.getEventBus();\n if (!this.eventBus) {\n throw new Error(ProviderErrorsEnum.eventBusError);\n }\n\n this.eventBus.subscribe(ToastEventsEnum.CLOSE, this.onCloseToast);\n\n this.eventBusUnsubscribeFunctions.push(() => {\n this.eventBus?.unsubscribe(ToastEventsEnum.CLOSE, this.onCloseToast);\n });\n\n this.eventBus.subscribe(\n ToastEventsEnum.OPEN_NOTIFICATIONS_FEED,\n this.handleOpenNotificationsFeed.bind(this)\n );\n\n this.eventBusUnsubscribeFunctions.push(() => {\n this.eventBus?.unsubscribe(\n ToastEventsEnum.OPEN_NOTIFICATIONS_FEED,\n this.handleOpenNotificationsFeed.bind(this)\n );\n });\n }\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';\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/gastStationMetadata/setGasStationMetadata';\nimport { registerWebsocketListener } from 'methods/initApp/websocket/registerWebsocket';\nimport { trackTransactions } from 'methods/trackTransactions/trackTransactions';\nimport { IProvider } from 'providers/types/providerFactory.types';\nimport { loginAction } from 'store/actions';\nimport { setAccount } from 'store/actions/account';\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 { registerWebsocketListener } from 'methods/initApp/websocket/registerWebsocket';\nimport { getNetworkConfig } from 'methods/network/getNetworkConfig';\nimport { trackTransactions } from 'methods/trackTransactions/trackTransactions';\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 { nativeAuthConfigSelector } from 'store/selectors';\nimport { getState } from 'store/store';\nimport { accountLogin } from './helpers/accountLogin';\nimport { extractAddressFromToken } from './helpers/extractAddressFromToken';\nimport { getMultisigLoginToken } from './helpers/getMultisigLoginToken';\n\nasync 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\nasync 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\nexport async function login(provider: IProvider, options?: { token?: string }) {\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 CANCEL_TRANSACTION_TOAST_DEFAULT_DURATION,\n CANCEL_TRANSACTION_TOAST_ID,\n ERROR_SIGNING_TOAST_ID\n} from 'constants/transactions.constants';\nimport { createCustomToast } from 'store/actions';\nimport {\n IconNamesEnum,\n SigningErrorsEnum,\n SigningWarningsEnum\n} from 'types/enums.types';\n\nconst states = {\n error: {\n title: SigningErrorsEnum.errorSigning.toString(),\n iconClassName: 'danger',\n toastId: `${ERROR_SIGNING_TOAST_ID}-${Date.now()}`\n },\n warning: {\n title: SigningWarningsEnum.cancelled.toString(),\n iconClassName: 'warning',\n toastId: `${CANCEL_TRANSACTION_TOAST_ID}-${Date.now()}`\n }\n};\n\nconst errorsMap = {\n extensionResponse: 'Unable to sign transactions', // extension\n 'Transaction canceled': 'Transaction canceled', // web wallet\n 'cancelled by user': 'Transaction signing cancelled by user', // custom\n 'denied by the user': 'Transaction signing denied by the user' // ledger\n};\n\nconst getUserError = (error: string) => {\n for (const [key, value] of Object.entries(errorsMap)) {\n if (error.includes(key)) {\n return value;\n }\n }\n return SigningErrorsEnum.errorSigning;\n};\n\nexport function handleSignError(\n error: unknown,\n type: 'error' | 'warning' = 'error'\n) {\n const originalError = (error as Error)?.message;\n const errorMessage = getUserError(originalError);\n\n const isKnownError = errorMessage !== SigningErrorsEnum.errorSigning;\n\n const errorType = isKnownError ? 'warning' : type;\n\n const state = Object.keys(states).includes(errorType)\n ? states[errorType]\n : states.error;\n\n const { toastId, iconClassName, title } = state;\n\n createCustomToast({\n toastId,\n duration: CANCEL_TRANSACTION_TOAST_DEFAULT_DURATION,\n icon: IconNamesEnum.close,\n iconClassName,\n message: errorMessage,\n title\n });\n\n return errorMessage;\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';\nimport { refreshAccount } from 'utils';\nimport { computeNonces } from '../computeNonces/computeNonces';\n\nexport type SignTransactionsOptionsType = {\n skipGuardian?: boolean;\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)) ?? [];\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 verifyMessage,\n VerifyMessageReturnType\n} from './helpers/signMessage/verifyMessage';\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 /**\n * @param signedMessage - The signed message to verify in form of a JSON string with `address`, `message` and `signature` properties.\n * @returns The verification result with `isVerified`, `message` and `address` properties.\n */\n async verifyMessage(signedMessage: string): Promise<VerifyMessageReturnType> {\n return await verifyMessage(signedMessage);\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", "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';\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 {\n CustomToastType,\n IComponentToast\n} from 'store/slices/toast/toastSlice.types';\nimport { getStore } from 'store/store';\nimport { getUnixTimestamp, getUnixTimestampWithAddedMilliseconds } from 'utils';\n\nexport const customToastComponentDictionary: Record<\n string,\n IComponentToast['instantiateToastElement']\n> = {};\nexport const customToastCloseHandlersDictionary: Record<string, () => void> =\n {};\n\nexport const addCustomToast = (\n customToast: CustomToastType,\n currentToastId?: string\n) => {\n getStore().setState(\n ({ toasts: state }) => {\n const lastToastIndex =\n state.customToasts.length > 0\n ? Math.max(\n ...state.customToasts.map((toast) =>\n parseInt(toast.toastId.split('-').pop() ?? '0')\n )\n )\n : 0;\n const toastId = currentToastId ?? `custom-toast-${lastToastIndex + 1}`;\n\n const existingToastIndex = state.customToasts.findIndex(\n (toast) => toast.toastId === toastId\n );\n\n const newToast: CustomToastType = {\n ...customToast,\n toastId\n };\n\n const isToastFound = existingToastIndex !== -1;\n\n if (isToastFound) {\n state.customToasts[existingToastIndex] = newToast;\n return;\n }\n\n state.customToasts.push({\n ...newToast,\n toastId\n });\n },\n false,\n {\n type: 'addCustomToast',\n // @ts-ignore\n payload: {\n value: { customToast, currentToastId }\n }\n }\n );\n};\n\nexport const removeCustomToast = (toastId: string) => {\n getStore().setState(\n ({ toasts: state }) => {\n state.customToasts = state.customToasts.filter(\n (toast) => toast.toastId !== toastId\n );\n },\n false,\n {\n type: 'removeCustomToast',\n // @ts-ignore\n payload: {\n value: toastId\n }\n }\n );\n};\n\nexport const removeAllCustomToasts = () => {\n getStore().setState(\n ({ toasts: state }) => {\n state.customToasts = [];\n },\n false,\n {\n type: 'removeAllCustomToasts',\n // @ts-ignore\n payload: {\n value: null\n }\n }\n );\n};\n\nexport const removeAllTransactionToasts = () => {\n getStore().setState(({ toasts: state }) => {\n state.transactionToasts = [];\n });\n};\n\nexport const addTransactionToast = ({\n toastId,\n totalDuration\n}: {\n toastId: string;\n totalDuration: number;\n}): string => {\n let newToastId: string = '';\n getStore().setState(\n ({ toasts: state }) => {\n const lastToastIndex =\n state.transactionToasts.length > 0\n ? Math.max(\n ...state.transactionToasts.map((toast) =>\n parseInt(toast.toastId.split('-').pop() ?? '0')\n )\n )\n : 0;\n newToastId = toastId ?? `transaction-toast-${lastToastIndex + 1}`;\n\n state.transactionToasts.push({\n startTime: getUnixTimestamp(),\n endTime: getUnixTimestampWithAddedMilliseconds(totalDuration),\n toastId: newToastId\n });\n },\n false,\n 'addTransactionToast'\n );\n\n return newToastId;\n};\n\nexport const removeTransactionToast = (toastId: string) => {\n getStore().setState(\n ({ toasts: state }) => {\n state.transactionToasts = state.transactionToasts.filter((toast) => {\n return toast.toastId !== toastId;\n });\n },\n false,\n 'removeTransactionToast'\n );\n\n delete customToastCloseHandlersDictionary[toastId];\n delete customToastComponentDictionary[toastId];\n};\n\nexport const createCustomToast = (props: CustomToastType) => {\n const { toasts } = getStore().getState();\n\n const lastToastIndex =\n toasts.customToasts.length > 0\n ? Math.max(\n ...toasts.customToasts.map((toast) =>\n parseInt(toast.toastId.split('-').pop() ?? '0')\n )\n )\n : 0;\n\n const toastId = props.toastId || `custom-toast-${lastToastIndex + 1}`;\n\n if (props.onClose) {\n customToastCloseHandlersDictionary[toastId] = props.onClose;\n }\n\n if (props.instantiateToastElement) {\n customToastComponentDictionary[toastId] = props.instantiateToastElement;\n\n getStore().setState(\n ({ toasts: state }) => {\n const existingToastIndex = state.customToasts.findIndex(\n (toast) => toast.toastId === toastId\n );\n\n const toast: CustomToastType = {\n ...props,\n instantiateToastElement: null,\n toastId\n };\n\n const isToastFound = existingToastIndex !== -1;\n\n if (isToastFound) {\n state.customToasts[existingToastIndex] = toast;\n } else {\n state.customToasts.push(toast);\n }\n },\n false,\n 'createCustomToast'\n );\n\n return toastId;\n }\n\n addCustomToast(props, toastId);\n return toastId;\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["BigNumber", "isEqual", "DEFAULT_SUCCESSFUL_TOAST_LIFETIME", "LifetimeManager", "toastId", "timeout", "removeTransactionToast", "duration", "removeCustomToast", "handleClose", "customToastCloseHandlersDictionary", "successfulToastLifetime", "interval", "isEqual", "NOTIFICATIONS_FEED_STORE_SUBSCRIBE", "NotificationsFeedManager", "_NotificationsFeedManager", "SidePanelBaseManager", "store", "getStore", "ToastManager", "storeToastsUnsubscribe", "toasts", "transactions", "prevToasts", "prevTransactions", "isEqual", "toastManager", "pendingTransactionToasts", "createToastsFromTransactions", "transactionsSessions", "acc", "key", "TransactionsHistoryController", "clearCompletedTransactions", "ToastUICoordinator", "props", "getStore", "NotificationsFeedManager", "toasts", "toastsElement", "customToasts", "unsubscribe", "ComponentFactory", "ToastManager", "_ToastManager", "props", "getStore", "LifetimeManager", "ToastUICoordinator", "successfulToastLifetime", "toasts", "transactions", "prevToasts", "prevTransactions", "newToastsWereCreated", "isEqual", "checkBatchHasNewData", "toastId", "transaction", "status", "isTimedOut", "getIsTransactionTimedOut", "isFailed", "getIsTransactionFailed", "isSuccessful", "getIsTransactionSuccessful", "isCompleted", "totalDuration", "newToastId", "addTransactionToast", "toast", "createCustomToast", "store", "toastList", "pendingTransactionToasts", "completedTransactionToasts", "createToastsFromTransactions", "newToast", "customToastComponentDictionary", "removeTransactionToast", "handleClose", "customToastCloseHandlersDictionary", "removeCustomToast", "removeAllCustomToasts", "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", "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", "loginWithoutNativeToken", "provider", "apiAddress", "getNetworkConfig", "address", "accountLogin", "loginWithNativeToken", "nativeAuthConfig", "token", "nativeAuthClient", "nativeAuth", "loginToken", "loginData", "signature", "loginResult", "decodedToken", "decodeNativeAuthToken", "usedLoginToken", "getMultisigLoginToken", "nativeAuthToken", "setTokenLogin", "extractedAddress", "extractAddressFromToken", "login", "options", "nativeAuthConfigSelector", "getState", "registerWebsocketListener", "trackTransactions", "states", "ERROR_SIGNING_TOAST_ID", "CANCEL_TRANSACTION_TOAST_ID", "errorsMap", "getUserError", "error", "key", "value", "handleSignError", "type", "originalError", "errorMessage", "errorType", "state", "toastId", "iconClassName", "title", "createCustomToast", "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", "signedMessage", "verifyMessage", "accountProvider", "setAccountProvider", "provider", "getAccountProvider", "DappProvider", "emptyProvider", "setNewAccount", "address", "getAddress", "network", "getNetworkConfig", "account", "fetchAccount", "accountData", "trimUsernameDomain", "getLatestNonce", "setAccount", "e", "refreshAccount", "provider", "getAccountProvider", "customToastComponentDictionary", "customToastCloseHandlersDictionary", "addCustomToast", "customToast", "currentToastId", "getStore", "state", "lastToastIndex", "toast", "toastId", "existingToastIndex", "newToast", "removeCustomToast", "removeAllCustomToasts", "removeAllTransactionToasts", "addTransactionToast", "totalDuration", "newToastId", "getUnixTimestamp", "getUnixTimestampWithAddedMilliseconds", "removeTransactionToast", "createCustomToast", "props", "toasts"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{a as s}from"./chunk-55W25Q35.mjs";import{a as r}from"./chunk-KMBJLWMI.mjs";import a from"lodash.isempty";var e=async({transactionsSessions:t})=>{if(a(t))return[];let i=s(t);return r({transactions:i})};export{e as a};
2
- //# sourceMappingURL=chunk-X3RT7CXY.mjs.map
1
+ import{a as s}from"./chunk-55W25Q35.mjs";import{a as r}from"./chunk-FEYKZZ67.mjs";import a from"lodash.isempty";var e=async({transactionsSessions:t})=>{if(a(t))return[];let i=s(t);return r({transactions:i})};export{e as a};
2
+ //# sourceMappingURL=chunk-7Z26MA4H.mjs.map
@@ -1,2 +1,2 @@
1
- import{a as n}from"./chunk-32ZP2NA6.mjs";import{a as t}from"./chunk-UQ2HW3W6.mjs";var i=class extends n{constructor({uiDataUpdateEvent:e,uiTag:s}){super({uiDataUpdateEvent:e,uiTag:s});this.isOpen=!1;this.data=this.getInitialData()}async openUI(){this.isOpen&&this.uiElement||(await super.init(),this.setIsSidePanelOpen(!0))}destroy(){if(this.setIsSidePanelOpen(!1),this.uiElement?.closeWithAnimation){this.uiElement?.closeWithAnimation?.().finally(()=>{super.destroy()});return}super.destroy()}closeUI(){this.resetData(),this.destroy()}setIsSidePanelOpen(e){this.isOpen=e,t(e)}};export{i as a};
2
- //# sourceMappingURL=chunk-IKZRDQXB.mjs.map
1
+ import{a as n}from"./chunk-6NWGAFI5.mjs";import{a as t}from"./chunk-FEP3SR47.mjs";var i=class extends n{constructor({uiDataUpdateEvent:e,uiTag:s}){super({uiDataUpdateEvent:e,uiTag:s});this.isOpen=!1;this.data=this.getInitialData()}async openUI(){this.isOpen&&this.uiElement||(await super.init(),this.setIsSidePanelOpen(!0))}destroy(){if(this.setIsSidePanelOpen(!1),this.uiElement?.closeWithAnimation){this.uiElement?.closeWithAnimation?.().finally(()=>{super.destroy()});return}super.destroy()}closeUI(){this.resetData(),this.destroy()}setIsSidePanelOpen(e){this.isOpen=e,t(e)}};export{i as a};
2
+ //# sourceMappingURL=chunk-AU76TGKZ.mjs.map
@@ -1,2 +1,2 @@
1
- import{e as o,f as a,g as i,h as r}from"./chunk-NGM3AVCY.mjs";import{s as c}from"./chunk-5EUVZR4Y.mjs";function b(){let t=c(),l=r(t),u=i(t),T=a(t),d=o(t),e=Object.keys(d)?.length>0,n=!e&&Object.keys(l)?.length>0,s=!e&&!n&&Object.keys(u)?.length>0,f=!e&&!n&&!s&&Object.keys(T).length>0;return{pending:e,timedOut:n,fail:s,success:f}}export{b as a};
2
- //# sourceMappingURL=chunk-BOKD6CTQ.mjs.map
1
+ import{e as o,f as a,g as i,h as r}from"./chunk-NGM3AVCY.mjs";import{s as c}from"./chunk-W3L462S3.mjs";function b(){let t=c(),l=r(t),u=i(t),T=a(t),d=o(t),e=Object.keys(d)?.length>0,n=!e&&Object.keys(l)?.length>0,s=!e&&!n&&Object.keys(u)?.length>0,f=!e&&!n&&!s&&Object.keys(T).length>0;return{pending:e,timedOut:n,fail:s,success:f}}export{b as a};
2
+ //# sourceMappingURL=chunk-BDZ33IMP.mjs.map
@@ -1,2 +1,2 @@
1
- import{a as u}from"./chunk-PGM343MK.mjs";import{a as f}from"./chunk-TEY7ZFKW.mjs";import{a as g}from"./chunk-UCYO4ETU.mjs";import{b as a}from"./chunk-5EUVZR4Y.mjs";import{c as s,g as r}from"./chunk-NTEMINYA.mjs";var v=async({signMessageCallback:m,nativeAuthClientConfig:o})=>{let{address:t}=u(),c=g(),i=f(o||c),e=await i.initialize({noCache:!!o});if(!e)return null;let h=new r({address:new s(t),data:Buffer.from(`${t}${e}`)}),n=await m(h,{});if(!n?.signature)throw"Message not signed";return a({loginToken:e,signature:Buffer.from(n.signature).toString("hex")}),i.getToken({address:t,token:e,signature:Buffer.from(n.signature).toString("hex")})};export{v as a};
2
- //# sourceMappingURL=chunk-2IPQUVFZ.mjs.map
1
+ import{a as u}from"./chunk-IECHAN5Y.mjs";import{a as f}from"./chunk-O4PUBLYW.mjs";import{a as g}from"./chunk-JFWHJ7VA.mjs";import{b as a}from"./chunk-W3L462S3.mjs";import{c as s,g as r}from"./chunk-NTEMINYA.mjs";var v=async({signMessageCallback:m,nativeAuthClientConfig:o})=>{let{address:t}=u(),c=g(),i=f(o||c),e=await i.initialize({noCache:!!o});if(!e)return null;let h=new r({address:new s(t),data:Buffer.from(`${t}${e}`)}),n=await m(h,{});if(!n?.signature)throw"Message not signed";return a({loginToken:e,signature:Buffer.from(n.signature).toString("hex")}),i.getToken({address:t,token:e,signature:Buffer.from(n.signature).toString("hex")})};export{v as a};
2
+ //# sourceMappingURL=chunk-BHLMFKLS.mjs.map
@@ -1,2 +1,2 @@
1
- import{a as i}from"./chunk-32ZP2NA6.mjs";var c=class n extends i{constructor(){super({uiDataUpdateEvent:"DATA_UPDATE",uiTag:"mvx-ledger-connect"});this.addressesPerPage=10;this.allAccounts=[];this.initialConnectScreenData={};this.connectScreenData={...this.initialConnectScreenData};this.initialAccountScreenData={accounts:this.allAccounts,startIndex:0,addressesPerPage:this.addressesPerPage,isLoading:!0};this.accountScreenData={...this.initialAccountScreenData};this.initialConfirmScreenData={selectedAddress:"",explorerLink:""};this.confirmScreenData={...this.initialConfirmScreenData};this.initialData={connectScreenData:this.initialConnectScreenData,accountScreenData:this.initialAccountScreenData,confirmScreenData:this.initialConfirmScreenData};this.data=this.getInitialData()}static getInstance(){return n.instance||(n.instance=new n),n.instance}updateAllAccounts(e){this.allAccounts=e,this.accountScreenData.accounts=e}updateStartIndex(e){this.accountScreenData.startIndex=e}updateConnectScreen(e){this.connectScreenData={...this.connectScreenData,...e},this.data.confirmScreenData=null,this.data.accountScreenData=null,this.data.connectScreenData=this.connectScreenData,this.notifyDataUpdate()}updateAccountScreen(e){this.accountScreenData={...this.accountScreenData,...e},this.data.confirmScreenData=null,this.data.accountScreenData=this.accountScreenData,this.notifyDataUpdate()}updateConfirmScreen(e){this.confirmScreenData={...this.confirmScreenData,...e},this.data.accountScreenData=null,this.data.confirmScreenData=this.confirmScreenData,this.notifyDataUpdate()}getAccountScreenData(){return this.data.accountScreenData}getConfirmScreenData(){return this.data.confirmScreenData}getAllAccounts(){return this.allAccounts}subscribeToProviderInit({handleRetry:e,handleCancel:t}){this.eventBus&&(this.eventBus.subscribe("CONNECT_DEVICE",e),this.eventBus.subscribe("CLOSE",t),this.eventBus.subscribe("UI_DISCONNECTED",this.destroy.bind(this)))}unsubscribeFromProviderInit({handleRetry:e,handleCancel:t}){this.eventBus&&(this.eventBus.unsubscribe("CONNECT_DEVICE",e),this.eventBus.unsubscribe("CLOSE",t),this.eventBus.unsubscribe("UI_DISCONNECTED",this.destroy.bind(this)))}subscribeToAuthEvents({handleCancel:e,handleAccessWallet:t,handleGoToPage:a}){this.eventBus&&(this.eventBus.subscribe("CLOSE",e),this.eventBus.subscribe("ACCESS_WALLET",t),this.eventBus.subscribe("GO_TO_PAGE",a))}unsubscribeFromAuthEvents({handleCancel:e,handleAccessWallet:t,handleGoToPage:a}){this.eventBus&&(this.eventBus.unsubscribe("CLOSE",e),this.eventBus.unsubscribe("ACCESS_WALLET",t),this.eventBus.unsubscribe("GO_TO_PAGE",a))}handleClose(){this.anchor?this.anchor?.dispatchEvent(new CustomEvent("ANCHOR_CLOSE",{composed:!1,bubbles:!1})):this.destroy()}resetData(){this.accountScreenData={...this.initialAccountScreenData},this.confirmScreenData={...this.initialConfirmScreenData},this.connectScreenData={...this.initialConnectScreenData},super.resetData()}async setupEventListeners(){this.eventBus&&this.eventBus.subscribe("CLOSE",this.handleClose.bind(this))}};export{c as a};
2
- //# sourceMappingURL=chunk-DR2RQBDW.mjs.map
1
+ import{a as i}from"./chunk-6NWGAFI5.mjs";var c=class n extends i{constructor(){super({uiDataUpdateEvent:"DATA_UPDATE",uiTag:"mvx-ledger-connect"});this.addressesPerPage=10;this.allAccounts=[];this.initialConnectScreenData={};this.connectScreenData={...this.initialConnectScreenData};this.initialAccountScreenData={accounts:this.allAccounts,startIndex:0,addressesPerPage:this.addressesPerPage,isLoading:!0};this.accountScreenData={...this.initialAccountScreenData};this.initialConfirmScreenData={selectedAddress:"",explorerLink:""};this.confirmScreenData={...this.initialConfirmScreenData};this.initialData={connectScreenData:this.initialConnectScreenData,accountScreenData:this.initialAccountScreenData,confirmScreenData:this.initialConfirmScreenData};this.data=this.getInitialData()}static getInstance(){return n.instance||(n.instance=new n),n.instance}updateAllAccounts(e){this.allAccounts=e,this.accountScreenData.accounts=e}updateStartIndex(e){this.accountScreenData.startIndex=e}updateConnectScreen(e){this.connectScreenData={...this.connectScreenData,...e},this.data.confirmScreenData=null,this.data.accountScreenData=null,this.data.connectScreenData=this.connectScreenData,this.notifyDataUpdate()}updateAccountScreen(e){this.accountScreenData={...this.accountScreenData,...e},this.data.confirmScreenData=null,this.data.accountScreenData=this.accountScreenData,this.notifyDataUpdate()}updateConfirmScreen(e){this.confirmScreenData={...this.confirmScreenData,...e},this.data.accountScreenData=null,this.data.confirmScreenData=this.confirmScreenData,this.notifyDataUpdate()}getAccountScreenData(){return this.data.accountScreenData}getConfirmScreenData(){return this.data.confirmScreenData}getAllAccounts(){return this.allAccounts}subscribeToProviderInit({handleRetry:e,handleCancel:t}){this.eventBus&&(this.eventBus.subscribe("CONNECT_DEVICE",e),this.eventBus.subscribe("CLOSE",t),this.eventBus.subscribe("UI_DISCONNECTED",this.destroy.bind(this)))}unsubscribeFromProviderInit({handleRetry:e,handleCancel:t}){this.eventBus&&(this.eventBus.unsubscribe("CONNECT_DEVICE",e),this.eventBus.unsubscribe("CLOSE",t),this.eventBus.unsubscribe("UI_DISCONNECTED",this.destroy.bind(this)))}subscribeToAuthEvents({handleCancel:e,handleAccessWallet:t,handleGoToPage:a}){this.eventBus&&(this.eventBus.subscribe("CLOSE",e),this.eventBus.subscribe("ACCESS_WALLET",t),this.eventBus.subscribe("GO_TO_PAGE",a))}unsubscribeFromAuthEvents({handleCancel:e,handleAccessWallet:t,handleGoToPage:a}){this.eventBus&&(this.eventBus.unsubscribe("CLOSE",e),this.eventBus.unsubscribe("ACCESS_WALLET",t),this.eventBus.unsubscribe("GO_TO_PAGE",a))}handleClose(){this.anchor?this.anchor?.dispatchEvent(new CustomEvent("ANCHOR_CLOSE",{composed:!1,bubbles:!1})):this.destroy()}resetData(){this.accountScreenData={...this.initialAccountScreenData},this.confirmScreenData={...this.initialConfirmScreenData},this.connectScreenData={...this.initialConnectScreenData},super.resetData()}async setupEventListeners(){this.eventBus&&this.eventBus.subscribe("CLOSE",this.handleClose.bind(this))}};export{c as a};
2
+ //# sourceMappingURL=chunk-BOJYDCZ5.mjs.map
@@ -0,0 +1,2 @@
1
+ import{a as f}from"./chunk-O4PUBLYW.mjs";import{a as g}from"./chunk-WE7YOBO7.mjs";import m from"lodash.isequal";async function k({loginData:u,nativeAuthConfig:o,loginToken:r}){let{address:d,signature:l,...s}=u,a=Object.keys(s).reduce((t,e)=>{let n=s[e];return n!=null&&(t[e]=n.toString()),t},{}),i={...o};if(Object.keys(a).length>0&&(i.extraInfo=a),!m(o,i)){let t=g(r);return await f(i).initialize({noCache:!0,latestBlockInfo:{hash:t?.blockHash??"",timestamp:t?.extraInfo?.timestamp??0}})}return r}export{k as a};
2
+ //# sourceMappingURL=chunk-BQS32EX5.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/providers/DappProvider/helpers/login/helpers/getMultisigLoginToken.ts"],
4
+ "sourcesContent": ["import isEqual from 'lodash.isequal';\nimport { IProvider } from 'providers/types/providerFactory.types';\nimport { decodeLoginToken } from 'services/nativeAuth/helpers/decodeLoginToken';\nimport { nativeAuth } from 'services/nativeAuth/nativeAuth';\nimport { NativeAuthConfigType } from 'services/nativeAuth/nativeAuth.types';\n\nexport async function getMultisigLoginToken({\n loginData,\n nativeAuthConfig,\n loginToken\n}: {\n loginData: Awaited<ReturnType<IProvider['login']>>;\n nativeAuthConfig: NativeAuthConfigType;\n loginToken: string;\n}): Promise<string> {\n const {\n address: _address,\n signature: _signature,\n ...loginResult\n } = loginData;\n\n const extraInfo = Object.keys(loginResult).reduce(\n (acc, key) => {\n const value = loginResult[key];\n if (value != null) {\n acc[key] = value.toString();\n }\n return acc;\n },\n {} as { [key: string]: string }\n );\n\n const modifiedNativeAuthConfig: NativeAuthConfigType = {\n ...nativeAuthConfig\n };\n\n if (Object.keys(extraInfo).length > 0) {\n modifiedNativeAuthConfig.extraInfo = extraInfo;\n }\n\n const isSameConfig = isEqual(nativeAuthConfig, modifiedNativeAuthConfig);\n\n if (!isSameConfig) {\n const existingLoginToken = decodeLoginToken(loginToken);\n const nativeAuthClient = nativeAuth(modifiedNativeAuthConfig);\n const modifiedLoginToken = await nativeAuthClient.initialize({\n noCache: true,\n latestBlockInfo: {\n hash: existingLoginToken?.blockHash ?? '',\n timestamp: existingLoginToken?.extraInfo?.timestamp ?? 0\n }\n });\n return modifiedLoginToken;\n }\n\n return loginToken;\n}\n"],
5
+ "mappings": "kFAAA,OAAOA,MAAa,iBAMpB,eAAsBC,EAAsB,CAC1C,UAAAC,EACA,iBAAAC,EACA,WAAAC,CACF,EAIoB,CAClB,GAAM,CACJ,QAASC,EACT,UAAWC,EACX,GAAGC,CACL,EAAIL,EAEEM,EAAY,OAAO,KAAKD,CAAW,EAAE,OACzC,CAACE,EAAKC,IAAQ,CACZ,IAAMC,EAAQJ,EAAYG,CAAG,EAC7B,OAAIC,GAAS,OACXF,EAAIC,CAAG,EAAIC,EAAM,SAAS,GAErBF,CACT,EACA,CAAC,CACH,EAEMG,EAAiD,CACrD,GAAGT,CACL,EAQA,GANI,OAAO,KAAKK,CAAS,EAAE,OAAS,IAClCI,EAAyB,UAAYJ,GAKnC,CAFiBK,EAAQV,EAAkBS,CAAwB,EAEpD,CACjB,IAAME,EAAqBC,EAAiBX,CAAU,EAStD,OAP2B,MADFY,EAAWJ,CAAwB,EACV,WAAW,CAC3D,QAAS,GACT,gBAAiB,CACf,KAAME,GAAoB,WAAa,GACvC,UAAWA,GAAoB,WAAW,WAAa,CACzD,CACF,CAAC,CAEH,CAEA,OAAOV,CACT",
6
+ "names": ["isEqual", "getMultisigLoginToken", "loginData", "nativeAuthConfig", "loginToken", "_address", "_signature", "loginResult", "extraInfo", "acc", "key", "value", "modifiedNativeAuthConfig", "isEqual", "existingLoginToken", "decodeLoginToken", "nativeAuth"]
7
+ }