@dynamic-labs/sdk-react-core 2.1.0-alpha.1 → 2.1.0-alpha.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (225) hide show
  1. package/CHANGELOG.md +92 -0
  2. package/package.cjs +2 -2
  3. package/package.js +2 -2
  4. package/package.json +13 -14
  5. package/src/index.cjs +8 -2
  6. package/src/index.d.ts +2 -1
  7. package/src/index.js +4 -1
  8. package/src/lib/Main.cjs +7 -0
  9. package/src/lib/Main.js +7 -0
  10. package/src/lib/components/Alert/Alert.cjs +2 -2
  11. package/src/lib/components/Alert/Alert.js +2 -2
  12. package/src/lib/components/Alert/Alert.types.d.ts +1 -0
  13. package/src/lib/components/EmailForm/EmailForm.cjs +1 -1
  14. package/src/lib/components/EmailForm/EmailForm.js +1 -1
  15. package/src/lib/components/PhoneNumberField/PhoneNumberField.cjs +1 -1
  16. package/src/lib/components/PhoneNumberField/PhoneNumberField.js +1 -1
  17. package/src/lib/components/Portal/Portal.cjs +2 -1
  18. package/src/lib/components/Portal/Portal.js +2 -1
  19. package/src/lib/components/RadioButton/RadioButton.cjs +14 -0
  20. package/src/lib/components/RadioButton/RadioButton.d.ts +5 -0
  21. package/src/lib/components/RadioButton/RadioButton.js +10 -0
  22. package/src/lib/components/RadioButton/index.d.ts +1 -0
  23. package/src/lib/components/Tooltip/Tooltip.cjs +2 -1
  24. package/src/lib/components/Tooltip/Tooltip.js +2 -1
  25. package/src/lib/components/UserProfile/parts/UserProfileField/UserProfileField.cjs +1 -1
  26. package/src/lib/components/UserProfile/parts/UserProfileField/UserProfileField.d.ts +2 -1
  27. package/src/lib/components/UserProfile/parts/UserProfileField/UserProfileField.js +1 -1
  28. package/src/lib/components/index.d.ts +1 -0
  29. package/src/lib/context/DynamicContext/DynamicContext.cjs +23 -7
  30. package/src/lib/context/DynamicContext/DynamicContext.d.ts +5 -0
  31. package/src/lib/context/DynamicContext/DynamicContext.js +20 -4
  32. package/src/lib/context/DynamicContext/hooks/useTieCallbacksToEvents/useTieCallbacksToEvents.cjs +2 -2
  33. package/src/lib/context/DynamicContext/hooks/useTieCallbacksToEvents/useTieCallbacksToEvents.js +2 -2
  34. package/src/lib/context/DynamicContext/types/index.d.ts +0 -1
  35. package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerCallbacks.cjs +5 -2
  36. package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerCallbacks.js +5 -2
  37. package/src/lib/context/DynamicContext/useDynamicContext/useDynamicContext.cjs +2 -1
  38. package/src/lib/context/DynamicContext/useDynamicContext/useDynamicContext.d.ts +1 -1
  39. package/src/lib/context/DynamicContext/useDynamicContext/useDynamicContext.js +2 -1
  40. package/src/lib/context/ErrorBoundary/ErrorBoundary.cjs +64 -0
  41. package/src/lib/context/ErrorBoundary/ErrorBoundary.d.ts +3 -0
  42. package/src/lib/context/ErrorBoundary/ErrorBoundary.js +60 -0
  43. package/src/lib/context/ErrorBoundary/ErrorBoundaryBase.cjs +40 -0
  44. package/src/lib/context/ErrorBoundary/ErrorBoundaryBase.d.ts +14 -0
  45. package/src/lib/context/ErrorBoundary/ErrorBoundaryBase.js +36 -0
  46. package/src/lib/context/ErrorBoundary/ErrorBoundaryContext.cjs +24 -0
  47. package/src/lib/context/ErrorBoundary/ErrorBoundaryContext.d.ts +5 -0
  48. package/src/lib/context/ErrorBoundary/ErrorBoundaryContext.js +18 -0
  49. package/src/lib/context/ErrorBoundary/ErrorBoundaryExclude.cjs +17 -0
  50. package/src/lib/context/ErrorBoundary/ErrorBoundaryExclude.d.ts +4 -0
  51. package/src/lib/context/ErrorBoundary/ErrorBoundaryExclude.js +13 -0
  52. package/src/lib/context/ErrorBoundary/ErrorBoundaryInclude.cjs +17 -0
  53. package/src/lib/context/ErrorBoundary/ErrorBoundaryInclude.d.ts +4 -0
  54. package/src/lib/context/ErrorBoundary/ErrorBoundaryInclude.js +13 -0
  55. package/src/lib/context/ErrorBoundary/index.d.ts +3 -0
  56. package/src/lib/context/ErrorBoundary/types.d.ts +13 -0
  57. package/src/lib/context/ViewContext/ViewContext.cjs +2 -2
  58. package/src/lib/context/ViewContext/ViewContext.js +2 -2
  59. package/src/lib/context/ViewContext/types/index.d.ts +7 -2
  60. package/src/lib/data/api/chains/balances.cjs +38 -0
  61. package/src/lib/data/api/chains/balances.d.ts +8 -0
  62. package/src/lib/data/api/chains/balances.js +34 -0
  63. package/src/lib/data/api/chains/index.d.ts +1 -0
  64. package/src/lib/data/api/user/user.cjs +16 -0
  65. package/src/lib/data/api/user/user.js +16 -1
  66. package/src/lib/data/api/wallets/wallets.cjs +26 -6
  67. package/src/lib/data/api/wallets/wallets.d.ts +4 -0
  68. package/src/lib/data/api/wallets/wallets.js +26 -7
  69. package/src/lib/events/dynamicEvents.d.ts +1 -1
  70. package/src/lib/layout/DynamicAuthLayout/Header/header.cjs +6 -0
  71. package/src/lib/layout/DynamicAuthLayout/Header/header.js +6 -0
  72. package/src/lib/locale/en/translation.cjs +45 -4
  73. package/src/lib/locale/en/translation.d.ts +44 -3
  74. package/src/lib/locale/en/translation.js +45 -4
  75. package/src/lib/shared/types/dynamicEventsCallbacks.d.ts +2 -1
  76. package/src/lib/shared/types/general.d.ts +1 -0
  77. package/src/lib/shared/utils/classes/storage/localStorage.cjs +2 -2
  78. package/src/lib/shared/utils/classes/storage/localStorage.js +2 -2
  79. package/src/lib/styles/index.shadow.cjs +1 -1
  80. package/src/lib/styles/index.shadow.js +1 -1
  81. package/src/lib/utils/constants/errors.cjs +2 -2
  82. package/src/lib/utils/constants/errors.d.ts +1 -0
  83. package/src/lib/utils/constants/errors.js +2 -2
  84. package/src/lib/utils/functions/addPasskeyIdentifierToWalletConnector/addPasskeyIdentifierToWalletConnector.cjs +14 -0
  85. package/src/lib/utils/functions/addPasskeyIdentifierToWalletConnector/addPasskeyIdentifierToWalletConnector.d.ts +3 -0
  86. package/src/lib/utils/functions/addPasskeyIdentifierToWalletConnector/addPasskeyIdentifierToWalletConnector.js +10 -0
  87. package/src/lib/utils/functions/addPasskeyIdentifierToWalletConnector/index.d.ts +1 -0
  88. package/src/lib/utils/functions/createUserProfile/createUserProfile.cjs +1 -2
  89. package/src/lib/utils/functions/createUserProfile/createUserProfile.js +1 -2
  90. package/src/lib/utils/functions/findEmbeddedWalletFromVerifiedCredentials/findEmbeddedWalletFromVerifiedCredentials.cjs +3 -4
  91. package/src/lib/utils/functions/findEmbeddedWalletFromVerifiedCredentials/findEmbeddedWalletFromVerifiedCredentials.d.ts +1 -1
  92. package/src/lib/utils/functions/findEmbeddedWalletFromVerifiedCredentials/findEmbeddedWalletFromVerifiedCredentials.js +4 -5
  93. package/src/lib/utils/functions/findTurnkeyWallet/findTurnkeyWallet.cjs +12 -9
  94. package/src/lib/utils/functions/findTurnkeyWallet/findTurnkeyWallet.d.ts +8 -2
  95. package/src/lib/utils/functions/findTurnkeyWallet/findTurnkeyWallet.js +13 -10
  96. package/src/lib/utils/functions/findTurnkeyWallet/index.d.ts +1 -1
  97. package/src/lib/utils/functions/getUserVerifiedCredentialType/getUserVerifiedCredentialType.cjs +5 -5
  98. package/src/lib/utils/functions/getUserVerifiedCredentialType/getUserVerifiedCredentialType.d.ts +3 -2
  99. package/src/lib/utils/functions/getUserVerifiedCredentialType/getUserVerifiedCredentialType.js +5 -5
  100. package/src/lib/utils/functions/hasEmbeddedWallet/hasEmbeddedWallet.cjs +7 -2
  101. package/src/lib/utils/functions/hasEmbeddedWallet/hasEmbeddedWallet.js +7 -2
  102. package/src/lib/utils/functions/index.d.ts +2 -1
  103. package/src/lib/utils/functions/serializeWalletConnectors/index.d.ts +1 -0
  104. package/src/lib/utils/functions/serializeWalletConnectors/serializeWalletConnectors.cjs +32 -0
  105. package/src/lib/utils/functions/serializeWalletConnectors/serializeWalletConnectors.d.ts +2 -0
  106. package/src/lib/utils/functions/serializeWalletConnectors/serializeWalletConnectors.js +28 -0
  107. package/src/lib/utils/hooks/index.d.ts +2 -0
  108. package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.cjs +22 -17
  109. package/src/lib/utils/hooks/useAuthLayoutChecks/useAuthLayoutChecks.js +22 -17
  110. package/src/lib/utils/hooks/useConfirmationModal/useConfirmationModal.cjs +2 -1
  111. package/src/lib/utils/hooks/useConfirmationModal/useConfirmationModal.js +2 -1
  112. package/src/lib/utils/hooks/useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.cjs +22 -18
  113. package/src/lib/utils/hooks/useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.d.ts +7 -2
  114. package/src/lib/utils/hooks/useCreateDynamicEmbeddedWalletMutation/useCreateDynamicEmbeddedWalletMutation.js +22 -18
  115. package/src/lib/utils/hooks/useDynamicLayoutData/useDynamicLayoutData.cjs +8 -0
  116. package/src/lib/utils/hooks/useDynamicLayoutData/useDynamicLayoutData.js +8 -0
  117. package/src/lib/utils/hooks/useDynamicScopes/useDynamicScopes.cjs +3 -3
  118. package/src/lib/utils/hooks/useDynamicScopes/useDynamicScopes.js +3 -3
  119. package/src/lib/utils/hooks/useElementById/useElementById.cjs +33 -18
  120. package/src/lib/utils/hooks/useElementById/useElementById.d.ts +3 -1
  121. package/src/lib/utils/hooks/useElementById/useElementById.js +33 -18
  122. package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.cjs +46 -11
  123. package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.d.ts +23 -2
  124. package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.js +46 -11
  125. package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useCoinbaseMPC/useCoinbaseMPC.cjs +6 -6
  126. package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useCoinbaseMPC/useCoinbaseMPC.d.ts +1 -1
  127. package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useCoinbaseMPC/useCoinbaseMPC.js +6 -6
  128. package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useMPCEmbeddedWallet.cjs +13 -9
  129. package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useMPCEmbeddedWallet.d.ts +3 -2
  130. package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useMPCEmbeddedWallet.js +13 -9
  131. package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/constants.cjs +4 -0
  132. package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/constants.d.ts +2 -0
  133. package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/constants.js +3 -1
  134. package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.cjs +192 -50
  135. package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.d.ts +26 -8
  136. package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.js +197 -55
  137. package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useTurnkey/useTurnkey.cjs +45 -18
  138. package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useTurnkey/useTurnkey.d.ts +4 -1
  139. package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useTurnkey/useTurnkey.js +45 -18
  140. package/src/lib/utils/hooks/useIsTurnkeyWallet/useIsTurnkeyWallet.cjs +2 -2
  141. package/src/lib/utils/hooks/useIsTurnkeyWallet/useIsTurnkeyWallet.js +2 -2
  142. package/src/lib/utils/hooks/useMergeUserAccounts/index.d.ts +1 -0
  143. package/src/lib/utils/hooks/useMergeUserAccounts/useMergeUserAccounts.cjs +99 -0
  144. package/src/lib/utils/hooks/useMergeUserAccounts/useMergeUserAccounts.d.ts +4 -0
  145. package/src/lib/utils/hooks/useMergeUserAccounts/useMergeUserAccounts.js +95 -0
  146. package/src/lib/utils/hooks/usePasskeyRecovery/usePasskeyRecovery.cjs +2 -1
  147. package/src/lib/utils/hooks/usePasskeyRecovery/usePasskeyRecovery.js +2 -1
  148. package/src/lib/utils/hooks/usePrimaryWalletId/usePrimaryWalletId.cjs +13 -4
  149. package/src/lib/utils/hooks/usePrimaryWalletId/usePrimaryWalletId.d.ts +10 -2
  150. package/src/lib/utils/hooks/usePrimaryWalletId/usePrimaryWalletId.js +13 -4
  151. package/src/lib/utils/hooks/useSendDynamicProps/useSendDynamicProps.cjs +6 -13
  152. package/src/lib/utils/hooks/useSendDynamicProps/useSendDynamicProps.d.ts +1 -3
  153. package/src/lib/utils/hooks/useSendDynamicProps/useSendDynamicProps.js +6 -12
  154. package/src/lib/utils/hooks/useTokenBalances/index.d.ts +1 -0
  155. package/src/lib/utils/hooks/useTokenBalances/useTokenBalances.cjs +141 -0
  156. package/src/lib/utils/hooks/useTokenBalances/useTokenBalances.d.ts +12 -0
  157. package/src/lib/utils/hooks/useTokenBalances/useTokenBalances.js +137 -0
  158. package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.cjs +5 -0
  159. package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.js +6 -1
  160. package/src/lib/utils/hooks/useWalletConnectorOptions/useWalletConnectorOptions.cjs +25 -2
  161. package/src/lib/utils/hooks/useWalletConnectorOptions/useWalletConnectorOptions.js +25 -2
  162. package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.cjs +2 -4
  163. package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.d.ts +2 -1
  164. package/src/lib/utils/hooks/useWalletEventListeners/useWalletEventListeners.js +2 -4
  165. package/src/lib/views/CollectUserDataView/UserDataFields/UserField/UserField.cjs +3 -3
  166. package/src/lib/views/CollectUserDataView/UserDataFields/UserField/UserField.js +3 -3
  167. package/src/lib/views/CollectUserDataView/useFields.cjs +1 -0
  168. package/src/lib/views/CollectUserDataView/useFields.d.ts +2 -0
  169. package/src/lib/views/CollectUserDataView/useFields.js +1 -0
  170. package/src/lib/views/EmailVerification/EmailVerification.cjs +38 -11
  171. package/src/lib/views/EmailVerification/EmailVerification.js +38 -11
  172. package/src/lib/views/EmbeddedReveal/EmbeddedRevealView/EmbeddedRevealView.cjs +1 -1
  173. package/src/lib/views/EmbeddedReveal/EmbeddedRevealView/EmbeddedRevealView.js +1 -1
  174. package/src/lib/views/EmbeddedReveal/utils/turnkeyExport/turnkeyExport.cjs +6 -5
  175. package/src/lib/views/EmbeddedReveal/utils/turnkeyExport/turnkeyExport.js +6 -5
  176. package/src/lib/views/MergeUserAccountsConflictsView/MergeUserAccountsConflictsView.cjs +126 -0
  177. package/src/lib/views/MergeUserAccountsConflictsView/MergeUserAccountsConflictsView.d.ts +6 -0
  178. package/src/lib/views/MergeUserAccountsConflictsView/MergeUserAccountsConflictsView.js +122 -0
  179. package/src/lib/views/MergeUserAccountsConflictsView/index.d.ts +1 -0
  180. package/src/lib/views/MergeUserAccountsView/MergeUserAccountsView.cjs +123 -0
  181. package/src/lib/views/MergeUserAccountsView/MergeUserAccountsView.d.ts +4 -0
  182. package/src/lib/views/MergeUserAccountsView/MergeUserAccountsView.js +119 -0
  183. package/src/lib/views/MergeUserAccountsView/index.d.ts +1 -0
  184. package/src/lib/views/MergeUserAccountsWithSameEmailView/MergeUserAccountsWithSameEmailView.cjs +3 -3
  185. package/src/lib/views/MergeUserAccountsWithSameEmailView/MergeUserAccountsWithSameEmailView.js +3 -3
  186. package/src/lib/views/NetworkNotSupportedSwitchManual/NetworkNotSupportedSwitchManual.cjs +2 -3
  187. package/src/lib/views/NetworkNotSupportedSwitchManual/NetworkNotSupportedSwitchManual.js +2 -3
  188. package/src/lib/views/Passkey/EmbeddedAuthChoiceCards/EmbeddedAuthChoiceCards.cjs +2 -1
  189. package/src/lib/views/Passkey/EmbeddedAuthChoiceCards/EmbeddedAuthChoiceCards.js +2 -1
  190. package/src/lib/views/Passkey/PasskeyIntroView/PasskeyIntroView.cjs +9 -9
  191. package/src/lib/views/Passkey/PasskeyIntroView/PasskeyIntroView.d.ts +6 -1
  192. package/src/lib/views/Passkey/PasskeyIntroView/PasskeyIntroView.js +9 -9
  193. package/src/lib/views/Passkey/PasskeyRecovery/InitRecovery/PasskeyInitRecovery.cjs +2 -1
  194. package/src/lib/views/Passkey/PasskeyRecovery/InitRecovery/PasskeyInitRecovery.js +2 -1
  195. package/src/lib/views/Passkey/utils/{createEmbeddedWalletWithPasskey/createEmbeddedWalletWithPasskey.cjs → createEmbeddedWalletRequest/createEmbeddedWalletRequest.cjs} +18 -19
  196. package/src/lib/views/Passkey/utils/{createEmbeddedWalletWithPasskey/createEmbeddedWalletWithPasskey.d.ts → createEmbeddedWalletRequest/createEmbeddedWalletRequest.d.ts} +7 -3
  197. package/src/lib/views/Passkey/utils/{createEmbeddedWalletWithPasskey/createEmbeddedWalletWithPasskey.js → createEmbeddedWalletRequest/createEmbeddedWalletRequest.js} +18 -19
  198. package/src/lib/views/Passkey/utils/createEmbeddedWalletRequest/index.d.ts +1 -0
  199. package/src/lib/views/Passkey/utils/findPrimaryEmbeddedChain/findPrimaryEmbeddedChain.cjs +16 -0
  200. package/src/lib/views/Passkey/utils/findPrimaryEmbeddedChain/findPrimaryEmbeddedChain.d.ts +2 -0
  201. package/src/lib/views/Passkey/utils/findPrimaryEmbeddedChain/findPrimaryEmbeddedChain.js +12 -0
  202. package/src/lib/views/Passkey/utils/findPrimaryEmbeddedChain/index.d.ts +1 -0
  203. package/src/lib/views/Passkey/utils/index.d.ts +1 -2
  204. package/src/lib/views/Passkey/utils/passkeyRecovery/passkeyRecovery.cjs +9 -9
  205. package/src/lib/views/Passkey/utils/passkeyRecovery/passkeyRecovery.js +9 -9
  206. package/src/lib/views/WalletList/WalletList.cjs +3 -6
  207. package/src/lib/views/WalletList/WalletList.js +3 -6
  208. package/src/lib/views/WalletLockedView/WalletLockedView.cjs +2 -8
  209. package/src/lib/views/WalletLockedView/WalletLockedView.js +2 -8
  210. package/src/lib/views/viewToComponentMap.cjs +4 -0
  211. package/src/lib/views/viewToComponentMap.d.ts +6 -2
  212. package/src/lib/views/viewToComponentMap.js +4 -0
  213. package/src/lib/widgets/DynamicWidget/components/PromptModal/PromptModal.cjs +2 -1
  214. package/src/lib/widgets/DynamicWidget/components/PromptModal/PromptModal.js +2 -1
  215. package/src/lib/widgets/DynamicWidget/hooks/useFetchNameService/useFetchNameService.cjs +1 -1
  216. package/src/lib/widgets/DynamicWidget/hooks/useFetchNameService/useFetchNameService.js +1 -1
  217. package/src/lib/utils/functions/isEmbeddedWalletPresent/index.d.ts +0 -1
  218. package/src/lib/utils/functions/isEmbeddedWalletPresent/isEmbeddedWalletPresent.cjs +0 -19
  219. package/src/lib/utils/functions/isEmbeddedWalletPresent/isEmbeddedWalletPresent.d.ts +0 -1
  220. package/src/lib/utils/functions/isEmbeddedWalletPresent/isEmbeddedWalletPresent.js +0 -15
  221. package/src/lib/views/Passkey/utils/createEmbeddedWalletWithPasskey/index.d.ts +0 -1
  222. package/src/lib/views/Passkey/utils/createPregeneratedWallet/createPregeneratedWallet.cjs +0 -65
  223. package/src/lib/views/Passkey/utils/createPregeneratedWallet/createPregeneratedWallet.d.ts +0 -16
  224. package/src/lib/views/Passkey/utils/createPregeneratedWallet/createPregeneratedWallet.js +0 -61
  225. package/src/lib/views/Passkey/utils/createPregeneratedWallet/index.d.ts +0 -1
