@dynamic-labs/legacy-embedded-wallet-migration 0.0.0 → 5.0.0-rc.2
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.
- package/CHANGELOG.md +6718 -0
- package/LICENSE +21 -0
- package/README.md +5 -0
- package/_virtual/_tslib.js +32 -0
- package/package.js +4 -0
- package/package.json +31 -1
- package/src/index.d.ts +11 -0
- package/src/index.js +16 -0
- package/src/lib/constants.d.ts +8 -0
- package/src/lib/constants.js +12 -0
- package/src/lib/export/cleanupExport/cleanupExport.d.ts +4 -0
- package/src/lib/export/cleanupExport/cleanupExport.js +11 -0
- package/src/lib/export/cleanupExport/index.d.ts +1 -0
- package/src/lib/export/exportCredential/exportCredential.d.ts +7 -0
- package/src/lib/export/exportCredential/exportCredential.js +63 -0
- package/src/lib/export/exportCredential/index.d.ts +1 -0
- package/src/lib/export/exportEmbeddedWallet/exportEmbeddedWallet.d.ts +7 -0
- package/src/lib/export/exportEmbeddedWallet/exportEmbeddedWallet.js +21 -0
- package/src/lib/export/exportEmbeddedWallet/index.d.ts +1 -0
- package/src/lib/export/exportTurnkeyWalletCredential/exportTurnkeyWalletCredential.d.ts +9 -0
- package/src/lib/export/exportTurnkeyWalletCredential/exportTurnkeyWalletCredential.js +30 -0
- package/src/lib/export/exportTurnkeyWalletCredential/index.d.ts +1 -0
- package/src/lib/export/extractExportBundle/extractExportBundle.d.ts +5 -0
- package/src/lib/export/extractExportBundle/extractExportBundle.js +13 -0
- package/src/lib/export/extractExportBundle/index.d.ts +1 -0
- package/src/lib/export/handleExportInitCheck/handleExportInitCheck.d.ts +12 -0
- package/src/lib/export/handleExportInitCheck/handleExportInitCheck.js +34 -0
- package/src/lib/export/handleExportInitCheck/index.d.ts +1 -0
- package/src/lib/export/initExport/index.d.ts +1 -0
- package/src/lib/export/initExport/initExport.d.ts +6 -0
- package/src/lib/export/initExport/initExport.js +22 -0
- package/src/lib/getTurnkeyWalletId/getTurnkeyWalletId.d.ts +8 -0
- package/src/lib/getTurnkeyWalletId/getTurnkeyWalletId.js +27 -0
- package/src/lib/getTurnkeyWalletId/index.d.ts +1 -0
- package/src/lib/recovery/addEmailRecovery/addEmailRecovery.d.ts +7 -0
- package/src/lib/recovery/addEmailRecovery/addEmailRecovery.js +50 -0
- package/src/lib/recovery/addEmailRecovery/index.d.ts +1 -0
- package/src/lib/recovery/addNewPasskeyAuthenticator/addNewPasskeyAuthenticator.d.ts +7 -0
- package/src/lib/recovery/addNewPasskeyAuthenticator/addNewPasskeyAuthenticator.js +14 -0
- package/src/lib/recovery/addNewPasskeyAuthenticator/index.d.ts +1 -0
- package/src/lib/recovery/canRestoreEmbeddedWalletSession/canRestoreEmbeddedWalletSession.d.ts +2 -0
- package/src/lib/recovery/canRestoreEmbeddedWalletSession/canRestoreEmbeddedWalletSession.js +24 -0
- package/src/lib/recovery/canRestoreEmbeddedWalletSession/index.d.ts +1 -0
- package/src/lib/recovery/completePasskeyRecovery/completePasskeyRecovery.d.ts +7 -0
- package/src/lib/recovery/completePasskeyRecovery/completePasskeyRecovery.js +26 -0
- package/src/lib/recovery/completePasskeyRecovery/index.d.ts +1 -0
- package/src/lib/recovery/constants.d.ts +3 -0
- package/src/lib/recovery/constants.js +14 -0
- package/src/lib/recovery/index.d.ts +13 -0
- package/src/lib/recovery/initEmbeddedWalletSession/index.d.ts +1 -0
- package/src/lib/recovery/initEmbeddedWalletSession/initEmbeddedWalletSession.d.ts +11 -0
- package/src/lib/recovery/initEmbeddedWalletSession/initEmbeddedWalletSession.js +56 -0
- package/src/lib/recovery/passkeyRecoveryBundleValidation/index.d.ts +1 -0
- package/src/lib/recovery/passkeyRecoveryBundleValidation/passkeyRecoveryBundleValidation.d.ts +7 -0
- package/src/lib/recovery/passkeyRecoveryBundleValidation/passkeyRecoveryBundleValidation.js +32 -0
- package/src/lib/recovery/recoverTurnkeyWallet/index.d.ts +1 -0
- package/src/lib/recovery/recoverTurnkeyWallet/recoverTurnkeyWallet.d.ts +11 -0
- package/src/lib/recovery/recoverTurnkeyWallet/recoverTurnkeyWallet.js +72 -0
- package/src/lib/recovery/resentRecoveryEmail/index.d.ts +1 -0
- package/src/lib/recovery/resentRecoveryEmail/resentRecoveryEmail.d.ts +7 -0
- package/src/lib/recovery/resentRecoveryEmail/resentRecoveryEmail.js +43 -0
- package/src/lib/recovery/restoreEmbeddedWalletSession/index.d.ts +1 -0
- package/src/lib/recovery/restoreEmbeddedWalletSession/restoreEmbeddedWalletSession.d.ts +9 -0
- package/src/lib/recovery/restoreEmbeddedWalletSession/restoreEmbeddedWalletSession.js +33 -0
- package/src/lib/recovery/types.d.ts +5 -0
- package/src/lib/recovery/useEmbeddedWalletAuthenticator/index.d.ts +1 -0
- package/src/lib/recovery/useEmbeddedWalletAuthenticator/useEmbeddedWalletAuthenticator.d.ts +11 -0
- package/src/lib/recovery/useInitEmbeddedWalletAuthMethod/index.d.ts +1 -0
- package/src/lib/recovery/useInitEmbeddedWalletAuthMethod/useInitEmbeddedWalletAuthMethod.d.ts +29 -0
- package/src/lib/recovery/useInitEmbeddedWalletAuthMethod/useInitEmbeddedWalletAuthMethod.js +50 -0
- package/src/lib/recovery/usePasskeyRecovery/index.d.ts +1 -0
- package/src/lib/recovery/usePasskeyRecovery/usePasskeyRecovery.d.ts +32 -0
- package/src/lib/recovery/usePasskeyRecovery/usePasskeyRecovery.js +197 -0
- package/src/lib/restoreEmbeddedWallet/index.d.ts +1 -0
- package/src/lib/restoreEmbeddedWallet/restoreEmbeddedWallet.d.ts +5 -0
- package/src/lib/restoreEmbeddedWallet/restoreEmbeddedWallet.js +21 -0
- package/src/lib/sessionKeys/base64urlDecode/base64urlDecode.d.ts +1 -0
- package/src/lib/sessionKeys/base64urlDecode/base64urlDecode.js +12 -0
- package/src/lib/sessionKeys/base64urlDecode/index.d.ts +1 -0
- package/src/lib/sessionKeys/buf2hex/buf2hex.d.ts +1 -0
- package/src/lib/sessionKeys/buf2hex/buf2hex.js +7 -0
- package/src/lib/sessionKeys/buf2hex/index.d.ts +1 -0
- package/src/lib/sessionKeys/compressRawPublicKey/compressRawPublicKey.d.ts +1 -0
- package/src/lib/sessionKeys/compressRawPublicKey/compressRawPublicKey.js +15 -0
- package/src/lib/sessionKeys/compressRawPublicKey/index.d.ts +1 -0
- package/src/lib/sessionKeys/generateAndSaveSessionKey/generateAndSaveSessionKey.d.ts +7 -0
- package/src/lib/sessionKeys/generateAndSaveSessionKey/generateAndSaveSessionKey.js +19 -0
- package/src/lib/sessionKeys/generateAndSaveSessionKey/index.d.ts +1 -0
- package/src/lib/sessionKeys/generateSessionKey/generateSessionKey.d.ts +13 -0
- package/src/lib/sessionKeys/generateSessionKey/generateSessionKey.js +20 -0
- package/src/lib/sessionKeys/generateSessionKey/index.d.ts +1 -0
- package/src/lib/sessionKeys/getDecodedSessionKeys/getDecodedSessionKeys.d.ts +2 -0
- package/src/lib/sessionKeys/getDecodedSessionKeys/getDecodedSessionKeys.js +28 -0
- package/src/lib/sessionKeys/getDecodedSessionKeys/index.d.ts +1 -0
- package/src/lib/sessionKeys/getSessionNonceHeaders/getSessionNonceHeaders.d.ts +6 -0
- package/src/lib/sessionKeys/getSessionNonceHeaders/getSessionNonceHeaders.js +19 -0
- package/src/lib/sessionKeys/getSessionNonceHeaders/index.d.ts +1 -0
- package/src/lib/sessionKeys/p256Keygen/index.d.ts +1 -0
- package/src/lib/sessionKeys/p256Keygen/p256Keygen.d.ts +11 -0
- package/src/lib/sessionKeys/p256Keygen/p256Keygen.js +26 -0
- package/src/lib/sessionKeys/p256Sign/index.d.ts +1 -0
- package/src/lib/sessionKeys/p256Sign/p256Sign.d.ts +1 -0
- package/src/lib/sessionKeys/p256Sign/p256Sign.js +17 -0
- package/src/lib/sessionKeys/registerSessionKey/index.d.ts +1 -0
- package/src/lib/sessionKeys/registerSessionKey/registerSessionKey.d.ts +8 -0
- package/src/lib/sessionKeys/registerSessionKey/registerSessionKey.js +42 -0
- package/src/lib/sessionKeys/removeSessionKey/index.d.ts +1 -0
- package/src/lib/sessionKeys/removeSessionKey/removeSessionKey.d.ts +1 -0
- package/src/lib/sessionKeys/removeSessionKey/removeSessionKey.js +9 -0
- package/src/lib/sessionKeys/toEncodedFormat/index.d.ts +1 -0
- package/src/lib/sessionKeys/toEncodedFormat/toEncodedFormat.d.ts +1 -0
- package/src/lib/sessionKeys/toEncodedFormat/toEncodedFormat.js +15 -0
- package/src/lib/sessionKeys/useRegisterEmbeddedWalletSessionKey/index.d.ts +1 -0
- package/src/lib/sessionKeys/useRegisterEmbeddedWalletSessionKey/useRegisterEmbeddedWalletSessionKey.d.ts +11 -0
- package/src/lib/sessionKeys/useRegisterEmbeddedWalletSessionKey/useRegisterEmbeddedWalletSessionKey.js +101 -0
- package/src/lib/sessionKeys/useSetTurnkeyConnectorFetchers/index.d.ts +1 -0
- package/src/lib/sessionKeys/useSetTurnkeyConnectorFetchers/useSetTurnkeyConnectorFetchers.d.ts +4 -0
- package/src/lib/sessionKeys/useSetTurnkeyConnectorFetchers/useSetTurnkeyConnectorFetchers.js +18 -0
- package/src/lib/softDeleteEmbeddedWallet/index.d.ts +1 -0
- package/src/lib/softDeleteEmbeddedWallet/softDeleteEmbeddedWallet.d.ts +5 -0
- package/src/lib/softDeleteEmbeddedWallet/softDeleteEmbeddedWallet.js +21 -0
- package/src/lib/ui/AccountUpgradedView/AccountUpgradedView.d.ts +5 -0
- package/src/lib/ui/AccountUpgradedView/AccountUpgradedView.js +44 -0
- package/src/lib/ui/AccountUpgradedView/index.d.ts +1 -0
- package/src/lib/ui/LegacyEmbeddedWalletExport/LegacyEmbeddedWalletExport.d.ts +6 -0
- package/src/lib/ui/LegacyEmbeddedWalletExport/LegacyEmbeddedWalletExport.js +122 -0
- package/src/lib/ui/LegacyEmbeddedWalletExport/index.d.ts +1 -0
- package/src/lib/ui/LegacyWalletExportSheet/LegacyWalletExportSheet.d.ts +17 -0
- package/src/lib/ui/LegacyWalletExportSheet/LegacyWalletExportSheet.js +60 -0
- package/src/lib/ui/LegacyWalletExportSheet/index.d.ts +1 -0
- package/src/lib/ui/LegacyWalletMigrationContext/LegacyWalletMigrationContext.d.ts +42 -0
- package/src/lib/ui/LegacyWalletMigrationContext/LegacyWalletMigrationContext.js +109 -0
- package/src/lib/ui/LegacyWalletMigrationContext/index.d.ts +1 -0
- package/src/lib/ui/LegacyWalletMigrationModal/LegacyWalletMigrationModal.d.ts +15 -0
- package/src/lib/ui/LegacyWalletMigrationModal/LegacyWalletMigrationModal.js +51 -0
- package/src/lib/ui/LegacyWalletMigrationModal/index.d.ts +1 -0
- package/src/lib/ui/LegacyWalletMigrationRecoveryContext/LegacyWalletMigrationRecoveryContext.d.ts +25 -0
- package/src/lib/ui/LegacyWalletMigrationRecoveryContext/LegacyWalletMigrationRecoveryContext.js +213 -0
- package/src/lib/ui/LegacyWalletMigrationRecoveryContext/index.d.ts +1 -0
- package/src/lib/ui/WaasUpgradeView/WaasUpgradeView.d.ts +9 -0
- package/src/lib/ui/WaasUpgradeView/WaasUpgradeView.js +62 -0
- package/src/lib/ui/WaasUpgradeView/index.d.ts +1 -0
- package/src/lib/ui/WalletUpgradeFlowView/WalletUpgradeFlowView.d.ts +12 -0
- package/src/lib/ui/WalletUpgradeFlowView/WalletUpgradeFlowView.js +124 -0
- package/src/lib/ui/WalletUpgradeFlowView/index.d.ts +1 -0
- package/src/lib/ui/recovery/LegacyAddRecoveryEmailView/LegacyAddRecoveryEmailView.d.ts +9 -0
- package/src/lib/ui/recovery/LegacyAddRecoveryEmailView/LegacyAddRecoveryEmailView.js +21 -0
- package/src/lib/ui/recovery/LegacyAddRecoveryEmailView/index.d.ts +1 -0
- package/src/lib/ui/recovery/LegacyEmbeddedAuthChoiceView/LegacyEmbeddedAuthChoiceView.d.ts +9 -0
- package/src/lib/ui/recovery/LegacyEmbeddedAuthChoiceView/LegacyEmbeddedAuthChoiceView.js +29 -0
- package/src/lib/ui/recovery/LegacyEmbeddedAuthChoiceView/index.d.ts +1 -0
- package/src/lib/ui/recovery/LegacyPasskeyBundleRecoveryView/LegacyPasskeyBundleRecoveryView.d.ts +10 -0
- package/src/lib/ui/recovery/LegacyPasskeyBundleRecoveryView/LegacyPasskeyBundleRecoveryView.js +36 -0
- package/src/lib/ui/recovery/LegacyPasskeyBundleRecoveryView/index.d.ts +1 -0
- package/src/lib/ui/recovery/LegacyPasskeyCompleteRecoveryView/LegacyPasskeyCompleteRecoveryView.d.ts +8 -0
- package/src/lib/ui/recovery/LegacyPasskeyCompleteRecoveryView/LegacyPasskeyCompleteRecoveryView.js +22 -0
- package/src/lib/ui/recovery/LegacyPasskeyCompleteRecoveryView/index.d.ts +1 -0
- package/src/lib/ui/recovery/index.d.ts +4 -0
- package/src/lib/ui/useLegacyWalletExport/index.d.ts +1 -0
- package/src/lib/ui/useLegacyWalletExport/useLegacyWalletExport.d.ts +9 -0
- package/src/lib/ui/useLegacyWalletExport/useLegacyWalletExport.js +75 -0
- package/src/lib/upgradeToDynamicWaas/index.d.ts +1 -0
- package/src/lib/upgradeToDynamicWaas/upgradeToDynamicWaas.d.ts +13 -0
- package/src/lib/upgradeToDynamicWaas/upgradeToDynamicWaas.js +72 -0
- package/src/lib/useLegacyWalletsToMigrate/index.d.ts +2 -0
- package/src/lib/useLegacyWalletsToMigrate/useHasLegacyWalletsToMigrate.d.ts +6 -0
- package/src/lib/useLegacyWalletsToMigrate/useHasLegacyWalletsToMigrate.js +14 -0
- package/src/lib/useLegacyWalletsToMigrate/useLegacyWalletsToMigrate.d.ts +10 -0
- package/src/lib/useLegacyWalletsToMigrate/useLegacyWalletsToMigrate.js +32 -0
- package/src/lib/useUpgradeToDynamicWaas/index.d.ts +1 -0
- package/src/lib/useUpgradeToDynamicWaas/useUpgradeToDynamicWaas.d.ts +20 -0
- package/src/lib/useUpgradeToDynamicWaas/useUpgradeToDynamicWaas.js +44 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2022 Dynamic Labs, Inc.
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
# @dynamic-labs/legacy-embedded-wallet-migration
|
|
2
|
+
|
|
3
|
+
Utilities for migrating legacy Turnkey embedded wallets to Dynamic WaaS wallets.
|
|
4
|
+
|
|
5
|
+
In v5, Turnkey-specific embedded wallet logic no longer ships in `@dynamic-labs/sdk-react-core`. Applications that still have users on legacy Turnkey embedded wallets should import the migration helpers from this package to upgrade those users to WaaS wallets.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
/******************************************************************************
|
|
3
|
+
Copyright (c) Microsoft Corporation.
|
|
4
|
+
|
|
5
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
6
|
+
purpose with or without fee is hereby granted.
|
|
7
|
+
|
|
8
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
9
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
10
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
11
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
12
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
13
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
14
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
15
|
+
***************************************************************************** */
|
|
16
|
+
|
|
17
|
+
function __awaiter(thisArg, _arguments, P, generator) {
|
|
18
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
19
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
20
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
21
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
22
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
23
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
28
|
+
var e = new Error(message);
|
|
29
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export { __awaiter };
|
package/package.js
ADDED
package/package.json
CHANGED
|
@@ -1 +1,31 @@
|
|
|
1
|
-
{
|
|
1
|
+
{
|
|
2
|
+
"name": "@dynamic-labs/legacy-embedded-wallet-migration",
|
|
3
|
+
"version": "5.0.0-rc.2",
|
|
4
|
+
"license": "MIT",
|
|
5
|
+
"main": "./src/index.js",
|
|
6
|
+
"module": "./src/index.js",
|
|
7
|
+
"types": "./src/index.d.ts",
|
|
8
|
+
"type": "module",
|
|
9
|
+
"homepage": "https://www.dynamic.xyz/",
|
|
10
|
+
"exports": {
|
|
11
|
+
".": {
|
|
12
|
+
"types": "./src/index.d.ts",
|
|
13
|
+
"import": "./src/index.js",
|
|
14
|
+
"require": "./src/index.js"
|
|
15
|
+
},
|
|
16
|
+
"./package.json": "./package.json"
|
|
17
|
+
},
|
|
18
|
+
"dependencies": {
|
|
19
|
+
"@dynamic-labs-sdk/client": "1.18.0",
|
|
20
|
+
"@dynamic-labs/assert-package-version": "5.0.0-rc.2",
|
|
21
|
+
"@dynamic-labs/sdk-api-core": "0.0.1082",
|
|
22
|
+
"@dynamic-labs/utils": "5.0.0-rc.2",
|
|
23
|
+
"@dynamic-labs/wallet-connector-core": "5.0.0-rc.2"
|
|
24
|
+
},
|
|
25
|
+
"peerDependencies": {
|
|
26
|
+
"@dynamic-labs/sdk-react-core": "5.0.0-rc.2",
|
|
27
|
+
"react": ">=18.0.0 <20.0.0",
|
|
28
|
+
"react-i18next": ">=13.0.0",
|
|
29
|
+
"@dynamic-labs/types": "5.0.0-rc.2"
|
|
30
|
+
}
|
|
31
|
+
}
|
package/src/index.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { restoreEmbeddedWallet } from './lib/restoreEmbeddedWallet';
|
|
2
|
+
export { softDeleteEmbeddedWallet } from './lib/softDeleteEmbeddedWallet';
|
|
3
|
+
export { upgradeToDynamicWaas } from './lib/upgradeToDynamicWaas';
|
|
4
|
+
export { useUpgradeToDynamicWaas } from './lib/useUpgradeToDynamicWaas';
|
|
5
|
+
export { useHasLegacyWalletsToMigrate } from './lib/useLegacyWalletsToMigrate';
|
|
6
|
+
export { useLegacyWalletsToMigrate } from './lib/useLegacyWalletsToMigrate';
|
|
7
|
+
export { LegacyEmbeddedWalletExport, type LegacyEmbeddedWalletExportProps, } from './lib/ui/LegacyEmbeddedWalletExport';
|
|
8
|
+
export { LegacyWalletExportSheet, type LegacyWalletExportSheetProps, } from './lib/ui/LegacyWalletExportSheet';
|
|
9
|
+
export { useLegacyWalletExport, type RevealLegacyWalletKeyParams, } from './lib/ui/useLegacyWalletExport';
|
|
10
|
+
export { LegacyWalletMigrationProvider, useLegacyWalletMigration, type LegacyWalletMigrationContextType, type LegacyWalletMigrationProviderProps, } from './lib/ui/LegacyWalletMigrationContext';
|
|
11
|
+
export { LegacyWalletMigrationModal, type LegacyWalletMigrationModalProps, type LegacyWalletMigrationOnUpgrade, type LegacyWalletMigrationStep, } from './lib/ui/LegacyWalletMigrationModal';
|
package/src/index.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
import { assertPackageVersion } from '@dynamic-labs/assert-package-version';
|
|
3
|
+
import { version } from '../package.js';
|
|
4
|
+
export { restoreEmbeddedWallet } from './lib/restoreEmbeddedWallet/restoreEmbeddedWallet.js';
|
|
5
|
+
export { softDeleteEmbeddedWallet } from './lib/softDeleteEmbeddedWallet/softDeleteEmbeddedWallet.js';
|
|
6
|
+
export { upgradeToDynamicWaas } from './lib/upgradeToDynamicWaas/upgradeToDynamicWaas.js';
|
|
7
|
+
export { useUpgradeToDynamicWaas } from './lib/useUpgradeToDynamicWaas/useUpgradeToDynamicWaas.js';
|
|
8
|
+
export { useHasLegacyWalletsToMigrate } from './lib/useLegacyWalletsToMigrate/useHasLegacyWalletsToMigrate.js';
|
|
9
|
+
export { useLegacyWalletsToMigrate } from './lib/useLegacyWalletsToMigrate/useLegacyWalletsToMigrate.js';
|
|
10
|
+
export { LegacyEmbeddedWalletExport } from './lib/ui/LegacyEmbeddedWalletExport/LegacyEmbeddedWalletExport.js';
|
|
11
|
+
export { LegacyWalletExportSheet } from './lib/ui/LegacyWalletExportSheet/LegacyWalletExportSheet.js';
|
|
12
|
+
export { useLegacyWalletExport } from './lib/ui/useLegacyWalletExport/useLegacyWalletExport.js';
|
|
13
|
+
export { LegacyWalletMigrationProvider, useLegacyWalletMigration } from './lib/ui/LegacyWalletMigrationContext/LegacyWalletMigrationContext.js';
|
|
14
|
+
export { LegacyWalletMigrationModal } from './lib/ui/LegacyWalletMigrationModal/LegacyWalletMigrationModal.js';
|
|
15
|
+
|
|
16
|
+
assertPackageVersion('@dynamic-labs/legacy-embedded-wallet-migration', version);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { StorageOptions } from '@dynamic-labs/utils';
|
|
2
|
+
export declare const iframeContainerId = "dyn-turnkey-export-container-id";
|
|
3
|
+
export declare const iframeElementId = "dyn-turnkey-export-element-id";
|
|
4
|
+
export declare const ERROR_PROCESSING_REVEAL_REQUEST = "error_processing_reveal_request";
|
|
5
|
+
export declare const INVALID_WALLET_DATA = "invalid_wallet";
|
|
6
|
+
export declare const USER_NOT_LOGGED_IN = "user_not_logged_in";
|
|
7
|
+
export declare const SECURE_ENCLAVE_WALLET_SESSION_KEYS = "dynamic_secure_enclave_session_keys";
|
|
8
|
+
export declare const SECURE_ENCLAVE_WALLET_SESSION_KEYS_STORAGE_OPTIONS: StorageOptions;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
const iframeContainerId = 'dyn-turnkey-export-container-id';
|
|
3
|
+
const iframeElementId = 'dyn-turnkey-export-element-id';
|
|
4
|
+
const ERROR_PROCESSING_REVEAL_REQUEST = 'error_processing_reveal_request';
|
|
5
|
+
const INVALID_WALLET_DATA = 'invalid_wallet';
|
|
6
|
+
const USER_NOT_LOGGED_IN = 'user_not_logged_in';
|
|
7
|
+
const SECURE_ENCLAVE_WALLET_SESSION_KEYS = 'dynamic_secure_enclave_session_keys';
|
|
8
|
+
const SECURE_ENCLAVE_WALLET_SESSION_KEYS_STORAGE_OPTIONS = {
|
|
9
|
+
priority: ['secureStorage', 'localStorage'],
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export { ERROR_PROCESSING_REVEAL_REQUEST, INVALID_WALLET_DATA, SECURE_ENCLAVE_WALLET_SESSION_KEYS, SECURE_ENCLAVE_WALLET_SESSION_KEYS_STORAGE_OPTIONS, USER_NOT_LOGGED_IN, iframeContainerId, iframeElementId };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
import { __awaiter } from '../../../../_virtual/_tslib.js';
|
|
3
|
+
|
|
4
|
+
const cleanupExport = (_a) => __awaiter(void 0, [_a], void 0, function* ({ wallet }) {
|
|
5
|
+
var _b;
|
|
6
|
+
const connector = wallet === null || wallet === void 0 ? void 0 : wallet.connector;
|
|
7
|
+
// clear iframeStamper and its reference
|
|
8
|
+
(_b = connector === null || connector === void 0 ? void 0 : connector.getExportHandler()) === null || _b === void 0 ? void 0 : _b.clear();
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
export { cleanupExport };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { cleanupExport } from './cleanupExport';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Wallet } from '@dynamic-labs/wallet-connector-core';
|
|
2
|
+
import type { UserProfile } from '@dynamic-labs/sdk-react-core';
|
|
3
|
+
export declare const exportCredential: ({ user, wallet, address, }: {
|
|
4
|
+
user: UserProfile | undefined;
|
|
5
|
+
wallet: Wallet | null;
|
|
6
|
+
address?: string;
|
|
7
|
+
}) => Promise<boolean>;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
import { __awaiter } from '../../../../_virtual/_tslib.js';
|
|
3
|
+
import { DynamicError } from '@dynamic-labs/utils';
|
|
4
|
+
import { exportEmbeddedWallet } from '../exportEmbeddedWallet/exportEmbeddedWallet.js';
|
|
5
|
+
import { ERROR_PROCESSING_REVEAL_REQUEST } from '../../constants.js';
|
|
6
|
+
import { extractExportBundle } from '../extractExportBundle/extractExportBundle.js';
|
|
7
|
+
import { handleExportInitCheck } from '../handleExportInitCheck/handleExportInitCheck.js';
|
|
8
|
+
|
|
9
|
+
const exportCredential = (_a) => __awaiter(void 0, [_a], void 0, function* ({ user, wallet, address, }) {
|
|
10
|
+
const { connector, turnkeyHDWalletId, privateKeyId, organizationId } = handleExportInitCheck({ user, wallet });
|
|
11
|
+
const turnkeyExportHandler = connector.getExportHandler();
|
|
12
|
+
const targetPublicKey = turnkeyExportHandler.publicKey;
|
|
13
|
+
if (!targetPublicKey) {
|
|
14
|
+
throw new DynamicError('Must initialize export first', ERROR_PROCESSING_REVEAL_REQUEST);
|
|
15
|
+
}
|
|
16
|
+
let newActivity;
|
|
17
|
+
if (turnkeyHDWalletId) {
|
|
18
|
+
newActivity = yield turnkeyExportHandler.exportWallet({
|
|
19
|
+
address,
|
|
20
|
+
organizationId,
|
|
21
|
+
walletId: turnkeyHDWalletId,
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
else if (privateKeyId) {
|
|
25
|
+
newActivity = yield turnkeyExportHandler.exportPrivateKey({
|
|
26
|
+
organizationId,
|
|
27
|
+
privateKeyId,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
const activityId = newActivity.id;
|
|
31
|
+
const activityStatus = newActivity.status;
|
|
32
|
+
let exportBundle;
|
|
33
|
+
if (activityStatus === 'ACTIVITY_STATUS_COMPLETED') {
|
|
34
|
+
exportBundle = extractExportBundle({
|
|
35
|
+
activity: newActivity,
|
|
36
|
+
address,
|
|
37
|
+
privateKeyId: privateKeyId !== null && privateKeyId !== void 0 ? privateKeyId : undefined,
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
const res = yield exportEmbeddedWallet({
|
|
42
|
+
activityId,
|
|
43
|
+
walletId: (wallet === null || wallet === void 0 ? void 0 : wallet.id) || '',
|
|
44
|
+
});
|
|
45
|
+
exportBundle = res === null || res === void 0 ? void 0 : res.exportBundle;
|
|
46
|
+
}
|
|
47
|
+
if (!exportBundle) {
|
|
48
|
+
throw new DynamicError('Invalid export response', ERROR_PROCESSING_REVEAL_REQUEST);
|
|
49
|
+
}
|
|
50
|
+
if (address || privateKeyId) {
|
|
51
|
+
return turnkeyExportHandler.verifyExportPrivateKey({
|
|
52
|
+
chain: wallet === null || wallet === void 0 ? void 0 : wallet.chain,
|
|
53
|
+
exportBundle,
|
|
54
|
+
organizationId,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
return turnkeyExportHandler.verifyExportWallet({
|
|
58
|
+
exportBundle,
|
|
59
|
+
organizationId,
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
export { exportCredential };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { exportCredential } from './exportCredential';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ExportEmbeddedWalletResponse } from '@dynamic-labs/sdk-api-core';
|
|
2
|
+
type ExportEmbeddedWalletProps = {
|
|
3
|
+
activityId: string;
|
|
4
|
+
walletId: string;
|
|
5
|
+
};
|
|
6
|
+
export declare const exportEmbeddedWallet: ({ activityId, walletId, }: ExportEmbeddedWalletProps) => Promise<ExportEmbeddedWalletResponse>;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
import { __awaiter } from '../../../../_virtual/_tslib.js';
|
|
3
|
+
import { getDefaultClient, getCore, createApiClient } from '@dynamic-labs-sdk/client/core';
|
|
4
|
+
|
|
5
|
+
const exportEmbeddedWallet = (_a) => __awaiter(void 0, [_a], void 0, function* ({ activityId, walletId, }) {
|
|
6
|
+
const client = getDefaultClient();
|
|
7
|
+
const core = getCore(client);
|
|
8
|
+
const apiClient = createApiClient({}, client);
|
|
9
|
+
try {
|
|
10
|
+
return yield apiClient.embeddedWalletExport({
|
|
11
|
+
activityId,
|
|
12
|
+
environmentId: core.environmentId,
|
|
13
|
+
walletId,
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
catch (_b) {
|
|
17
|
+
return { exportBundle: '' };
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
export { exportEmbeddedWallet };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { exportEmbeddedWallet } from './exportEmbeddedWallet';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Wallet, WalletConnectorCore } from '@dynamic-labs/wallet-connector-core';
|
|
2
|
+
import type { UserProfile } from '@dynamic-labs/sdk-react-core';
|
|
3
|
+
export type ExportTurnkeyWalletCredentialParams = {
|
|
4
|
+
wallet: Wallet<WalletConnectorCore.WalletConnector>;
|
|
5
|
+
user: UserProfile | undefined;
|
|
6
|
+
exportPrivateKey?: boolean;
|
|
7
|
+
handleAcknowledgeExportPrompt?: () => void;
|
|
8
|
+
};
|
|
9
|
+
export declare const exportTurnkeyWalletCredential: ({ wallet, user, exportPrivateKey, handleAcknowledgeExportPrompt, }: ExportTurnkeyWalletCredentialParams) => Promise<boolean | undefined>;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
import { __awaiter } from '../../../../_virtual/_tslib.js';
|
|
3
|
+
import { isSessionKeyCompatibleWalletConnector } from '@dynamic-labs/wallet-connector-core';
|
|
4
|
+
import { exportCredential } from '../exportCredential/exportCredential.js';
|
|
5
|
+
|
|
6
|
+
const exportTurnkeyWalletCredential = (_a) => __awaiter(void 0, [_a], void 0, function* ({ wallet, user, exportPrivateKey, handleAcknowledgeExportPrompt, }) {
|
|
7
|
+
var _b;
|
|
8
|
+
handleAcknowledgeExportPrompt === null || handleAcknowledgeExportPrompt === void 0 ? void 0 : handleAcknowledgeExportPrompt();
|
|
9
|
+
try {
|
|
10
|
+
return yield exportCredential({
|
|
11
|
+
address: exportPrivateKey ? wallet === null || wallet === void 0 ? void 0 : wallet.address : undefined,
|
|
12
|
+
user,
|
|
13
|
+
wallet,
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
catch (_c) {
|
|
17
|
+
if (isSessionKeyCompatibleWalletConnector(wallet === null || wallet === void 0 ? void 0 : wallet.connector) &&
|
|
18
|
+
((_b = wallet === null || wallet === void 0 ? void 0 : wallet.connector) === null || _b === void 0 ? void 0 : _b.removeSessionKeys)) {
|
|
19
|
+
yield wallet.connector.removeSessionKeys();
|
|
20
|
+
yield wallet.connector.createOrRestoreSession({ ignoreRestore: true });
|
|
21
|
+
}
|
|
22
|
+
return exportCredential({
|
|
23
|
+
address: exportPrivateKey ? wallet === null || wallet === void 0 ? void 0 : wallet.address : undefined,
|
|
24
|
+
user,
|
|
25
|
+
wallet,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
export { exportTurnkeyWalletCredential };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { exportTurnkeyWalletCredential, type ExportTurnkeyWalletCredentialParams, } from './exportTurnkeyWalletCredential';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
const extractExportBundle = ({ address, privateKeyId, activity, }) => {
|
|
3
|
+
var _a, _b, _c;
|
|
4
|
+
const exportWalletResult = address
|
|
5
|
+
? (_a = activity.result) === null || _a === void 0 ? void 0 : _a.exportWalletAccountResult
|
|
6
|
+
: (_b = activity.result) === null || _b === void 0 ? void 0 : _b.exportWalletResult;
|
|
7
|
+
const result = privateKeyId
|
|
8
|
+
? (_c = activity.result) === null || _c === void 0 ? void 0 : _c.exportPrivateKeyResult
|
|
9
|
+
: exportWalletResult;
|
|
10
|
+
return result === null || result === void 0 ? void 0 : result.exportBundle;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export { extractExportBundle };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { extractExportBundle } from './extractExportBundle';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { IEmailWalletConnector, IPasskeyWalletConnector, Wallet } from '@dynamic-labs/wallet-connector-core';
|
|
2
|
+
import type { UserProfile } from '@dynamic-labs/sdk-react-core';
|
|
3
|
+
export type HandleExportInitCheckResult = {
|
|
4
|
+
connector: IEmailWalletConnector & IPasskeyWalletConnector;
|
|
5
|
+
organizationId: string;
|
|
6
|
+
privateKeyId: string | undefined;
|
|
7
|
+
turnkeyHDWalletId: string | undefined;
|
|
8
|
+
};
|
|
9
|
+
export declare const handleExportInitCheck: ({ user, wallet, }: {
|
|
10
|
+
user: UserProfile | undefined;
|
|
11
|
+
wallet: Wallet | null;
|
|
12
|
+
}) => HandleExportInitCheckResult;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
import { DynamicError, InvalidPrimaryWalletOrConnectorError } from '@dynamic-labs/utils';
|
|
3
|
+
import { isPasskeyWalletConnector } from '@dynamic-labs/wallet-connector-core';
|
|
4
|
+
import { USER_NOT_LOGGED_IN } from '../../constants.js';
|
|
5
|
+
|
|
6
|
+
const handleExportInitCheck = ({ user, wallet, }) => {
|
|
7
|
+
var _a, _b, _c, _d, _e;
|
|
8
|
+
if (!user) {
|
|
9
|
+
throw new DynamicError(USER_NOT_LOGGED_IN, USER_NOT_LOGGED_IN);
|
|
10
|
+
}
|
|
11
|
+
if (!(wallet === null || wallet === void 0 ? void 0 : wallet.connector) ||
|
|
12
|
+
!(wallet === null || wallet === void 0 ? void 0 : wallet.id) ||
|
|
13
|
+
!isPasskeyWalletConnector(wallet === null || wallet === void 0 ? void 0 : wallet.connector)) {
|
|
14
|
+
throw new InvalidPrimaryWalletOrConnectorError();
|
|
15
|
+
}
|
|
16
|
+
const connector = wallet.connector;
|
|
17
|
+
connector.setEmail(user.email);
|
|
18
|
+
const walletProperties = (_b = (_a = user.verifiedCredentials) === null || _a === void 0 ? void 0 : _a.find(({ walletName, id }) => (walletName === null || walletName === void 0 ? void 0 : walletName.startsWith('turnkey')) && id === wallet.id)) === null || _b === void 0 ? void 0 : _b.walletProperties;
|
|
19
|
+
const turnkeyHDWalletId = (_c = walletProperties === null || walletProperties === void 0 ? void 0 : walletProperties.turnkeyHDWalletId) !== null && _c !== void 0 ? _c : undefined;
|
|
20
|
+
const privateKeyId = (_d = walletProperties === null || walletProperties === void 0 ? void 0 : walletProperties.turnkeyPrivateKeyId) !== null && _d !== void 0 ? _d : undefined;
|
|
21
|
+
const organizationId = (_e = walletProperties === null || walletProperties === void 0 ? void 0 : walletProperties.turnkeySubOrganizationId) !== null && _e !== void 0 ? _e : undefined;
|
|
22
|
+
if (!organizationId ||
|
|
23
|
+
(turnkeyHDWalletId === undefined && privateKeyId === undefined)) {
|
|
24
|
+
throw new DynamicError('Invalid token!', 'invalid_token');
|
|
25
|
+
}
|
|
26
|
+
return {
|
|
27
|
+
connector,
|
|
28
|
+
organizationId,
|
|
29
|
+
privateKeyId,
|
|
30
|
+
turnkeyHDWalletId,
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
export { handleExportInitCheck };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { handleExportInitCheck, type HandleExportInitCheckResult, } from './handleExportInitCheck';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { initExport } from './initExport';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Wallet } from '@dynamic-labs/wallet-connector-core';
|
|
2
|
+
export declare const initExport: ({ iframeContainer, iframeElementId, wallet, }: {
|
|
3
|
+
iframeContainer: HTMLElement;
|
|
4
|
+
iframeElementId: string;
|
|
5
|
+
wallet: Wallet | null;
|
|
6
|
+
}) => Promise<import("@dynamic-labs/wallet-connector-core").ExportHandler>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
import { __awaiter } from '../../../../_virtual/_tslib.js';
|
|
3
|
+
import { InvalidPrimaryWalletOrConnectorError, DynamicError } from '@dynamic-labs/utils';
|
|
4
|
+
import { isPasskeyWalletConnector } from '@dynamic-labs/wallet-connector-core';
|
|
5
|
+
import { INVALID_WALLET_DATA, ERROR_PROCESSING_REVEAL_REQUEST } from '../../constants.js';
|
|
6
|
+
|
|
7
|
+
const initExport = (_a) => __awaiter(void 0, [_a], void 0, function* ({ iframeContainer, iframeElementId, wallet, }) {
|
|
8
|
+
var _b;
|
|
9
|
+
if (!(wallet === null || wallet === void 0 ? void 0 : wallet.connector) ||
|
|
10
|
+
!(wallet === null || wallet === void 0 ? void 0 : wallet.id) ||
|
|
11
|
+
!isPasskeyWalletConnector(wallet === null || wallet === void 0 ? void 0 : wallet.connector)) {
|
|
12
|
+
throw new InvalidPrimaryWalletOrConnectorError(INVALID_WALLET_DATA);
|
|
13
|
+
}
|
|
14
|
+
const turnkeyExportHandler = (_b = wallet.connector) === null || _b === void 0 ? void 0 : _b.getExportHandler();
|
|
15
|
+
const publicKey = yield turnkeyExportHandler.initExport(iframeContainer, iframeElementId);
|
|
16
|
+
if (!publicKey) {
|
|
17
|
+
throw new DynamicError('Something went wrong', ERROR_PROCESSING_REVEAL_REQUEST);
|
|
18
|
+
}
|
|
19
|
+
return turnkeyExportHandler;
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
export { initExport };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { JwtVerifiedCredential } from '@dynamic-labs/sdk-api-core';
|
|
2
|
+
/**
|
|
3
|
+
* Returns the id of the Turnkey wallet for a given wallet id, walking the
|
|
4
|
+
* user's verified credentials. If the credential itself is a Turnkey wallet,
|
|
5
|
+
* its id is returned; if it's a smart wallet whose signer is a Turnkey
|
|
6
|
+
* wallet, the signer's id is returned.
|
|
7
|
+
*/
|
|
8
|
+
export declare const getTurnkeyWalletId: (turnkeyWalletId: string, verifiedCredentials: JwtVerifiedCredential[]) => string;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
/**
|
|
3
|
+
* Returns the id of the Turnkey wallet for a given wallet id, walking the
|
|
4
|
+
* user's verified credentials. If the credential itself is a Turnkey wallet,
|
|
5
|
+
* its id is returned; if it's a smart wallet whose signer is a Turnkey
|
|
6
|
+
* wallet, the signer's id is returned.
|
|
7
|
+
*/
|
|
8
|
+
const getTurnkeyWalletId = (turnkeyWalletId, verifiedCredentials) => {
|
|
9
|
+
var _a;
|
|
10
|
+
const turnkeyWallet = verifiedCredentials === null || verifiedCredentials === void 0 ? void 0 : verifiedCredentials.find(({ id }) => id === turnkeyWalletId);
|
|
11
|
+
if (!turnkeyWallet) {
|
|
12
|
+
throw new Error('Dynamic v2 wallet not found');
|
|
13
|
+
}
|
|
14
|
+
let walletId = undefined;
|
|
15
|
+
if ((_a = turnkeyWallet === null || turnkeyWallet === void 0 ? void 0 : turnkeyWallet.walletName) === null || _a === void 0 ? void 0 : _a.startsWith('turnkey')) {
|
|
16
|
+
walletId = turnkeyWallet === null || turnkeyWallet === void 0 ? void 0 : turnkeyWallet.id;
|
|
17
|
+
}
|
|
18
|
+
else if (turnkeyWallet === null || turnkeyWallet === void 0 ? void 0 : turnkeyWallet.signerRefId) {
|
|
19
|
+
walletId = turnkeyWallet === null || turnkeyWallet === void 0 ? void 0 : turnkeyWallet.signerRefId;
|
|
20
|
+
}
|
|
21
|
+
if (!walletId) {
|
|
22
|
+
throw new Error("Invalid wallet type: expecting 'turnkey' wallet, or a wallet with a 'signerRefId'");
|
|
23
|
+
}
|
|
24
|
+
return walletId;
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export { getTurnkeyWalletId };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { getTurnkeyWalletId } from './getTurnkeyWalletId';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { SdkUser } from '@dynamic-labs/sdk-api-core';
|
|
2
|
+
import { UserProfile } from '@dynamic-labs/types';
|
|
3
|
+
import { Wallet } from '@dynamic-labs/wallet-connector-core';
|
|
4
|
+
export declare const addEmailRecovery: ({ user, wallet, }: {
|
|
5
|
+
user: UserProfile | undefined;
|
|
6
|
+
wallet: Wallet | null;
|
|
7
|
+
}) => Promise<SdkUser | undefined>;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
import { __awaiter } from '../../../../_virtual/_tslib.js';
|
|
3
|
+
import { getDefaultClient, getCore, createApiClient, updateAuthFromVerifyResponse } from '@dynamic-labs-sdk/client/core';
|
|
4
|
+
import { DynamicError, InvalidPrimaryWalletOrConnectorError } from '@dynamic-labs/utils';
|
|
5
|
+
import { isPasskeyWalletConnector, isEmailWalletConnector } from '@dynamic-labs/wallet-connector-core';
|
|
6
|
+
import { USER_NOT_LOGGED_IN } from '../../constants.js';
|
|
7
|
+
|
|
8
|
+
const addEmailRecovery = (_a) => __awaiter(void 0, [_a], void 0, function* ({ user, wallet, }) {
|
|
9
|
+
var _b, _c;
|
|
10
|
+
if (!(user === null || user === void 0 ? void 0 : user.email)) {
|
|
11
|
+
throw new DynamicError(USER_NOT_LOGGED_IN, USER_NOT_LOGGED_IN);
|
|
12
|
+
}
|
|
13
|
+
if (!(wallet === null || wallet === void 0 ? void 0 : wallet.connector) ||
|
|
14
|
+
!(wallet === null || wallet === void 0 ? void 0 : wallet.id) ||
|
|
15
|
+
!isPasskeyWalletConnector(wallet === null || wallet === void 0 ? void 0 : wallet.connector) ||
|
|
16
|
+
!isEmailWalletConnector(wallet === null || wallet === void 0 ? void 0 : wallet.connector)) {
|
|
17
|
+
throw new InvalidPrimaryWalletOrConnectorError();
|
|
18
|
+
}
|
|
19
|
+
const turnkeyCredential = (_b = user.verifiedCredentials) === null || _b === void 0 ? void 0 : _b.find(({ walletName, id }) => (walletName === null || walletName === void 0 ? void 0 : walletName.startsWith('turnkey')) && id === wallet.id);
|
|
20
|
+
const { turnkeySubOrganizationId, turnkeyUserId } = (_c = turnkeyCredential === null || turnkeyCredential === void 0 ? void 0 : turnkeyCredential.walletProperties) !== null && _c !== void 0 ? _c : {};
|
|
21
|
+
if (!turnkeySubOrganizationId || !turnkeyUserId) {
|
|
22
|
+
throw new DynamicError('The authentication token is invalid - turnkeySubOrganizationId or turnkeyUserID is missing', 'invalid_authentication_token');
|
|
23
|
+
}
|
|
24
|
+
const turnkeyRecoveryHandler = wallet.connector.getAuthenticatorHandler();
|
|
25
|
+
const { signedRequest } = (yield turnkeyRecoveryHandler.addEmailRecovery({
|
|
26
|
+
email: user.email,
|
|
27
|
+
organizationId: turnkeySubOrganizationId,
|
|
28
|
+
turnkeyUserId,
|
|
29
|
+
}));
|
|
30
|
+
const client = getDefaultClient();
|
|
31
|
+
const core = getCore(client);
|
|
32
|
+
const apiClient = createApiClient({}, client);
|
|
33
|
+
try {
|
|
34
|
+
yield apiClient.updateEmbeddedWalletRecoveryEmail({
|
|
35
|
+
environmentId: core.environmentId,
|
|
36
|
+
updateRecoveryEmailRequest: { turnkeySignedRequest: signedRequest },
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
catch (_d) {
|
|
40
|
+
throw new DynamicError('Error updating recovery email', 'update_recovery_email_failed');
|
|
41
|
+
}
|
|
42
|
+
wallet.connector.setEmail(user.email);
|
|
43
|
+
const response = yield apiClient.refreshAuth({
|
|
44
|
+
environmentId: core.environmentId,
|
|
45
|
+
});
|
|
46
|
+
updateAuthFromVerifyResponse({ response }, client);
|
|
47
|
+
return response.user;
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
export { addEmailRecovery };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { addEmailRecovery } from './addEmailRecovery';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { SdkUser } from '@dynamic-labs/sdk-api-core';
|
|
2
|
+
import { UserProfile } from '@dynamic-labs/types';
|
|
3
|
+
import { Wallet } from '@dynamic-labs/wallet-connector-core';
|
|
4
|
+
export declare const addNewPasskeyAuthenticator: ({ user, wallet, }: {
|
|
5
|
+
user: UserProfile | undefined;
|
|
6
|
+
wallet: Wallet | null;
|
|
7
|
+
}) => Promise<SdkUser>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
import { __awaiter } from '../../../../_virtual/_tslib.js';
|
|
3
|
+
import { recoverTurnkeyWallet } from '../recoverTurnkeyWallet/recoverTurnkeyWallet.js';
|
|
4
|
+
|
|
5
|
+
const addNewPasskeyAuthenticator = (_a) => __awaiter(void 0, [_a], void 0, function* ({ user, wallet, }) {
|
|
6
|
+
const { user: updatedUser } = yield recoverTurnkeyWallet({
|
|
7
|
+
addPasskeyAuthenticator: true,
|
|
8
|
+
user,
|
|
9
|
+
wallet,
|
|
10
|
+
});
|
|
11
|
+
return updatedUser;
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
export { addNewPasskeyAuthenticator };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { addNewPasskeyAuthenticator } from './addNewPasskeyAuthenticator';
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
import { StorageService } from '@dynamic-labs/utils';
|
|
3
|
+
import { EMBEDDED_WALLET_SESSION_SETTINGS } from '../constants.js';
|
|
4
|
+
|
|
5
|
+
const canRestoreEmbeddedWalletSession = (sessionExpirationTime) => {
|
|
6
|
+
if (!(sessionExpirationTime === null || sessionExpirationTime === void 0 ? void 0 : sessionExpirationTime.amount)) {
|
|
7
|
+
return false;
|
|
8
|
+
}
|
|
9
|
+
const sessionSettings = StorageService.getItem(EMBEDDED_WALLET_SESSION_SETTINGS);
|
|
10
|
+
if (!sessionSettings) {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
const sessionExpiration = sessionExpirationTime.amount *
|
|
14
|
+
(sessionExpirationTime.unit === 'minutes' ? 60 : 3600);
|
|
15
|
+
const recoveryExpirationSeconds = (sessionSettings === null || sessionSettings === void 0 ? void 0 : sessionSettings.createdAt) + sessionExpiration * 1000;
|
|
16
|
+
const expirationTime = new Date(recoveryExpirationSeconds);
|
|
17
|
+
if (new Date() >= expirationTime) {
|
|
18
|
+
StorageService.removeItem(EMBEDDED_WALLET_SESSION_SETTINGS);
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
return true;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export { canRestoreEmbeddedWalletSession };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { canRestoreEmbeddedWalletSession } from './canRestoreEmbeddedWalletSession';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { SdkUser } from '@dynamic-labs/sdk-api-core';
|
|
2
|
+
import { UserProfile } from '@dynamic-labs/types';
|
|
3
|
+
import { Wallet } from '@dynamic-labs/wallet-connector-core';
|
|
4
|
+
export declare const completePasskeyRecovery: ({ user, wallet, }: {
|
|
5
|
+
wallet: Wallet | null;
|
|
6
|
+
user: UserProfile | undefined;
|
|
7
|
+
}) => Promise<SdkUser>;
|