@dynamic-labs-sdk/client 0.1.0-alpha.8 → 0.1.0

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 (334) hide show
  1. package/CHANGELOG.md +322 -0
  2. package/InvalidParamError.cjs.js +2 -2
  3. package/InvalidParamError.esm.js +1 -1
  4. package/{refreshUser.cjs.js → NotWaasWalletAccountError.cjs.js} +18 -18
  5. package/{refreshUser.esm.js → NotWaasWalletAccountError.esm.js} +14 -14
  6. package/constants.cjs.js +493 -9
  7. package/constants.cjs2.js +15 -0
  8. package/constants.esm.js +468 -7
  9. package/constants.esm2.js +11 -0
  10. package/core.cjs.js +93 -39
  11. package/core.esm.js +47 -11
  12. package/filterDuplicates.cjs.js +8 -0
  13. package/filterDuplicates.esm.js +6 -0
  14. package/getNetworkProviderFromNetworkId.cjs.js +173 -21
  15. package/getNetworkProviderFromNetworkId.esm.js +146 -4
  16. package/getSignedSessionId.cjs.js +6 -6
  17. package/getSignedSessionId.esm.js +1 -1
  18. package/{getWalletProviderByKey.cjs.js → getVerifiedCredentialForWalletAccount.cjs.js} +176 -48
  19. package/{getWalletProviderByKey.esm.js → getVerifiedCredentialForWalletAccount.esm.js} +159 -36
  20. package/index.cjs.js +1088 -493
  21. package/index.esm.js +858 -279
  22. package/isMfaRequiredForAction.cjs.js +8 -8
  23. package/isMfaRequiredForAction.esm.js +1 -1
  24. package/package.json +7 -7
  25. package/src/client/core/createCore/createCore.d.ts.map +1 -1
  26. package/src/client/core/createCore/getInitialState.d.ts.map +1 -1
  27. package/src/client/core/types/DynamicCore.d.ts +8 -0
  28. package/src/client/core/types/DynamicCore.d.ts.map +1 -1
  29. package/src/client/createDynamicClient/createDynamicClient.d.ts.map +1 -1
  30. package/src/client/types/DynamicClientConfig.d.ts +6 -1
  31. package/src/client/types/DynamicClientConfig.d.ts.map +1 -1
  32. package/src/constants.d.ts +1 -0
  33. package/src/constants.d.ts.map +1 -1
  34. package/src/errors/APIError/APIError.d.ts.map +1 -1
  35. package/src/errors/InvalidWalletProviderKeyError.d.ts +5 -0
  36. package/src/errors/InvalidWalletProviderKeyError.d.ts.map +1 -0
  37. package/src/errors/MissingUserVerificationError.d.ts +12 -0
  38. package/src/errors/MissingUserVerificationError.d.ts.map +1 -0
  39. package/src/errors/NoSmartWalletAccountSignerFoundError.d.ts +5 -0
  40. package/src/errors/NoSmartWalletAccountSignerFoundError.d.ts.map +1 -0
  41. package/src/errors/WalletAccountNotSelectedError.d.ts.map +1 -1
  42. package/src/exports/core.d.ts +102 -2
  43. package/src/exports/core.d.ts.map +1 -1
  44. package/src/exports/index.d.ts +28 -7
  45. package/src/exports/index.d.ts.map +1 -1
  46. package/src/exports/waas.d.ts +2 -0
  47. package/src/exports/waas.d.ts.map +1 -1
  48. package/src/modules/auth/createVisit/createVisit.d.ts.map +1 -1
  49. package/src/modules/auth/logout/logout.d.ts.map +1 -1
  50. package/src/modules/auth/passkeys/getPasskeyAuthenticationOptions/getPasskeyAuthenticationOptions.d.ts +4 -1
  51. package/src/modules/auth/passkeys/getPasskeyAuthenticationOptions/getPasskeyAuthenticationOptions.d.ts.map +1 -1
  52. package/src/modules/auth/passkeys/getPasskeyAuthenticationSignInOptions/getPasskeyAuthenticationSignInOptions.d.ts +4 -1
  53. package/src/modules/auth/passkeys/getPasskeyAuthenticationSignInOptions/getPasskeyAuthenticationSignInOptions.d.ts.map +1 -1
  54. package/src/modules/auth/passkeys/signInWithPasskey/signInWithPasskey.d.ts +4 -1
  55. package/src/modules/auth/passkeys/signInWithPasskey/signInWithPasskey.d.ts.map +1 -1
  56. package/src/modules/auth/social/getUserSocialAccounts/getUserSocialAccounts.d.ts +9 -0
  57. package/src/modules/auth/social/getUserSocialAccounts/getUserSocialAccounts.d.ts.map +1 -0
  58. package/src/modules/auth/social/getUserSocialAccounts/index.d.ts +2 -0
  59. package/src/modules/auth/social/getUserSocialAccounts/index.d.ts.map +1 -0
  60. package/src/modules/auth/social/oauth/{signInWithSocialRedirect/signInWithSocialRedirect.d.ts → authenticateWithSocial/authenticateWithSocial.d.ts} +5 -3
  61. package/src/modules/auth/social/oauth/authenticateWithSocial/authenticateWithSocial.d.ts.map +1 -0
  62. package/src/modules/auth/social/oauth/authenticateWithSocial/buildOAuthUrl/addOAuthUrlParams/addOAuthUrlParams.d.ts.map +1 -0
  63. package/src/modules/auth/social/oauth/authenticateWithSocial/buildOAuthUrl/addOAuthUrlParams/index.d.ts.map +1 -0
  64. package/src/modules/auth/social/oauth/authenticateWithSocial/buildOAuthUrl/buildOAuthUrl.d.ts.map +1 -0
  65. package/src/modules/auth/social/oauth/authenticateWithSocial/buildOAuthUrl/getOAuthBaseUrl/getOAuthBaseUrl.d.ts.map +1 -0
  66. package/src/modules/auth/social/oauth/authenticateWithSocial/buildOAuthUrl/getOAuthBaseUrl/index.d.ts.map +1 -0
  67. package/src/modules/auth/social/oauth/{signInWithSocialRedirect → authenticateWithSocial}/buildOAuthUrl/index.d.ts.map +1 -1
  68. package/src/modules/auth/social/oauth/authenticateWithSocial/index.d.ts +2 -0
  69. package/src/modules/auth/social/oauth/{signInWithSocialRedirect → authenticateWithSocial}/index.d.ts.map +1 -1
  70. package/src/modules/auth/social/oauth/{completeSocialRedirectSignIn/completeSocialRedirectSignIn.d.ts → completeSocialAuthentication/completeSocialAuthentication.d.ts} +3 -3
  71. package/src/modules/auth/social/oauth/completeSocialAuthentication/completeSocialAuthentication.d.ts.map +1 -0
  72. package/src/modules/auth/social/oauth/completeSocialAuthentication/index.d.ts +2 -0
  73. package/src/modules/auth/social/oauth/{completeSocialRedirectSignIn → completeSocialAuthentication}/index.d.ts.map +1 -1
  74. package/src/modules/auth/social/oauth/redirectStateStorageSchema/index.d.ts +1 -1
  75. package/src/modules/auth/social/oauth/redirectStateStorageSchema/index.d.ts.map +1 -1
  76. package/src/modules/auth/social/oauth/redirectStateStorageSchema/redirectStateStorageSchema.d.ts +1 -1
  77. package/src/modules/auth/social/oauth/redirectStateStorageSchema/redirectStateStorageSchema.d.ts.map +1 -1
  78. package/src/modules/auth/social/oauth/unlinkSocialAccount/index.d.ts +2 -0
  79. package/src/modules/auth/social/oauth/unlinkSocialAccount/index.d.ts.map +1 -0
  80. package/src/modules/auth/social/oauth/unlinkSocialAccount/unlinkSocialAccount.d.ts +14 -0
  81. package/src/modules/auth/social/oauth/unlinkSocialAccount/unlinkSocialAccount.d.ts.map +1 -0
  82. package/src/modules/auth/social/removeDynamicOauthParamsFromUrl/index.d.ts +2 -0
  83. package/src/modules/auth/social/removeDynamicOauthParamsFromUrl/index.d.ts.map +1 -0
  84. package/src/modules/auth/social/removeDynamicOauthParamsFromUrl/removeDynamicOauthParamsFromUrl.d.ts +2 -0
  85. package/src/modules/auth/social/removeDynamicOauthParamsFromUrl/removeDynamicOauthParamsFromUrl.d.ts.map +1 -0
  86. package/src/modules/auth/social/social.types.d.ts +9 -0
  87. package/src/modules/auth/social/social.types.d.ts.map +1 -1
  88. package/src/modules/auth/updateAuthFromVerifyResponse/checkAndRaiseWalletAccountsChangedEvent/checkAndRaiseWalletAccountsChangedEvent.d.ts.map +1 -1
  89. package/src/modules/auth/updateAuthFromVerifyResponse/updateAuthFromVerifyResponse.d.ts.map +1 -1
  90. package/src/modules/balances/getMultichainBalances/getMultichainBalances.d.ts +1 -2
  91. package/src/modules/balances/getMultichainBalances/getMultichainBalances.d.ts.map +1 -1
  92. package/src/modules/balances/getMultichainBalances/index.d.ts +1 -1
  93. package/src/modules/balances/getMultichainBalances/index.d.ts.map +1 -1
  94. package/src/modules/funding/coinbase/addCoinbaseOnrampOrderEventListener/addCoinbaseOnrampOrderEventListener.d.ts +18 -0
  95. package/src/modules/funding/coinbase/addCoinbaseOnrampOrderEventListener/addCoinbaseOnrampOrderEventListener.d.ts.map +1 -0
  96. package/src/modules/funding/coinbase/addCoinbaseOnrampOrderEventListener/index.d.ts +2 -0
  97. package/src/modules/funding/coinbase/addCoinbaseOnrampOrderEventListener/index.d.ts.map +1 -0
  98. package/src/modules/funding/coinbase/coinbase.types.d.ts +269 -0
  99. package/src/modules/funding/coinbase/coinbase.types.d.ts.map +1 -0
  100. package/src/modules/funding/coinbase/createCoinbaseOnrampOrder/createCoinbaseOnrampOrder.d.ts +11 -0
  101. package/src/modules/funding/coinbase/createCoinbaseOnrampOrder/createCoinbaseOnrampOrder.d.ts.map +1 -0
  102. package/src/modules/funding/coinbase/createCoinbaseOnrampOrder/index.d.ts +2 -0
  103. package/src/modules/funding/coinbase/createCoinbaseOnrampOrder/index.d.ts.map +1 -0
  104. package/src/modules/funding/coinbase/getCoinbaseBuyUrl/getCoinbaseBuyUrl.d.ts +10 -0
  105. package/src/modules/funding/coinbase/getCoinbaseBuyUrl/getCoinbaseBuyUrl.d.ts.map +1 -0
  106. package/src/modules/funding/coinbase/getCoinbaseBuyUrl/index.d.ts +2 -0
  107. package/src/modules/funding/coinbase/getCoinbaseBuyUrl/index.d.ts.map +1 -0
  108. package/src/modules/funding/coinbase/getMissingVerificationForCoinbaseOnrampOrder/getMissingVerificationForCoinbaseOnrampOrder.d.ts +23 -0
  109. package/src/modules/funding/coinbase/getMissingVerificationForCoinbaseOnrampOrder/getMissingVerificationForCoinbaseOnrampOrder.d.ts.map +1 -0
  110. package/src/modules/funding/coinbase/getMissingVerificationForCoinbaseOnrampOrder/index.d.ts +2 -0
  111. package/src/modules/funding/coinbase/getMissingVerificationForCoinbaseOnrampOrder/index.d.ts.map +1 -0
  112. package/src/modules/funding/coinbase/utils/validateUserCredentialsForCoinbaseOnrampOrder/index.d.ts +2 -0
  113. package/src/modules/funding/coinbase/utils/validateUserCredentialsForCoinbaseOnrampOrder/index.d.ts.map +1 -0
  114. package/src/modules/funding/coinbase/utils/validateUserCredentialsForCoinbaseOnrampOrder/validateUserCredentialsForCoinbaseOnrampOrder.d.ts +4 -0
  115. package/src/modules/funding/coinbase/utils/validateUserCredentialsForCoinbaseOnrampOrder/validateUserCredentialsForCoinbaseOnrampOrder.d.ts.map +1 -0
  116. package/src/modules/funding/cryptoDotCom/createCryptoDotComPayment/createCryptoDotComPayment.d.ts +10 -0
  117. package/src/modules/funding/cryptoDotCom/createCryptoDotComPayment/createCryptoDotComPayment.d.ts.map +1 -0
  118. package/src/modules/funding/cryptoDotCom/createCryptoDotComPayment/index.d.ts +2 -0
  119. package/src/modules/funding/cryptoDotCom/createCryptoDotComPayment/index.d.ts.map +1 -0
  120. package/src/modules/funding/cryptoDotCom/cryptoDotCom.types.d.ts +8 -0
  121. package/src/modules/funding/cryptoDotCom/cryptoDotCom.types.d.ts.map +1 -0
  122. package/src/modules/initializeClient/consts.d.ts +5 -0
  123. package/src/modules/initializeClient/consts.d.ts.map +1 -0
  124. package/src/modules/initializeClient/initializeClient.d.ts.map +1 -1
  125. package/src/modules/initializeClient/waitForClientInitialized/index.d.ts +2 -0
  126. package/src/modules/initializeClient/waitForClientInitialized/index.d.ts.map +1 -0
  127. package/src/modules/initializeClient/waitForClientInitialized/waitForClientInitialized.d.ts +8 -0
  128. package/src/modules/initializeClient/waitForClientInitialized/waitForClientInitialized.d.ts.map +1 -0
  129. package/src/modules/initializeClient/waitForProjectSettings/index.d.ts +2 -0
  130. package/src/modules/initializeClient/waitForProjectSettings/index.d.ts.map +1 -0
  131. package/src/modules/initializeClient/waitForProjectSettings/waitForProjectSettings.d.ts +3 -0
  132. package/src/modules/initializeClient/waitForProjectSettings/waitForProjectSettings.d.ts.map +1 -0
  133. package/src/modules/mfa/authenticatePasskeyMFA/authenticatePasskeyMFA.d.ts +2 -1
  134. package/src/modules/mfa/authenticatePasskeyMFA/authenticatePasskeyMFA.d.ts.map +1 -1
  135. package/src/modules/otp/verifyOTP/verifyOTP.d.ts +3 -2
  136. package/src/modules/otp/verifyOTP/verifyOTP.d.ts.map +1 -1
  137. package/src/modules/projectSettings/fetchProjectSettings/fetchProjectSettings.d.ts.map +1 -1
  138. package/src/modules/projectSettings/fetchProjectSettings/projectSettingsExpirationScheme.d.ts +1 -1
  139. package/src/modules/projectSettings/fetchProjectSettings/projectSettingsExpirationScheme.d.ts.map +1 -1
  140. package/src/modules/sessionKeys/generateSessionKeys/generateSessionKeys.d.ts.map +1 -1
  141. package/src/modules/storageSync/hydrateStateWithStorage/hydrateStateWithStorage.d.ts.map +1 -1
  142. package/src/modules/storageSync/schema.d.ts +15 -2
  143. package/src/modules/storageSync/schema.d.ts.map +1 -1
  144. package/src/modules/storageSync/syncStateWithStorage/syncStateWithStorage.d.ts.map +1 -1
  145. package/src/modules/user/deleteUser/deleteUser.d.ts +11 -0
  146. package/src/modules/user/deleteUser/deleteUser.d.ts.map +1 -0
  147. package/src/modules/user/deleteUser/index.d.ts +2 -0
  148. package/src/modules/user/deleteUser/index.d.ts.map +1 -0
  149. package/src/modules/waas/constants.d.ts +2 -2
  150. package/src/modules/waas/constants.d.ts.map +1 -1
  151. package/src/modules/waas/createWaasProvider/createWaasProvider.d.ts.map +1 -1
  152. package/src/modules/waas/createWaasWalletAccounts/createWaasWalletAccounts.d.ts.map +1 -1
  153. package/src/modules/waas/delegateWaasKeyShares/delegateWaasKeyShares.d.ts.map +1 -1
  154. package/src/modules/waas/getWaasWalletProviderByChain/getWaasWalletProviderByChain.d.ts.map +1 -1
  155. package/src/modules/waas/hasDelegatedAccess/hasDelegatedAccess.d.ts +14 -0
  156. package/src/modules/waas/hasDelegatedAccess/hasDelegatedAccess.d.ts.map +1 -0
  157. package/src/modules/waas/hasDelegatedAccess/index.d.ts +2 -0
  158. package/src/modules/waas/hasDelegatedAccess/index.d.ts.map +1 -0
  159. package/src/modules/waas/isWaasWalletAccount/isWaasWalletAccount.d.ts.map +1 -1
  160. package/src/modules/waas/isWaasWalletProvider/isWaasWalletProvider.d.ts.map +1 -1
  161. package/src/modules/waas/revokeWaasDelegation/index.d.ts +2 -0
  162. package/src/modules/waas/revokeWaasDelegation/index.d.ts.map +1 -0
  163. package/src/modules/waas/revokeWaasDelegation/revokeWaasDelegation.d.ts +16 -0
  164. package/src/modules/waas/revokeWaasDelegation/revokeWaasDelegation.d.ts.map +1 -0
  165. package/src/modules/waas/waas.types.d.ts +4 -0
  166. package/src/modules/waas/waas.types.d.ts.map +1 -1
  167. package/src/modules/wallets/connectWithWalletProvider/connectWithWalletProvider.d.ts +4 -3
  168. package/src/modules/wallets/connectWithWalletProvider/connectWithWalletProvider.d.ts.map +1 -1
  169. package/src/modules/wallets/constants.d.ts.map +1 -1
  170. package/src/modules/wallets/getAvailableWalletProvidersData/getAvailableWalletProvidersData.d.ts +2 -6
  171. package/src/modules/wallets/getAvailableWalletProvidersData/getAvailableWalletProvidersData.d.ts.map +1 -1
  172. package/src/modules/wallets/getOwnerWalletAccountForSmartWalletAccount/getOwnerWalletAccountForSmartWalletAccount.d.ts +7 -0
  173. package/src/modules/wallets/getOwnerWalletAccountForSmartWalletAccount/getOwnerWalletAccountForSmartWalletAccount.d.ts.map +1 -0
  174. package/src/modules/wallets/getOwnerWalletAccountForSmartWalletAccount/index.d.ts +2 -0
  175. package/src/modules/wallets/getOwnerWalletAccountForSmartWalletAccount/index.d.ts.map +1 -0
  176. package/src/modules/wallets/getWalletAccountAddressByType/getWalletAccountAddressByType.d.ts +8 -0
  177. package/src/modules/wallets/getWalletAccountAddressByType/getWalletAccountAddressByType.d.ts.map +1 -0
  178. package/src/modules/wallets/getWalletAccountAddressByType/index.d.ts +2 -0
  179. package/src/modules/wallets/getWalletAccountAddressByType/index.d.ts.map +1 -0
  180. package/src/modules/wallets/getWalletAccounts/getWalletAccounts.d.ts.map +1 -1
  181. package/src/modules/wallets/getWalletAccounts/getWalletAccountsFromState/getWalletAccountsFromState.d.ts +9 -1
  182. package/src/modules/wallets/getWalletAccounts/getWalletAccountsFromState/getWalletAccountsFromState.d.ts.map +1 -1
  183. package/src/modules/wallets/getWalletProviderDataByKey/getWalletProviderDataByKey.d.ts +14 -0
  184. package/src/modules/wallets/getWalletProviderDataByKey/getWalletProviderDataByKey.d.ts.map +1 -0
  185. package/src/modules/wallets/getWalletProviderDataByKey/index.d.ts +2 -0
  186. package/src/modules/wallets/getWalletProviderDataByKey/index.d.ts.map +1 -0
  187. package/src/modules/wallets/isWalletAccountVerified/index.d.ts +2 -0
  188. package/src/modules/wallets/isWalletAccountVerified/index.d.ts.map +1 -0
  189. package/src/modules/wallets/isWalletAccountVerified/isWalletAccountVerified.d.ts +13 -0
  190. package/src/modules/wallets/isWalletAccountVerified/isWalletAccountVerified.d.ts.map +1 -0
  191. package/src/modules/wallets/networks/getNetworkDataForNetworkId/getNetworkDataForNetworkId.d.ts +10 -0
  192. package/src/modules/wallets/networks/getNetworkDataForNetworkId/getNetworkDataForNetworkId.d.ts.map +1 -0
  193. package/src/modules/wallets/networks/getNetworkDataForNetworkId/index.d.ts +2 -0
  194. package/src/modules/wallets/networks/getNetworkDataForNetworkId/index.d.ts.map +1 -0
  195. package/src/modules/wallets/networks/getTransactionHistory/getTransactionHistory.d.ts +26 -0
  196. package/src/modules/wallets/networks/getTransactionHistory/getTransactionHistory.d.ts.map +1 -0
  197. package/src/modules/wallets/networks/getTransactionHistory/index.d.ts +3 -0
  198. package/src/modules/wallets/networks/getTransactionHistory/index.d.ts.map +1 -0
  199. package/src/modules/wallets/networks/lastKnownNetworkRegistry/createLastKnownNetworkRegistry/createLastKnownNetworkRegistry.d.ts.map +1 -1
  200. package/src/modules/wallets/networks/lastKnownNetworkRegistry/createLastKnownNetworkRegistry/schema.d.ts +1 -1
  201. package/src/modules/wallets/networks/lastKnownNetworkRegistry/createLastKnownNetworkRegistry/schema.d.ts.map +1 -1
  202. package/src/modules/wallets/primaryWalletAccount/selectPrimaryWalletAccount/selectPrimaryWalletAccount.d.ts.map +1 -1
  203. package/src/modules/wallets/proveWalletAccountOwnership/proveWalletAccountOwnership.d.ts +1 -1
  204. package/src/modules/wallets/proveWalletAccountOwnership/proveWalletAccountOwnership.d.ts.map +1 -1
  205. package/src/modules/wallets/removeWalletAccount/removeWalletAccount.d.ts.map +1 -1
  206. package/src/modules/wallets/unverifiedWalletAccounts/removeUnverifiedWalletAccount/removeUnverifiedWalletAccount.d.ts.map +1 -1
  207. package/src/modules/wallets/unverifiedWalletAccounts/schema.d.ts +5 -0
  208. package/src/modules/wallets/unverifiedWalletAccounts/schema.d.ts.map +1 -1
  209. package/src/modules/wallets/unverifiedWalletAccounts/setUnverifiedWalletAccounts/index.d.ts +2 -0
  210. package/src/modules/wallets/unverifiedWalletAccounts/{setUnverifiedWalletAccount → setUnverifiedWalletAccounts}/index.d.ts.map +1 -1
  211. package/src/modules/wallets/unverifiedWalletAccounts/setUnverifiedWalletAccounts/setUnverifiedWalletAccounts.d.ts +13 -0
  212. package/src/modules/wallets/unverifiedWalletAccounts/setUnverifiedWalletAccounts/setUnverifiedWalletAccounts.d.ts.map +1 -0
  213. package/src/modules/wallets/utils/convertUnverifiedWalletAccountToWalletAccount/convertUnverifiedWalletAccountToWalletAccount.d.ts +5 -1
  214. package/src/modules/wallets/utils/convertUnverifiedWalletAccountToWalletAccount/convertUnverifiedWalletAccountToWalletAccount.d.ts.map +1 -1
  215. package/src/modules/wallets/utils/convertVerifiedCredentialToWalletAccount/convertVerifiedCredentialToWalletAccount.d.ts +6 -1
  216. package/src/modules/wallets/utils/convertVerifiedCredentialToWalletAccount/convertVerifiedCredentialToWalletAccount.d.ts.map +1 -1
  217. package/src/modules/wallets/utils/formatSignInMessage/formatSignInMessage.d.ts +9 -7
  218. package/src/modules/wallets/utils/formatSignInMessage/formatSignInMessage.d.ts.map +1 -1
  219. package/src/modules/wallets/utils/formatWalletAccountId/formatWalletAccountId.d.ts +9 -0
  220. package/src/modules/wallets/utils/formatWalletAccountId/formatWalletAccountId.d.ts.map +1 -0
  221. package/src/modules/wallets/utils/formatWalletAccountId/index.d.ts +2 -0
  222. package/src/modules/wallets/utils/formatWalletAccountId/index.d.ts.map +1 -0
  223. package/src/modules/wallets/utils/formatWalletProviderKey/formatWalletProviderKey.d.ts +17 -2
  224. package/src/modules/wallets/utils/formatWalletProviderKey/formatWalletProviderKey.d.ts.map +1 -1
  225. package/src/modules/wallets/utils/getAddressesWithTypesFromConnectionResult/getAddressesWithTypesFromConnectionResult.d.ts +4 -0
  226. package/src/modules/wallets/utils/getAddressesWithTypesFromConnectionResult/getAddressesWithTypesFromConnectionResult.d.ts.map +1 -0
  227. package/src/modules/wallets/utils/getAddressesWithTypesFromConnectionResult/index.d.ts +2 -0
  228. package/src/modules/wallets/utils/getAddressesWithTypesFromConnectionResult/index.d.ts.map +1 -0
  229. package/src/modules/wallets/utils/getChainIdForAccountVerification/getChainIdForAccountVerification.d.ts.map +1 -1
  230. package/src/modules/wallets/utils/getInjectedProviderFromWindow/getInjectedProviderFromWindow.d.ts +2 -0
  231. package/src/modules/wallets/utils/getInjectedProviderFromWindow/getInjectedProviderFromWindow.d.ts.map +1 -0
  232. package/src/modules/wallets/utils/getInjectedProviderFromWindow/index.d.ts +2 -0
  233. package/src/modules/wallets/utils/getInjectedProviderFromWindow/index.d.ts.map +1 -0
  234. package/src/modules/wallets/utils/getSignInMessage/createSignInMessageStatement/createSignInMessageStatement.d.ts +3 -0
  235. package/src/modules/wallets/utils/getSignInMessage/createSignInMessageStatement/createSignInMessageStatement.d.ts.map +1 -0
  236. package/src/modules/wallets/utils/getSignInMessage/createSignInMessageStatement/index.d.ts +2 -0
  237. package/src/modules/wallets/utils/getSignInMessage/createSignInMessageStatement/index.d.ts.map +1 -0
  238. package/src/modules/wallets/utils/getSignInMessage/getSignInMessage.d.ts.map +1 -1
  239. package/src/modules/wallets/utils/getVerifiedCredentialForWalletAccount/getVerifiedCredentialForWalletAccount.d.ts +8 -0
  240. package/src/modules/wallets/utils/getVerifiedCredentialForWalletAccount/getVerifiedCredentialForWalletAccount.d.ts.map +1 -0
  241. package/src/modules/wallets/utils/getVerifiedCredentialForWalletAccount/index.d.ts +2 -0
  242. package/src/modules/wallets/utils/getVerifiedCredentialForWalletAccount/index.d.ts.map +1 -0
  243. package/src/modules/wallets/utils/normalizeWalletNameWithChain/index.d.ts +2 -0
  244. package/src/modules/wallets/utils/normalizeWalletNameWithChain/index.d.ts.map +1 -0
  245. package/src/modules/wallets/utils/normalizeWalletNameWithChain/normalizeWalletNameWithChain.d.ts +12 -0
  246. package/src/modules/wallets/utils/normalizeWalletNameWithChain/normalizeWalletNameWithChain.d.ts.map +1 -0
  247. package/src/modules/wallets/verifySignInMessage/index.d.ts +2 -0
  248. package/src/modules/wallets/verifySignInMessage/index.d.ts.map +1 -0
  249. package/src/modules/wallets/verifySignInMessage/verifySignInMessage.d.ts +22 -0
  250. package/src/modules/wallets/verifySignInMessage/verifySignInMessage.d.ts.map +1 -0
  251. package/src/modules/wallets/verifyWalletAccount/verifyWalletAccount.d.ts.map +1 -1
  252. package/src/modules/wallets/walletAccount/index.d.ts +1 -1
  253. package/src/modules/wallets/walletAccount/index.d.ts.map +1 -1
  254. package/src/modules/wallets/walletAccount/walletAccount.types.d.ts +8 -0
  255. package/src/modules/wallets/walletAccount/walletAccount.types.d.ts.map +1 -1
  256. package/src/modules/wallets/walletProvider/events/createWalletProviderEventEmitter/createWalletProviderEventEmitter.d.ts +7 -5
  257. package/src/modules/wallets/walletProvider/events/createWalletProviderEventEmitter/createWalletProviderEventEmitter.d.ts.map +1 -1
  258. package/src/modules/wallets/walletProvider/index.d.ts +1 -1
  259. package/src/modules/wallets/walletProvider/index.d.ts.map +1 -1
  260. package/src/modules/wallets/walletProvider/splitWalletProviderKey/index.d.ts +2 -0
  261. package/src/modules/wallets/walletProvider/splitWalletProviderKey/index.d.ts.map +1 -0
  262. package/src/modules/wallets/walletProvider/splitWalletProviderKey/splitWalletProviderKey.d.ts +9 -0
  263. package/src/modules/wallets/walletProvider/splitWalletProviderKey/splitWalletProviderKey.d.ts.map +1 -0
  264. package/src/modules/wallets/walletProvider/walletProvider.types.d.ts +34 -12
  265. package/src/modules/wallets/walletProvider/walletProvider.types.d.ts.map +1 -1
  266. package/src/modules/wallets/walletProvider/walletProviderKeyMap/getWalletProviderKeyFromVerifiedCredential/getWalletProviderKeyFromVerifiedCredential.d.ts +10 -0
  267. package/src/modules/wallets/walletProvider/walletProviderKeyMap/getWalletProviderKeyFromVerifiedCredential/getWalletProviderKeyFromVerifiedCredential.d.ts.map +1 -0
  268. package/src/modules/wallets/walletProvider/walletProviderKeyMap/getWalletProviderKeyFromVerifiedCredential/index.d.ts +2 -0
  269. package/src/modules/wallets/walletProvider/walletProviderKeyMap/getWalletProviderKeyFromVerifiedCredential/index.d.ts.map +1 -0
  270. package/src/modules/wallets/walletProvider/walletProviderKeyMap/schema.d.ts +3 -0
  271. package/src/modules/wallets/walletProvider/walletProviderKeyMap/schema.d.ts.map +1 -0
  272. package/src/modules/wallets/walletProvider/walletProviderKeyMap/state.d.ts +16 -0
  273. package/src/modules/wallets/walletProvider/walletProviderKeyMap/state.d.ts.map +1 -0
  274. package/src/modules/wallets/walletProvider/walletProviderKeyMap/updateWalletProviderKeysForVerifiedCredentials/index.d.ts +2 -0
  275. package/src/modules/wallets/walletProvider/walletProviderKeyMap/updateWalletProviderKeysForVerifiedCredentials/index.d.ts.map +1 -0
  276. package/src/modules/wallets/walletProvider/walletProviderKeyMap/updateWalletProviderKeysForVerifiedCredentials/updateWalletProviderKeysForVerifiedCredentials.d.ts +7 -0
  277. package/src/modules/wallets/walletProvider/walletProviderKeyMap/updateWalletProviderKeysForVerifiedCredentials/updateWalletProviderKeysForVerifiedCredentials.d.ts.map +1 -0
  278. package/src/modules/wallets/walletProvider/walletProviderKeyMap/walletProviderKeyMap.types.d.ts +12 -0
  279. package/src/modules/wallets/walletProvider/walletProviderKeyMap/walletProviderKeyMap.types.d.ts.map +1 -0
  280. package/src/modules/wallets/walletProviderRegistry/createWalletProviderRegistry/createWalletProviderRegistry.d.ts.map +1 -1
  281. package/src/modules/wallets/walletProviderRegistry/events.d.ts +6 -0
  282. package/src/modules/wallets/walletProviderRegistry/events.d.ts.map +1 -1
  283. package/src/modules/wallets/walletProviderRegistry/walletProviderRegistry.types.d.ts +18 -0
  284. package/src/modules/wallets/walletProviderRegistry/walletProviderRegistry.types.d.ts.map +1 -1
  285. package/src/services/asyncTrack/asyncTrack.types.d.ts +5 -1
  286. package/src/services/asyncTrack/asyncTrack.types.d.ts.map +1 -1
  287. package/src/services/asyncTrack/createAsyncTrack.d.ts.map +1 -1
  288. package/src/services/storage/index.d.ts +1 -1
  289. package/src/services/storage/index.d.ts.map +1 -1
  290. package/src/utils/debouncedMutex/createDebouncedMutex/createDebouncedMutex.d.ts +3 -0
  291. package/src/utils/debouncedMutex/createDebouncedMutex/createDebouncedMutex.d.ts.map +1 -0
  292. package/src/utils/debouncedMutex/createDebouncedMutex/index.d.ts +2 -0
  293. package/src/utils/debouncedMutex/createDebouncedMutex/index.d.ts.map +1 -0
  294. package/src/utils/debouncedMutex/debouncedMutex.types.d.ts +39 -0
  295. package/src/utils/debouncedMutex/debouncedMutex.types.d.ts.map +1 -0
  296. package/src/utils/debouncedMutex/index.d.ts +2 -0
  297. package/src/utils/debouncedMutex/index.d.ts.map +1 -0
  298. package/src/utils/isMobile/index.d.ts +2 -0
  299. package/src/utils/isMobile/index.d.ts.map +1 -0
  300. package/src/utils/isMobile/isMobile.d.ts +20 -0
  301. package/src/utils/isMobile/isMobile.d.ts.map +1 -0
  302. package/src/utils/retryOnFail/retryOnFail.d.ts.map +1 -1
  303. package/waas.cjs.js +88 -39
  304. package/waas.esm.js +63 -16
  305. package/waasCore.cjs.js +21 -9
  306. package/waasCore.esm.js +15 -3
  307. package/getChainFromVerifiedCredentialChain.cjs.js +0 -473
  308. package/getChainFromVerifiedCredentialChain.esm.js +0 -447
  309. package/src/modules/auth/social/oauth/completeSocialRedirectSignIn/completeSocialRedirectSignIn.d.ts.map +0 -1
  310. package/src/modules/auth/social/oauth/completeSocialRedirectSignIn/index.d.ts +0 -2
  311. package/src/modules/auth/social/oauth/signInWithSocialRedirect/buildOAuthUrl/addOAuthUrlParams/addOAuthUrlParams.d.ts.map +0 -1
  312. package/src/modules/auth/social/oauth/signInWithSocialRedirect/buildOAuthUrl/addOAuthUrlParams/index.d.ts.map +0 -1
  313. package/src/modules/auth/social/oauth/signInWithSocialRedirect/buildOAuthUrl/buildOAuthUrl.d.ts.map +0 -1
  314. package/src/modules/auth/social/oauth/signInWithSocialRedirect/buildOAuthUrl/getOAuthBaseUrl/getOAuthBaseUrl.d.ts.map +0 -1
  315. package/src/modules/auth/social/oauth/signInWithSocialRedirect/buildOAuthUrl/getOAuthBaseUrl/index.d.ts.map +0 -1
  316. package/src/modules/auth/social/oauth/signInWithSocialRedirect/index.d.ts +0 -2
  317. package/src/modules/auth/social/oauth/signInWithSocialRedirect/signInWithSocialRedirect.d.ts.map +0 -1
  318. package/src/modules/wallets/unverifiedWalletAccounts/addUnverifiedWalletAccounts/addUnverifiedWalletAccounts.d.ts +0 -11
  319. package/src/modules/wallets/unverifiedWalletAccounts/addUnverifiedWalletAccounts/addUnverifiedWalletAccounts.d.ts.map +0 -1
  320. package/src/modules/wallets/unverifiedWalletAccounts/addUnverifiedWalletAccounts/index.d.ts +0 -2
  321. package/src/modules/wallets/unverifiedWalletAccounts/addUnverifiedWalletAccounts/index.d.ts.map +0 -1
  322. package/src/modules/wallets/unverifiedWalletAccounts/setUnverifiedWalletAccount/index.d.ts +0 -2
  323. package/src/modules/wallets/unverifiedWalletAccounts/setUnverifiedWalletAccount/setUnverifiedWalletAccount.d.ts +0 -11
  324. package/src/modules/wallets/unverifiedWalletAccounts/setUnverifiedWalletAccount/setUnverifiedWalletAccount.d.ts.map +0 -1
  325. package/src/modules/wallets/utils/createWalletAccountId/createWalletAccountId.d.ts +0 -3
  326. package/src/modules/wallets/utils/createWalletAccountId/createWalletAccountId.d.ts.map +0 -1
  327. package/src/modules/wallets/utils/createWalletAccountId/index.d.ts +0 -2
  328. package/src/modules/wallets/utils/createWalletAccountId/index.d.ts.map +0 -1
  329. /package/src/modules/auth/social/oauth/{signInWithSocialRedirect → authenticateWithSocial}/buildOAuthUrl/addOAuthUrlParams/addOAuthUrlParams.d.ts +0 -0
  330. /package/src/modules/auth/social/oauth/{signInWithSocialRedirect → authenticateWithSocial}/buildOAuthUrl/addOAuthUrlParams/index.d.ts +0 -0
  331. /package/src/modules/auth/social/oauth/{signInWithSocialRedirect → authenticateWithSocial}/buildOAuthUrl/buildOAuthUrl.d.ts +0 -0
  332. /package/src/modules/auth/social/oauth/{signInWithSocialRedirect → authenticateWithSocial}/buildOAuthUrl/getOAuthBaseUrl/getOAuthBaseUrl.d.ts +0 -0
  333. /package/src/modules/auth/social/oauth/{signInWithSocialRedirect → authenticateWithSocial}/buildOAuthUrl/getOAuthBaseUrl/index.d.ts +0 -0
  334. /package/src/modules/auth/social/oauth/{signInWithSocialRedirect → authenticateWithSocial}/buildOAuthUrl/index.d.ts +0 -0
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var getChainFromVerifiedCredentialChain = require('./getChainFromVerifiedCredentialChain.cjs.js');
3
+ var constants = require('./constants.cjs.js');
4
4
  var sdkApiCore = require('@dynamic-labs/sdk-api-core');
