@dynamic-labs/sdk-react-core 2.1.0-alpha.10 → 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.
- package/CHANGELOG.md +13 -0
- package/package.cjs +2 -2
- package/package.js +2 -2
- package/package.json +13 -13
- package/src/index.cjs +2 -0
- package/src/index.d.ts +1 -1
- package/src/index.js +1 -0
- package/src/lib/data/api/chains/balances.cjs +38 -0
- package/src/lib/data/api/chains/balances.d.ts +8 -0
- package/src/lib/data/api/chains/balances.js +34 -0
- package/src/lib/data/api/chains/index.d.ts +1 -0
- package/src/lib/shared/types/general.d.ts +1 -0
- package/src/lib/utils/constants/errors.cjs +2 -0
- package/src/lib/utils/constants/errors.d.ts +1 -0
- package/src/lib/utils/constants/errors.js +2 -1
- package/src/lib/utils/hooks/index.d.ts +1 -0
- package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.cjs +34 -3
- package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.d.ts +18 -9
- package/src/lib/utils/hooks/useEmbeddedWallet/useEmbeddedWallet.js +34 -3
- package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useMPCEmbeddedWallet.cjs +5 -1
- package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useMPCEmbeddedWallet.d.ts +1 -0
- package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useMPCEmbeddedWallet.js +5 -1
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/constants.cjs +4 -0
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/constants.d.ts +2 -0
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/constants.js +3 -1
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.cjs +68 -28
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.d.ts +11 -6
- package/src/lib/utils/hooks/useEmbeddedWallet/useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.js +70 -30
- package/src/lib/utils/hooks/useTokenBalances/index.d.ts +1 -0
- package/src/lib/utils/hooks/useTokenBalances/useTokenBalances.cjs +141 -0
- package/src/lib/utils/hooks/useTokenBalances/useTokenBalances.d.ts +12 -0
- package/src/lib/utils/hooks/useTokenBalances/useTokenBalances.js +137 -0
- package/src/lib/views/EmbeddedReveal/EmbeddedRevealView/EmbeddedRevealView.cjs +1 -1
- package/src/lib/views/EmbeddedReveal/EmbeddedRevealView/EmbeddedRevealView.js +1 -1
- package/src/lib/views/EmbeddedReveal/utils/turnkeyExport/turnkeyExport.cjs +5 -4
- package/src/lib/views/EmbeddedReveal/utils/turnkeyExport/turnkeyExport.js +5 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,17 @@
|
|
|
1
1
|
|
|
2
|
+
## [2.1.0-alpha.11](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.10...v2.1.0-alpha.11) (2024-05-02)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
* **GVTY-1050:** add account token balances hook ([#5521](https://github.com/dynamic-labs/DynamicAuth/issues/5521)) ([5a6f937](https://github.com/dynamic-labs/DynamicAuth/commit/5a6f93733019f3b8d5c7a2c7a5537172a1e7eba4))
|
|
8
|
+
* headless reveal embedded wallet key ([#5518](https://github.com/dynamic-labs/DynamicAuth/issues/5518)) ([77c1536](https://github.com/dynamic-labs/DynamicAuth/commit/77c15360b2b28c52cbdeafb3ce8ca7e80dbecf57))
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* fallback to walletconnect for zerion on mobile ([#5536](https://github.com/dynamic-labs/DynamicAuth/issues/5536)) ([f0e5bfe](https://github.com/dynamic-labs/DynamicAuth/commit/f0e5bfea0b2ab271fd4c1475c8ce708ecb1a5926))
|
|
14
|
+
|
|
2
15
|
## [2.1.0-alpha.10](https://github.com/dynamic-labs/DynamicAuth/compare/v2.1.0-alpha.9...v2.1.0-alpha.10) (2024-04-30)
|
|
3
16
|
|
|
4
17
|
|
package/package.cjs
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
|
|
4
4
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
5
|
|
|
6
|
-
var version = "2.1.0-alpha.
|
|
6
|
+
var version = "2.1.0-alpha.11";
|
|
7
7
|
var dependencies = {
|
|
8
|
-
"@dynamic-labs/sdk-api-core": "0.0.
|
|
8
|
+
"@dynamic-labs/sdk-api-core": "0.0.433",
|
|
9
9
|
"@hcaptcha/react-hcaptcha": "1.4.4",
|
|
10
10
|
"country-list": "2.3.0",
|
|
11
11
|
formik: "2.2.9",
|
package/package.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use client'
|
|
2
|
-
var version = "2.1.0-alpha.
|
|
2
|
+
var version = "2.1.0-alpha.11";
|
|
3
3
|
var dependencies = {
|
|
4
|
-
"@dynamic-labs/sdk-api-core": "0.0.
|
|
4
|
+
"@dynamic-labs/sdk-api-core": "0.0.433",
|
|
5
5
|
"@hcaptcha/react-hcaptcha": "1.4.4",
|
|
6
6
|
"country-list": "2.3.0",
|
|
7
7
|
formik: "2.2.9",
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs/sdk-react-core",
|
|
3
|
-
"version": "2.1.0-alpha.
|
|
3
|
+
"version": "2.1.0-alpha.11",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/dynamic-labs/DynamicAuth.git",
|
|
7
7
|
"directory": "packages/sdk-react-core"
|
|
8
8
|
},
|
|
9
9
|
"dependencies": {
|
|
10
|
-
"@dynamic-labs/sdk-api-core": "0.0.
|
|
10
|
+
"@dynamic-labs/sdk-api-core": "0.0.433",
|
|
11
11
|
"@hcaptcha/react-hcaptcha": "1.4.4",
|
|
12
12
|
"country-list": "2.3.0",
|
|
13
13
|
"formik": "2.2.9",
|
|
@@ -17,17 +17,17 @@
|
|
|
17
17
|
"react-i18next": "13.5.0",
|
|
18
18
|
"yup": "0.32.11",
|
|
19
19
|
"react-international-phone": "4.2.5",
|
|
20
|
-
"@dynamic-labs/iconic": "2.1.0-alpha.
|
|
21
|
-
"@dynamic-labs/logger": "2.1.0-alpha.
|
|
22
|
-
"@dynamic-labs/multi-wallet": "2.1.0-alpha.
|
|
23
|
-
"@dynamic-labs/rpc-provider-ethereum": "2.1.0-alpha.
|
|
24
|
-
"@dynamic-labs/rpc-provider-solana": "2.1.0-alpha.
|
|
25
|
-
"@dynamic-labs/rpc-providers": "2.1.0-alpha.
|
|
26
|
-
"@dynamic-labs/types": "2.1.0-alpha.
|
|
27
|
-
"@dynamic-labs/utils": "2.1.0-alpha.
|
|
28
|
-
"@dynamic-labs/viem-utils": "2.1.0-alpha.
|
|
29
|
-
"@dynamic-labs/wallet-book": "2.1.0-alpha.
|
|
30
|
-
"@dynamic-labs/wallet-connector-core": "2.1.0-alpha.
|
|
20
|
+
"@dynamic-labs/iconic": "2.1.0-alpha.11",
|
|
21
|
+
"@dynamic-labs/logger": "2.1.0-alpha.11",
|
|
22
|
+
"@dynamic-labs/multi-wallet": "2.1.0-alpha.11",
|
|
23
|
+
"@dynamic-labs/rpc-provider-ethereum": "2.1.0-alpha.11",
|
|
24
|
+
"@dynamic-labs/rpc-provider-solana": "2.1.0-alpha.11",
|
|
25
|
+
"@dynamic-labs/rpc-providers": "2.1.0-alpha.11",
|
|
26
|
+
"@dynamic-labs/types": "2.1.0-alpha.11",
|
|
27
|
+
"@dynamic-labs/utils": "2.1.0-alpha.11",
|
|
28
|
+
"@dynamic-labs/viem-utils": "2.1.0-alpha.11",
|
|
29
|
+
"@dynamic-labs/wallet-book": "2.1.0-alpha.11",
|
|
30
|
+
"@dynamic-labs/wallet-connector-core": "2.1.0-alpha.11",
|
|
31
31
|
"eventemitter3": "5.0.1"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
package/src/index.cjs
CHANGED
|
@@ -110,6 +110,7 @@ var useEmbeddedReveal = require('./lib/utils/hooks/useEmbeddedReveal/useEmbedded
|
|
|
110
110
|
var useEmbeddedWalletAuthenticator = require('./lib/utils/hooks/useEmbeddedWalletAuthenticator/useEmbeddedWalletAuthenticator.cjs');
|
|
111
111
|
var useDynamicModals = require('./lib/utils/hooks/useDynamicModals/useDynamicModals.cjs');
|
|
112
112
|
var useMfa = require('./lib/utils/hooks/useMfa/useMfa.cjs');
|
|
113
|
+
var useTokenBalances = require('./lib/utils/hooks/useTokenBalances/useTokenBalances.cjs');
|
|
113
114
|
var DynamicConnectButton = require('./lib/components/DynamicConnectButton/DynamicConnectButton.cjs');
|
|
114
115
|
require('./lib/components/InlineWidget/InlineWidget.cjs');
|
|
115
116
|
var IsBrowser = require('./lib/components/IsBrowser/IsBrowser.cjs');
|
|
@@ -207,6 +208,7 @@ exports.useEmbeddedReveal = useEmbeddedReveal.useEmbeddedReveal;
|
|
|
207
208
|
exports.useEmbeddedWalletAuthenticator = useEmbeddedWalletAuthenticator.useEmbeddedWalletAuthenticator;
|
|
208
209
|
exports.useDynamicModals = useDynamicModals.useDynamicModals;
|
|
209
210
|
exports.useMfa = useMfa.useMfa;
|
|
211
|
+
exports.useTokenBalances = useTokenBalances.useTokenBalances;
|
|
210
212
|
exports.DynamicConnectButton = DynamicConnectButton.DynamicConnectButton;
|
|
211
213
|
exports.IsBrowser = IsBrowser.IsBrowser;
|
|
212
214
|
exports.NoQrNotInstalledView = NoQrNotInstalledView.NoQrNotInstalledView;
|
package/src/index.d.ts
CHANGED
|
@@ -106,7 +106,7 @@ export { FilterAndSortWallets, FilterBridgeChainsName, FilterChain, FilterWallet
|
|
|
106
106
|
export {
|
|
107
107
|
/** @deprecated */
|
|
108
108
|
DynamicWidgetContextProvider, } from './lib/widgets/DynamicWidget/context';
|
|
109
|
-
export { useWalletItemActions, useAuthenticateConnectedUser, useSocialAccounts, useEmbeddedWallet, useEmbeddedWalletAuthenticator, usePasskeyRecovery, useEmbeddedReveal, useIsLoggedIn, useDynamicModals, useMfa, } from './lib/utils/hooks';
|
|
109
|
+
export { useWalletItemActions, useAuthenticateConnectedUser, useSocialAccounts, useEmbeddedWallet, useEmbeddedWalletAuthenticator, usePasskeyRecovery, useEmbeddedReveal, useIsLoggedIn, useDynamicModals, useMfa, useTokenBalances, } from './lib/utils/hooks';
|
|
110
110
|
export { useUserUpdateRequest, useWalletConnectorEvent, } from './lib/utils/hooks';
|
|
111
111
|
export { type VerifyOtp, useOtpVerificationRequest, } from './lib/utils/hooks/authenticationHooks/';
|
|
112
112
|
export type { UpdateUserFieldsArg } from './lib/utils/hooks/';
|
package/src/index.js
CHANGED
|
@@ -106,6 +106,7 @@ export { useEmbeddedReveal } from './lib/utils/hooks/useEmbeddedReveal/useEmbedd
|
|
|
106
106
|
export { useEmbeddedWalletAuthenticator } from './lib/utils/hooks/useEmbeddedWalletAuthenticator/useEmbeddedWalletAuthenticator.js';
|
|
107
107
|
export { useDynamicModals } from './lib/utils/hooks/useDynamicModals/useDynamicModals.js';
|
|
108
108
|
export { useMfa } from './lib/utils/hooks/useMfa/useMfa.js';
|
|
109
|
+
export { useTokenBalances } from './lib/utils/hooks/useTokenBalances/useTokenBalances.js';
|
|
109
110
|
export { DynamicConnectButton } from './lib/components/DynamicConnectButton/DynamicConnectButton.js';
|
|
110
111
|
import './lib/components/InlineWidget/InlineWidget.js';
|
|
111
112
|
export { IsBrowser } from './lib/components/IsBrowser/IsBrowser.js';
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
|
+
|
|
6
|
+
var _tslib = require('../../../../../_virtual/_tslib.cjs');
|
|
7
|
+
var sdkApiCore = require('@dynamic-labs/sdk-api-core');
|
|
8
|
+
var logger = require('../../../shared/logger.cjs');
|
|
9
|
+
require('@dynamic-labs/iconic');
|
|
10
|
+
require('@dynamic-labs/wallet-connector-core');
|
|
11
|
+
require('react/jsx-runtime');
|
|
12
|
+
require('../../../context/ViewContext/ViewContext.cjs');
|
|
13
|
+
require('react');
|
|
14
|
+
require('@dynamic-labs/wallet-book');
|
|
15
|
+
require('../../../utils/constants/colors.cjs');
|
|
16
|
+
require('../../../utils/constants/values.cjs');
|
|
17
|
+
require('../../../shared/utils/classes/storage/localStorage.cjs');
|
|
18
|
+
require('@dynamic-labs/utils');
|
|
19
|
+
require('../../../shared/consts/index.cjs');
|
|
20
|
+
var api = require('../api.cjs');
|
|
21
|
+
|
|
22
|
+
const getAccountTokenBalances = (_a) => _tslib.__awaiter(void 0, [_a], void 0, function* ({ userJwt, environmentId, chainName = sdkApiCore.ChainEnum.Evm, networkId, accountAddress, }) {
|
|
23
|
+
try {
|
|
24
|
+
const data = yield api.sdkApi(userJwt).getAccountBalances({
|
|
25
|
+
accountAddress,
|
|
26
|
+
chainName: chainName,
|
|
27
|
+
environmentId,
|
|
28
|
+
networkId,
|
|
29
|
+
});
|
|
30
|
+
return data;
|
|
31
|
+
}
|
|
32
|
+
catch (e) {
|
|
33
|
+
logger.logger.error(e);
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
exports.getAccountTokenBalances = getAccountTokenBalances;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ChainEnum, TokenBalance } from '@dynamic-labs/sdk-api-core';
|
|
2
|
+
export declare const getAccountTokenBalances: ({ userJwt, environmentId, chainName, networkId, accountAddress, }: {
|
|
3
|
+
userJwt: string;
|
|
4
|
+
environmentId: string;
|
|
5
|
+
chainName: ChainEnum;
|
|
6
|
+
networkId: number;
|
|
7
|
+
accountAddress: string;
|
|
8
|
+
}) => Promise<TokenBalance[] | undefined>;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
import { __awaiter } from '../../../../../_virtual/_tslib.js';
|
|
3
|
+
import { ChainEnum } from '@dynamic-labs/sdk-api-core';
|
|
4
|
+
import { logger } from '../../../shared/logger.js';
|
|
5
|
+
import '@dynamic-labs/iconic';
|
|
6
|
+
import '@dynamic-labs/wallet-connector-core';
|
|
7
|
+
import 'react/jsx-runtime';
|
|
8
|
+
import '../../../context/ViewContext/ViewContext.js';
|
|
9
|
+
import 'react';
|
|
10
|
+
import '@dynamic-labs/wallet-book';
|
|
11
|
+
import '../../../utils/constants/colors.js';
|
|
12
|
+
import '../../../utils/constants/values.js';
|
|
13
|
+
import '../../../shared/utils/classes/storage/localStorage.js';
|
|
14
|
+
import '@dynamic-labs/utils';
|
|
15
|
+
import '../../../shared/consts/index.js';
|
|
16
|
+
import { sdkApi } from '../api.js';
|
|
17
|
+
|
|
18
|
+
const getAccountTokenBalances = (_a) => __awaiter(void 0, [_a], void 0, function* ({ userJwt, environmentId, chainName = ChainEnum.Evm, networkId, accountAddress, }) {
|
|
19
|
+
try {
|
|
20
|
+
const data = yield sdkApi(userJwt).getAccountBalances({
|
|
21
|
+
accountAddress,
|
|
22
|
+
chainName: chainName,
|
|
23
|
+
environmentId,
|
|
24
|
+
networkId,
|
|
25
|
+
});
|
|
26
|
+
return data;
|
|
27
|
+
}
|
|
28
|
+
catch (e) {
|
|
29
|
+
logger.error(e);
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
export { getAccountTokenBalances };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './balances';
|
|
@@ -7,6 +7,7 @@ const MISSING_ADDRESS_ERROR = 'missing_address';
|
|
|
7
7
|
// HEADLESS ERRORS
|
|
8
8
|
const ACTIVE_SESSION = 'session_active';
|
|
9
9
|
const ERROR_SENDING_CODE = 'error_sending_code';
|
|
10
|
+
const ERROR_PROCESSING_REVEAL_REQUEST = 'error_processing_reveal_request';
|
|
10
11
|
const INVALID_REQUEST = 'invalid_request';
|
|
11
12
|
const INVALID_WALLET_DATA = 'invalid_wallet';
|
|
12
13
|
const SECURE_ENCLAVE_PROVIDER_NOT_ENABLED = 'secure_enclave_provider_not_enabled';
|
|
@@ -17,6 +18,7 @@ const SESSION_RESTORED = 'SESSION_RESTORED';
|
|
|
17
18
|
|
|
18
19
|
exports.ACTIVE_SESSION = ACTIVE_SESSION;
|
|
19
20
|
exports.CODE_SENT = CODE_SENT;
|
|
21
|
+
exports.ERROR_PROCESSING_REVEAL_REQUEST = ERROR_PROCESSING_REVEAL_REQUEST;
|
|
20
22
|
exports.ERROR_SENDING_CODE = ERROR_SENDING_CODE;
|
|
21
23
|
exports.INVALID_REQUEST = INVALID_REQUEST;
|
|
22
24
|
exports.INVALID_WALLET_DATA = INVALID_WALLET_DATA;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export declare const MISSING_ADDRESS_ERROR = "missing_address";
|
|
2
2
|
export declare const ACTIVE_SESSION = "session_active";
|
|
3
3
|
export declare const ERROR_SENDING_CODE = "error_sending_code";
|
|
4
|
+
export declare const ERROR_PROCESSING_REVEAL_REQUEST = "error_processing_reveal_request";
|
|
4
5
|
export declare const INVALID_REQUEST = "invalid_request";
|
|
5
6
|
export declare const INVALID_WALLET_DATA = "invalid_wallet";
|
|
6
7
|
export declare const SECURE_ENCLAVE_PROVIDER_NOT_ENABLED = "secure_enclave_provider_not_enabled";
|
|
@@ -3,6 +3,7 @@ const MISSING_ADDRESS_ERROR = 'missing_address';
|
|
|
3
3
|
// HEADLESS ERRORS
|
|
4
4
|
const ACTIVE_SESSION = 'session_active';
|
|
5
5
|
const ERROR_SENDING_CODE = 'error_sending_code';
|
|
6
|
+
const ERROR_PROCESSING_REVEAL_REQUEST = 'error_processing_reveal_request';
|
|
6
7
|
const INVALID_REQUEST = 'invalid_request';
|
|
7
8
|
const INVALID_WALLET_DATA = 'invalid_wallet';
|
|
8
9
|
const SECURE_ENCLAVE_PROVIDER_NOT_ENABLED = 'secure_enclave_provider_not_enabled';
|
|
@@ -11,4 +12,4 @@ const CODE_SENT = 'code_sent';
|
|
|
11
12
|
const SESSION_CREATED = 'session_created';
|
|
12
13
|
const SESSION_RESTORED = 'SESSION_RESTORED';
|
|
13
14
|
|
|
14
|
-
export { ACTIVE_SESSION, CODE_SENT, ERROR_SENDING_CODE, INVALID_REQUEST, INVALID_WALLET_DATA, MISSING_ADDRESS_ERROR, SECURE_ENCLAVE_PROVIDER_NOT_ENABLED, SESSION_CREATED, SESSION_RESTORED, USER_NOT_LOGGED_IN };
|
|
15
|
+
export { ACTIVE_SESSION, CODE_SENT, ERROR_PROCESSING_REVEAL_REQUEST, ERROR_SENDING_CODE, INVALID_REQUEST, INVALID_WALLET_DATA, MISSING_ADDRESS_ERROR, SECURE_ENCLAVE_PROVIDER_NOT_ENABLED, SESSION_CREATED, SESSION_RESTORED, USER_NOT_LOGGED_IN };
|
|
@@ -53,3 +53,4 @@ export { useNetworkNotSupported } from './useNetworkNotSupported';
|
|
|
53
53
|
export { useHandleVerifiedUser } from './useHandleVerifiedUser';
|
|
54
54
|
export { useMfa } from './useMfa';
|
|
55
55
|
export { useMergeUserAccounts } from './useMergeUserAccounts';
|
|
56
|
+
export { useTokenBalances } from './useTokenBalances';
|
|
@@ -35,6 +35,7 @@ require('../../../context/UserWalletsContext/UserWalletsContext.cjs');
|
|
|
35
35
|
require('../../../context/VerificationContext/VerificationContext.cjs');
|
|
36
36
|
require('react-dom');
|
|
37
37
|
var WalletContext = require('../../../context/WalletContext/WalletContext.cjs');
|
|
38
|
+
var useIsTurnkeyWallet = require('../useIsTurnkeyWallet/useIsTurnkeyWallet.cjs');
|
|
38
39
|
var useSecureEnclaveEmbeddedWallet = require('./useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.cjs');
|
|
39
40
|
var useMPCEmbeddedWallet = require('./useMPCEmbeddedWallet/useMPCEmbeddedWallet.cjs');
|
|
40
41
|
require('../../../context/ThemeContext/ThemeContext.cjs');
|
|
@@ -82,21 +83,33 @@ var useInternalDynamicContext = require('../../../context/DynamicContext/useDyna
|
|
|
82
83
|
/**
|
|
83
84
|
* @returns {
|
|
84
85
|
* createEmbeddedWallet, - creates Dynamic embedded wallet according to the settings
|
|
86
|
+
* createOrRestoreSession, - creates or restores session for the embedded wallet
|
|
87
|
+
* createPasskey, - creates passkey for the embedded wallet
|
|
85
88
|
* createPassword, - creates MPC embedded wallet password
|
|
89
|
+
* getPasskeys, - gets passkeys for the embedded wallet
|
|
86
90
|
* isLoadingEmbeddedWallet, - loading state of the embedded wallet
|
|
91
|
+
* isSessionActive, - checks if the session is active for the embedded wallet
|
|
92
|
+
* revealWalletKey, - reveals the private key or recovery phrase for the embedded wallet
|
|
93
|
+
* sendOneTimeCode, - sends one time code for the embedded wallet
|
|
87
94
|
* userHasEmbeddedWallet, - checks if the user has an embedded wallet
|
|
88
95
|
* }
|
|
89
96
|
*/
|
|
90
97
|
const useEmbeddedWallet = () => {
|
|
91
|
-
const { onboardingOnlyJwt } = useInternalDynamicContext.useInternalDynamicContext();
|
|
92
|
-
const {
|
|
93
|
-
const { createEmbeddedWallet:
|
|
98
|
+
const { onboardingOnlyJwt, user } = useInternalDynamicContext.useInternalDynamicContext();
|
|
99
|
+
const { isTurnkeyWallet } = useIsTurnkeyWallet.useIsTurnkeyWallet();
|
|
100
|
+
const { createEmbeddedWallet: createCoinbaseMPCWallet, canCreateMPCWallet, createPassword, revealEmbeddedWalletKey: reveaCoinbaseMPCEmbeddedWalletKey, } = useMPCEmbeddedWallet.useMPCEmbeddedWallet();
|
|
101
|
+
const { createEmbeddedWallet: createTurnkeyEmbeddedWallet, createOrRestoreSession, createPasskey, revealEmbeddedWalletKey: revealTurnkeyEmbeddedWalletKey, getPasskeys, isSessionActive, sendOneTimeCode, } = useSecureEnclaveEmbeddedWallet.useSecureEnclaveEmbeddedWallet();
|
|
94
102
|
const { isLoadingEmbeddedWallet } = WalletContext.useWalletContext();
|
|
103
|
+
/**
|
|
104
|
+
* Checks if user has some embedded wallet
|
|
105
|
+
* @returns boolean - true if the user has an embedded wallet
|
|
106
|
+
*/
|
|
95
107
|
const userHasEmbeddedWallet = () => hasEmbeddedWallet.hasEmbeddedWallet(getAuthToken.getAuthToken() || onboardingOnlyJwt);
|
|
96
108
|
/**
|
|
97
109
|
* Creates Dynamic embedded wallet according to the settings
|
|
98
110
|
* @param chains - array of chains to create the wallet for
|
|
99
111
|
* @param options - options for the wallet creation
|
|
112
|
+
* @returns Promise<Wallet | undefined> - created wallet object
|
|
100
113
|
*/
|
|
101
114
|
const createEmbeddedWallet = React.useCallback((chains, options) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
102
115
|
if (yield canCreateMPCWallet(chains)) {
|
|
@@ -106,6 +119,23 @@ const useEmbeddedWallet = () => {
|
|
|
106
119
|
const wallet = yield createTurnkeyEmbeddedWallet(chains, options);
|
|
107
120
|
return wallet;
|
|
108
121
|
}), [canCreateMPCWallet, createCoinbaseMPCWallet, createTurnkeyEmbeddedWallet]);
|
|
122
|
+
/**
|
|
123
|
+
* Reveals the private key or recovery phrase for the embedded wallet
|
|
124
|
+
* @param options - options for revealing the wallet key
|
|
125
|
+
* @returns Promise<boolean> - true if the key was revealed successfully
|
|
126
|
+
*/
|
|
127
|
+
const revealWalletKey = (options) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
128
|
+
if (!user) {
|
|
129
|
+
throw new Error('User is not logged in');
|
|
130
|
+
}
|
|
131
|
+
if (!userHasEmbeddedWallet()) {
|
|
132
|
+
throw new Error('Embedded wallet not found');
|
|
133
|
+
}
|
|
134
|
+
if (isTurnkeyWallet) {
|
|
135
|
+
return revealTurnkeyEmbeddedWalletKey(options);
|
|
136
|
+
}
|
|
137
|
+
return reveaCoinbaseMPCEmbeddedWalletKey();
|
|
138
|
+
});
|
|
109
139
|
return {
|
|
110
140
|
createEmbeddedWallet,
|
|
111
141
|
createOrRestoreSession,
|
|
@@ -114,6 +144,7 @@ const useEmbeddedWallet = () => {
|
|
|
114
144
|
getPasskeys,
|
|
115
145
|
isLoadingEmbeddedWallet,
|
|
116
146
|
isSessionActive,
|
|
147
|
+
revealWalletKey,
|
|
117
148
|
sendOneTimeCode,
|
|
118
149
|
userHasEmbeddedWallet,
|
|
119
150
|
};
|
|
@@ -1,28 +1,37 @@
|
|
|
1
1
|
import { ChainEnum } from '@dynamic-labs/sdk-api-core';
|
|
2
|
-
import { WebAuthnAttestation } from '@dynamic-labs/wallet-connector-core';
|
|
3
2
|
import { Wallet } from '../../../shared';
|
|
4
3
|
/**
|
|
5
4
|
* @returns {
|
|
6
5
|
* createEmbeddedWallet, - creates Dynamic embedded wallet according to the settings
|
|
6
|
+
* createOrRestoreSession, - creates or restores session for the embedded wallet
|
|
7
|
+
* createPasskey, - creates passkey for the embedded wallet
|
|
7
8
|
* createPassword, - creates MPC embedded wallet password
|
|
9
|
+
* getPasskeys, - gets passkeys for the embedded wallet
|
|
8
10
|
* isLoadingEmbeddedWallet, - loading state of the embedded wallet
|
|
11
|
+
* isSessionActive, - checks if the session is active for the embedded wallet
|
|
12
|
+
* revealWalletKey, - reveals the private key or recovery phrase for the embedded wallet
|
|
13
|
+
* sendOneTimeCode, - sends one time code for the embedded wallet
|
|
9
14
|
* userHasEmbeddedWallet, - checks if the user has an embedded wallet
|
|
10
15
|
* }
|
|
11
16
|
*/
|
|
12
17
|
export declare const useEmbeddedWallet: () => {
|
|
13
18
|
readonly createEmbeddedWallet: (chains?: ChainEnum[], options?: {
|
|
14
|
-
webAuthnAttestation: WebAuthnAttestation;
|
|
15
|
-
}) => Promise<Wallet | undefined>;
|
|
16
|
-
readonly createOrRestoreSession: (
|
|
17
|
-
oneTimeCode
|
|
18
|
-
}) => Promise<string>;
|
|
19
|
-
readonly createPasskey: (
|
|
20
|
-
oneTimeCode
|
|
21
|
-
}) => Promise<WebAuthnAttestation>;
|
|
19
|
+
webAuthnAttestation: import("dist/packages/wallet-connector-core/src").WebAuthnAttestation;
|
|
20
|
+
} | undefined) => Promise<Wallet | undefined>;
|
|
21
|
+
readonly createOrRestoreSession: (options: {
|
|
22
|
+
oneTimeCode: string;
|
|
23
|
+
} | undefined) => Promise<string>;
|
|
24
|
+
readonly createPasskey: (options: {
|
|
25
|
+
oneTimeCode: string;
|
|
26
|
+
} | undefined) => Promise<import("dist/packages/wallet-connector-core/src").WebAuthnAttestation>;
|
|
22
27
|
readonly createPassword: (showIntro?: boolean | undefined) => Promise<string>;
|
|
23
28
|
readonly getPasskeys: () => Promise<import("@dynamic-labs/sdk-api-core").UserPasskey[]>;
|
|
24
29
|
readonly isLoadingEmbeddedWallet: boolean;
|
|
25
30
|
readonly isSessionActive: boolean;
|
|
31
|
+
readonly revealWalletKey: (options?: {
|
|
32
|
+
type: "recoveryPhrase" | "privateKey";
|
|
33
|
+
htmlContainerId?: string | undefined;
|
|
34
|
+
} | undefined) => Promise<boolean>;
|
|
26
35
|
readonly sendOneTimeCode: () => Promise<string>;
|
|
27
36
|
readonly userHasEmbeddedWallet: () => boolean;
|
|
28
37
|
};
|
|
@@ -31,6 +31,7 @@ import '../../../context/UserWalletsContext/UserWalletsContext.js';
|
|
|
31
31
|
import '../../../context/VerificationContext/VerificationContext.js';
|
|
32
32
|
import 'react-dom';
|
|
33
33
|
import { useWalletContext } from '../../../context/WalletContext/WalletContext.js';
|
|
34
|
+
import { useIsTurnkeyWallet } from '../useIsTurnkeyWallet/useIsTurnkeyWallet.js';
|
|
34
35
|
import { useSecureEnclaveEmbeddedWallet } from './useSecureEnclaveEmbeddedWallet/useSecureEnclaveEmbeddedWallet.js';
|
|
35
36
|
import { useMPCEmbeddedWallet } from './useMPCEmbeddedWallet/useMPCEmbeddedWallet.js';
|
|
36
37
|
import '../../../context/ThemeContext/ThemeContext.js';
|
|
@@ -78,21 +79,33 @@ import { useInternalDynamicContext } from '../../../context/DynamicContext/useDy
|
|
|
78
79
|
/**
|
|
79
80
|
* @returns {
|
|
80
81
|
* createEmbeddedWallet, - creates Dynamic embedded wallet according to the settings
|
|
82
|
+
* createOrRestoreSession, - creates or restores session for the embedded wallet
|
|
83
|
+
* createPasskey, - creates passkey for the embedded wallet
|
|
81
84
|
* createPassword, - creates MPC embedded wallet password
|
|
85
|
+
* getPasskeys, - gets passkeys for the embedded wallet
|
|
82
86
|
* isLoadingEmbeddedWallet, - loading state of the embedded wallet
|
|
87
|
+
* isSessionActive, - checks if the session is active for the embedded wallet
|
|
88
|
+
* revealWalletKey, - reveals the private key or recovery phrase for the embedded wallet
|
|
89
|
+
* sendOneTimeCode, - sends one time code for the embedded wallet
|
|
83
90
|
* userHasEmbeddedWallet, - checks if the user has an embedded wallet
|
|
84
91
|
* }
|
|
85
92
|
*/
|
|
86
93
|
const useEmbeddedWallet = () => {
|
|
87
|
-
const { onboardingOnlyJwt } = useInternalDynamicContext();
|
|
88
|
-
const {
|
|
89
|
-
const { createEmbeddedWallet:
|
|
94
|
+
const { onboardingOnlyJwt, user } = useInternalDynamicContext();
|
|
95
|
+
const { isTurnkeyWallet } = useIsTurnkeyWallet();
|
|
96
|
+
const { createEmbeddedWallet: createCoinbaseMPCWallet, canCreateMPCWallet, createPassword, revealEmbeddedWalletKey: reveaCoinbaseMPCEmbeddedWalletKey, } = useMPCEmbeddedWallet();
|
|
97
|
+
const { createEmbeddedWallet: createTurnkeyEmbeddedWallet, createOrRestoreSession, createPasskey, revealEmbeddedWalletKey: revealTurnkeyEmbeddedWalletKey, getPasskeys, isSessionActive, sendOneTimeCode, } = useSecureEnclaveEmbeddedWallet();
|
|
90
98
|
const { isLoadingEmbeddedWallet } = useWalletContext();
|
|
99
|
+
/**
|
|
100
|
+
* Checks if user has some embedded wallet
|
|
101
|
+
* @returns boolean - true if the user has an embedded wallet
|
|
102
|
+
*/
|
|
91
103
|
const userHasEmbeddedWallet = () => hasEmbeddedWallet(getAuthToken() || onboardingOnlyJwt);
|
|
92
104
|
/**
|
|
93
105
|
* Creates Dynamic embedded wallet according to the settings
|
|
94
106
|
* @param chains - array of chains to create the wallet for
|
|
95
107
|
* @param options - options for the wallet creation
|
|
108
|
+
* @returns Promise<Wallet | undefined> - created wallet object
|
|
96
109
|
*/
|
|
97
110
|
const createEmbeddedWallet = useCallback((chains, options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
98
111
|
if (yield canCreateMPCWallet(chains)) {
|
|
@@ -102,6 +115,23 @@ const useEmbeddedWallet = () => {
|
|
|
102
115
|
const wallet = yield createTurnkeyEmbeddedWallet(chains, options);
|
|
103
116
|
return wallet;
|
|
104
117
|
}), [canCreateMPCWallet, createCoinbaseMPCWallet, createTurnkeyEmbeddedWallet]);
|
|
118
|
+
/**
|
|
119
|
+
* Reveals the private key or recovery phrase for the embedded wallet
|
|
120
|
+
* @param options - options for revealing the wallet key
|
|
121
|
+
* @returns Promise<boolean> - true if the key was revealed successfully
|
|
122
|
+
*/
|
|
123
|
+
const revealWalletKey = (options) => __awaiter(void 0, void 0, void 0, function* () {
|
|
124
|
+
if (!user) {
|
|
125
|
+
throw new Error('User is not logged in');
|
|
126
|
+
}
|
|
127
|
+
if (!userHasEmbeddedWallet()) {
|
|
128
|
+
throw new Error('Embedded wallet not found');
|
|
129
|
+
}
|
|
130
|
+
if (isTurnkeyWallet) {
|
|
131
|
+
return revealTurnkeyEmbeddedWalletKey(options);
|
|
132
|
+
}
|
|
133
|
+
return reveaCoinbaseMPCEmbeddedWalletKey();
|
|
134
|
+
});
|
|
105
135
|
return {
|
|
106
136
|
createEmbeddedWallet,
|
|
107
137
|
createOrRestoreSession,
|
|
@@ -110,6 +140,7 @@ const useEmbeddedWallet = () => {
|
|
|
110
140
|
getPasskeys,
|
|
111
141
|
isLoadingEmbeddedWallet,
|
|
112
142
|
isSessionActive,
|
|
143
|
+
revealWalletKey,
|
|
113
144
|
sendOneTimeCode,
|
|
114
145
|
userHasEmbeddedWallet,
|
|
115
146
|
};
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
6
6
|
var _tslib = require('../../../../../../_virtual/_tslib.cjs');
|
|
7
7
|
var React = require('react');
|
|
8
8
|
var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
|
|
9
|
+
var utils = require('@dynamic-labs/utils');
|
|
9
10
|
require('../../../../context/DynamicContext/DynamicContext.cjs');
|
|
10
11
|
require('@dynamic-labs/sdk-api-core');
|
|
11
12
|
require('../../../../shared/logger.cjs');
|
|
@@ -16,7 +17,6 @@ require('@dynamic-labs/wallet-book');
|
|
|
16
17
|
require('../../../constants/colors.cjs');
|
|
17
18
|
require('../../../constants/values.cjs');
|
|
18
19
|
require('../../../../shared/utils/classes/storage/localStorage.cjs');
|
|
19
|
-
require('@dynamic-labs/utils');
|
|
20
20
|
require('../../../../shared/consts/index.cjs');
|
|
21
21
|
require('../../../../events/dynamicEvents.cjs');
|
|
22
22
|
require('../../../../context/CaptchaContext/CaptchaContext.cjs');
|
|
@@ -153,11 +153,15 @@ const useMPCEmbeddedWallet = () => {
|
|
|
153
153
|
projectSettings,
|
|
154
154
|
setIsLoadingEmbeddedWallet,
|
|
155
155
|
]);
|
|
156
|
+
const revealEmbeddedWalletKey = () => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
157
|
+
throw new utils.DynamicError('Coinbase MPC wallet does not support headless reveal yet');
|
|
158
|
+
});
|
|
156
159
|
return {
|
|
157
160
|
canCreateMPCWallet,
|
|
158
161
|
createEmbeddedWallet,
|
|
159
162
|
createPassword,
|
|
160
163
|
isLoadingEmbeddedWallet,
|
|
164
|
+
revealEmbeddedWalletKey,
|
|
161
165
|
userHasEmbeddedWallet,
|
|
162
166
|
};
|
|
163
167
|
};
|
package/src/lib/utils/hooks/useEmbeddedWallet/useMPCEmbeddedWallet/useMPCEmbeddedWallet.d.ts
CHANGED
|
@@ -13,5 +13,6 @@ export declare const useMPCEmbeddedWallet: () => {
|
|
|
13
13
|
readonly createEmbeddedWallet: (chains?: ChainEnum[]) => Promise<Wallet | undefined>;
|
|
14
14
|
readonly createPassword: (showIntro?: boolean) => Promise<string>;
|
|
15
15
|
readonly isLoadingEmbeddedWallet: boolean;
|
|
16
|
+
readonly revealEmbeddedWalletKey: () => Promise<never>;
|
|
16
17
|
readonly userHasEmbeddedWallet: () => boolean;
|
|
17
18
|
};
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { __awaiter } from '../../../../../../_virtual/_tslib.js';
|
|
3
3
|
import { useCallback } from 'react';
|
|
4
4
|
import { isCoinbaseMpcWalletConnector } from '@dynamic-labs/wallet-connector-core';
|
|
5
|
+
import { DynamicError } from '@dynamic-labs/utils';
|
|
5
6
|
import '../../../../context/DynamicContext/DynamicContext.js';
|
|
6
7
|
import '@dynamic-labs/sdk-api-core';
|
|
7
8
|
import '../../../../shared/logger.js';
|
|
@@ -12,7 +13,6 @@ import '@dynamic-labs/wallet-book';
|
|
|
12
13
|
import '../../../constants/colors.js';
|
|
13
14
|
import '../../../constants/values.js';
|
|
14
15
|
import '../../../../shared/utils/classes/storage/localStorage.js';
|
|
15
|
-
import '@dynamic-labs/utils';
|
|
16
16
|
import '../../../../shared/consts/index.js';
|
|
17
17
|
import '../../../../events/dynamicEvents.js';
|
|
18
18
|
import '../../../../context/CaptchaContext/CaptchaContext.js';
|
|
@@ -149,11 +149,15 @@ const useMPCEmbeddedWallet = () => {
|
|
|
149
149
|
projectSettings,
|
|
150
150
|
setIsLoadingEmbeddedWallet,
|
|
151
151
|
]);
|
|
152
|
+
const revealEmbeddedWalletKey = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
153
|
+
throw new DynamicError('Coinbase MPC wallet does not support headless reveal yet');
|
|
154
|
+
});
|
|
152
155
|
return {
|
|
153
156
|
canCreateMPCWallet,
|
|
154
157
|
createEmbeddedWallet,
|
|
155
158
|
createPassword,
|
|
156
159
|
isLoadingEmbeddedWallet,
|
|
160
|
+
revealEmbeddedWalletKey,
|
|
157
161
|
userHasEmbeddedWallet,
|
|
158
162
|
};
|
|
159
163
|
};
|
|
@@ -5,6 +5,10 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
|
|
6
6
|
const iframeContainerId = 'dyn-secure-enclave-container-id';
|
|
7
7
|
const iframeElementId = 'dyn-secure-enclave-element-id';
|
|
8
|
+
const revealIframeContainerId = 'dyn-secure-enclave-export-container-id';
|
|
9
|
+
const revealIframeElementId = 'dyn-secure-enclave-export-element-id';
|
|
8
10
|
|
|
9
11
|
exports.iframeContainerId = iframeContainerId;
|
|
10
12
|
exports.iframeElementId = iframeElementId;
|
|
13
|
+
exports.revealIframeContainerId = revealIframeContainerId;
|
|
14
|
+
exports.revealIframeElementId = revealIframeElementId;
|
|
@@ -1,2 +1,4 @@
|
|
|
1
1
|
export declare const iframeContainerId = "dyn-secure-enclave-container-id";
|
|
2
2
|
export declare const iframeElementId = "dyn-secure-enclave-element-id";
|
|
3
|
+
export declare const revealIframeContainerId = "dyn-secure-enclave-export-container-id";
|
|
4
|
+
export declare const revealIframeElementId = "dyn-secure-enclave-export-element-id";
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
'use client'
|
|
2
2
|
const iframeContainerId = 'dyn-secure-enclave-container-id';
|
|
3
3
|
const iframeElementId = 'dyn-secure-enclave-element-id';
|
|
4
|
+
const revealIframeContainerId = 'dyn-secure-enclave-export-container-id';
|
|
5
|
+
const revealIframeElementId = 'dyn-secure-enclave-export-element-id';
|
|
4
6
|
|
|
5
|
-
export { iframeContainerId, iframeElementId };
|
|
7
|
+
export { iframeContainerId, iframeElementId, revealIframeContainerId, revealIframeElementId };
|