@@ -5,9 +5,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
6
  var _tslib = require('../../../../../../_virtual/_tslib.cjs');
7
7
  var React = require('react');
8
+ var sdkApiCore = require('@dynamic-labs/sdk-api-core');
8
9
  var utils = require('@dynamic-labs/utils');
9
10
  require('../../../../context/DynamicContext/DynamicContext.cjs');
10
- require('@dynamic-labs/sdk-api-core');
11
11
  var logger = require('../../../../shared/logger.cjs');
12
12
  require('@dynamic-labs/iconic');
13
13
  require('@dynamic-labs/wallet-connector-core');
@@ -28,12 +28,15 @@ require('@dynamic-labs/multi-wallet');
28
28
  var getAuthToken = require('../../../functions/getAuthToken/getAuthToken.cjs');
29
29
  require('react-international-phone');
30
30
  var getUserWalletsFromVerifiedCredentials = require('../../../functions/getUserWalletsFromVerifiedCredentials/getUserWalletsFromVerifiedCredentials.cjs');
31
+ var addPasskeyIdentifierToWalletConnector = require('../../../functions/addPasskeyIdentifierToWalletConnector/addPasskeyIdentifierToWalletConnector.cjs');
31
32
  require('viem');
32
33
  require('viem/chains');
33
34
  var getEOAWallet = require('../../../functions/getEOAWallet/getEOAWallet.cjs');
