@dynamic-labs/sdk-react-core 0.17.0-RC.14 → 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,23 @@
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
+
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)
15
+
16
+
17
+ ### Bug Fixes
18
+
19
+ * pass network to link request ([#2114](https://github.com/dynamic-labs/DynamicAuth/issues/2114)) ([0f7d20d](https://github.com/dynamic-labs/DynamicAuth/commit/0f7d20d948b737b98d4a8db8aaa7648033e25922))
20
+
2
21
  ## [0.17.0-RC.14](https://github.com/dynamic-labs/DynamicAuth/compare/v0.17.0-RC.13...v0.17.0-RC.14) (2023-05-12)
3
22
 
4
23
 
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.14";
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.14";
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.14",
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.14",
21
- "@dynamic-labs/multi-wallet": "0.17.0-RC.14",
22
- "@dynamic-labs/rpc-providers": "0.17.0-RC.14",
23
- "@dynamic-labs/types": "0.17.0-RC.14",
24
- "@dynamic-labs/utils": "0.17.0-RC.14",
25
- "@dynamic-labs/wallet-connector-core": "0.17.0-RC.14"
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
  });
@@ -123,10 +123,11 @@ const revokeSession = ({ environmentId, sessionId, }, userJwt) => _tslib.__await
123
123
  logger.logger.error(Error(body.error.message));
124
124
  }
125
125
  });
126
- const linkWallet = (environmentId, { messageToSign, signedMessage, publicWalletAddress, chain, walletName, walletProvider, }, userJwt) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
126
+ const linkWallet = (environmentId, { messageToSign, network, signedMessage, publicWalletAddress, chain, walletName, walletProvider, }, userJwt) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
127
127
  const verifyRequest = sdkApi$1.VerifyRequestFromJSON({
128
128
  chain,
129
129
  messageToSign,
130
+ network,
130
131
  publicWalletAddress,
131
132
  signedMessage,
132
133
  walletName,
@@ -226,12 +227,13 @@ const createVisit = ({ authMode, chain, environmentId, walletProvider, publicWal
226
227
  logger.logger.error(error);
227
228
  }
228
229
  });
229
- 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* () {
230
231
  const verifyRequest = sdkApi$1.VerifyRequestFromJSON({
231
232
  captchaToken,
232
233
  chain,
233
234
  messageToSign,
234
235
  network,
236
+ oauth,
235
237
  publicWalletAddress,
236
238
  signedMessage,
237
239
  walletName,
@@ -24,7 +24,7 @@ export declare const revokeSession: ({ environmentId, sessionId, }: {
24
24
  environmentId: string;
25
25
  sessionId: string;
26
26
  }, userJwt: string) => Promise<void>;
27
- export declare const linkWallet: (environmentId: string, { messageToSign, signedMessage, publicWalletAddress, chain, walletName, walletProvider, }: VerifyWallet, userJwt: string) => Promise<string | undefined>;
27
+ export declare const linkWallet: (environmentId: string, { messageToSign, network, signedMessage, publicWalletAddress, chain, walletName, walletProvider, }: VerifyWallet, userJwt: string) => Promise<string | undefined>;
28
28
  export declare const unlinkWallet: ({ environmentId, primaryWalletId, walletId, }: {
29
29
  environmentId: string;
30
30
  primaryWalletId: string | undefined;
@@ -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>;
@@ -119,10 +119,11 @@ const revokeSession = ({ environmentId, sessionId, }, userJwt) => __awaiter(void
119
119
  logger.error(Error(body.error.message));
120
120
  }
121
121
  });
122
- const linkWallet = (environmentId, { messageToSign, signedMessage, publicWalletAddress, chain, walletName, walletProvider, }, userJwt) => __awaiter(void 0, void 0, void 0, function* () {
122
+ const linkWallet = (environmentId, { messageToSign, network, signedMessage, publicWalletAddress, chain, walletName, walletProvider, }, userJwt) => __awaiter(void 0, void 0, void 0, function* () {
123
123
  const verifyRequest = VerifyRequestFromJSON({
124
124
  chain,
125
125
  messageToSign,
126
+ network,
126
127
  publicWalletAddress,
127
128
  signedMessage,
128
129
  walletName,
@@ -222,12 +223,13 @@ const createVisit = ({ authMode, chain, environmentId, walletProvider, publicWal
222
223
  logger.error(error);
223
224
  }
224
225
  });
225
- 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* () {
226
227
  const verifyRequest = VerifyRequestFromJSON({
227
228
  captchaToken,
228
229
  chain,
229
230
  messageToSign,
230
231
  network,
232
+ oauth,
231
233
  publicWalletAddress,
232
234
  signedMessage,
233
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,