@dynamic-labs-sdk/client 0.1.0-alpha.9 → 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 (314) hide show
  1. package/CHANGELOG.md +302 -0
  2. package/InvalidParamError.cjs.js +2 -2
  3. package/InvalidParamError.esm.js +1 -1
  4. package/NotWaasWalletAccountError.cjs.js +7 -7
  5. package/NotWaasWalletAccountError.esm.js +2 -2
  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 +96 -41
  11. package/core.esm.js +47 -10
  12. package/filterDuplicates.cjs.js +8 -0
  13. package/filterDuplicates.esm.js +6 -0
  14. package/getNetworkProviderFromNetworkId.cjs.js +178 -20
  15. package/getNetworkProviderFromNetworkId.esm.js +150 -3
  16. package/getSignedSessionId.cjs.js +7 -7
  17. package/getSignedSessionId.esm.js +2 -2
  18. package/getVerifiedCredentialForWalletAccount.cjs.js +515 -0
  19. package/getVerifiedCredentialForWalletAccount.esm.js +491 -0
  20. package/index.cjs.js +1231 -470
  21. package/index.esm.js +1028 -280
  22. package/isMfaRequiredForAction.cjs.js +15 -8
  23. package/isMfaRequiredForAction.esm.js +8 -2
  24. package/package.json +4 -4
  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 +25 -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/apiClient/createApiClient.d.ts.map +1 -1
  49. package/src/modules/auth/createVisit/createVisit.d.ts.map +1 -1
  50. package/src/modules/auth/logout/logout.d.ts.map +1 -1
  51. package/src/modules/auth/passkeys/getPasskeyAuthenticationOptions/getPasskeyAuthenticationOptions.d.ts +4 -1
  52. package/src/modules/auth/passkeys/getPasskeyAuthenticationOptions/getPasskeyAuthenticationOptions.d.ts.map +1 -1
  53. package/src/modules/auth/passkeys/getPasskeyAuthenticationSignInOptions/getPasskeyAuthenticationSignInOptions.d.ts +4 -1
  54. package/src/modules/auth/passkeys/getPasskeyAuthenticationSignInOptions/getPasskeyAuthenticationSignInOptions.d.ts.map +1 -1
  55. package/src/modules/auth/passkeys/signInWithPasskey/signInWithPasskey.d.ts +4 -1
  56. package/src/modules/auth/passkeys/signInWithPasskey/signInWithPasskey.d.ts.map +1 -1
  57. package/src/modules/auth/social/getUserSocialAccounts/getUserSocialAccounts.d.ts +9 -0
  58. package/src/modules/auth/social/getUserSocialAccounts/getUserSocialAccounts.d.ts.map +1 -0
  59. package/src/modules/auth/social/getUserSocialAccounts/index.d.ts +2 -0
  60. package/src/modules/auth/social/getUserSocialAccounts/index.d.ts.map +1 -0
  61. package/src/modules/auth/social/oauth/{signInWithSocialRedirect/signInWithSocialRedirect.d.ts → authenticateWithSocial/authenticateWithSocial.d.ts} +5 -3
  62. package/src/modules/auth/social/oauth/authenticateWithSocial/authenticateWithSocial.d.ts.map +1 -0
  63. package/src/modules/auth/social/oauth/authenticateWithSocial/buildOAuthUrl/addOAuthUrlParams/addOAuthUrlParams.d.ts.map +1 -0
  64. package/src/modules/auth/social/oauth/authenticateWithSocial/buildOAuthUrl/addOAuthUrlParams/index.d.ts.map +1 -0
  65. package/src/modules/auth/social/oauth/authenticateWithSocial/buildOAuthUrl/buildOAuthUrl.d.ts.map +1 -0
  66. package/src/modules/auth/social/oauth/authenticateWithSocial/buildOAuthUrl/getOAuthBaseUrl/getOAuthBaseUrl.d.ts.map +1 -0
  67. package/src/modules/auth/social/oauth/authenticateWithSocial/buildOAuthUrl/getOAuthBaseUrl/index.d.ts.map +1 -0
  68. package/src/modules/auth/social/oauth/{signInWithSocialRedirect → authenticateWithSocial}/buildOAuthUrl/index.d.ts.map +1 -1
  69. package/src/modules/auth/social/oauth/authenticateWithSocial/index.d.ts +2 -0
  70. package/src/modules/auth/social/oauth/{signInWithSocialRedirect → authenticateWithSocial}/index.d.ts.map +1 -1
  71. package/src/modules/auth/social/oauth/{completeSocialRedirectSignIn/completeSocialRedirectSignIn.d.ts → completeSocialAuthentication/completeSocialAuthentication.d.ts} +3 -3
  72. package/src/modules/auth/social/oauth/completeSocialAuthentication/completeSocialAuthentication.d.ts.map +1 -0
  73. package/src/modules/auth/social/oauth/completeSocialAuthentication/index.d.ts +2 -0
  74. package/src/modules/auth/social/oauth/{completeSocialRedirectSignIn → completeSocialAuthentication}/index.d.ts.map +1 -1
  75. package/src/modules/auth/social/oauth/redirectStateStorageSchema/index.d.ts +1 -1
  76. package/src/modules/auth/social/oauth/redirectStateStorageSchema/index.d.ts.map +1 -1
  77. package/src/modules/auth/social/oauth/redirectStateStorageSchema/redirectStateStorageSchema.d.ts +1 -1
  78. package/src/modules/auth/social/oauth/redirectStateStorageSchema/redirectStateStorageSchema.d.ts.map +1 -1
  79. package/src/modules/auth/social/oauth/unlinkSocialAccount/index.d.ts +2 -0
  80. package/src/modules/auth/social/oauth/unlinkSocialAccount/index.d.ts.map +1 -0
  81. package/src/modules/auth/social/oauth/unlinkSocialAccount/unlinkSocialAccount.d.ts +14 -0
  82. package/src/modules/auth/social/oauth/unlinkSocialAccount/unlinkSocialAccount.d.ts.map +1 -0
  83. package/src/modules/auth/social/removeDynamicOauthParamsFromUrl/index.d.ts +2 -0
  84. package/src/modules/auth/social/removeDynamicOauthParamsFromUrl/index.d.ts.map +1 -0
  85. package/src/modules/auth/social/removeDynamicOauthParamsFromUrl/removeDynamicOauthParamsFromUrl.d.ts +2 -0
  86. package/src/modules/auth/social/removeDynamicOauthParamsFromUrl/removeDynamicOauthParamsFromUrl.d.ts.map +1 -0
  87. package/src/modules/auth/social/social.types.d.ts +9 -0
  88. package/src/modules/auth/social/social.types.d.ts.map +1 -1
  89. package/src/modules/auth/updateAuthFromVerifyResponse/checkAndRaiseWalletAccountsChangedEvent/checkAndRaiseWalletAccountsChangedEvent.d.ts.map +1 -1
  90. package/src/modules/auth/updateAuthFromVerifyResponse/updateAuthFromVerifyResponse.d.ts.map +1 -1
  91. package/src/modules/balances/getMultichainBalances/getMultichainBalances.d.ts +1 -2
  92. package/src/modules/balances/getMultichainBalances/getMultichainBalances.d.ts.map +1 -1
  93. package/src/modules/balances/getMultichainBalances/index.d.ts +1 -1
  94. package/src/modules/balances/getMultichainBalances/index.d.ts.map +1 -1
  95. package/src/modules/funding/coinbase/addCoinbaseOnrampOrderEventListener/addCoinbaseOnrampOrderEventListener.d.ts +18 -0
  96. package/src/modules/funding/coinbase/addCoinbaseOnrampOrderEventListener/addCoinbaseOnrampOrderEventListener.d.ts.map +1 -0
  97. package/src/modules/funding/coinbase/addCoinbaseOnrampOrderEventListener/index.d.ts +2 -0
  98. package/src/modules/funding/coinbase/addCoinbaseOnrampOrderEventListener/index.d.ts.map +1 -0
  99. package/src/modules/funding/coinbase/coinbase.types.d.ts +269 -0
  100. package/src/modules/funding/coinbase/coinbase.types.d.ts.map +1 -0
  101. package/src/modules/funding/coinbase/createCoinbaseOnrampOrder/createCoinbaseOnrampOrder.d.ts +11 -0
  102. package/src/modules/funding/coinbase/createCoinbaseOnrampOrder/createCoinbaseOnrampOrder.d.ts.map +1 -0
  103. package/src/modules/funding/coinbase/createCoinbaseOnrampOrder/index.d.ts +2 -0
  104. package/src/modules/funding/coinbase/createCoinbaseOnrampOrder/index.d.ts.map +1 -0
  105. package/src/modules/funding/coinbase/getCoinbaseBuyUrl/getCoinbaseBuyUrl.d.ts +10 -0
  106. package/src/modules/funding/coinbase/getCoinbaseBuyUrl/getCoinbaseBuyUrl.d.ts.map +1 -0
  107. package/src/modules/funding/coinbase/getCoinbaseBuyUrl/index.d.ts +2 -0
  108. package/src/modules/funding/coinbase/getCoinbaseBuyUrl/index.d.ts.map +1 -0
  109. package/src/modules/funding/coinbase/getMissingVerificationForCoinbaseOnrampOrder/getMissingVerificationForCoinbaseOnrampOrder.d.ts +23 -0
  110. package/src/modules/funding/coinbase/getMissingVerificationForCoinbaseOnrampOrder/getMissingVerificationForCoinbaseOnrampOrder.d.ts.map +1 -0
  111. package/src/modules/funding/coinbase/getMissingVerificationForCoinbaseOnrampOrder/index.d.ts +2 -0
  112. package/src/modules/funding/coinbase/getMissingVerificationForCoinbaseOnrampOrder/index.d.ts.map +1 -0
  113. package/src/modules/funding/coinbase/utils/validateUserCredentialsForCoinbaseOnrampOrder/index.d.ts +2 -0
  114. package/src/modules/funding/coinbase/utils/validateUserCredentialsForCoinbaseOnrampOrder/index.d.ts.map +1 -0
  115. package/src/modules/funding/coinbase/utils/validateUserCredentialsForCoinbaseOnrampOrder/validateUserCredentialsForCoinbaseOnrampOrder.d.ts +4 -0
  116. package/src/modules/funding/coinbase/utils/validateUserCredentialsForCoinbaseOnrampOrder/validateUserCredentialsForCoinbaseOnrampOrder.d.ts.map +1 -0
  117. package/src/modules/funding/cryptoDotCom/createCryptoDotComPayment/createCryptoDotComPayment.d.ts +10 -0
  118. package/src/modules/funding/cryptoDotCom/createCryptoDotComPayment/createCryptoDotComPayment.d.ts.map +1 -0
  119. package/src/modules/funding/cryptoDotCom/createCryptoDotComPayment/index.d.ts +2 -0
  120. package/src/modules/funding/cryptoDotCom/createCryptoDotComPayment/index.d.ts.map +1 -0
  121. package/src/modules/funding/cryptoDotCom/cryptoDotCom.types.d.ts +8 -0
  122. package/src/modules/funding/cryptoDotCom/cryptoDotCom.types.d.ts.map +1 -0
  123. package/src/modules/initializeClient/consts.d.ts +5 -0
  124. package/src/modules/initializeClient/consts.d.ts.map +1 -0
  125. package/src/modules/initializeClient/initializeClient.d.ts.map +1 -1
  126. package/src/modules/initializeClient/waitForProjectSettings/index.d.ts +2 -0
  127. package/src/modules/initializeClient/waitForProjectSettings/index.d.ts.map +1 -0
  128. package/src/modules/initializeClient/waitForProjectSettings/waitForProjectSettings.d.ts +3 -0
  129. package/src/modules/initializeClient/waitForProjectSettings/waitForProjectSettings.d.ts.map +1 -0
  130. package/src/modules/mfa/authenticatePasskeyMFA/authenticatePasskeyMFA.d.ts +2 -1
  131. package/src/modules/mfa/authenticatePasskeyMFA/authenticatePasskeyMFA.d.ts.map +1 -1
  132. package/src/modules/otp/verifyOTP/verifyOTP.d.ts +3 -2
  133. package/src/modules/otp/verifyOTP/verifyOTP.d.ts.map +1 -1
  134. package/src/modules/projectSettings/fetchProjectSettings/fetchProjectSettings.d.ts.map +1 -1
  135. package/src/modules/projectSettings/fetchProjectSettings/projectSettingsExpirationScheme.d.ts +1 -1
  136. package/src/modules/projectSettings/fetchProjectSettings/projectSettingsExpirationScheme.d.ts.map +1 -1
  137. package/src/modules/storageSync/hydrateStateWithStorage/hydrateStateWithStorage.d.ts.map +1 -1
  138. package/src/modules/storageSync/schema.d.ts +15 -2
  139. package/src/modules/storageSync/schema.d.ts.map +1 -1
  140. package/src/modules/storageSync/syncStateWithStorage/syncStateWithStorage.d.ts.map +1 -1
  141. package/src/modules/user/deleteUser/deleteUser.d.ts +11 -0
  142. package/src/modules/user/deleteUser/deleteUser.d.ts.map +1 -0
  143. package/src/modules/user/deleteUser/index.d.ts +2 -0
  144. package/src/modules/user/deleteUser/index.d.ts.map +1 -0
  145. package/src/modules/waas/constants.d.ts +2 -2
  146. package/src/modules/waas/constants.d.ts.map +1 -1
  147. package/src/modules/waas/createWaasProvider/createWaasProvider.d.ts.map +1 -1
  148. package/src/modules/waas/createWaasWalletAccounts/createWaasWalletAccounts.d.ts.map +1 -1
  149. package/src/modules/waas/delegateWaasKeyShares/delegateWaasKeyShares.d.ts.map +1 -1
  150. package/src/modules/waas/getWaasWalletProviderByChain/getWaasWalletProviderByChain.d.ts.map +1 -1
  151. package/src/modules/waas/hasDelegatedAccess/hasDelegatedAccess.d.ts +14 -0
  152. package/src/modules/waas/hasDelegatedAccess/hasDelegatedAccess.d.ts.map +1 -0
  153. package/src/modules/waas/hasDelegatedAccess/index.d.ts +2 -0
  154. package/src/modules/waas/hasDelegatedAccess/index.d.ts.map +1 -0
  155. package/src/modules/waas/isWaasWalletAccount/isWaasWalletAccount.d.ts.map +1 -1
  156. package/src/modules/waas/isWaasWalletProvider/isWaasWalletProvider.d.ts.map +1 -1
  157. package/src/modules/waas/revokeWaasDelegation/index.d.ts +2 -0
  158. package/src/modules/waas/revokeWaasDelegation/index.d.ts.map +1 -0
  159. package/src/modules/waas/revokeWaasDelegation/revokeWaasDelegation.d.ts +16 -0
  160. package/src/modules/waas/revokeWaasDelegation/revokeWaasDelegation.d.ts.map +1 -0
  161. package/src/modules/waas/waas.types.d.ts +4 -0
  162. package/src/modules/waas/waas.types.d.ts.map +1 -1
  163. package/src/modules/wallets/connectWithWalletProvider/connectWithWalletProvider.d.ts +4 -3
  164. package/src/modules/wallets/connectWithWalletProvider/connectWithWalletProvider.d.ts.map +1 -1
  165. package/src/modules/wallets/constants.d.ts.map +1 -1
  166. package/src/modules/wallets/getAvailableWalletProvidersData/getAvailableWalletProvidersData.d.ts +2 -6
  167. package/src/modules/wallets/getAvailableWalletProvidersData/getAvailableWalletProvidersData.d.ts.map +1 -1
  168. package/src/modules/wallets/getOwnerWalletAccountForSmartWalletAccount/getOwnerWalletAccountForSmartWalletAccount.d.ts +7 -0
  169. package/src/modules/wallets/getOwnerWalletAccountForSmartWalletAccount/getOwnerWalletAccountForSmartWalletAccount.d.ts.map +1 -0
  170. package/src/modules/wallets/getOwnerWalletAccountForSmartWalletAccount/index.d.ts +2 -0
  171. package/src/modules/wallets/getOwnerWalletAccountForSmartWalletAccount/index.d.ts.map +1 -0
  172. package/src/modules/wallets/getWalletAccountAddressByType/getWalletAccountAddressByType.d.ts +8 -0
  173. package/src/modules/wallets/getWalletAccountAddressByType/getWalletAccountAddressByType.d.ts.map +1 -0
  174. package/src/modules/wallets/getWalletAccountAddressByType/index.d.ts +2 -0
  175. package/src/modules/wallets/getWalletAccountAddressByType/index.d.ts.map +1 -0
  176. package/src/modules/wallets/getWalletAccounts/getWalletAccounts.d.ts.map +1 -1
  177. package/src/modules/wallets/getWalletAccounts/getWalletAccountsFromState/getWalletAccountsFromState.d.ts +9 -1
  178. package/src/modules/wallets/getWalletAccounts/getWalletAccountsFromState/getWalletAccountsFromState.d.ts.map +1 -1
  179. package/src/modules/wallets/getWalletProviderDataByKey/getWalletProviderDataByKey.d.ts +14 -0
  180. package/src/modules/wallets/getWalletProviderDataByKey/getWalletProviderDataByKey.d.ts.map +1 -0
  181. package/src/modules/wallets/getWalletProviderDataByKey/index.d.ts +2 -0
  182. package/src/modules/wallets/getWalletProviderDataByKey/index.d.ts.map +1 -0
  183. package/src/modules/wallets/isWalletAccountVerified/index.d.ts +2 -0
  184. package/src/modules/wallets/isWalletAccountVerified/index.d.ts.map +1 -0
  185. package/src/modules/wallets/isWalletAccountVerified/isWalletAccountVerified.d.ts +13 -0
  186. package/src/modules/wallets/isWalletAccountVerified/isWalletAccountVerified.d.ts.map +1 -0
  187. package/src/modules/wallets/networks/getNetworkDataForNetworkId/getNetworkDataForNetworkId.d.ts +10 -0
  188. package/src/modules/wallets/networks/getNetworkDataForNetworkId/getNetworkDataForNetworkId.d.ts.map +1 -0
  189. package/src/modules/wallets/networks/getNetworkDataForNetworkId/index.d.ts +2 -0
  190. package/src/modules/wallets/networks/getNetworkDataForNetworkId/index.d.ts.map +1 -0
  191. package/src/modules/wallets/networks/getTransactionHistory/getTransactionHistory.d.ts +26 -0
  192. package/src/modules/wallets/networks/getTransactionHistory/getTransactionHistory.d.ts.map +1 -0
  193. package/src/modules/wallets/networks/getTransactionHistory/index.d.ts +3 -0
  194. package/src/modules/wallets/networks/getTransactionHistory/index.d.ts.map +1 -0
  195. package/src/modules/wallets/networks/lastKnownNetworkRegistry/createLastKnownNetworkRegistry/createLastKnownNetworkRegistry.d.ts.map +1 -1
  196. package/src/modules/wallets/networks/lastKnownNetworkRegistry/createLastKnownNetworkRegistry/schema.d.ts +1 -1
  197. package/src/modules/wallets/networks/lastKnownNetworkRegistry/createLastKnownNetworkRegistry/schema.d.ts.map +1 -1
  198. package/src/modules/wallets/proveWalletAccountOwnership/proveWalletAccountOwnership.d.ts +1 -1
  199. package/src/modules/wallets/proveWalletAccountOwnership/proveWalletAccountOwnership.d.ts.map +1 -1
  200. package/src/modules/wallets/removeWalletAccount/removeWalletAccount.d.ts.map +1 -1
  201. package/src/modules/wallets/unverifiedWalletAccounts/removeUnverifiedWalletAccount/removeUnverifiedWalletAccount.d.ts.map +1 -1
  202. package/src/modules/wallets/unverifiedWalletAccounts/schema.d.ts +5 -0
  203. package/src/modules/wallets/unverifiedWalletAccounts/schema.d.ts.map +1 -1
  204. package/src/modules/wallets/unverifiedWalletAccounts/setUnverifiedWalletAccounts/setUnverifiedWalletAccounts.d.ts +2 -0
  205. package/src/modules/wallets/unverifiedWalletAccounts/setUnverifiedWalletAccounts/setUnverifiedWalletAccounts.d.ts.map +1 -1
  206. package/src/modules/wallets/utils/convertUnverifiedWalletAccountToWalletAccount/convertUnverifiedWalletAccountToWalletAccount.d.ts +5 -1
  207. package/src/modules/wallets/utils/convertUnverifiedWalletAccountToWalletAccount/convertUnverifiedWalletAccountToWalletAccount.d.ts.map +1 -1
  208. package/src/modules/wallets/utils/convertVerifiedCredentialToWalletAccount/convertVerifiedCredentialToWalletAccount.d.ts +6 -1
  209. package/src/modules/wallets/utils/convertVerifiedCredentialToWalletAccount/convertVerifiedCredentialToWalletAccount.d.ts.map +1 -1
  210. package/src/modules/wallets/utils/formatSignInMessage/formatSignInMessage.d.ts +9 -7
  211. package/src/modules/wallets/utils/formatSignInMessage/formatSignInMessage.d.ts.map +1 -1
  212. package/src/modules/wallets/utils/formatWalletAccountId/formatWalletAccountId.d.ts +9 -0
  213. package/src/modules/wallets/utils/formatWalletAccountId/formatWalletAccountId.d.ts.map +1 -0
  214. package/src/modules/wallets/utils/formatWalletAccountId/index.d.ts +2 -0
  215. package/src/modules/wallets/utils/formatWalletAccountId/index.d.ts.map +1 -0
  216. package/src/modules/wallets/utils/formatWalletProviderKey/formatWalletProviderKey.d.ts +17 -2
  217. package/src/modules/wallets/utils/formatWalletProviderKey/formatWalletProviderKey.d.ts.map +1 -1
  218. package/src/modules/wallets/utils/getAddressesWithTypesFromConnectionResult/getAddressesWithTypesFromConnectionResult.d.ts +4 -0
  219. package/src/modules/wallets/utils/getAddressesWithTypesFromConnectionResult/getAddressesWithTypesFromConnectionResult.d.ts.map +1 -0
  220. package/src/modules/wallets/utils/getAddressesWithTypesFromConnectionResult/index.d.ts +2 -0
  221. package/src/modules/wallets/utils/getAddressesWithTypesFromConnectionResult/index.d.ts.map +1 -0
  222. package/src/modules/wallets/utils/getChainIdForAccountVerification/getChainIdForAccountVerification.d.ts.map +1 -1
  223. package/src/modules/wallets/utils/getInjectedProviderFromWindow/getInjectedProviderFromWindow.d.ts +2 -0
  224. package/src/modules/wallets/utils/getInjectedProviderFromWindow/getInjectedProviderFromWindow.d.ts.map +1 -0
  225. package/src/modules/wallets/utils/getInjectedProviderFromWindow/index.d.ts +2 -0
  226. package/src/modules/wallets/utils/getInjectedProviderFromWindow/index.d.ts.map +1 -0
  227. package/src/modules/wallets/utils/getSignInMessage/createSignInMessageStatement/createSignInMessageStatement.d.ts +3 -0
  228. package/src/modules/wallets/utils/getSignInMessage/createSignInMessageStatement/createSignInMessageStatement.d.ts.map +1 -0
  229. package/src/modules/wallets/utils/getSignInMessage/createSignInMessageStatement/index.d.ts +2 -0
  230. package/src/modules/wallets/utils/getSignInMessage/createSignInMessageStatement/index.d.ts.map +1 -0
  231. package/src/modules/wallets/utils/getSignInMessage/getSignInMessage.d.ts.map +1 -1
  232. package/src/modules/wallets/utils/getVerifiedCredentialForWalletAccount/getVerifiedCredentialForWalletAccount.d.ts +8 -0
  233. package/src/modules/wallets/utils/getVerifiedCredentialForWalletAccount/getVerifiedCredentialForWalletAccount.d.ts.map +1 -0
  234. package/src/modules/wallets/utils/getVerifiedCredentialForWalletAccount/index.d.ts +2 -0
  235. package/src/modules/wallets/utils/getVerifiedCredentialForWalletAccount/index.d.ts.map +1 -0
  236. package/src/modules/wallets/utils/normalizeWalletNameWithChain/index.d.ts +2 -0
  237. package/src/modules/wallets/utils/normalizeWalletNameWithChain/index.d.ts.map +1 -0
  238. package/src/modules/wallets/utils/normalizeWalletNameWithChain/normalizeWalletNameWithChain.d.ts +12 -0
  239. package/src/modules/wallets/utils/normalizeWalletNameWithChain/normalizeWalletNameWithChain.d.ts.map +1 -0
  240. package/src/modules/wallets/verifySignInMessage/index.d.ts +2 -0
  241. package/src/modules/wallets/verifySignInMessage/index.d.ts.map +1 -0
  242. package/src/modules/wallets/verifySignInMessage/verifySignInMessage.d.ts +22 -0
  243. package/src/modules/wallets/verifySignInMessage/verifySignInMessage.d.ts.map +1 -0
  244. package/src/modules/wallets/verifyWalletAccount/verifyWalletAccount.d.ts.map +1 -1
  245. package/src/modules/wallets/walletAccount/index.d.ts +1 -1
  246. package/src/modules/wallets/walletAccount/index.d.ts.map +1 -1
  247. package/src/modules/wallets/walletAccount/walletAccount.types.d.ts +8 -0
  248. package/src/modules/wallets/walletAccount/walletAccount.types.d.ts.map +1 -1
  249. package/src/modules/wallets/walletProvider/index.d.ts +1 -1
  250. package/src/modules/wallets/walletProvider/index.d.ts.map +1 -1
  251. package/src/modules/wallets/walletProvider/splitWalletProviderKey/index.d.ts +2 -0
  252. package/src/modules/wallets/walletProvider/splitWalletProviderKey/index.d.ts.map +1 -0
  253. package/src/modules/wallets/walletProvider/splitWalletProviderKey/splitWalletProviderKey.d.ts +9 -0
  254. package/src/modules/wallets/walletProvider/splitWalletProviderKey/splitWalletProviderKey.d.ts.map +1 -0
  255. package/src/modules/wallets/walletProvider/walletProvider.types.d.ts +24 -8
  256. package/src/modules/wallets/walletProvider/walletProvider.types.d.ts.map +1 -1
  257. package/src/modules/wallets/walletProvider/walletProviderKeyMap/getWalletProviderKeyFromVerifiedCredential/getWalletProviderKeyFromVerifiedCredential.d.ts +10 -0
  258. package/src/modules/wallets/walletProvider/walletProviderKeyMap/getWalletProviderKeyFromVerifiedCredential/getWalletProviderKeyFromVerifiedCredential.d.ts.map +1 -0
  259. package/src/modules/wallets/walletProvider/walletProviderKeyMap/getWalletProviderKeyFromVerifiedCredential/index.d.ts +2 -0
  260. package/src/modules/wallets/walletProvider/walletProviderKeyMap/getWalletProviderKeyFromVerifiedCredential/index.d.ts.map +1 -0
  261. package/src/modules/wallets/walletProvider/walletProviderKeyMap/schema.d.ts +3 -0
  262. package/src/modules/wallets/walletProvider/walletProviderKeyMap/schema.d.ts.map +1 -0
  263. package/src/modules/wallets/walletProvider/walletProviderKeyMap/state.d.ts +16 -0
  264. package/src/modules/wallets/walletProvider/walletProviderKeyMap/state.d.ts.map +1 -0
  265. package/src/modules/wallets/walletProvider/walletProviderKeyMap/updateWalletProviderKeysForVerifiedCredentials/index.d.ts +2 -0
  266. package/src/modules/wallets/walletProvider/walletProviderKeyMap/updateWalletProviderKeysForVerifiedCredentials/index.d.ts.map +1 -0
  267. package/src/modules/wallets/walletProvider/walletProviderKeyMap/updateWalletProviderKeysForVerifiedCredentials/updateWalletProviderKeysForVerifiedCredentials.d.ts +7 -0
  268. package/src/modules/wallets/walletProvider/walletProviderKeyMap/updateWalletProviderKeysForVerifiedCredentials/updateWalletProviderKeysForVerifiedCredentials.d.ts.map +1 -0
  269. package/src/modules/wallets/walletProvider/walletProviderKeyMap/walletProviderKeyMap.types.d.ts +12 -0
  270. package/src/modules/wallets/walletProvider/walletProviderKeyMap/walletProviderKeyMap.types.d.ts.map +1 -0
  271. package/src/services/asyncTrack/asyncTrack.types.d.ts +5 -1
  272. package/src/services/asyncTrack/asyncTrack.types.d.ts.map +1 -1
  273. package/src/services/asyncTrack/createAsyncTrack.d.ts.map +1 -1
  274. package/src/services/storage/index.d.ts +1 -1
  275. package/src/services/storage/index.d.ts.map +1 -1
  276. package/src/utils/debouncedMutex/createDebouncedMutex/createDebouncedMutex.d.ts +3 -0
  277. package/src/utils/debouncedMutex/createDebouncedMutex/createDebouncedMutex.d.ts.map +1 -0
  278. package/src/utils/debouncedMutex/createDebouncedMutex/index.d.ts +2 -0
  279. package/src/utils/debouncedMutex/createDebouncedMutex/index.d.ts.map +1 -0
  280. package/src/utils/debouncedMutex/debouncedMutex.types.d.ts +39 -0
  281. package/src/utils/debouncedMutex/debouncedMutex.types.d.ts.map +1 -0
  282. package/src/utils/debouncedMutex/index.d.ts +2 -0
  283. package/src/utils/debouncedMutex/index.d.ts.map +1 -0
  284. package/waas.cjs.js +86 -38
  285. package/waas.esm.js +62 -16
  286. package/waasCore.cjs.js +21 -10
  287. package/waasCore.esm.js +15 -4
  288. package/getWalletProviderByKey.cjs.js +0 -74
  289. package/getWalletProviderByKey.esm.js +0 -69
  290. package/logout.cjs.js +0 -1086
  291. package/logout.esm.js +0 -1020
  292. package/src/modules/apiClient/utils/logoutOnUnauthorizedRequestMiddleware/index.d.ts +0 -2
  293. package/src/modules/apiClient/utils/logoutOnUnauthorizedRequestMiddleware/index.d.ts.map +0 -1
  294. package/src/modules/apiClient/utils/logoutOnUnauthorizedRequestMiddleware/logoutOnUnauthorizedRequestMiddleware.d.ts +0 -4
  295. package/src/modules/apiClient/utils/logoutOnUnauthorizedRequestMiddleware/logoutOnUnauthorizedRequestMiddleware.d.ts.map +0 -1
  296. package/src/modules/auth/social/oauth/completeSocialRedirectSignIn/completeSocialRedirectSignIn.d.ts.map +0 -1
  297. package/src/modules/auth/social/oauth/completeSocialRedirectSignIn/index.d.ts +0 -2
  298. package/src/modules/auth/social/oauth/signInWithSocialRedirect/buildOAuthUrl/addOAuthUrlParams/addOAuthUrlParams.d.ts.map +0 -1
  299. package/src/modules/auth/social/oauth/signInWithSocialRedirect/buildOAuthUrl/addOAuthUrlParams/index.d.ts.map +0 -1
  300. package/src/modules/auth/social/oauth/signInWithSocialRedirect/buildOAuthUrl/buildOAuthUrl.d.ts.map +0 -1
  301. package/src/modules/auth/social/oauth/signInWithSocialRedirect/buildOAuthUrl/getOAuthBaseUrl/getOAuthBaseUrl.d.ts.map +0 -1
  302. package/src/modules/auth/social/oauth/signInWithSocialRedirect/buildOAuthUrl/getOAuthBaseUrl/index.d.ts.map +0 -1
  303. package/src/modules/auth/social/oauth/signInWithSocialRedirect/index.d.ts +0 -2
  304. package/src/modules/auth/social/oauth/signInWithSocialRedirect/signInWithSocialRedirect.d.ts.map +0 -1
  305. package/src/modules/wallets/utils/createWalletAccountId/createWalletAccountId.d.ts +0 -3
  306. package/src/modules/wallets/utils/createWalletAccountId/createWalletAccountId.d.ts.map +0 -1
  307. package/src/modules/wallets/utils/createWalletAccountId/index.d.ts +0 -2
  308. package/src/modules/wallets/utils/createWalletAccountId/index.d.ts.map +0 -1
  309. /package/src/modules/auth/social/oauth/{signInWithSocialRedirect → authenticateWithSocial}/buildOAuthUrl/addOAuthUrlParams/addOAuthUrlParams.d.ts +0 -0
  310. /package/src/modules/auth/social/oauth/{signInWithSocialRedirect → authenticateWithSocial}/buildOAuthUrl/addOAuthUrlParams/index.d.ts +0 -0
  311. /package/src/modules/auth/social/oauth/{signInWithSocialRedirect → authenticateWithSocial}/buildOAuthUrl/buildOAuthUrl.d.ts +0 -0
  312. /package/src/modules/auth/social/oauth/{signInWithSocialRedirect → authenticateWithSocial}/buildOAuthUrl/getOAuthBaseUrl/getOAuthBaseUrl.d.ts +0 -0
  313. /package/src/modules/auth/social/oauth/{signInWithSocialRedirect → authenticateWithSocial}/buildOAuthUrl/getOAuthBaseUrl/index.d.ts +0 -0
  314. /package/src/modules/auth/social/oauth/{signInWithSocialRedirect → authenticateWithSocial}/buildOAuthUrl/index.d.ts +0 -0