34
35
  require('../../../../config/ApiEndpoint.cjs');
35
36
  var embeddedWallets = require('../../../../data/api/embeddedWallets/embeddedWallets.cjs');
36
37
  require('../../../../locale/locale.cjs');
38
+ var updateJWTAndCreateUserProfile = require('../../../functions/updateJWTAndCreateUserProfile/updateJWTAndCreateUserProfile.cjs');
39
+ var getUserVerifiedCredentialType = require('../../../functions/getUserVerifiedCredentialType/getUserVerifiedCredentialType.cjs');
37
40
  var hasEmbeddedWallet = require('../../../functions/hasEmbeddedWallet/hasEmbeddedWallet.cjs');
38
41
  var getEmbeddedWalletAuthHandler = require('../../../functions/getEmbeddedWalletAuthHandler/getEmbeddedWalletAuthHandler.cjs');
39
42
  var getEmbeddedWalletSessionExpiration = require('../../../functions/getEmbeddedWalletSessionExpiration/getEmbeddedWalletSessionExpiration.cjs');
@@ -44,11 +47,12 @@ require('../../../../context/VerificationContext/VerificationContext.cjs');
44
47
  require('react-dom');
45
48
  var useElementById = require('../../useElementById/useElementById.cjs');
46
49
  var WalletContext = require('../../../../context/WalletContext/WalletContext.cjs');
