@dynamic-labs/sdk-react-core 0.17.0-RC.15 → 0.17.0-RC.16
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 +12 -0
- package/package.cjs +1 -1
- package/package.js +1 -1
- package/package.json +7 -7
- package/src/lib/context/SocialRedirectContext/SocialRedirectContext.cjs +5 -1
- package/src/lib/context/SocialRedirectContext/SocialRedirectContext.js +5 -1
- package/src/lib/data/api.cjs +2 -1
- package/src/lib/data/api.d.ts +1 -1
- package/src/lib/data/api.js +2 -1
- package/src/lib/shared/types/index.d.ts +3 -1
- package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.cjs +5 -4
- package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.d.ts +1 -1
- package/src/lib/utils/hooks/useVerifyWallet/useVerifyWallet.js +5 -4
- package/src/lib/widgets/DynamicWidget/context/DynamicWidgetContext.cjs +2 -2
- package/src/lib/widgets/DynamicWidget/context/DynamicWidgetContext.js +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,16 @@
|
|
|
1
1
|
|
|
2
|
+
## [0.17.0-RC.16](https://github.com/dynamic-labs/DynamicAuth/compare/v0.17.0-RC.15...v0.17.0-RC.16) (2023-05-15)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
* add social oauth result to verify request ([#2081](https://github.com/dynamic-labs/DynamicAuth/issues/2081)) ([4da650a](https://github.com/dynamic-labs/DynamicAuth/commit/4da650affe9c96e0ab9e446f58c91b9b13db3651))
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
### Bug Fixes
|
|
11
|
+
|
|
12
|
+
* **DYN-2327:** user profile is not loaded properly on the first load ([#2113](https://github.com/dynamic-labs/DynamicAuth/issues/2113)) ([c05834e](https://github.com/dynamic-labs/DynamicAuth/commit/c05834ed89ecc12d586baa97bcaf2bd3c1919f59))
|
|
13
|
+
|
|
2
14
|
## [0.17.0-RC.15](https://github.com/dynamic-labs/DynamicAuth/compare/v0.17.0-RC.14...v0.17.0-RC.15) (2023-05-15)
|
|
3
15
|
|
|
4
16
|
|
package/package.cjs
CHANGED
package/package.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs/sdk-react-core",
|
|
3
|
-
"version": "0.17.0-RC.
|
|
3
|
+
"version": "0.17.0-RC.16",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/dynamic-labs/DynamicAuth.git",
|
|
@@ -17,12 +17,12 @@
|
|
|
17
17
|
"formik": "^2.2.9",
|
|
18
18
|
"qrcode": "1.5.1",
|
|
19
19
|
"ethers": "^5.7.2",
|
|
20
|
-
"@dynamic-labs/logger": "0.17.0-RC.
|
|
21
|
-
"@dynamic-labs/multi-wallet": "0.17.0-RC.
|
|
22
|
-
"@dynamic-labs/rpc-providers": "0.17.0-RC.
|
|
23
|
-
"@dynamic-labs/types": "0.17.0-RC.
|
|
24
|
-
"@dynamic-labs/utils": "0.17.0-RC.
|
|
25
|
-
"@dynamic-labs/wallet-connector-core": "0.17.0-RC.
|
|
20
|
+
"@dynamic-labs/logger": "0.17.0-RC.16",
|
|
21
|
+
"@dynamic-labs/multi-wallet": "0.17.0-RC.16",
|
|
22
|
+
"@dynamic-labs/rpc-providers": "0.17.0-RC.16",
|
|
23
|
+
"@dynamic-labs/types": "0.17.0-RC.16",
|
|
24
|
+
"@dynamic-labs/utils": "0.17.0-RC.16",
|
|
25
|
+
"@dynamic-labs/wallet-connector-core": "0.17.0-RC.16"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"semver": "^7.3.8"
|
|
@@ -73,13 +73,17 @@ const SocialRedirectContextProvider = ({ children, }) => {
|
|
|
73
73
|
setShowAuthFlow(true);
|
|
74
74
|
setSelectedWalletConnector(socialWalletConnector);
|
|
75
75
|
(_a = socialWalletConnector
|
|
76
|
-
.getSession) === null || _a === void 0 ? void 0 : _a.call(socialWalletConnector).then(() => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
76
|
+
.getSession) === null || _a === void 0 ? void 0 : _a.call(socialWalletConnector).then((session) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
77
77
|
const address = yield socialWalletConnector.fetchPublicAddress();
|
|
78
78
|
if (!address) {
|
|
79
79
|
return;
|
|
80
80
|
}
|
|
81
81
|
walletUiUtils.enableInternalSign();
|
|
82
82
|
yield verifyWallet({
|
|
83
|
+
oauth: {
|
|
84
|
+
accessToken: session.accessToken,
|
|
85
|
+
provider: providerFromParams,
|
|
86
|
+
},
|
|
83
87
|
publicWalletAddress: address,
|
|
84
88
|
walletConnector: socialWalletConnector,
|
|
85
89
|
});
|
|
@@ -69,13 +69,17 @@ const SocialRedirectContextProvider = ({ children, }) => {
|
|
|
69
69
|
setShowAuthFlow(true);
|
|
70
70
|
setSelectedWalletConnector(socialWalletConnector);
|
|
71
71
|
(_a = socialWalletConnector
|
|
72
|
-
.getSession) === null || _a === void 0 ? void 0 : _a.call(socialWalletConnector).then(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
72
|
+
.getSession) === null || _a === void 0 ? void 0 : _a.call(socialWalletConnector).then((session) => __awaiter(void 0, void 0, void 0, function* () {
|
|
73
73
|
const address = yield socialWalletConnector.fetchPublicAddress();
|
|
74
74
|
if (!address) {
|
|
75
75
|
return;
|
|
76
76
|
}
|
|
77
77
|
walletUiUtils.enableInternalSign();
|
|
78
78
|
yield verifyWallet({
|
|
79
|
+
oauth: {
|
|
80
|
+
accessToken: session.accessToken,
|
|
81
|
+
provider: providerFromParams,
|
|
82
|
+
},
|
|
79
83
|
publicWalletAddress: address,
|
|
80
84
|
walletConnector: socialWalletConnector,
|
|
81
85
|
});
|
package/src/lib/data/api.cjs
CHANGED
|
@@ -227,12 +227,13 @@ const createVisit = ({ authMode, chain, environmentId, walletProvider, publicWal
|
|
|
227
227
|
logger.logger.error(error);
|
|
228
228
|
}
|
|
229
229
|
});
|
|
230
|
-
const verifyWallet = (environmentId, { messageToSign, signedMessage, publicWalletAddress, chain, walletName, walletProvider, captchaToken, network, }) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
230
|
+
const verifyWallet = (environmentId, { messageToSign, signedMessage, publicWalletAddress, chain, walletName, walletProvider, captchaToken, network, oauth, }) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
231
231
|
const verifyRequest = sdkApi$1.VerifyRequestFromJSON({
|
|
232
232
|
captchaToken,
|
|
233
233
|
chain,
|
|
234
234
|
messageToSign,
|
|
235
235
|
network,
|
|
236
|
+
oauth,
|
|
236
237
|
publicWalletAddress,
|
|
237
238
|
signedMessage,
|
|
238
239
|
walletName,
|
package/src/lib/data/api.d.ts
CHANGED
|
@@ -42,7 +42,7 @@ export declare const createVisit: ({ authMode, chain, environmentId, walletProvi
|
|
|
42
42
|
walletName: string;
|
|
43
43
|
walletProvider: string;
|
|
44
44
|
}) => Promise<void | undefined>;
|
|
45
|
-
export declare const verifyWallet: (environmentId: string, { messageToSign, signedMessage, publicWalletAddress, chain, walletName, walletProvider, captchaToken, network, }: VerifyWallet) => Promise<string | undefined>;
|
|
45
|
+
export declare const verifyWallet: (environmentId: string, { messageToSign, signedMessage, publicWalletAddress, chain, walletName, walletProvider, captchaToken, network, oauth, }: VerifyWallet) => Promise<string | undefined>;
|
|
46
46
|
export declare const fetchNetworkSettings: (environmentId: string) => Promise<NetworkConfigurationResponse[] | undefined>;
|
|
47
47
|
export declare const fetchProjectSettings: (environmentId: string) => Promise<ProjectSettings | undefined>;
|
|
48
48
|
export declare const updateUserProfileFields: (jwt: string | undefined, environmentId: string, fields: UserFields) => Promise<UpdateSelfResponse>;
|
package/src/lib/data/api.js
CHANGED
|
@@ -223,12 +223,13 @@ const createVisit = ({ authMode, chain, environmentId, walletProvider, publicWal
|
|
|
223
223
|
logger.error(error);
|
|
224
224
|
}
|
|
225
225
|
});
|
|
226
|
-
const verifyWallet = (environmentId, { messageToSign, signedMessage, publicWalletAddress, chain, walletName, walletProvider, captchaToken, network, }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
226
|
+
const verifyWallet = (environmentId, { messageToSign, signedMessage, publicWalletAddress, chain, walletName, walletProvider, captchaToken, network, oauth, }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
227
227
|
const verifyRequest = VerifyRequestFromJSON({
|
|
228
228
|
captchaToken,
|
|
229
229
|
chain,
|
|
230
230
|
messageToSign,
|
|
231
231
|
network,
|
|
232
|
+
oauth,
|
|
232
233
|
publicWalletAddress,
|
|
233
234
|
signedMessage,
|
|
234
235
|
walletName,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { EvmRpcProvider, SolanaRpcProvider } from '@dynamic-labs/rpc-providers';
|
|
3
3
|
import type { FetchPublicAddressOpts, WalletConnector } from '@dynamic-labs/wallet-connector-core';
|
|
4
|
-
import { WalletProviderEnum, ProjectSettings, UserFields, NameServiceData, JwtVerifiedCredential } from '@dynamic-labs/sdk-api';
|
|
4
|
+
import { WalletProviderEnum, ProjectSettings, UserFields, NameServiceData, JwtVerifiedCredential, OauthProviderRequest } from '@dynamic-labs/sdk-api';
|
|
5
5
|
import { NetworkConfigurationMap } from '@dynamic-labs/types';
|
|
6
6
|
export type BrowserName = 'brave' | 'chrome' | 'edge' | 'firefox' | 'safari';
|
|
7
7
|
export type Wallet = {
|
|
@@ -60,6 +60,7 @@ export interface VerifyProps {
|
|
|
60
60
|
export interface VerifyCallbackArgs {
|
|
61
61
|
captchaToken?: string;
|
|
62
62
|
fetchPublicAddressOpts?: FetchPublicAddressOpts;
|
|
63
|
+
oauth?: OauthProviderRequest;
|
|
63
64
|
publicWalletAddress: string;
|
|
64
65
|
walletConnector: WalletConnector;
|
|
65
66
|
}
|
|
@@ -75,6 +76,7 @@ export interface VerifyWallet {
|
|
|
75
76
|
chain: string;
|
|
76
77
|
messageToSign: string;
|
|
77
78
|
network: string | number | undefined;
|
|
79
|
+
oauth?: OauthProviderRequest;
|
|
78
80
|
publicWalletAddress: string;
|
|
79
81
|
signedMessage: string;
|
|
80
82
|
skipEmptyAccountCheck?: boolean;
|
|
@@ -40,7 +40,7 @@ const useVerifyWallet = ({ consumeNonce, displayTermsOfService, environmentId, p
|
|
|
40
40
|
// We need this boolean for the part of the logic where we already persisted a new authToken,
|
|
41
41
|
// and need to distinguish between logic for verify or linking.
|
|
42
42
|
const verifyOnly = !authToken;
|
|
43
|
-
const generateJWT = (walletConnector, walletProvider, fetchPublicAddressOpts, publicWalletAddress, captchaToken) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
43
|
+
const generateJWT = (walletConnector, walletProvider, fetchPublicAddressOpts, publicWalletAddress, captchaToken, oauth) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
44
44
|
let Jwt;
|
|
45
45
|
const nonce = consumeNonce();
|
|
46
46
|
if (nonce === undefined)
|
|
@@ -56,7 +56,8 @@ const useVerifyWallet = ({ consumeNonce, displayTermsOfService, environmentId, p
|
|
|
56
56
|
walletProvider,
|
|
57
57
|
});
|
|
58
58
|
if (authToken === undefined || !multiWalletEnabled) {
|
|
59
|
-
Jwt = yield api.verifyWallet(environmentId, Object.assign(Object.assign({}, verifyArgs), { captchaToken
|
|
59
|
+
Jwt = yield api.verifyWallet(environmentId, Object.assign(Object.assign({}, verifyArgs), { captchaToken,
|
|
60
|
+
oauth }));
|
|
60
61
|
}
|
|
61
62
|
else {
|
|
62
63
|
Jwt = yield api.linkWallet(environmentId, verifyArgs, authToken);
|
|
@@ -119,7 +120,7 @@ const useVerifyWallet = ({ consumeNonce, displayTermsOfService, environmentId, p
|
|
|
119
120
|
setErrorMessage(e.code);
|
|
120
121
|
}
|
|
121
122
|
};
|
|
122
|
-
return ({ walletConnector, fetchPublicAddressOpts, publicWalletAddress, captchaToken, }) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
123
|
+
return ({ walletConnector, fetchPublicAddressOpts, publicWalletAddress, captchaToken, oauth, }) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
123
124
|
const walletProvider = getWalletProvider.getWalletProvider(walletConnector);
|
|
124
125
|
const network = yield walletConnector.getNetwork();
|
|
125
126
|
const _isSupportedNetwork = isSupportedNetwork.isSupportedNetwork({
|
|
@@ -127,7 +128,7 @@ const useVerifyWallet = ({ consumeNonce, displayTermsOfService, environmentId, p
|
|
|
127
128
|
walletConnector,
|
|
128
129
|
});
|
|
129
130
|
try {
|
|
130
|
-
const Jwt = yield generateJWT(walletConnector, walletProvider, fetchPublicAddressOpts, publicWalletAddress, captchaToken);
|
|
131
|
+
const Jwt = yield generateJWT(walletConnector, walletProvider, fetchPublicAddressOpts, publicWalletAddress, captchaToken, oauth);
|
|
131
132
|
const decodedJwt = decodeJwt.decodeJwt(Jwt);
|
|
132
133
|
if (decodedJwt === undefined)
|
|
133
134
|
throw new utils.DynamicError('Invalid token!');
|
|
@@ -5,5 +5,5 @@ type UseVerifyWalletArgs = VerifyProps & ProjectSettingsProps & {
|
|
|
5
5
|
displayTermsOfService: boolean;
|
|
6
6
|
setIsSingleWalletAccount: Dispatch<SetStateAction<boolean>>;
|
|
7
7
|
};
|
|
8
|
-
export declare const useVerifyWallet: ({ consumeNonce, displayTermsOfService, environmentId, projectSettings, setIsSingleWalletAccount, }: UseVerifyWalletArgs) => ({ walletConnector, fetchPublicAddressOpts, publicWalletAddress, captchaToken, }: VerifyCallbackArgs) => Promise<void>;
|
|
8
|
+
export declare const useVerifyWallet: ({ consumeNonce, displayTermsOfService, environmentId, projectSettings, setIsSingleWalletAccount, }: UseVerifyWalletArgs) => ({ walletConnector, fetchPublicAddressOpts, publicWalletAddress, captchaToken, oauth, }: VerifyCallbackArgs) => Promise<void>;
|
|
9
9
|
export {};
|
|
@@ -36,7 +36,7 @@ const useVerifyWallet = ({ consumeNonce, displayTermsOfService, environmentId, p
|
|
|
36
36
|
// We need this boolean for the part of the logic where we already persisted a new authToken,
|
|
37
37
|
// and need to distinguish between logic for verify or linking.
|
|
38
38
|
const verifyOnly = !authToken;
|
|
39
|
-
const generateJWT = (walletConnector, walletProvider, fetchPublicAddressOpts, publicWalletAddress, captchaToken) => __awaiter(void 0, void 0, void 0, function* () {
|
|
39
|
+
const generateJWT = (walletConnector, walletProvider, fetchPublicAddressOpts, publicWalletAddress, captchaToken, oauth) => __awaiter(void 0, void 0, void 0, function* () {
|
|
40
40
|
let Jwt;
|
|
41
41
|
const nonce = consumeNonce();
|
|
42
42
|
if (nonce === undefined)
|
|
@@ -52,7 +52,8 @@ const useVerifyWallet = ({ consumeNonce, displayTermsOfService, environmentId, p
|
|
|
52
52
|
walletProvider,
|
|
53
53
|
});
|
|
54
54
|
if (authToken === undefined || !multiWalletEnabled) {
|
|
55
|
-
Jwt = yield verifyWallet(environmentId, Object.assign(Object.assign({}, verifyArgs), { captchaToken
|
|
55
|
+
Jwt = yield verifyWallet(environmentId, Object.assign(Object.assign({}, verifyArgs), { captchaToken,
|
|
56
|
+
oauth }));
|
|
56
57
|
}
|
|
57
58
|
else {
|
|
58
59
|
Jwt = yield linkWallet(environmentId, verifyArgs, authToken);
|
|
@@ -115,7 +116,7 @@ const useVerifyWallet = ({ consumeNonce, displayTermsOfService, environmentId, p
|
|
|
115
116
|
setErrorMessage(e.code);
|
|
116
117
|
}
|
|
117
118
|
};
|
|
118
|
-
return ({ walletConnector, fetchPublicAddressOpts, publicWalletAddress, captchaToken, }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
119
|
+
return ({ walletConnector, fetchPublicAddressOpts, publicWalletAddress, captchaToken, oauth, }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
119
120
|
const walletProvider = getWalletProvider(walletConnector);
|
|
120
121
|
const network = yield walletConnector.getNetwork();
|
|
121
122
|
const _isSupportedNetwork = isSupportedNetwork({
|
|
@@ -123,7 +124,7 @@ const useVerifyWallet = ({ consumeNonce, displayTermsOfService, environmentId, p
|
|
|
123
124
|
walletConnector,
|
|
124
125
|
});
|
|
125
126
|
try {
|
|
126
|
-
const Jwt = yield generateJWT(walletConnector, walletProvider, fetchPublicAddressOpts, publicWalletAddress, captchaToken);
|
|
127
|
+
const Jwt = yield generateJWT(walletConnector, walletProvider, fetchPublicAddressOpts, publicWalletAddress, captchaToken, oauth);
|
|
127
128
|
const decodedJwt = decodeJwt(Jwt);
|
|
128
129
|
if (decodedJwt === undefined)
|
|
129
130
|
throw new DynamicError('Invalid token!');
|
|
@@ -58,12 +58,12 @@ const DynamicWidgetContextProvider = ({ children, }) => {
|
|
|
58
58
|
setDynamicWidgetView(initialView);
|
|
59
59
|
}, 200);
|
|
60
60
|
}
|
|
61
|
-
}, [showDynamicUserProfile]);
|
|
61
|
+
}, [initialView, showDynamicUserProfile]);
|
|
62
62
|
// set correct initial view once isKYCEnabled and isMultiWalletEnabled values are correctly set
|
|
63
63
|
// *isKYCEnabled is always false when the context initializes, so the initial view is set to index
|
|
64
64
|
React.useEffect(() => {
|
|
65
65
|
setDynamicWidgetView(initialView);
|
|
66
|
-
}, [isKYCEnabled, isMultiWalletEnabled]);
|
|
66
|
+
}, [initialView, isKYCEnabled, isMultiWalletEnabled]);
|
|
67
67
|
const value = React.useMemo(() => ({
|
|
68
68
|
availableWalletsContainerRef,
|
|
69
69
|
dynamicWidgetView,
|
|
@@ -54,12 +54,12 @@ const DynamicWidgetContextProvider = ({ children, }) => {
|
|
|
54
54
|
setDynamicWidgetView(initialView);
|
|
55
55
|
}, 200);
|
|
56
56
|
}
|
|
57
|
-
}, [showDynamicUserProfile]);
|
|
57
|
+
}, [initialView, showDynamicUserProfile]);
|
|
58
58
|
// set correct initial view once isKYCEnabled and isMultiWalletEnabled values are correctly set
|
|
59
59
|
// *isKYCEnabled is always false when the context initializes, so the initial view is set to index
|
|
60
60
|
useEffect(() => {
|
|
61
61
|
setDynamicWidgetView(initialView);
|
|
62
|
-
}, [isKYCEnabled, isMultiWalletEnabled]);
|
|
62
|
+
}, [initialView, isKYCEnabled, isMultiWalletEnabled]);
|
|
63
63
|
const value = useMemo(() => ({
|
|
64
64
|
availableWalletsContainerRef,
|
|
65
65
|
dynamicWidgetView,
|