@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 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
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var version = "0.17.0-RC.15";
5
+ var version = "0.17.0-RC.16";
6
6
  var dependencies = {
7
7
  "react-focus-lock": "^2.9.2",
8
8
  "@dynamic-labs/iconic": "^0.1.19",
package/package.js CHANGED
@@ -1,4 +1,4 @@
1
- var version = "0.17.0-RC.15";
1
+ var version = "0.17.0-RC.16";
2
2
  var dependencies = {
3
3
  "react-focus-lock": "^2.9.2",
4
4
  "@dynamic-labs/iconic": "^0.1.19",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/sdk-react-core",
3
- "version": "0.17.0-RC.15",
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.15",
21
- "@dynamic-labs/multi-wallet": "0.17.0-RC.15",
22
- "@dynamic-labs/rpc-providers": "0.17.0-RC.15",
23
- "@dynamic-labs/types": "0.17.0-RC.15",
24
- "@dynamic-labs/utils": "0.17.0-RC.15",
25
- "@dynamic-labs/wallet-connector-core": "0.17.0-RC.15"
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
  });
@@ -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,
@@ -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>;
@@ -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,