5
5
 
6
6
  /**
@@ -20,8 +20,8 @@ var sdkApiCore = require('@dynamic-labs/sdk-api-core');
20
20
  * @param params.listener - The callback function to execute when the event is fired.
21
21
  * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
22
22
  * @returns A function that can be called to remove the listener.
23
- */ const onEvent = ({ event, listener }, client = getChainFromVerifiedCredentialChain.getDefaultClient())=>{
24
- const { eventEmitter } = getChainFromVerifiedCredentialChain.getCore(client);
23
+ */ const onEvent = ({ event, listener }, client = constants.getDefaultClient())=>{
24
+ const { eventEmitter } = constants.getCore(client);
25
25
  eventEmitter.on(event, listener);
26
26
  return ()=>{
27
27
  eventEmitter.off(event, listener);
@@ -36,8 +36,8 @@ var sdkApiCore = require('@dynamic-labs/sdk-api-core');
36
36
  * @param params.event - The event name to remove the listener from.
37
37
  * @param params.listener - The callback function to remove.
38
38
  * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
39
- */ const offEvent = ({ event, listener }, client = getChainFromVerifiedCredentialChain.getDefaultClient())=>{
40
- const { eventEmitter } = getChainFromVerifiedCredentialChain.getCore(client);
39
+ */ const offEvent = ({ event, listener }, client = constants.getDefaultClient())=>{
40
+ const { eventEmitter } = constants.getCore(client);
41
41
  eventEmitter.off(event, listener);
42
42
  };
43
43
  /**
@@ -50,8 +50,8 @@ var sdkApiCore = require('@dynamic-labs/sdk-api-core');
50
50
  * @param params.listener - The callback function to execute when the event is fired.
51
51
  * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
52
52
  * @returns A function that can be called to remove the listener before it fires.
53
- */ const onceEvent = ({ event, listener }, client = getChainFromVerifiedCredentialChain.getDefaultClient())=>{
54
- const { eventEmitter } = getChainFromVerifiedCredentialChain.getCore(client);
53
+ */ const onceEvent = ({ event, listener }, client = constants.getDefaultClient())=>{
54
+ const { eventEmitter } = constants.getCore(client);
55
55
  eventEmitter.once(event, listener);
56
56
  return ()=>{
57
57
  eventEmitter.off(event, listener);
@@ -67,10 +67,34 @@ var sdkApiCore = require('@dynamic-labs/sdk-api-core');
67
67
  * @param params.args - The arguments to pass to event listeners.
68
68
  * @param client - The Dynamic client instance.
69
69
  */ const emitEvent = ({ event, args }, client)=>{
70
- const { eventEmitter } = getChainFromVerifiedCredentialChain.getCore(client);
70
+ const { eventEmitter } = constants.getCore(client);
71
71
  eventEmitter.emit(event, args);
72
72
  };
73
73
 
74
+ class InvalidWalletProviderKeyError extends constants.BaseError {
75
+ constructor(value){
76
+ super({
77
+ cause: null,
78
+ code: 'invalid_wallet_provider_key',
79
+ docsUrl: null,
80
+ name: 'InvalidWalletProviderKeyError',
81
+ shortMessage: `Invalid wallet provider key: ${value}. Key must be in the format of <normalizedWalletNameWithChain>:<walletProviderType>[:<suffix>]`
82
+ });
83
+ }
84
+ }
85
+
86
+ const splitWalletProviderKey = (walletProviderKey)=>{
87
+ const [normalizedWalletNameWithChain, walletProviderType, suffix, ...rest] = walletProviderKey.split(':');
88
+ if (!normalizedWalletNameWithChain || !Object.values(sdkApiCore.WalletProviderEnum).includes(walletProviderType) || rest.length > 0) {
89
+ throw new InvalidWalletProviderKeyError(walletProviderKey);
90
+ }
91
+ return {
92
+ normalizedWalletNameWithChain,
93
+ suffix,
94
+ walletProviderType: walletProviderType
95
+ };
96
+ };
97
+
74
98
  const normalizeAddress = (address, chain)=>{
75
99
  let normalizedAddress = address;
76
100
  if (normalizedAddress == null ? void 0 : normalizedAddress.startsWith('0x')) {
@@ -88,60 +112,134 @@ const normalizeAddress = (address, chain)=>{
88
112
  return normalizedAddress;
89
113
  };
90
114
 
91
- const createWalletAccountId = (chain, address)=>`${chain}-${normalizeAddress(address, chain)}`;
115
+ const formatWalletAccountId = ({ address, chain, walletProviderKey })=>{
116
+ const { normalizedWalletNameWithChain } = splitWalletProviderKey(walletProviderKey);
117
+ const normalizedAddress = normalizeAddress(address, chain);
118
+ return `${normalizedWalletNameWithChain}:${normalizedAddress}`;
119
+ };
92
120
 
93
- const convertUnverifiedWalletAccountToWalletAccount = (unverifiedWalletAccount)=>({
121
+ const convertUnverifiedWalletAccountToWalletAccount = ({ unverifiedWalletAccount })=>({
94
122
  address: unverifiedWalletAccount.address,
123
+ addressesWithTypes: unverifiedWalletAccount.addressesWithTypes,
95
124
  chain: unverifiedWalletAccount.chain,
96
- id: createWalletAccountId(unverifiedWalletAccount.chain, unverifiedWalletAccount.address),
125
+ id: formatWalletAccountId({
126
+ address: unverifiedWalletAccount.address,
127
+ chain: unverifiedWalletAccount.chain,
128
+ walletProviderKey: unverifiedWalletAccount.walletProviderKey
129
+ }),
97
130
  lastSelectedAt: unverifiedWalletAccount.lastSelectedAt,
98
131
  verifiedCredentialId: null,
99
132
  walletProviderKey: unverifiedWalletAccount.walletProviderKey
100
133
  });
101
134
 
102
135
  /**
103
- * Format the wallet name and chain to get a wallet provider key.
104
- */ const formatWalletProviderKey = (walletName, chain)=>{
105
- const sanitizedWalletName = walletName.replace(/[^a-zA-Z0-9]/g, '').toLowerCase();
106
- return `${sanitizedWalletName}${chain.toLocaleLowerCase()}`;
136
+ * Format the raw wallet name and chain to get the value we can use for
137
+ * verified credentials' `walletName` field.
138
+ */ const normalizeWalletNameWithChain = ({ displayName, chain })=>{
139
+ const sanitizedWalletName = displayName.replace(/[^a-zA-Z0-9]/g, '').toLowerCase();
140
+ const chainLowered = chain.toLocaleLowerCase();
141
+ if (sanitizedWalletName.endsWith(chainLowered)) {
142
+ return sanitizedWalletName;
143
+ }
144
+ return `${sanitizedWalletName}${chainLowered}`;
145
+ };
146
+
147
+ /**
148
+ * Assembles the wallet provider key from the wallet name, chain, and wallet provider type.
149
+ *
150
+ * The suffix is optional and can be used to add a uniquely identifying string to the key, which
151
+ * might be necessary for some wallet providers (like Wallet Connect).
152
+ *
153
+ * IMPORTANT: Do NOT add a suffix unless absolutely necessary, as it will cause the wallet account
154
+ * to not be able to find its wallet provider when connecting to a new device (it won't be possible
155
+ * to determine the full key just from the Verified Credential data).
156
+ */ const formatWalletProviderKey = ({ suffix, chain, displayName, walletProviderType })=>{
157
+ const normalizedNameWithChain = normalizeWalletNameWithChain({
158
+ chain,
159
+ displayName
160
+ });
161
+ return `${normalizedNameWithChain}:${walletProviderType}${suffix ? `:${suffix}` : ''}`;
107
162
  };
108
163
 
109
- const convertVerifiedCredentialToWalletAccount = (verified)=>{
110
- getChainFromVerifiedCredentialChain.assertDefined(verified.address, 'Missing address in verified credential');
111
- getChainFromVerifiedCredentialChain.assertDefined(verified.chain, 'Missing chain in verified credential');
112
- getChainFromVerifiedCredentialChain.assertDefined(verified.walletName, 'Missing wallet name in verified credential');
113
- const chain = getChainFromVerifiedCredentialChain.getChainFromVerifiedCredentialChain(verified.chain);
114
- const hasChainInWalletName = verified.walletName.endsWith(chain.toLowerCase());
115
- // we need to make sure the walletProviderKey follows the correct format ([walletName][chain])
116
- // some walletNames will follow the legacy format (e.g. "phantom" instead of "phantomsol", "metamask" instead of "metamaskevm")
117
- // so we need to make sure we parse it correctly
118
- const walletProviderKey = hasChainInWalletName ? verified.walletName : formatWalletProviderKey(verified.walletName, chain);
119
- var _verified_lastSelectedAt;
164
+ const getWalletProviderKeyFromVerifiedCredential = ({ verifiedCredential }, client)=>{
165
+ const core = constants.getCore(client);
166
+ const { walletProviderKeyMap } = core.state.get();
167
+ const storedWalletProviderKey = walletProviderKeyMap[verifiedCredential.id];
168
+ if (storedWalletProviderKey) {
169
+ return {
170
+ walletProviderKey: storedWalletProviderKey
171
+ };
172
+ }
173
+ /**
174
+ * We fallback to comprising the wallet provider key from walletName and walletProvider.
175
+ *
176
+ * Some wallet provider types (like Wallet Connect) also use a special suffix for their wallet provider
177
+ * keys, so this won't be enough for them.
178
+ * Therefore, for those specific wallet providers, the wallet account will remain without a wallet provider
179
+ * and will require reconnection.
180
+ * Read walletProvider.types.ts for more info.
181
+ */ constants.assertDefined(verifiedCredential.walletName, `Failed to get wallet provider for verified credential with ID ${verifiedCredential.id}: missing walletName`);
182
+ constants.assertDefined(verifiedCredential.walletProvider, `Failed to get wallet provider for verified credential with ID ${verifiedCredential.id}: missing walletProvider`);
183
+ constants.assertDefined(verifiedCredential.chain, `Failed to get wallet provider for verified credential with ID ${verifiedCredential.id}: missing chain`);
184
+ /**
185
+ * Historically, walletNames did not include the chain name as a suffix.
186
+ * This piece of logic simply ensures we normalize any legacy walletNames to conform.
187
+ */ const chain = constants.getChainFromVerifiedCredentialChain(verifiedCredential.chain);
188
+ const walletProviderKey = formatWalletProviderKey({
189
+ chain,
190
+ displayName: verifiedCredential.walletName,
191
+ walletProviderType: verifiedCredential.walletProvider
192
+ });
193
+ return {
194
+ walletProviderKey
195
+ };
196
+ };
197
+
198
+ const convertVerifiedCredentialToWalletAccount = ({ verifiedCredential }, client)=>{
199
+ constants.assertDefined(verifiedCredential.address, 'Missing address in verified credential');
200
+ constants.assertDefined(verifiedCredential.chain, 'Missing chain in verified credential');
201
+ const chain = constants.getChainFromVerifiedCredentialChain(verifiedCredential.chain);
202
+ const { walletProviderKey } = getWalletProviderKeyFromVerifiedCredential({
203
+ verifiedCredential
204
+ }, client);
205
+ const walletAccountId = formatWalletAccountId({
206
+ address: verifiedCredential.address,
207
+ chain,
208
+ walletProviderKey
209
+ });
210
+ var _verifiedCredential_lastSelectedAt;
120
211
  return {
121
- address: verified.address,
212
+ address: verifiedCredential.address,
213
+ addressesWithTypes: verifiedCredential.walletAdditionalAddresses,
122
214
  chain,
123
- id: createWalletAccountId(chain, verified.address),
124
- lastSelectedAt: (_verified_lastSelectedAt = verified.lastSelectedAt) != null ? _verified_lastSelectedAt : null,
125
- verifiedCredentialId: verified.id,
215
+ id: walletAccountId,
216
+ lastSelectedAt: (_verifiedCredential_lastSelectedAt = verifiedCredential.lastSelectedAt) != null ? _verifiedCredential_lastSelectedAt : null,
217
+ verifiedCredentialId: verifiedCredential.id,
126
218
  walletProviderKey
127
219
  };
128
220
  };
129
221
 
130
- const getWalletAccountsFromState = (state)=>{
131
- const { unverifiedWalletAccounts, user } = state;
222
+ const getWalletAccountsFromState = ({ unverifiedWalletAccounts, user }, client)=>{
132
223
  const walletAccountsMap = new Map();
133
224
  /**
134
225
  * Handle the unverified wallet accounts before the user verified credentials
135
226
  * so the later verified wallet accounts can override the unverified wallet accounts
136
227
  */ unverifiedWalletAccounts.forEach((unverifiedWalletAccount)=>{
137
- const walletAccount = convertUnverifiedWalletAccountToWalletAccount(unverifiedWalletAccount);
228
+ const walletAccount = convertUnverifiedWalletAccountToWalletAccount({
229
+ unverifiedWalletAccount
230
+ });
138
231
  walletAccountsMap.set(walletAccount.id, walletAccount);
139
232
  });
140
233
  var _user_verifiedCredentials;
141
234
  /**
142
235
  * Handle user verified credentials
143
236
  */ const verifiedCredentials = (_user_verifiedCredentials = user == null ? void 0 : user.verifiedCredentials) != null ? _user_verifiedCredentials : [];
144
- verifiedCredentials.filter((verified)=>verified.format === sdkApiCore.JwtVerifiedCredentialFormatEnum.Blockchain).map((verifiedWalletAccount)=>convertVerifiedCredentialToWalletAccount(verifiedWalletAccount)).forEach((verifiedWalletAccount)=>walletAccountsMap.set(verifiedWalletAccount.id, verifiedWalletAccount));
237
+ verifiedCredentials.filter((verified)=>verified.format === sdkApiCore.JwtVerifiedCredentialFormatEnum.Blockchain).forEach((verifiedWalletAccount)=>{
238
+ const walletAccount = convertVerifiedCredentialToWalletAccount({
239
+ verifiedCredential: verifiedWalletAccount
240
+ }, client);
241
+ walletAccountsMap.set(walletAccount.id, walletAccount);
242
+ });
145
243
  return Array.from(walletAccountsMap.values());
146
244
  };
147
245
 
@@ -155,9 +253,16 @@ const getWalletAccountsFromState = (state)=>{
155
253
  *
156
254
  * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
157
255
  * @returns An array of wallet accounts associated with the session.
158
- */ const getWalletAccounts = (client = getChainFromVerifiedCredentialChain.getDefaultClient())=>getWalletAccountsFromState(getChainFromVerifiedCredentialChain.getCore(client).state.get());
256
+ */ const getWalletAccounts = (client = constants.getDefaultClient())=>{
257
+ const core = constants.getCore(client);
258
+ const { unverifiedWalletAccounts, user } = core.state.get();
259
+ return getWalletAccountsFromState({
260
+ unverifiedWalletAccounts,
261
+ user
262
+ }, client);
263
+ };
159
264
 
160
- class NoWalletProviderFoundError extends getChainFromVerifiedCredentialChain.BaseError {
265
+ class NoWalletProviderFoundError extends constants.BaseError {
161
266
  constructor({ walletProviderKey }){
162
267
  super({
163
268
  cause: null,
@@ -178,7 +283,7 @@ class NoWalletProviderFoundError extends getChainFromVerifiedCredentialChain.Bas
178
283
  * @param key - Unique identifier for the service in the registry
179
284
  * @param builder - Function that creates the service instance when called with a DynamicClient
180
285
  */ const createRuntimeServiceAccessKey = (key, builder)=>(client)=>{
181
- const { runtimeServices } = getChainFromVerifiedCredentialChain.getCore(client);
286
+ const { runtimeServices } = constants.getCore(client);
182
287
  const currentService = runtimeServices.getByKey(key);
183
288
  if (currentService) {
184
289
  return currentService;
@@ -240,6 +345,15 @@ class NoWalletProviderFoundError extends getChainFromVerifiedCredentialChain.Bas
240
345
  event: 'walletProviderChanged'
241
346
  }, client);
242
347
  }
348
+ },
349
+ unregister: (key)=>{
350
+ registry.delete(key);
351
+ emitEvent({
352
+ args: {
353
+ walletProviderKey: key
354
+ },
355
+ event: 'walletProviderUnregistered'
356
+ }, client);
243
357
  }
244
358
  };
245
359
  };
@@ -314,33 +428,37 @@ const DYNAMIC_AUTH_COOKIE_NAME = 'DYNAMIC_JWT_TOKEN';
314
428
  };
315
429
 
316
430
  const checkAndRaiseWalletAccountsChangedEvent = ({ previousState }, client)=>{
317
- const core = getChainFromVerifiedCredentialChain.getCore(client);
318
- const walletAccountsHashBefore = getWalletAccountsHash(previousState);
319
- const walletAccountsHashAfter = getWalletAccountsHash(core.state.get());
431
+ const core = constants.getCore(client);
432
+ const walletAccountsHashBefore = getWalletAccountsHash(previousState, client);
433
+ const walletAccountsHashAfter = getWalletAccountsHash(core.state.get(), client);
320
434
  if (walletAccountsHashBefore !== walletAccountsHashAfter) {
321
435
  emitWalletAccountsChangedEvent(client);
322
436
  }
323
437
  };
324
- const getWalletAccountsHash = (state)=>getWalletAccountsFromState(state).map(({ id })=>id).sort().join('-');
438
+ const getWalletAccountsHash = (state, client)=>getWalletAccountsFromState(state, client).map((walletAccount)=>JSON.stringify(walletAccount)).sort().join('-');
325
439
 
326
440
  const updateAuthFromVerifyResponse = ({ response }, client)=>{
327
- const core = getChainFromVerifiedCredentialChain.getCore(client);
328
- const previousState = getChainFromVerifiedCredentialChain._extends({}, core.state.get());
441
+ const core = constants.getCore(client);
442
+ const previousState = constants._extends({}, core.state.get());
329
443
  const { user, minifiedJwt, jwt, expiresAt, mfaToken } = response;
330
444
  // Expires at is in seconds, so we need to convert it to milliseconds
331
445
  const sessionExpiresAt = new Date(expiresAt * 1000);
332
- core.state.set({
446
+ const newState = {
333
447
  legacyToken: jwt != null ? jwt : null,
334
- mfaToken: mfaToken != null ? mfaToken : null,
335
448
  sessionExpiresAt: sessionExpiresAt,
336
449
  token: minifiedJwt != null ? minifiedJwt : null,
337
450
  user
338
- });
451
+ };
452
+ // only override the mfaToken if a new one is provided in the response
453
+ if (mfaToken) {
454
+ newState.mfaToken = mfaToken;
455
+ }
456
+ core.state.set(newState);
339
457
  /**
340
458
  * For customers using a sandbox environment with cookies enabled, we need to set the cookie
341
459
  * programmatically because Redcoast won't set the cookie via headers. We set the cookie programmatically
342
460
  * so customers can access the cookie from document.cookie consistently between sandbox and live environments.
343
- */ if (minifiedJwt && getChainFromVerifiedCredentialChain.isCookieEnabled(client)) {
461
+ */ if (minifiedJwt && constants.isCookieEnabled(client)) {
344
462
  const expireDate = sessionExpiresAt.toUTCString();
345
463
  setCookie(`${DYNAMIC_AUTH_COOKIE_NAME}=${minifiedJwt}; expires=${expireDate}; path=/; SameSite=Lax`);
346
464
  }
@@ -367,21 +485,31 @@ const getWalletProviderByKey = ({ walletProviderKey }, client)=>{
367
485
  return walletProvider;
368
486
  };
369
487
 
488
+ const getVerifiedCredentialForWalletAccount = ({ walletAccount }, client)=>{
489
+ var _client_user;
490
+ return (_client_user = client.user) == null ? void 0 : _client_user.verifiedCredentials.find((vc)=>vc.id === walletAccount.verifiedCredentialId);
491
+ };
492
+
370
493
  exports.DYNAMIC_AUTH_COOKIE_NAME = DYNAMIC_AUTH_COOKIE_NAME;
494
+ exports.InvalidWalletProviderKeyError = InvalidWalletProviderKeyError;
371
495
  exports.NoWalletProviderFoundError = NoWalletProviderFoundError;
496
+ exports.checkAndRaiseWalletAccountsChangedEvent = checkAndRaiseWalletAccountsChangedEvent;
372
497
  exports.createRuntimeServiceAccessKey = createRuntimeServiceAccessKey;
373
- exports.createWalletAccountId = createWalletAccountId;
374
498
  exports.emitEvent = emitEvent;
375
499
  exports.emitWalletAccountsChangedEvent = emitWalletAccountsChangedEvent;
500
+ exports.formatWalletAccountId = formatWalletAccountId;
376
501
  exports.formatWalletProviderKey = formatWalletProviderKey;
502
+ exports.getVerifiedCredentialForWalletAccount = getVerifiedCredentialForWalletAccount;
377
503
  exports.getWalletAccounts = getWalletAccounts;
378
504
  exports.getWalletProviderByKey = getWalletProviderByKey;
379
505
  exports.getWalletProviderFromWalletAccount = getWalletProviderFromWalletAccount;
380
506
  exports.getWalletProviderRegistry = getWalletProviderRegistry;
381
507
  exports.getWalletProviders = getWalletProviders;
382
508
  exports.normalizeAddress = normalizeAddress;
509
+ exports.normalizeWalletNameWithChain = normalizeWalletNameWithChain;
383
510
  exports.offEvent = offEvent;
384
511
  exports.onEvent = onEvent;
385
512
  exports.onceEvent = onceEvent;
386
513
  exports.setCookie = setCookie;
514
+ exports.splitWalletProviderKey = splitWalletProviderKey;
387
515
  exports.updateAuthFromVerifyResponse = updateAuthFromVerifyResponse;
@@ -1,5 +1,5 @@
1
- import { g as getDefaultClient, a as getCore, e as assertDefined, k as getChainFromVerifiedCredentialChain, B as BaseError, _ as _extends, i as isCookieEnabled } from './getChainFromVerifiedCredentialChain.esm.js';
2
- import { JwtVerifiedCredentialFormatEnum } from '@dynamic-labs/sdk-api-core';
1
+ import { g as getDefaultClient, a as getCore, B as BaseError, d as assertDefined, k as getChainFromVerifiedCredentialChain, _ as _extends, i as isCookieEnabled } from './constants.esm.js';
2
+ import { WalletProviderEnum, JwtVerifiedCredentialFormatEnum } from '@dynamic-labs/sdk-api-core';
3
3
 
4
4
  /**
5
5
  * Sefelly sets the cookie in the browser.
@@ -69,6 +69,30 @@ import { JwtVerifiedCredentialFormatEnum } from '@dynamic-labs/sdk-api-core';
69
69
  eventEmitter.emit(event, args);
70
70
  };
71
71
 
72
+ class InvalidWalletProviderKeyError extends BaseError {
73
+ constructor(value){
74
+ super({
75
+ cause: null,
76
+ code: 'invalid_wallet_provider_key',
77
+ docsUrl: null,
78
+ name: 'InvalidWalletProviderKeyError',
79
+ shortMessage: `Invalid wallet provider key: ${value}. Key must be in the format of <normalizedWalletNameWithChain>:<walletProviderType>[:<suffix>]`
80
+ });
81
+ }
82
+ }
83
+
84
+ const splitWalletProviderKey = (walletProviderKey)=>{
85
+ const [normalizedWalletNameWithChain, walletProviderType, suffix, ...rest] = walletProviderKey.split(':');
86
+ if (!normalizedWalletNameWithChain || !Object.values(WalletProviderEnum).includes(walletProviderType) || rest.length > 0) {
87
+ throw new InvalidWalletProviderKeyError(walletProviderKey);
88
+ }
89
+ return {
90
+ normalizedWalletNameWithChain,
91
+ suffix,
92
+ walletProviderType: walletProviderType
93
+ };
94
+ };
95
+
72
96
  const normalizeAddress = (address, chain)=>{
73
97
  let normalizedAddress = address;
74
98
  if (normalizedAddress == null ? void 0 : normalizedAddress.startsWith('0x')) {
@@ -86,60 +110,134 @@ const normalizeAddress = (address, chain)=>{
86
110
  return normalizedAddress;
87
111
  };
88
112
 
89
- const createWalletAccountId = (chain, address)=>`${chain}-${normalizeAddress(address, chain)}`;
113
+ const formatWalletAccountId = ({ address, chain, walletProviderKey })=>{
114
+ const { normalizedWalletNameWithChain } = splitWalletProviderKey(walletProviderKey);
115
+ const normalizedAddress = normalizeAddress(address, chain);
116
+ return `${normalizedWalletNameWithChain}:${normalizedAddress}`;
117
+ };
90
118
 
91
- const convertUnverifiedWalletAccountToWalletAccount = (unverifiedWalletAccount)=>({
119
+ const convertUnverifiedWalletAccountToWalletAccount = ({ unverifiedWalletAccount })=>({
92
120
  address: unverifiedWalletAccount.address,
121
+ addressesWithTypes: unverifiedWalletAccount.addressesWithTypes,
93
122
  chain: unverifiedWalletAccount.chain,
94
- id: createWalletAccountId(unverifiedWalletAccount.chain, unverifiedWalletAccount.address),
123
+ id: formatWalletAccountId({
124
+ address: unverifiedWalletAccount.address,
125
+ chain: unverifiedWalletAccount.chain,
126
+ walletProviderKey: unverifiedWalletAccount.walletProviderKey
127
+ }),
95
128
  lastSelectedAt: unverifiedWalletAccount.lastSelectedAt,
96
129
  verifiedCredentialId: null,
97
130
  walletProviderKey: unverifiedWalletAccount.walletProviderKey
98
131
  });
99
132
 
100
133
  /**
101
- * Format the wallet name and chain to get a wallet provider key.
102
- */ const formatWalletProviderKey = (walletName, chain)=>{
103
- const sanitizedWalletName = walletName.replace(/[^a-zA-Z0-9]/g, '').toLowerCase();
104
- return `${sanitizedWalletName}${chain.toLocaleLowerCase()}`;
134
+ * Format the raw wallet name and chain to get the value we can use for
135
+ * verified credentials' `walletName` field.
136
+ */ const normalizeWalletNameWithChain = ({ displayName, chain })=>{
137
+ const sanitizedWalletName = displayName.replace(/[^a-zA-Z0-9]/g, '').toLowerCase();
138
+ const chainLowered = chain.toLocaleLowerCase();
139
+ if (sanitizedWalletName.endsWith(chainLowered)) {
140
+ return sanitizedWalletName;
141
+ }
142
+ return `${sanitizedWalletName}${chainLowered}`;
143
+ };
144
+
145
+ /**
146
+ * Assembles the wallet provider key from the wallet name, chain, and wallet provider type.
147
+ *
148
+ * The suffix is optional and can be used to add a uniquely identifying string to the key, which
149
+ * might be necessary for some wallet providers (like Wallet Connect).
150
+ *
151
+ * IMPORTANT: Do NOT add a suffix unless absolutely necessary, as it will cause the wallet account
152
+ * to not be able to find its wallet provider when connecting to a new device (it won't be possible
153
+ * to determine the full key just from the Verified Credential data).
154
+ */ const formatWalletProviderKey = ({ suffix, chain, displayName, walletProviderType })=>{
155
+ const normalizedNameWithChain = normalizeWalletNameWithChain({
156
+ chain,
157
+ displayName
158
+ });
159
+ return `${normalizedNameWithChain}:${walletProviderType}${suffix ? `:${suffix}` : ''}`;
105
160
  };
106
161
 
107
- const convertVerifiedCredentialToWalletAccount = (verified)=>{
108
- assertDefined(verified.address, 'Missing address in verified credential');
109
- assertDefined(verified.chain, 'Missing chain in verified credential');
110
- assertDefined(verified.walletName, 'Missing wallet name in verified credential');
111
- const chain = getChainFromVerifiedCredentialChain(verified.chain);
112
- const hasChainInWalletName = verified.walletName.endsWith(chain.toLowerCase());
113
- // we need to make sure the walletProviderKey follows the correct format ([walletName][chain])
114
- // some walletNames will follow the legacy format (e.g. "phantom" instead of "phantomsol", "metamask" instead of "metamaskevm")
115
- // so we need to make sure we parse it correctly
116
- const walletProviderKey = hasChainInWalletName ? verified.walletName : formatWalletProviderKey(verified.walletName, chain);
117
- var _verified_lastSelectedAt;
162
+ const getWalletProviderKeyFromVerifiedCredential = ({ verifiedCredential }, client)=>{
163
+ const core = getCore(client);
164
+ const { walletProviderKeyMap } = core.state.get();
165
+ const storedWalletProviderKey = walletProviderKeyMap[verifiedCredential.id];
166
+ if (storedWalletProviderKey) {
167
+ return {
168
+ walletProviderKey: storedWalletProviderKey
169
+ };
170
+ }
171
+ /**
172
+ * We fallback to comprising the wallet provider key from walletName and walletProvider.
173
+ *
174
+ * Some wallet provider types (like Wallet Connect) also use a special suffix for their wallet provider
175
+ * keys, so this won't be enough for them.
176
+ * Therefore, for those specific wallet providers, the wallet account will remain without a wallet provider
177
+ * and will require reconnection.
178
+ * Read walletProvider.types.ts for more info.
179
+ */ assertDefined(verifiedCredential.walletName, `Failed to get wallet provider for verified credential with ID ${verifiedCredential.id}: missing walletName`);
180
+ assertDefined(verifiedCredential.walletProvider, `Failed to get wallet provider for verified credential with ID ${verifiedCredential.id}: missing walletProvider`);
181
+ assertDefined(verifiedCredential.chain, `Failed to get wallet provider for verified credential with ID ${verifiedCredential.id}: missing chain`);
182
+ /**
183
+ * Historically, walletNames did not include the chain name as a suffix.
184
+ * This piece of logic simply ensures we normalize any legacy walletNames to conform.
185
+ */ const chain = getChainFromVerifiedCredentialChain(verifiedCredential.chain);
186
+ const walletProviderKey = formatWalletProviderKey({
187
+ chain,
188
+ displayName: verifiedCredential.walletName,
189
+ walletProviderType: verifiedCredential.walletProvider
190
+ });
191
+ return {
192
+ walletProviderKey
193
+ };
194
+ };
195
+
196
+ const convertVerifiedCredentialToWalletAccount = ({ verifiedCredential }, client)=>{
197
+ assertDefined(verifiedCredential.address, 'Missing address in verified credential');
198
+ assertDefined(verifiedCredential.chain, 'Missing chain in verified credential');
199
+ const chain = getChainFromVerifiedCredentialChain(verifiedCredential.chain);
200
+ const { walletProviderKey } = getWalletProviderKeyFromVerifiedCredential({
201
+ verifiedCredential
202
+ }, client);
203
+ const walletAccountId = formatWalletAccountId({
204
+ address: verifiedCredential.address,
205
+ chain,
206
+ walletProviderKey
207
+ });
208
+ var _verifiedCredential_lastSelectedAt;
118
209
  return {
119
- address: verified.address,
210
+ address: verifiedCredential.address,
211
+ addressesWithTypes: verifiedCredential.walletAdditionalAddresses,
120
212
  chain,
121
- id: createWalletAccountId(chain, verified.address),
122
- lastSelectedAt: (_verified_lastSelectedAt = verified.lastSelectedAt) != null ? _verified_lastSelectedAt : null,
123
- verifiedCredentialId: verified.id,
213
+ id: walletAccountId,
214
+ lastSelectedAt: (_verifiedCredential_lastSelectedAt = verifiedCredential.lastSelectedAt) != null ? _verifiedCredential_lastSelectedAt : null,
215
+ verifiedCredentialId: verifiedCredential.id,
124
216
  walletProviderKey
125
217
  };
126
218
  };
127
219
 
128
- const getWalletAccountsFromState = (state)=>{
129
- const { unverifiedWalletAccounts, user } = state;
220
+ const getWalletAccountsFromState = ({ unverifiedWalletAccounts, user }, client)=>{
130
221
  const walletAccountsMap = new Map();
131
222
  /**
132
223
  * Handle the unverified wallet accounts before the user verified credentials
133
224
  * so the later verified wallet accounts can override the unverified wallet accounts
134
225
  */ unverifiedWalletAccounts.forEach((unverifiedWalletAccount)=>{
135
- const walletAccount = convertUnverifiedWalletAccountToWalletAccount(unverifiedWalletAccount);
226
+ const walletAccount = convertUnverifiedWalletAccountToWalletAccount({
227
+ unverifiedWalletAccount
228
+ });
136
229
  walletAccountsMap.set(walletAccount.id, walletAccount);
137
230
  });
138
231
  var _user_verifiedCredentials;
139
232
  /**
140
233
  * Handle user verified credentials
141
234
  */ const verifiedCredentials = (_user_verifiedCredentials = user == null ? void 0 : user.verifiedCredentials) != null ? _user_verifiedCredentials : [];
142
- verifiedCredentials.filter((verified)=>verified.format === JwtVerifiedCredentialFormatEnum.Blockchain).map((verifiedWalletAccount)=>convertVerifiedCredentialToWalletAccount(verifiedWalletAccount)).forEach((verifiedWalletAccount)=>walletAccountsMap.set(verifiedWalletAccount.id, verifiedWalletAccount));
235
+ verifiedCredentials.filter((verified)=>verified.format === JwtVerifiedCredentialFormatEnum.Blockchain).forEach((verifiedWalletAccount)=>{
236
+ const walletAccount = convertVerifiedCredentialToWalletAccount({
237
+ verifiedCredential: verifiedWalletAccount
238
+ }, client);
239
+ walletAccountsMap.set(walletAccount.id, walletAccount);
240
+ });
143
241
  return Array.from(walletAccountsMap.values());
144
242
  };
145
243
 
@@ -153,7 +251,14 @@ const getWalletAccountsFromState = (state)=>{
153
251
  *
154
252
  * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
155
253
  * @returns An array of wallet accounts associated with the session.
156
- */ const getWalletAccounts = (client = getDefaultClient())=>getWalletAccountsFromState(getCore(client).state.get());
254
+ */ const getWalletAccounts = (client = getDefaultClient())=>{
255
+ const core = getCore(client);
256
+ const { unverifiedWalletAccounts, user } = core.state.get();
257
+ return getWalletAccountsFromState({
258
+ unverifiedWalletAccounts,
259
+ user
260
+ }, client);
261
+ };
157
262
 
158
263
  class NoWalletProviderFoundError extends BaseError {
159
264
  constructor({ walletProviderKey }){
@@ -238,6 +343,15 @@ class NoWalletProviderFoundError extends BaseError {
238
343
  event: 'walletProviderChanged'
239
344
  }, client);
240
345
  }
346
+ },
347
+ unregister: (key)=>{
348
+ registry.delete(key);
349
+ emitEvent({
350
+ args: {
351
+ walletProviderKey: key
352
+ },
353
+ event: 'walletProviderUnregistered'
354
+ }, client);
241
355
  }
242
356
  };
243
357
  };
@@ -313,13 +427,13 @@ const DYNAMIC_AUTH_COOKIE_NAME = 'DYNAMIC_JWT_TOKEN';
313
427
 
314
428
  const checkAndRaiseWalletAccountsChangedEvent = ({ previousState }, client)=>{
315
429
  const core = getCore(client);
316
- const walletAccountsHashBefore = getWalletAccountsHash(previousState);
317
- const walletAccountsHashAfter = getWalletAccountsHash(core.state.get());
430
+ const walletAccountsHashBefore = getWalletAccountsHash(previousState, client);
431
+ const walletAccountsHashAfter = getWalletAccountsHash(core.state.get(), client);
318
432
  if (walletAccountsHashBefore !== walletAccountsHashAfter) {
319
433
  emitWalletAccountsChangedEvent(client);
320
434
  }
321
435
  };
322
- const getWalletAccountsHash = (state)=>getWalletAccountsFromState(state).map(({ id })=>id).sort().join('-');
436
+ const getWalletAccountsHash = (state, client)=>getWalletAccountsFromState(state, client).map((walletAccount)=>JSON.stringify(walletAccount)).sort().join('-');
323
437
 
324
438
  const updateAuthFromVerifyResponse = ({ response }, client)=>{
325
439
  const core = getCore(client);
@@ -327,13 +441,17 @@ const updateAuthFromVerifyResponse = ({ response }, client)=>{
327
441
  const { user, minifiedJwt, jwt, expiresAt, mfaToken } = response;
328
442
  // Expires at is in seconds, so we need to convert it to milliseconds
329
443
  const sessionExpiresAt = new Date(expiresAt * 1000);
330
- core.state.set({
444
+ const newState = {
331
445
  legacyToken: jwt != null ? jwt : null,
332
- mfaToken: mfaToken != null ? mfaToken : null,
333
446
  sessionExpiresAt: sessionExpiresAt,
334
447
  token: minifiedJwt != null ? minifiedJwt : null,
335
448
  user
336
- });
449
+ };
450
+ // only override the mfaToken if a new one is provided in the response
451
+ if (mfaToken) {
452
+ newState.mfaToken = mfaToken;
453
+ }
454
+ core.state.set(newState);
337
455
  /**
338
456
  * For customers using a sandbox environment with cookies enabled, we need to set the cookie
339
457
  * programmatically because Redcoast won't set the cookie via headers. We set the cookie programmatically
@@ -365,4 +483,9 @@ const getWalletProviderByKey = ({ walletProviderKey }, client)=>{
365
483
  return walletProvider;
366
484
  };
367
485
 
368
- export { DYNAMIC_AUTH_COOKIE_NAME as D, NoWalletProviderFoundError as N, WalletProviderPriority as W, getWalletProviderFromWalletAccount as a, getWalletProviderByKey as b, createWalletAccountId as c, emitWalletAccountsChangedEvent as d, emitEvent as e, getWalletProviders as f, getWalletAccounts as g, onceEvent as h, onEvent as i, createRuntimeServiceAccessKey as j, formatWalletProviderKey as k, getWalletProviderRegistry as l, normalizeAddress as n, offEvent as o, setCookie as s, updateAuthFromVerifyResponse as u };
486
+ const getVerifiedCredentialForWalletAccount = ({ walletAccount }, client)=>{
487
+ var _client_user;
488
+ return (_client_user = client.user) == null ? void 0 : _client_user.verifiedCredentials.find((vc)=>vc.id === walletAccount.verifiedCredentialId);
489
+ };
490
+
491
+ export { DYNAMIC_AUTH_COOKIE_NAME as D, InvalidWalletProviderKeyError as I, NoWalletProviderFoundError as N, WalletProviderPriority as W, getWalletProviderFromWalletAccount as a, getWalletProviderByKey as b, checkAndRaiseWalletAccountsChangedEvent as c, emitWalletAccountsChangedEvent as d, emitEvent as e, formatWalletAccountId as f, getWalletAccounts as g, getWalletProviders as h, getVerifiedCredentialForWalletAccount as i, onceEvent as j, onEvent as k, createRuntimeServiceAccessKey as l, formatWalletProviderKey as m, normalizeAddress as n, offEvent as o, normalizeWalletNameWithChain as p, splitWalletProviderKey as q, getWalletProviderRegistry as r, setCookie as s, updateAuthFromVerifyResponse as u };