@@ -0,0 +1,515 @@
1
+ 'use strict';
2
+
3
+ var constants = require('./constants.cjs.js');
4
+ var sdkApiCore = require('@dynamic-labs/sdk-api-core');
5
+
6
+ /**
7
+ * Sefelly sets the cookie in the browser.
8
+ */ const setCookie = (cookie)=>{
9
+ // eslint-disable-next-line no-restricted-globals
10
+ document.cookie = cookie;
11
+ };
12
+
13
+ /**
14
+ * Adds an event listener for Dynamic client events.
15
+ *
16
+ * This function allows you to listen for various events emitted by the Dynamic client,
17
+ * such as authentication state changes, wallet connections, and more.
18
+ *
19
+ * @param params.event - The event name to listen for.
20
+ * @param params.listener - The callback function to execute when the event is fired.
21
+ * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
22
+ * @returns A function that can be called to remove the listener.
23
+ */ const onEvent = ({ event, listener }, client = constants.getDefaultClient())=>{
24
+ const { eventEmitter } = constants.getCore(client);
25
+ eventEmitter.on(event, listener);
26
+ return ()=>{
27
+ eventEmitter.off(event, listener);
28
+ };
29
+ };
30
+ /**
31
+ * Removes an event listener from Dynamic client events.
32
+ *
33
+ * This function unsubscribes a previously registered event listener
34
+ * from the specified Dynamic client event.
35
+ *
36
+ * @param params.event - The event name to remove the listener from.
37
+ * @param params.listener - The callback function to remove.
38
+ * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
39
+ */ const offEvent = ({ event, listener }, client = constants.getDefaultClient())=>{
40
+ const { eventEmitter } = constants.getCore(client);
41
+ eventEmitter.off(event, listener);
42
+ };
43
+ /**
44
+ * Adds a one-time event listener for Dynamic client events.
45
+ *
46
+ * This function listens for an event that will automatically remove itself
47
+ * after being triggered once.
48
+ *
49
+ * @param params.event - The event name to listen for.
50
+ * @param params.listener - The callback function to execute when the event is fired.
51
+ * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
52
+ * @returns A function that can be called to remove the listener before it fires.
53
+ */ const onceEvent = ({ event, listener }, client = constants.getDefaultClient())=>{
54
+ const { eventEmitter } = constants.getCore(client);
55
+ eventEmitter.once(event, listener);
56
+ return ()=>{
57
+ eventEmitter.off(event, listener);
58
+ };
59
+ };
60
+ /**
61
+ * Emits a Dynamic client event.
62
+ *
63
+ * This function triggers an event that will be received by all registered
64
+ * listeners for the specified event type.
65
+ *
66
+ * @param params.event - The event name to emit.
67
+ * @param params.args - The arguments to pass to event listeners.
68
+ * @param client - The Dynamic client instance.
69
+ */ const emitEvent = ({ event, args }, client)=>{
70
+ const { eventEmitter } = constants.getCore(client);
71
+ eventEmitter.emit(event, args);
72
+ };
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
+
98
+ const normalizeAddress = (address, chain)=>{
99
+ let normalizedAddress = address;
100
+ if (normalizedAddress == null ? void 0 : normalizedAddress.startsWith('0x')) {
101
+ normalizedAddress = normalizedAddress.slice(2);
102
+ }
103
+ /**
104
+ * These are standard from CAIP-2: https://github.com/ChainAgnostic/CAIPs/blob/master/CAIPs/caip-2.md
105
+ * see also: https://github.com/ChainAgnostic/namespaces
106
+ * note: no standard namespace currently exists for flow
107
+ */ const chainsThatRequireLowercaseAddress = [
108
+ 'EVM',
109
+ 'FLOW'
110
+ ];
111
+ normalizedAddress = chainsThatRequireLowercaseAddress.includes(chain) ? normalizedAddress == null ? void 0 : normalizedAddress.toLowerCase() : normalizedAddress;
112
+ return normalizedAddress;
113
+ };
114
+
115
+ const formatWalletAccountId = ({ address, chain, walletProviderKey })=>{
116
+ const { normalizedWalletNameWithChain } = splitWalletProviderKey(walletProviderKey);
117
+ const normalizedAddress = normalizeAddress(address, chain);
118
+ return `${normalizedWalletNameWithChain}:${normalizedAddress}`;
119
+ };
120
+
121
+ const convertUnverifiedWalletAccountToWalletAccount = ({ unverifiedWalletAccount })=>({
122
+ address: unverifiedWalletAccount.address,
123
+ addressesWithTypes: unverifiedWalletAccount.addressesWithTypes,
124
+ chain: unverifiedWalletAccount.chain,
125
+ id: formatWalletAccountId({
126
+ address: unverifiedWalletAccount.address,
127
+ chain: unverifiedWalletAccount.chain,
128
+ walletProviderKey: unverifiedWalletAccount.walletProviderKey
129
+ }),
130
+ lastSelectedAt: unverifiedWalletAccount.lastSelectedAt,
131
+ verifiedCredentialId: null,
132
+ walletProviderKey: unverifiedWalletAccount.walletProviderKey
133
+ });
134
+
135
+ /**
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}` : ''}`;
162
+ };
163
+
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;
211
+ return {
212
+ address: verifiedCredential.address,
213
+ addressesWithTypes: verifiedCredential.walletAdditionalAddresses,
214
+ chain,
215
+ id: walletAccountId,
216
+ lastSelectedAt: (_verifiedCredential_lastSelectedAt = verifiedCredential.lastSelectedAt) != null ? _verifiedCredential_lastSelectedAt : null,
217
+ verifiedCredentialId: verifiedCredential.id,
218
+ walletProviderKey
219
+ };
220
+ };
221
+
222
+ const getWalletAccountsFromState = ({ unverifiedWalletAccounts, user }, client)=>{
223
+ const walletAccountsMap = new Map();
224
+ /**
225
+ * Handle the unverified wallet accounts before the user verified credentials
226
+ * so the later verified wallet accounts can override the unverified wallet accounts
227
+ */ unverifiedWalletAccounts.forEach((unverifiedWalletAccount)=>{
228
+ const walletAccount = convertUnverifiedWalletAccountToWalletAccount({
229
+ unverifiedWalletAccount
230
+ });
231
+ walletAccountsMap.set(walletAccount.id, walletAccount);
232
+ });
233
+ var _user_verifiedCredentials;
234
+ /**
235
+ * Handle user verified credentials
236
+ */ const verifiedCredentials = (_user_verifiedCredentials = user == null ? void 0 : user.verifiedCredentials) != null ? _user_verifiedCredentials : [];
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
+ });
243
+ return Array.from(walletAccountsMap.values());
244
+ };
245
+
246
+ /**
247
+ * Retrieves all wallet accounts associated with the current session.
248
+ *
249
+ * This function returns both verified and unverified wallet accounts,
250
+ * combining data from user credentials and local unverified accounts.
251
+ * You can differentiate between verified and unverified wallet accounts by
252
+ * checking the `verifiedCredentialId` property.
253
+ *
254
+ * @param [client] - The Dynamic client instance. Only required when using multiple Dynamic clients.
255
+ * @returns An array of wallet accounts associated with the session.
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
+ };
264
+
265
+ class NoWalletProviderFoundError extends constants.BaseError {
266
+ constructor({ walletProviderKey }){
267
+ super({
268
+ cause: null,
269
+ code: 'no_wallet_provider_found_error',
270
+ docsUrl: null,
271
+ name: 'NoWalletProviderFoundError',
272
+ shortMessage: `No wallet provider found with key: ${walletProviderKey}`
273
+ });
274
+ }
275
+ }
276
+
277
+ /**
278
+ * Creates a service accessor function that manages service instantiation and caching.
279
+ * The returned function will either retrieve an existing service from the registry or
280
+ * create a new one using the provided builder function.
281
+ *
282
+ * @template - The type of service to be created/accessed
283
+ * @param key - Unique identifier for the service in the registry
284
+ * @param builder - Function that creates the service instance when called with a DynamicClient
285
+ */ const createRuntimeServiceAccessKey = (key, builder)=>(client)=>{
286
+ const { runtimeServices } = constants.getCore(client);
287
+ const currentService = runtimeServices.getByKey(key);
288
+ if (currentService) {
289
+ return currentService;
290
+ }
291
+ const service = builder(client);
292
+ runtimeServices.register(key, service);
293
+ return service;
294
+ };
295
+
296
+ /**
297
+ * Creates a new wallet provider registry that manages wallet providers with priority-based registration.
298
+ *
299
+ * @returns The wallet provider registry instance
300
+ *
301
+ * @example
302
+ * ```typescript
303
+ * const registry = createWalletProviderRegistry();
304
+ *
305
+ * registry.register({
306
+ * priority: WalletProviderPriority.WALLET_SDK,
307
+ * walletProvider: myWalletProvider
308
+ * });
309
+ *
310
+ * const provider = registry.getByKey('my-wallet-key');
311
+ * const providers = registry.listProviders();
312
+ * ```
313
+ */ const createWalletProviderRegistry = (client)=>{
314
+ const registry = new Map();
315
+ return {
316
+ getByKey: (key)=>{
317
+ var _registry_get;
318
+ return (_registry_get = registry.get(key)) == null ? void 0 : _registry_get.walletProvider;
319
+ },
320
+ listProviders: ()=>Array.from(registry.values()).map((v)=>v.walletProvider),
321
+ register: (args)=>{
322
+ const existingEntry = registry.get(args.walletProvider.key);
323
+ if (existingEntry) {
324
+ if (existingEntry.priority < args.priority) {
325
+ registry.set(args.walletProvider.key, args);
326
+ emitEvent({
327
+ args: {
328
+ walletProviderKey: args.walletProvider.key
329
+ },
330
+ event: 'walletProviderChanged'
331
+ }, client);
332
+ }
333
+ } else {
334
+ registry.set(args.walletProvider.key, args);
335
+ emitEvent({
336
+ args: {
337
+ walletProvider: args.walletProvider
338
+ },
339
+ event: 'walletProviderRegistered'
340
+ }, client);
341
+ emitEvent({
342
+ args: {
343
+ walletProviderKey: args.walletProvider.key
344
+ },
345
+ event: 'walletProviderChanged'
346
+ }, client);
347
+ }
348
+ },
349
+ unregister: (key)=>{
350
+ registry.delete(key);
351
+ emitEvent({
352
+ args: {
353
+ walletProviderKey: key
354
+ },
355
+ event: 'walletProviderUnregistered'
356
+ }, client);
357
+ }
358
+ };
359
+ };
360
+
361
+ /**
362
+ * This function provides access to a shared instance of the wallet provider registry.
363
+ *
364
+ * It ensures that the same registry instance is used throughout the client to maintaining
365
+ * consistency of registered wallet providers across different parts of the codebase.
366
+ *
367
+ * @returns The wallet provider registry instance
368
+ *
369
+ * @example
370
+ * ```typescript
371
+ * // Get the registry instance
372
+ * const registry = getWalletProviderRegistry();
373
+ *
374
+ * // Register a wallet provider
375
+ * registry.register({
376
+ * priority: WalletProviderPriority.WALLET_SDK,
377
+ * walletProvider: myWalletProvider
378
+ * });
379
+ *
380
+ * // Retrieve a specific provider
381
+ * const provider = registry.getByKey('metamaskevm');
382
+ * ```
383
+ */ const getWalletProviderRegistry = createRuntimeServiceAccessKey('walletProviderRegistry', (client)=>createWalletProviderRegistry(client));
384
+
385
+ exports.WalletProviderPriority = void 0;
386
+ (function(WalletProviderPriority) {
387
+ /**
388
+ * Highest priority should be used by wallet providers that implement
389
+ * the most reliable wallet integration.
390
+ * example: The SDK provided by the wallet provider.
391
+ */ WalletProviderPriority[WalletProviderPriority["WALLET_SDK"] = 100] = "WALLET_SDK";
392
+ /**
393
+ * Medium priority should be used by wallet providers that implement
394
+ * a wallet integration via some reliable standard.
395
+ * example: A wallet provider that uses EIP6963 announcement.
396
+ */ WalletProviderPriority[WalletProviderPriority["WALLET_SELF_ANNOUNCEMENT_STANDARD"] = 50] = "WALLET_SELF_ANNOUNCEMENT_STANDARD";
397
+ /**
398
+ * Low priority should be used by wallet providers that implement
399
+ * a wallet integration on a less reliable standard.
400
+ * example: A wallet provider that uses window.ethereum, where the
401
+ * window key can be overridden by other extensions.
402
+ */ WalletProviderPriority[WalletProviderPriority["WINDOW_INJECT"] = 20] = "WINDOW_INJECT";
403
+ })(exports.WalletProviderPriority || (exports.WalletProviderPriority = {}));
404
+
405
+ const getWalletProviderFromWalletAccount = ({ walletAccount }, client)=>{
406
+ const walletProviderRegistry = getWalletProviderRegistry(client);
407
+ const walletProvider = walletProviderRegistry.getByKey(walletAccount.walletProviderKey);
408
+ if (!walletProvider) {
409
+ throw new NoWalletProviderFoundError({
410
+ walletProviderKey: walletAccount.walletProviderKey
411
+ });
412
+ }
413
+ return walletProvider;
414
+ };
415
+
416
+ const DYNAMIC_AUTH_COOKIE_NAME = 'DYNAMIC_JWT_TOKEN';
417
+
418
+ /**
419
+ * Emits the `walletAccountsChanged` event.
420
+ */ const emitWalletAccountsChangedEvent = (client)=>{
421
+ const walletAccounts = getWalletAccounts(client);
422
+ emitEvent({
423
+ args: {
424
+ walletAccounts
425
+ },
426
+ event: 'walletAccountsChanged'
427
+ }, client);
428
+ };
429
+
430
+ const checkAndRaiseWalletAccountsChangedEvent = ({ previousState }, client)=>{
431
+ const core = constants.getCore(client);
432
+ const walletAccountsHashBefore = getWalletAccountsHash(previousState, client);
433
+ const walletAccountsHashAfter = getWalletAccountsHash(core.state.get(), client);
434
+ if (walletAccountsHashBefore !== walletAccountsHashAfter) {
435
+ emitWalletAccountsChangedEvent(client);
436
+ }
437
+ };
438
+ const getWalletAccountsHash = (state, client)=>getWalletAccountsFromState(state, client).map((walletAccount)=>JSON.stringify(walletAccount)).sort().join('-');
439
+
440
+ const updateAuthFromVerifyResponse = ({ response }, client)=>{
441
+ const core = constants.getCore(client);
442
+ const previousState = constants._extends({}, core.state.get());
443
+ const { user, minifiedJwt, jwt, expiresAt, mfaToken } = response;
444
+ // Expires at is in seconds, so we need to convert it to milliseconds
445
+ const sessionExpiresAt = new Date(expiresAt * 1000);
446
+ const newState = {
447
+ legacyToken: jwt != null ? jwt : null,
448
+ sessionExpiresAt: sessionExpiresAt,
449
+ token: minifiedJwt != null ? minifiedJwt : null,
450
+ user
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);
457
+ /**
458
+ * For customers using a sandbox environment with cookies enabled, we need to set the cookie
459
+ * programmatically because Redcoast won't set the cookie via headers. We set the cookie programmatically
460
+ * so customers can access the cookie from document.cookie consistently between sandbox and live environments.
461
+ */ if (minifiedJwt && constants.isCookieEnabled(client)) {
462
+ const expireDate = sessionExpiresAt.toUTCString();
463
+ setCookie(`${DYNAMIC_AUTH_COOKIE_NAME}=${minifiedJwt}; expires=${expireDate}; path=/; SameSite=Lax`);
464
+ }
465
+ checkAndRaiseWalletAccountsChangedEvent({
466
+ previousState
467
+ }, client);
468
+ };
469
+
470
+ /**
471
+ * Get all available wallet providers to interact with internally.
472
+ */ const getWalletProviders = (client)=>{
473
+ const walletProviderRegistry = getWalletProviderRegistry(client);
474
+ return walletProviderRegistry.listProviders();
475
+ };
476
+
477
+ const getWalletProviderByKey = ({ walletProviderKey }, client)=>{
478
+ const walletProviders = getWalletProviders(client);
479
+ const walletProvider = walletProviders.find((walletProvider)=>walletProvider.key === walletProviderKey);
480
+ if (!walletProvider) {
481
+ throw new NoWalletProviderFoundError({
482
+ walletProviderKey
483
+ });
484
+ }
485
+ return walletProvider;
486
+ };
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
+
493
+ exports.DYNAMIC_AUTH_COOKIE_NAME = DYNAMIC_AUTH_COOKIE_NAME;
494
+ exports.InvalidWalletProviderKeyError = InvalidWalletProviderKeyError;
495
+ exports.NoWalletProviderFoundError = NoWalletProviderFoundError;
496
+ exports.checkAndRaiseWalletAccountsChangedEvent = checkAndRaiseWalletAccountsChangedEvent;
497
+ exports.createRuntimeServiceAccessKey = createRuntimeServiceAccessKey;
498
+ exports.emitEvent = emitEvent;
499
+ exports.emitWalletAccountsChangedEvent = emitWalletAccountsChangedEvent;
500
+ exports.formatWalletAccountId = formatWalletAccountId;
501
+ exports.formatWalletProviderKey = formatWalletProviderKey;
502
+ exports.getVerifiedCredentialForWalletAccount = getVerifiedCredentialForWalletAccount;
503
+ exports.getWalletAccounts = getWalletAccounts;
504
+ exports.getWalletProviderByKey = getWalletProviderByKey;
505
+ exports.getWalletProviderFromWalletAccount = getWalletProviderFromWalletAccount;
506
+ exports.getWalletProviderRegistry = getWalletProviderRegistry;
507
+ exports.getWalletProviders = getWalletProviders;
508
+ exports.normalizeAddress = normalizeAddress;
509
+ exports.normalizeWalletNameWithChain = normalizeWalletNameWithChain;
510
+ exports.offEvent = offEvent;
511
+ exports.onEvent = onEvent;
512
+ exports.onceEvent = onceEvent;
513
+ exports.setCookie = setCookie;
514
+ exports.splitWalletProviderKey = splitWalletProviderKey;
515
+ exports.updateAuthFromVerifyResponse = updateAuthFromVerifyResponse;