50
+ var useIsTurnkeyWallet = require('../../useIsTurnkeyWallet/useIsTurnkeyWallet.cjs');
47
51
  var validateUserIsLoggedIn = require('../../../validations/validateUserIsLoggedIn/validateUserIsLoggedIn.cjs');
48
52
  var validateTurnkeyProviderEnabled = require('../../../validations/validateTurnkeyProviderEnabled/validateTurnkeyProviderEnabled.cjs');
49
53
  var errors = require('../../../constants/errors.cjs');
50
- var useIsTurnkeyWallet = require('../../useIsTurnkeyWallet/useIsTurnkeyWallet.cjs');
51
54
  var passkeyRecovery = require('../../../../views/Passkey/utils/passkeyRecovery/passkeyRecovery.cjs');
55
+ var turnkeyExport = require('../../../../views/EmbeddedReveal/utils/turnkeyExport/turnkeyExport.cjs');
52
56
  var useTurnkey = require('./useTurnkey/useTurnkey.cjs');
53
57
  var constants = require('./constants.cjs');
54
58
  require('../../../../context/ThemeContext/ThemeContext.cjs');
@@ -92,30 +96,47 @@ require('../../../../views/TransactionConfirmationView/helpers/transactionErrorM
92
96
  require('../../../../widgets/DynamicWidget/views/ManagePasskeysWidgetView/PasskeyCard/PasskeyCard.cjs');
93
97
  var useInternalDynamicContext = require('../../../../context/DynamicContext/useDynamicContext/useInternalDynamicContext.cjs');
94
98
 
95
- // Hook exposed to customers and used internally to trigger dynamic embedded wallet creation
99
+ // Hook exposed to customers
96
100
  /**
101
+ *
97
102
  * @returns {
98
- * createEmbeddedWallet, - creates Dynamic or MPC embedded wallet according to the settings
99
- * isLoadingEmbeddedWallet, - loading state of the embedded wallet
100
- * userHasEmbeddedWallet, - checks if the user has an embedded wallet
103
+ * createEmbeddedWallet, - creates Secure enclave embedded wallet according to the settings
104
+ * createOrRestoreSession, - creates or restores a embedded wallet session
105
+ * createPasskey, - creates a new passkey both for an existing wallet or a wallet to be created
106
+ * getPasskeys, - gets all passkeys for the user
107
+ * isLoadingEmbeddedWallet, - loading state of the embedded wallet
108
+ * isSessionActive, - checks if the embedded wallet session is active
109
+ * revealEmbeddedWalletKey - export the recovery phrase or private key of the embedded wallet
110
+ * sendOneTimeCode, - sends a one-time code to the user so they can create a session or add a new passkey
111
+ * userHasEmbeddedWallet, - checks if the user has an embedded wallet
101
112
  * }
102
113
  */
103
114
  const useSecureEnclaveEmbeddedWallet = () => {
104
- var _a, _b;
105
- const { projectSettings, onboardingOnlyJwt, primaryWallet, user, environmentId, } = useInternalDynamicContext.useInternalDynamicContext();
115
+ var _a, _b, _c, _d;
116
+ const { projectSettings, authToken, onboardingOnlyJwt, primaryWallet, user, environmentId, walletConnectorOptions, setUser, } = useInternalDynamicContext.useInternalDynamicContext();
106
117
  const { createTurnkeyWallet } = useTurnkey.useTurnkey();
107
118
  const { hasRecoveryEmail } = useIsTurnkeyWallet.useIsTurnkeyWallet();
108
- const turnkeyAuthIframeContainerRef = useElementById.useElementById(constants.iframeContainerId);
119
+ const { createRootElement } = useElementById.useElementById();
109
120
  const { isLoadingEmbeddedWallet, setIsLoadingEmbeddedWallet } = WalletContext.useWalletContext();
110
121
  const wallet = getEOAWallet.getEOAWallet(primaryWallet, (user === null || user === void 0 ? void 0 : user.verifiedCredentials) || []);
122
+ /**
123
+ * Checks if the user has a secure enclave embedded wallet or not
124
+ * @returns boolean
125
+ */
111
126
  const userHasEmbeddedWallet = React.useCallback(() => hasEmbeddedWallet.hasEmbeddedWallet(getAuthToken.getAuthToken() || onboardingOnlyJwt, 'turnkey'), [onboardingOnlyJwt]);
112
- const createEmbeddedWallet = React.useCallback((chain) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
113
- var _c, _d;
114
- const jwt = (_c = getAuthToken.getAuthToken()) !== null && _c !== void 0 ? _c : onboardingOnlyJwt;
127
+ /**
128
+ * Creates a new secure enclave embedded wallet according to the settings from the dashboard
129
+ * @param chain - optional chain parameter to create the wallet for
130
+ * @param options - optional parameter contained more settings for the wallet creation
131
+ * @returns Promise<Wallet | undefined>
132
+ */
133
+ const createEmbeddedWallet = React.useCallback((chains, options) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
134
+ var _e, _f;
135
+ const jwt = (_e = getAuthToken.getAuthToken()) !== null && _e !== void 0 ? _e : onboardingOnlyJwt;
115
136
  const { decodedJwt } = validateUserIsLoggedIn.validateUserIsLoggedIn(jwt);
116
137
  const userWaletsCredentials = getUserWalletsFromVerifiedCredentials.getUserWalletsFromVerifiedCredentials(jwt);
117
- const embeddedWalletVerifiedCredential = findEmbeddedWalletFromVerifiedCredentials.findEmbeddedWalletFromVerifiedCredentials(jwt, chain);
118
- const isManualMode = ((_d = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.embeddedWallets) === null || _d === void 0 ? void 0 : _d.automaticEmbeddedWalletCreation) === false;
138
+ const embeddedWalletVerifiedCredential = findEmbeddedWalletFromVerifiedCredentials.findEmbeddedWalletFromVerifiedCredentials(jwt, chains);
139
+ const isManualMode = ((_f = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.embeddedWallets) === null || _f === void 0 ? void 0 : _f.automaticEmbeddedWalletCreation) === false;
119
140
  // if user has a wallet and it's not embedded,
120
141
  // throw error to follow another flow and set up the right wallet
121
142
  // However, if the user is in manual mode continue.
@@ -125,91 +146,209 @@ const useSecureEnclaveEmbeddedWallet = () => {
125
146
  throw new utils.DynamicError('Manual mode must be enabled to create an embedded wallet for this user');
126
147
  }
127
148
  validateTurnkeyProviderEnabled.validateTurnkeyProviderEnabled(projectSettings);
128
- setIsLoadingEmbeddedWallet(true);
129
149
  // TEMP: immediately disable loading state
130
150
  setIsLoadingEmbeddedWallet(false);
131
- const wallet = yield createTurnkeyWallet(jwt, decodedJwt, chain);
132
- return wallet;
151
+ return createTurnkeyWallet(jwt, decodedJwt, chains, options);
133
152
  }), [
134
153
  createTurnkeyWallet,
135
154
  onboardingOnlyJwt,
136
155
  projectSettings,
137
156
  setIsLoadingEmbeddedWallet,
138
157
  ]);
139
- const createOrRestoreSession = React.useCallback((oneTimeCode) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
140
- var _e, _f, _g, _h, _j, _k, _l;
141
- const jwt = (_e = getAuthToken.getAuthToken()) !== null && _e !== void 0 ? _e : onboardingOnlyJwt;
158
+ /**
159
+ * Creates or restores a secure enclave embedded wallet session
160
+ * If it detects that the session is possible to be restored, it will restore it
161
+ * @param oneTimeCode - optional one-time code parameter. If not informed it tries to restore a session
162
+ * @returns Promise<'session_created' | 'session_restored'> - returns a string indicating the status of the session
163
+ */
164
+ const createOrRestoreSession = React.useCallback((options) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
165
+ var _g, _h, _j, _k, _l, _m, _o;
166
+ const jwt = (_g = getAuthToken.getAuthToken()) !== null && _g !== void 0 ? _g : onboardingOnlyJwt;
142
167
  const { decodedJwt } = validateUserIsLoggedIn.validateUserIsLoggedIn(jwt);
143
168
  const turnkeyRecoveryHandler = getEmbeddedWalletAuthHandler.getEmbeddedWalletAuthHandler(wallet === null || wallet === void 0 ? void 0 : wallet.connector);
144
- // try to restore session if it's active or can be restored
145
- if (turnkeyRecoveryHandler.isSessionActive() ||
146
- passkeyRecovery.canRestoreEmbeddedWalletSession((_f = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.embeddedWallets) === null || _f === void 0 ? void 0 : _f.sessionKeyDuration)) {
169
+ if (turnkeyRecoveryHandler.isSessionActive()) {
170
+ return errors.ACTIVE_SESSION;
171
+ }
172
+ const turnkeyAuthIframeContainerRef = createRootElement(constants.iframeContainerId);
173
+ // try to restore session if possible
174
+ if (passkeyRecovery.canRestoreEmbeddedWalletSession((_h = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.embeddedWallets) === null || _h === void 0 ? void 0 : _h.sessionKeyDuration)) {
147
175
  try {
148
- yield passkeyRecovery.restoreEmbeddedWalletSession({
176
+ const sessionRestored = yield passkeyRecovery.restoreEmbeddedWalletSession({
149
177
  authToken: jwt,
150
178
  iframeContainer: turnkeyAuthIframeContainerRef.current,
151
179
  iframeElementId: constants.iframeElementId,
152
- sessionExpiration: getEmbeddedWalletSessionExpiration.getEmbeddedWalletSessionExpiration((_h = (_g = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _g === void 0 ? void 0 : _g.embeddedWallets) === null || _h === void 0 ? void 0 : _h.sessionKeyDuration),
180
+ sessionExpiration: getEmbeddedWalletSessionExpiration.getEmbeddedWalletSessionExpiration((_k = (_j = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _j === void 0 ? void 0 : _j.embeddedWallets) === null || _k === void 0 ? void 0 : _k.sessionKeyDuration),
153
181
  wallet: primaryWallet,
154
182
  });
155
- return errors.SESSION_RESTORED;
183
+ if (sessionRestored)
184
+ return errors.SESSION_RESTORED;
156
185
  }
157
186
  catch (err) {
158
187
  logger.logger.error('Failed to restore embedded wallet', err);
159
188
  }
160
189
  }
161
- // creates a new session
162
- if (!oneTimeCode) {
190
+ if (!(options === null || options === void 0 ? void 0 : options.oneTimeCode)) {
163
191
  throw new utils.DynamicError('One-time code is required to create a session.', errors.INVALID_REQUEST);
164
192
  }
193
+ // tries to create a new session with the informed one-time code
165
194
  // verify user has a turnkey wallet and email VC
166
195
  if (!userHasEmbeddedWallet() || !hasRecoveryEmail) {
167
196
  throw new utils.DynamicError('User does not have a secure enclave wallet or a verified email', errors.INVALID_WALLET_DATA);
168
197
  }
169
- const organizationId = (_l = (_k = (_j = decodedJwt.verifiedCredentials) === null || _j === void 0 ? void 0 : _j.find(({ walletName }) => walletName === null || walletName === void 0 ? void 0 : walletName.startsWith('turnkey'))) === null || _k === void 0 ? void 0 : _k.walletProperties) === null || _l === void 0 ? void 0 : _l.turnkeySubOrganizationId;
170
- yield turnkeyRecoveryHandler.verifyRecoveryCode(oneTimeCode, organizationId);
198
+ const organizationId = (_o = (_m = (_l = decodedJwt.verifiedCredentials) === null || _l === void 0 ? void 0 : _l.find(({ walletName }) => walletName === null || walletName === void 0 ? void 0 : walletName.startsWith('turnkey'))) === null || _m === void 0 ? void 0 : _m.walletProperties) === null || _o === void 0 ? void 0 : _o.turnkeySubOrganizationId;
199
+ yield turnkeyRecoveryHandler.verifyRecoveryCode(options.oneTimeCode, organizationId);
171
200
  const sessionSettings = {
172
201
  createdAt: new Date().getTime(),
173
- emailCode: oneTimeCode,
202
+ emailCode: options.oneTimeCode,
174
203
  userId: turnkeyRecoveryHandler.recoveryUserId,
175
204
  };
176
205
  localStorage.LocalStorage.setToLS(localStorage$1.EMBEDDED_WALLET_SESSION_SETTINGS, sessionSettings);
177
206
  return errors.SESSION_CREATED;
178
207
  }), [
208
+ createRootElement,
179
209
  hasRecoveryEmail,
180
210
  onboardingOnlyJwt,
181
211
  primaryWallet,
182
212
  (_b = (_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk) === null || _a === void 0 ? void 0 : _a.embeddedWallets) === null || _b === void 0 ? void 0 : _b.sessionKeyDuration,
183
- turnkeyAuthIframeContainerRef,
184
213
  userHasEmbeddedWallet,
185
214
  wallet === null || wallet === void 0 ? void 0 : wallet.connector,
186
215
  ]);
187
- const isSessionActive = React.useMemo(() => {
188
- if (!(wallet === null || wallet === void 0 ? void 0 : wallet.connector))
189
- return false;
190
- try {
191
- const turnkeyAuthenticatorHandler = getEmbeddedWalletAuthHandler.getEmbeddedWalletAuthHandler(wallet === null || wallet === void 0 ? void 0 : wallet.connector);
192
- return turnkeyAuthenticatorHandler.isSessionActive();
216
+ /**
217
+ * Creates a new passkey both for an existing wallet or a wallet to be created
218
+ * @param options - optional parameter to inform a one-time code to create a session,
219
+ * @returns Promise<WebAuthnAttestation>
220
+ */
221
+ const createPasskey = React.useCallback((options) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
222
+ var _p, _q;
223
+ const { decodedJwt, jwt } = validateUserIsLoggedIn.validateUserIsLoggedIn(getAuthToken.getAuthToken() || onboardingOnlyJwt);
224
+ validateTurnkeyProviderEnabled.validateTurnkeyProviderEnabled(projectSettings);
225
+ const turnkeyWallet = findTurnkeyWallet.findTurnkeyWalletByPrimaryChain(walletConnectorOptions, (_p = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.embeddedWallets) === null || _p === void 0 ? void 0 : _p.chainConfigurations, decodedJwt.verifiedCredentials);
226
+ if (!(turnkeyWallet === null || turnkeyWallet === void 0 ? void 0 : turnkeyWallet.walletConnector)) {
227
+ throw new utils.DynamicError('Wallet connector not found', errors.INVALID_WALLET_DATA);
228
+ }
229
+ const walletConnector = turnkeyWallet.walletConnector;
230
+ walletConnector.setEmail(user === null || user === void 0 ? void 0 : user.email);
231
+ if (user && !(user === null || user === void 0 ? void 0 : user.email)) {
232
+ addPasskeyIdentifierToWalletConnector.addPasskeyIdentifierToWalletConnector(walletConnector, user);
193
233
  }
194
- catch (err) {
195
- return false;
234
+ const hasEmailVC = getUserVerifiedCredentialType.getUserVerifiedCredentialType(decodedJwt, sdkApiCore.JwtVerifiedCredentialFormatEnum.Email);
235
+ // return a new passkey if the user doesn't have a wallet yet or
236
+ // none of the requirements to add a passkey to an existing wallet are met
237
+ if (!('id' in turnkeyWallet) || !hasEmailVC) {
238
+ return walletConnector.getWebAuthnAttestation();
196
239
  }
197
- }, [wallet === null || wallet === void 0 ? void 0 : wallet.connector]);
198
- const sendOneTimeCode = React.useCallback((_m) => _tslib.__awaiter(void 0, [_m], void 0, function* ({ address }) {
199
- var _o, _p;
200
- const { jwt, decodedJwt } = validateUserIsLoggedIn.validateUserIsLoggedIn((_o = getAuthToken.getAuthToken()) !== null && _o !== void 0 ? _o : onboardingOnlyJwt);
240
+ const organizationId = (_q = turnkeyWallet === null || turnkeyWallet === void 0 ? void 0 : turnkeyWallet.walletProperties) === null || _q === void 0 ? void 0 : _q.turnkeySubOrganizationId;
241
+ if (!organizationId) {
242
+ throw new utils.DynamicError('No sub organization id found for the wallet', errors.INVALID_WALLET_DATA);
243
+ }
244
+ const turnkAuthenticatorHandler = getEmbeddedWalletAuthHandler.getEmbeddedWalletAuthHandler(walletConnector);
245
+ // add new passkey to the wallet through an active session
246
+ yield createOrRestoreSession(options);
247
+ const { attestation, challenge, displayName } = yield walletConnector.getWebAuthnAttestation();
248
+ yield turnkAuthenticatorHandler.addPasskeyAuthenticator({
249
+ attestation,
250
+ challenge,
251
+ organizationId,
252
+ });
253
+ const passkeyResponse = yield embeddedWallets.completePasskeyRecovery({
254
+ attestation: attestation,
255
+ challenge,
256
+ environmentId,
257
+ userJwt: jwt,
258
+ walletId: turnkeyWallet === null || turnkeyWallet === void 0 ? void 0 : turnkeyWallet.id,
259
+ });
260
+ const { jwt: updatedJwt, minifiedJwt } = passkeyResponse;
261
+ setUser(updateJWTAndCreateUserProfile.updateJWTAndCreateUserProfile(updatedJwt, minifiedJwt));
262
+ return { attestation, challenge, displayName };
263
+ }), [
264
+ createOrRestoreSession,
265
+ environmentId,
266
+ onboardingOnlyJwt,
267
+ projectSettings,
268
+ setUser,
269
+ user,
270
+ walletConnectorOptions,
271
+ ]);
272
+ /**
273
+ * Gets all passkeys for the user
274
+ * @returns Promise<Passkey[]>
275
+ */
276
+ const getPasskeys = React.useCallback(() => _tslib.__awaiter(void 0, void 0, void 0, function* () {
277
+ var _r;
278
+ const { jwt } = validateUserIsLoggedIn.validateUserIsLoggedIn((_r = getAuthToken.getAuthToken()) !== null && _r !== void 0 ? _r : onboardingOnlyJwt);
279
+ const data = yield embeddedWallets.getUserPasskeys({
280
+ environmentId: environmentId,
281
+ userJwt: jwt,
282
+ });
283
+ return data.passkeys;
284
+ }), [environmentId, onboardingOnlyJwt]);
285
+ /**
286
+ * Checks if the embedded wallet session is active
287
+ * @returns boolean
288
+ */
289
+ const isSessionActive = (_d = ((wallet === null || wallet === void 0 ? void 0 : wallet.connector) &&
290
+ 'getAuthenticatorHandler' in wallet.connector &&
291
+ ((_c = getEmbeddedWalletAuthHandler.getEmbeddedWalletAuthHandler(wallet.connector)) === null || _c === void 0 ? void 0 : _c.isSessionActive()))) !== null && _d !== void 0 ? _d : false;
292
+ /**
293
+ * export the recovery phrase or private key of the embedded wallet
294
+ * @param options - optional parameter object containing the type of key to reveal 'recoveryPhrase' | 'privateKey'
295
+ * and the html container id to render the iframe into
296
+ * @returns Promise<string> - returns the embedded wallet recovery phrase or private key
297
+ */
298
+ const revealEmbeddedWalletKey = (_s) => _tslib.__awaiter(void 0, [_s], void 0, function* ({ type, htmlContainerId, }) {
299
+ var _t, _u;
300
+ if (!user) {
301
+ throw new utils.DynamicError('User is not logged in', errors.USER_NOT_LOGGED_IN);
302
+ }
303
+ yield turnkeyExport.cleanupExport({
304
+ wallet,
305
+ });
306
+ const turnkeyWallet = findTurnkeyWallet.findTurnkeyWalletByPrimaryChain(walletConnectorOptions, (_t = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.embeddedWallets) === null || _t === void 0 ? void 0 : _t.chainConfigurations, user === null || user === void 0 ? void 0 : user.verifiedCredentials);
307
+ const turnkeyHDWalletId = (_u = turnkeyWallet === null || turnkeyWallet === void 0 ? void 0 : turnkeyWallet.walletProperties) === null || _u === void 0 ? void 0 : _u.turnkeyHDWalletId;
308
+ if (type === 'recoveryPhrase' && !turnkeyHDWalletId) {
309
+ type = 'privateKey';
310
+ }
311
+ const iframeContainerElement = createRootElement(constants.revealIframeElementId, htmlContainerId || constants.revealIframeContainerId);
312
+ // hide the iframe container until the export is done
313
+ // since it will show unrelated turnkey content
314
+ iframeContainerElement.current.style.display = 'none';
315
+ yield turnkeyExport.initExport({
316
+ iframeContainer: iframeContainerElement.current,
317
+ iframeElementId: constants.revealIframeElementId,
318
+ wallet,
319
+ });
320
+ yield turnkeyExport.exportCredential({
321
+ address: type === 'privateKey' ? wallet === null || wallet === void 0 ? void 0 : wallet.address : undefined,
322
+ authToken,
323
+ environmentId,
324
+ userEmail: user === null || user === void 0 ? void 0 : user.email,
325
+ wallet,
326
+ });
327
+ // show the iframe container after the export is done
328
+ // to show the exported content only
329
+ iframeContainerElement.current.style.display = 'block';
330
+ return true;
331
+ });
332
+ /**
333
+ * Sends a one-time code to the user so they can create a session or add a new passkey
334
+ * @returns Promise<'code_sent'>
335
+ */
336
+ const sendOneTimeCode = React.useCallback(() => _tslib.__awaiter(void 0, void 0, void 0, function* () {
337
+ var _v, _w, _x;
338
+ const { jwt, decodedJwt } = validateUserIsLoggedIn.validateUserIsLoggedIn((_v = getAuthToken.getAuthToken()) !== null && _v !== void 0 ? _v : onboardingOnlyJwt);
201
339
  validateTurnkeyProviderEnabled.validateTurnkeyProviderEnabled(projectSettings);
202
- const targetTurnkeyWallet = findTurnkeyWallet.findTurnkeyWalletByAddress(decodedJwt.verifiedCredentials, address);
203
- if (!targetTurnkeyWallet || !targetTurnkeyWallet.id) {
340
+ const targetTurnkeyWallet = findTurnkeyWallet.findTurnkeyWalletByPrimaryChain(walletConnectorOptions, (_w = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.embeddedWallets) === null || _w === void 0 ? void 0 : _w.chainConfigurations, decodedJwt.verifiedCredentials);
341
+ if (!targetTurnkeyWallet || !('id' in targetTurnkeyWallet)) {
204
342
  throw new utils.DynamicError('User does not have a valid secure enclave wallet', errors.INVALID_WALLET_DATA);
205
343
  }
206
- const turnkeyAuthenticatorHandler = getEmbeddedWalletAuthHandler.getEmbeddedWalletAuthHandler(wallet === null || wallet === void 0 ? void 0 : wallet.connector);
344
+ const turnkeyAuthenticatorHandler = getEmbeddedWalletAuthHandler.getEmbeddedWalletAuthHandler(targetTurnkeyWallet === null || targetTurnkeyWallet === void 0 ? void 0 : targetTurnkeyWallet.walletConnector);
207
345
  const targetTurnkeyWalletId = targetTurnkeyWallet.id;
208
346
  const isSessionActive = turnkeyAuthenticatorHandler.isSessionActive();
209
347
  if (isSessionActive) {
210
348
  throw new utils.DynamicError('Session is active. No need to create a new one', errors.ACTIVE_SESSION);
211
349
  }
212
- const publicKey = yield turnkeyAuthenticatorHandler.initRecovery('email', turnkeyAuthIframeContainerRef.current, 'dyn-turnkey-auth-element-id', getEmbeddedWalletSessionExpiration.getEmbeddedWalletSessionExpiration((_p = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.embeddedWallets) === null || _p === void 0 ? void 0 : _p.sessionKeyDuration));
350
+ const turnkeyAuthIframeContainerRef = createRootElement(constants.iframeContainerId);
351
+ const publicKey = yield turnkeyAuthenticatorHandler.initRecovery('email', turnkeyAuthIframeContainerRef.current, constants.iframeElementId, getEmbeddedWalletSessionExpiration.getEmbeddedWalletSessionExpiration((_x = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.sdk.embeddedWallets) === null || _x === void 0 ? void 0 : _x.sessionKeyDuration));
213
352
  if (!publicKey) {
214
353
  throw new utils.DynamicError(errors.ERROR_SENDING_CODE);
215
354
  }
@@ -223,17 +362,20 @@ const useSecureEnclaveEmbeddedWallet = () => {
223
362
  turnkeyAuthenticatorHandler.recoveryUserId = response.turnkeyUserId;
224
363
  return errors.CODE_SENT;
225
364
  }), [
365
+ createRootElement,
226
366
  environmentId,
227
367
  onboardingOnlyJwt,
228
368
  projectSettings,
229
- turnkeyAuthIframeContainerRef,
230
- wallet === null || wallet === void 0 ? void 0 : wallet.connector,
369
+ walletConnectorOptions,
231
370
  ]);
232
371
  return {
233
372
  createEmbeddedWallet,
234
373
  createOrRestoreSession,
374
+ createPasskey,
375
+ getPasskeys,
235
376
  isLoadingEmbeddedWallet,
236
377
  isSessionActive,
378
+ revealEmbeddedWalletKey,
237
379
  sendOneTimeCode,
238
380
  userHasEmbeddedWallet,
239
381
  };
@@ -1,19 +1,37 @@
1
1
  import { ChainEnum } from '@dynamic-labs/sdk-api-core';
2
+ import { WebAuthnAttestation } from '@dynamic-labs/wallet-connector-core';
2
3
  import { Wallet } from '../../../../shared';
3
4
  /**
5
+ *
4
6
  * @returns {
5
- * createEmbeddedWallet, - creates Dynamic or MPC embedded wallet according to the settings
6
- * isLoadingEmbeddedWallet, - loading state of the embedded wallet
7
- * userHasEmbeddedWallet, - checks if the user has an embedded wallet
7
+ * createEmbeddedWallet, - creates Secure enclave embedded wallet according to the settings
8
+ * createOrRestoreSession, - creates or restores a embedded wallet session
9
+ * createPasskey, - creates a new passkey both for an existing wallet or a wallet to be created
10
+ * getPasskeys, - gets all passkeys for the user
11
+ * isLoadingEmbeddedWallet, - loading state of the embedded wallet
12
+ * isSessionActive, - checks if the embedded wallet session is active
13
+ * revealEmbeddedWalletKey - export the recovery phrase or private key of the embedded wallet
14
+ * sendOneTimeCode, - sends a one-time code to the user so they can create a session or add a new passkey
15
+ * userHasEmbeddedWallet, - checks if the user has an embedded wallet
8
16
  * }
9
17
  */
10
18
  export declare const useSecureEnclaveEmbeddedWallet: () => {
11
- readonly createEmbeddedWallet: (chain?: ChainEnum) => Promise<Wallet | undefined>;
12
- readonly createOrRestoreSession: (oneTimeCode?: string) => Promise<string>;
19
+ readonly createEmbeddedWallet: (chains?: ChainEnum[], options?: {
20
+ webAuthnAttestation: WebAuthnAttestation;
21
+ }) => Promise<Wallet | undefined>;
22
+ readonly createOrRestoreSession: (options: {
23
+ oneTimeCode: string;
24
+ } | undefined) => Promise<string>;
25
+ readonly createPasskey: (options: {
26
+ oneTimeCode: string;
27
+ } | undefined) => Promise<WebAuthnAttestation>;
28
+ readonly getPasskeys: () => Promise<import("@dynamic-labs/sdk-api-core").UserPasskey[]>;
13
29
  readonly isLoadingEmbeddedWallet: boolean;
14
30
  readonly isSessionActive: boolean;
15
- readonly sendOneTimeCode: ({ address }: {
16
- address: string;
17
- }) => Promise<string>;
31
+ readonly revealEmbeddedWalletKey: ({ type, htmlContainerId, }: {
32
+ type: 'recoveryPhrase' | 'privateKey';
33
+ htmlContainerId?: string;
34
+ }) => Promise<boolean>;
35
+ readonly sendOneTimeCode: () => Promise<string>;
18
36
  readonly userHasEmbeddedWallet: () => boolean;
19
37
  };