@dynamic-labs/sdk-react-core 0.18.0-RC.19 → 0.18.0-RC.20
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 +16 -0
- package/package.cjs +2 -2
- package/package.js +2 -2
- package/package.json +9 -9
- package/src/lib/context/DynamicContext/DynamicContext.cjs +4 -0
- package/src/lib/context/DynamicContext/DynamicContext.js +4 -0
- package/src/lib/context/DynamicContext/hooks/useNameService/useNameService.cjs +1 -1
- package/src/lib/context/DynamicContext/hooks/useNameService/useNameService.js +1 -1
- package/src/lib/context/DynamicContext/types/index.d.ts +1 -1
- package/src/lib/context/DynamicContext/useCustomerCallbacks/types.d.ts +3 -2
- package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerCallbacks.cjs +2 -1
- package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerCallbacks.d.ts +1 -1
- package/src/lib/context/DynamicContext/useCustomerCallbacks/useCustomerCallbacks.js +2 -1
- package/src/lib/context/FundingContext/FundingContext.cjs +13 -1
- package/src/lib/context/FundingContext/FundingContext.js +13 -1
- package/src/lib/data/api.cjs +4 -2
- package/src/lib/data/api.d.ts +4 -1
- package/src/lib/data/api.js +4 -2
- package/src/lib/shared/types/index.d.ts +2 -0
- package/src/lib/utils/constants/onrampProviders.cjs +7 -0
- package/src/lib/utils/constants/onrampProviders.d.ts +1 -0
- package/src/lib/utils/constants/onrampProviders.js +3 -0
- package/src/lib/utils/functions/getWalletVerifiedCredential/getWalletVerifiedCredential.cjs +3 -1
- package/src/lib/utils/functions/getWalletVerifiedCredential/getWalletVerifiedCredential.d.ts +1 -1
- package/src/lib/utils/functions/getWalletVerifiedCredential/getWalletVerifiedCredential.js +3 -1
- package/src/lib/utils/functions/index.d.ts +1 -0
- package/src/lib/utils/functions/isOnrampProvider/index.d.ts +1 -0
- package/src/lib/utils/functions/isOnrampProvider/isOnrampProvider.cjs +9 -0
- package/src/lib/utils/functions/isOnrampProvider/isOnrampProvider.d.ts +2 -0
- package/src/lib/utils/functions/isOnrampProvider/isOnrampProvider.js +5 -0
- package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.cjs +3 -0
- package/src/lib/utils/hooks/authenticationHooks/useConnectAndSign/useConnectAndSign.js +3 -0
- package/src/lib/utils/hooks/authenticationHooks/useConnectAndSignSplitSteps/useConnectAndSignSplitSteps.cjs +3 -0
- package/src/lib/utils/hooks/authenticationHooks/useConnectAndSignSplitSteps/useConnectAndSignSplitSteps.js +3 -0
- package/src/lib/utils/hooks/authenticationHooks/useSignConnectOnlyUser/useSignConnectOnlyUser.cjs +3 -0
- package/src/lib/utils/hooks/authenticationHooks/useSignConnectOnlyUser/useSignConnectOnlyUser.js +3 -0
- package/src/lib/utils/hooks/multiWallet/useSyncPrimaryWallet/useSyncPrimaryWallet.cjs +2 -1
- package/src/lib/utils/hooks/multiWallet/useSyncPrimaryWallet/useSyncPrimaryWallet.d.ts +1 -1
- package/src/lib/utils/hooks/multiWallet/useSyncPrimaryWallet/useSyncPrimaryWallet.js +2 -1
- package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.cjs +9 -1
- package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.d.ts +6 -3
- package/src/lib/utils/hooks/useConnectWallet/useConnectWallet.js +9 -1
- package/src/lib/utils/hooks/useFetchProjectSettings/useFetchProjectSettings.cjs +1 -1
- package/src/lib/utils/hooks/useFetchProjectSettings/useFetchProjectSettings.js +1 -1
- package/src/lib/utils/hooks/useWalletConnectors/useWalletConnectors.cjs +4 -3
- package/src/lib/utils/hooks/useWalletConnectors/useWalletConnectors.d.ts +2 -1
- package/src/lib/utils/hooks/useWalletConnectors/useWalletConnectors.js +4 -3
- package/src/lib/views/WalletUsedView/WalletUsedView.cjs +3 -0
- package/src/lib/views/WalletUsedView/WalletUsedView.js +3 -0
- package/src/lib/widgets/DynamicWidget/components/DynamicWidgetWallets/DynamicWidgetWallets.cjs +1 -1
- package/src/lib/widgets/DynamicWidget/components/DynamicWidgetWallets/DynamicWidgetWallets.js +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,20 @@
|
|
|
1
1
|
|
|
2
|
+
## [0.18.0-RC.20](https://github.com/dynamic-labs/DynamicAuth/compare/v0.18.0-RC.19...v0.18.0-RC.20) (2023-07-27)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
* **QNTM-56:** add onBeforeConnectSuccessConfirmation callback ([#2753](https://github.com/dynamic-labs/DynamicAuth/issues/2753)) ([b174396](https://github.com/dynamic-labs/DynamicAuth/commit/b174396ab341cbcf11c6940e54931c0db3954d0d))
|
|
8
|
+
* **QNTM-72:** add backpack wallet ([#2702](https://github.com/dynamic-labs/DynamicAuth/issues/2702)) ([0d0ce9c](https://github.com/dynamic-labs/DynamicAuth/commit/0d0ce9c0d92118a78b5e40f64c5530246523712a))
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* bump sdk version and change sdksettings api ([#2760](https://github.com/dynamic-labs/DynamicAuth/issues/2760)) ([6e3e205](https://github.com/dynamic-labs/DynamicAuth/commit/6e3e2050ed63d2df2d88d9169bc89d5f17870847))
|
|
14
|
+
* check funding enabled based on enabled onramp providers instead of onrampFunding settings ([#2662](https://github.com/dynamic-labs/DynamicAuth/issues/2662)) ([d542a9b](https://github.com/dynamic-labs/DynamicAuth/commit/d542a9b2950640e473afe378c857f4d2dd1926ff))
|
|
15
|
+
* ensure metamask auto-redirect upon message signing ([#2757](https://github.com/dynamic-labs/DynamicAuth/issues/2757)) ([a590f4b](https://github.com/dynamic-labs/DynamicAuth/commit/a590f4b054cd1de7ad400763d769b0daf4fcaad2))
|
|
16
|
+
* **QNTM-123:** use `linkedWallets` after signing the first message ([#2741](https://github.com/dynamic-labs/DynamicAuth/issues/2741)) ([7f26151](https://github.com/dynamic-labs/DynamicAuth/commit/7f26151db69b50102fd4b09ec470c8f19ce7b68f))
|
|
17
|
+
|
|
2
18
|
## [0.18.0-RC.19](https://github.com/dynamic-labs/DynamicAuth/compare/v0.18.0-RC.18...v0.18.0-RC.19) (2023-07-25)
|
|
3
19
|
|
|
4
20
|
|
package/package.cjs
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var version = "0.18.0-RC.
|
|
5
|
+
var version = "0.18.0-RC.20";
|
|
6
6
|
var dependencies = {
|
|
7
7
|
"react-focus-lock": "2.9.2",
|
|
8
8
|
"@dynamic-labs/iconic": "0.1.23",
|
|
9
|
-
"@dynamic-labs/sdk-api": "0.0.
|
|
9
|
+
"@dynamic-labs/sdk-api": "0.0.247",
|
|
10
10
|
"@hcaptcha/react-hcaptcha": "1.4.4",
|
|
11
11
|
"country-list": "2.3.0",
|
|
12
12
|
yup: "0.32.11",
|
package/package.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
var version = "0.18.0-RC.
|
|
1
|
+
var version = "0.18.0-RC.20";
|
|
2
2
|
var dependencies = {
|
|
3
3
|
"react-focus-lock": "2.9.2",
|
|
4
4
|
"@dynamic-labs/iconic": "0.1.23",
|
|
5
|
-
"@dynamic-labs/sdk-api": "0.0.
|
|
5
|
+
"@dynamic-labs/sdk-api": "0.0.247",
|
|
6
6
|
"@hcaptcha/react-hcaptcha": "1.4.4",
|
|
7
7
|
"country-list": "2.3.0",
|
|
8
8
|
yup: "0.32.11",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynamic-labs/sdk-react-core",
|
|
3
|
-
"version": "0.18.0-RC.
|
|
3
|
+
"version": "0.18.0-RC.20",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/dynamic-labs/DynamicAuth.git",
|
|
@@ -9,20 +9,20 @@
|
|
|
9
9
|
"dependencies": {
|
|
10
10
|
"react-focus-lock": "2.9.2",
|
|
11
11
|
"@dynamic-labs/iconic": "0.1.23",
|
|
12
|
-
"@dynamic-labs/sdk-api": "0.0.
|
|
12
|
+
"@dynamic-labs/sdk-api": "0.0.247",
|
|
13
13
|
"@hcaptcha/react-hcaptcha": "1.4.4",
|
|
14
14
|
"country-list": "2.3.0",
|
|
15
15
|
"yup": "0.32.11",
|
|
16
16
|
"formik": "2.2.9",
|
|
17
17
|
"qrcode": "1.5.1",
|
|
18
18
|
"ethers": "5.7.2",
|
|
19
|
-
"@dynamic-labs/logger": "0.18.0-RC.
|
|
20
|
-
"@dynamic-labs/multi-wallet": "0.18.0-RC.
|
|
21
|
-
"@dynamic-labs/rpc-providers": "0.18.0-RC.
|
|
22
|
-
"@dynamic-labs/types": "0.18.0-RC.
|
|
23
|
-
"@dynamic-labs/utils": "0.18.0-RC.
|
|
24
|
-
"@dynamic-labs/wallet-book": "0.18.0-RC.
|
|
25
|
-
"@dynamic-labs/wallet-connector-core": "0.18.0-RC.
|
|
19
|
+
"@dynamic-labs/logger": "0.18.0-RC.20",
|
|
20
|
+
"@dynamic-labs/multi-wallet": "0.18.0-RC.20",
|
|
21
|
+
"@dynamic-labs/rpc-providers": "0.18.0-RC.20",
|
|
22
|
+
"@dynamic-labs/types": "0.18.0-RC.20",
|
|
23
|
+
"@dynamic-labs/utils": "0.18.0-RC.20",
|
|
24
|
+
"@dynamic-labs/wallet-book": "0.18.0-RC.20",
|
|
25
|
+
"@dynamic-labs/wallet-connector-core": "0.18.0-RC.20"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"semver": "7.3.8"
|
|
@@ -198,12 +198,14 @@ const DynamicContextProvider = ({ children, theme, settings, }) => {
|
|
|
198
198
|
clearPrimaryWalletId,
|
|
199
199
|
enableVisitTrackingOnConnectOnly,
|
|
200
200
|
environmentId,
|
|
201
|
+
onBeforeConnectSuccessConfirmation: eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onBeforeConnectSuccessConfirmation,
|
|
201
202
|
onUnlink: (walletId, connectedWalletsInfo) => {
|
|
202
203
|
const missingChains = getMissingChains.getMissingChains(walletsByChain, connectedWalletsInfo);
|
|
203
204
|
setWalletsToConnectByChain(missingChains);
|
|
204
205
|
},
|
|
205
206
|
primaryWalletId,
|
|
206
207
|
setPrimaryWalletId,
|
|
208
|
+
setShowAuthFlow,
|
|
207
209
|
wallets,
|
|
208
210
|
});
|
|
209
211
|
useEffectOnce.useEffectOnce(() => {
|
|
@@ -222,6 +224,7 @@ const DynamicContextProvider = ({ children, theme, settings, }) => {
|
|
|
222
224
|
authToken: getAuthToken.getAuthToken() || onboardingOnlyJwt,
|
|
223
225
|
connectedWallets,
|
|
224
226
|
multiWalletWidgetState,
|
|
227
|
+
onboardingOnlyJwt,
|
|
225
228
|
primaryWalletId,
|
|
226
229
|
setDesktopUri,
|
|
227
230
|
setMultiWalletWidgetState,
|
|
@@ -353,6 +356,7 @@ const DynamicContextProvider = ({ children, theme, settings, }) => {
|
|
|
353
356
|
authMode,
|
|
354
357
|
callbacks: {
|
|
355
358
|
onAuthSuccess: eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onAuthSuccess,
|
|
359
|
+
onBeforeConnectSuccessConfirmation: eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onBeforeConnectSuccessConfirmation,
|
|
356
360
|
onConnectSuccess: eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onConnectSuccess,
|
|
357
361
|
onLinkSuccess: eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onLinkSuccess,
|
|
358
362
|
onUserProfileUpdate: eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onUserProfileUpdate,
|
|
@@ -194,12 +194,14 @@ const DynamicContextProvider = ({ children, theme, settings, }) => {
|
|
|
194
194
|
clearPrimaryWalletId,
|
|
195
195
|
enableVisitTrackingOnConnectOnly,
|
|
196
196
|
environmentId,
|
|
197
|
+
onBeforeConnectSuccessConfirmation: eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onBeforeConnectSuccessConfirmation,
|
|
197
198
|
onUnlink: (walletId, connectedWalletsInfo) => {
|
|
198
199
|
const missingChains = getMissingChains(walletsByChain, connectedWalletsInfo);
|
|
199
200
|
setWalletsToConnectByChain(missingChains);
|
|
200
201
|
},
|
|
201
202
|
primaryWalletId,
|
|
202
203
|
setPrimaryWalletId,
|
|
204
|
+
setShowAuthFlow,
|
|
203
205
|
wallets,
|
|
204
206
|
});
|
|
205
207
|
useEffectOnce(() => {
|
|
@@ -218,6 +220,7 @@ const DynamicContextProvider = ({ children, theme, settings, }) => {
|
|
|
218
220
|
authToken: getAuthToken() || onboardingOnlyJwt,
|
|
219
221
|
connectedWallets,
|
|
220
222
|
multiWalletWidgetState,
|
|
223
|
+
onboardingOnlyJwt,
|
|
221
224
|
primaryWalletId,
|
|
222
225
|
setDesktopUri,
|
|
223
226
|
setMultiWalletWidgetState,
|
|
@@ -349,6 +352,7 @@ const DynamicContextProvider = ({ children, theme, settings, }) => {
|
|
|
349
352
|
authMode,
|
|
350
353
|
callbacks: {
|
|
351
354
|
onAuthSuccess: eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onAuthSuccess,
|
|
355
|
+
onBeforeConnectSuccessConfirmation: eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onBeforeConnectSuccessConfirmation,
|
|
352
356
|
onConnectSuccess: eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onConnectSuccess,
|
|
353
357
|
onLinkSuccess: eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onLinkSuccess,
|
|
354
358
|
onUserProfileUpdate: eventsCallbacks === null || eventsCallbacks === void 0 ? void 0 : eventsCallbacks.onUserProfileUpdate,
|
|
@@ -59,7 +59,7 @@ const useNameService = ({ currentWallet, authToken }) => {
|
|
|
59
59
|
const verifiedCredentials = (_a = decodeJwt.decodeJwt(authToken)) === null || _a === void 0 ? void 0 : _a.verifiedCredentials;
|
|
60
60
|
//if there are verified credentials, check if there is a name service for the current wallet
|
|
61
61
|
if (verifiedCredentials) {
|
|
62
|
-
const verifiedCredential = getWalletVerifiedCredential.getWalletVerifiedCredential(currentWallet === null || currentWallet === void 0 ? void 0 : currentWallet.address, verifiedCredentials);
|
|
62
|
+
const verifiedCredential = getWalletVerifiedCredential.getWalletVerifiedCredential(currentWallet === null || currentWallet === void 0 ? void 0 : currentWallet.address, verifiedCredentials, currentWallet.chain);
|
|
63
63
|
if (verifiedCredential && ((_b = verifiedCredential.nameService) === null || _b === void 0 ? void 0 : _b.name)) {
|
|
64
64
|
return verifiedCredential.nameService;
|
|
65
65
|
}
|
|
@@ -55,7 +55,7 @@ const useNameService = ({ currentWallet, authToken }) => {
|
|
|
55
55
|
const verifiedCredentials = (_a = decodeJwt(authToken)) === null || _a === void 0 ? void 0 : _a.verifiedCredentials;
|
|
56
56
|
//if there are verified credentials, check if there is a name service for the current wallet
|
|
57
57
|
if (verifiedCredentials) {
|
|
58
|
-
const verifiedCredential = getWalletVerifiedCredential(currentWallet === null || currentWallet === void 0 ? void 0 : currentWallet.address, verifiedCredentials);
|
|
58
|
+
const verifiedCredential = getWalletVerifiedCredential(currentWallet === null || currentWallet === void 0 ? void 0 : currentWallet.address, verifiedCredentials, currentWallet.chain);
|
|
59
59
|
if (verifiedCredential && ((_b = verifiedCredential.nameService) === null || _b === void 0 ? void 0 : _b.name)) {
|
|
60
60
|
return verifiedCredential.nameService;
|
|
61
61
|
}
|
|
@@ -39,7 +39,7 @@ export interface IDynamicContext {
|
|
|
39
39
|
setBridgeChainToConnect: Dispatch<SetStateAction<Chain | undefined>>;
|
|
40
40
|
clearStatesOnBackClick: () => void;
|
|
41
41
|
computeConnectedStateForWallets: () => Promise<void>;
|
|
42
|
-
connectWallet: (walletConnector: WalletConnector, fetchPublicAddressOpts?: FetchPublicAddressOpts) => Promise<string>;
|
|
42
|
+
connectWallet: (walletConnector: WalletConnector, fetchPublicAddressOpts?: FetchPublicAddressOpts) => Promise<string | undefined>;
|
|
43
43
|
connectedWallet: Wallet | null;
|
|
44
44
|
connectedWallets: Wallet[];
|
|
45
45
|
linkedWallets: Wallet[];
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { WalletConnector } from '../../../..';
|
|
2
|
-
import { AuthModeType, OnAuthSuccess, OnConnectSuccess, OnUserProfileUpdate, UserProfile, Wallet } from '../../../shared/types';
|
|
2
|
+
import { AuthModeType, OnAuthSuccess, OnBeforeConnectSuccessConfirmation, OnConnectSuccess, OnUserProfileUpdate, UserProfile, Wallet } from '../../../shared/types';
|
|
3
3
|
import { IOngoingVerifications } from '../types';
|
|
4
|
-
export type Callback = 'authSuccess' | 'linkSuccess' | 'userProfileUpdate' | 'connectSuccess';
|
|
4
|
+
export type Callback = 'authSuccess' | 'linkSuccess' | 'userProfileUpdate' | 'connectSuccess' | 'onBeforeConnectSuccessConfirmation';
|
|
5
5
|
export type UseCustomerCallbacksArgs = {
|
|
6
6
|
authMode: AuthModeType;
|
|
7
7
|
callbacks: {
|
|
8
8
|
onAuthSuccess?: OnAuthSuccess;
|
|
9
9
|
onConnectSuccess?: OnConnectSuccess;
|
|
10
|
+
onBeforeConnectSuccessConfirmation?: OnBeforeConnectSuccessConfirmation;
|
|
10
11
|
onLinkSuccess?: OnAuthSuccess;
|
|
11
12
|
onUserProfileUpdate?: OnUserProfileUpdate;
|
|
12
13
|
};
|
|
@@ -20,7 +20,7 @@ var getAuthToken = require('../../../utils/functions/getAuthToken/getAuthToken.c
|
|
|
20
20
|
var isConnectOnly = require('../../../utils/hooks/authenticationHooks/helpers/isConnectOnly.cjs');
|
|
21
21
|
var disableAuthVerificationFlag = require('./utils/disableAuthVerificationFlag/disableAuthVerificationFlag.cjs');
|
|
22
22
|
|
|
23
|
-
const useCustomerCallbacks = ({ callbacks: { onAuthSuccess, onLinkSuccess, onUserProfileUpdate, onConnectSuccess, }, handleLogOut, primaryWallet, selectedWalletConnector, user, isAuthenticated, authMode, ongoingVerifications, }) => {
|
|
23
|
+
const useCustomerCallbacks = ({ callbacks: { onAuthSuccess, onLinkSuccess, onUserProfileUpdate, onConnectSuccess, onBeforeConnectSuccessConfirmation, }, handleLogOut, primaryWallet, selectedWalletConnector, user, isAuthenticated, authMode, ongoingVerifications, }) => {
|
|
24
24
|
const [callbackQueue, setCallbackQueue] = React.useState([]);
|
|
25
25
|
const isConnectOnlyAndCallbackIsConnectSuccess = React.useCallback((next) => isConnectOnly.isConnectOnly(user, authMode) &&
|
|
26
26
|
Boolean(primaryWallet) &&
|
|
@@ -121,6 +121,7 @@ const useCustomerCallbacks = ({ callbacks: { onAuthSuccess, onLinkSuccess, onUse
|
|
|
121
121
|
authMode,
|
|
122
122
|
isConnectOnlyAndCallbackIsConnectSuccess,
|
|
123
123
|
ongoingVerifications,
|
|
124
|
+
selectedWalletConnector,
|
|
124
125
|
]);
|
|
125
126
|
const setCallback = (callback) => {
|
|
126
127
|
setCallbackQueue((prev) => [...prev, callback]);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { Callback, UseCustomerCallbacksArgs } from './types';
|
|
2
|
-
export declare const useCustomerCallbacks: ({ callbacks: { onAuthSuccess, onLinkSuccess, onUserProfileUpdate, onConnectSuccess, }, handleLogOut, primaryWallet, selectedWalletConnector, user, isAuthenticated, authMode, ongoingVerifications, }: UseCustomerCallbacksArgs) => {
|
|
2
|
+
export declare const useCustomerCallbacks: ({ callbacks: { onAuthSuccess, onLinkSuccess, onUserProfileUpdate, onConnectSuccess, onBeforeConnectSuccessConfirmation, }, handleLogOut, primaryWallet, selectedWalletConnector, user, isAuthenticated, authMode, ongoingVerifications, }: UseCustomerCallbacksArgs) => {
|
|
3
3
|
setCallback: (callback: Callback) => void;
|
|
4
4
|
};
|
|
@@ -16,7 +16,7 @@ import { getAuthToken } from '../../../utils/functions/getAuthToken/getAuthToken
|
|
|
16
16
|
import { isConnectOnly } from '../../../utils/hooks/authenticationHooks/helpers/isConnectOnly.js';
|
|
17
17
|
import { disableAuthVerificationFlag } from './utils/disableAuthVerificationFlag/disableAuthVerificationFlag.js';
|
|
18
18
|
|
|
19
|
-
const useCustomerCallbacks = ({ callbacks: { onAuthSuccess, onLinkSuccess, onUserProfileUpdate, onConnectSuccess, }, handleLogOut, primaryWallet, selectedWalletConnector, user, isAuthenticated, authMode, ongoingVerifications, }) => {
|
|
19
|
+
const useCustomerCallbacks = ({ callbacks: { onAuthSuccess, onLinkSuccess, onUserProfileUpdate, onConnectSuccess, onBeforeConnectSuccessConfirmation, }, handleLogOut, primaryWallet, selectedWalletConnector, user, isAuthenticated, authMode, ongoingVerifications, }) => {
|
|
20
20
|
const [callbackQueue, setCallbackQueue] = useState([]);
|
|
21
21
|
const isConnectOnlyAndCallbackIsConnectSuccess = useCallback((next) => isConnectOnly(user, authMode) &&
|
|
22
22
|
Boolean(primaryWallet) &&
|
|
@@ -117,6 +117,7 @@ const useCustomerCallbacks = ({ callbacks: { onAuthSuccess, onLinkSuccess, onUse
|
|
|
117
117
|
authMode,
|
|
118
118
|
isConnectOnlyAndCallbackIsConnectSuccess,
|
|
119
119
|
ongoingVerifications,
|
|
120
|
+
selectedWalletConnector,
|
|
120
121
|
]);
|
|
121
122
|
const setCallback = (callback) => {
|
|
122
123
|
setCallbackQueue((prev) => [...prev, callback]);
|
|
@@ -8,6 +8,18 @@ var React = require('react');
|
|
|
8
8
|
var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
|
|
9
9
|
var api = require('../../data/api.cjs');
|
|
10
10
|
var useInternalDynamicContext = require('../DynamicContext/useInternalDynamicContext.cjs');
|
|
11
|
+
require('@dynamic-labs/sdk-api');
|
|
12
|
+
require('../../shared/logger.cjs');
|
|
13
|
+
require('@dynamic-labs/iconic');
|
|
14
|
+
require('../ViewContext/ViewContext.cjs');
|
|
15
|
+
require('@dynamic-labs/wallet-book');
|
|
16
|
+
require('@dynamic-labs/utils');
|
|
17
|
+
require('../../utils/constants/colors.cjs');
|
|
18
|
+
require('../../shared/utils/classes/storage/localStorage.cjs');
|
|
19
|
+
require('ethers');
|
|
20
|
+
require('../../shared/consts/index.cjs');
|
|
21
|
+
require('@dynamic-labs/multi-wallet');
|
|
22
|
+
var isOnrampProvider = require('../../utils/functions/isOnrampProvider/isOnrampProvider.cjs');
|
|
11
23
|
|
|
12
24
|
const FundingContext = React.createContext(undefined);
|
|
13
25
|
const FundingContextProvider = ({ children, }) => {
|
|
@@ -17,7 +29,7 @@ const FundingContextProvider = ({ children, }) => {
|
|
|
17
29
|
const [supportsFunding, setSupportsFunding] = React.useState(false);
|
|
18
30
|
const [fundingUrl, setFundingUrl] = React.useState('');
|
|
19
31
|
const { environmentId, network, primaryWallet, projectSettings } = useInternalDynamicContext.useInternalDynamicContext();
|
|
20
|
-
const fundingEnabled = (_b = (_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.
|
|
32
|
+
const fundingEnabled = (_b = (_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.providers) === null || _a === void 0 ? void 0 : _a.some((p) => isOnrampProvider.isOnrampProvider(p) && Boolean(p.enabledAt))) !== null && _b !== void 0 ? _b : false;
|
|
21
33
|
const value = React.useMemo(() => ({
|
|
22
34
|
fundingEnabled,
|
|
23
35
|
fundingRef,
|
|
@@ -4,6 +4,18 @@ import { createContext, useRef, useState, useMemo, useEffect, useContext } from
|
|
|
4
4
|
import { getChainInfo } from '@dynamic-labs/wallet-connector-core';
|
|
5
5
|
import { getOnrampProviders } from '../../data/api.js';
|
|
6
6
|
import { useInternalDynamicContext } from '../DynamicContext/useInternalDynamicContext.js';
|
|
7
|
+
import '@dynamic-labs/sdk-api';
|
|
8
|
+
import '../../shared/logger.js';
|
|
9
|
+
import '@dynamic-labs/iconic';
|
|
10
|
+
import '../ViewContext/ViewContext.js';
|
|
11
|
+
import '@dynamic-labs/wallet-book';
|
|
12
|
+
import '@dynamic-labs/utils';
|
|
13
|
+
import '../../utils/constants/colors.js';
|
|
14
|
+
import '../../shared/utils/classes/storage/localStorage.js';
|
|
15
|
+
import 'ethers';
|
|
16
|
+
import '../../shared/consts/index.js';
|
|
17
|
+
import '@dynamic-labs/multi-wallet';
|
|
18
|
+
import { isOnrampProvider } from '../../utils/functions/isOnrampProvider/isOnrampProvider.js';
|
|
7
19
|
|
|
8
20
|
const FundingContext = createContext(undefined);
|
|
9
21
|
const FundingContextProvider = ({ children, }) => {
|
|
@@ -13,7 +25,7 @@ const FundingContextProvider = ({ children, }) => {
|
|
|
13
25
|
const [supportsFunding, setSupportsFunding] = useState(false);
|
|
14
26
|
const [fundingUrl, setFundingUrl] = useState('');
|
|
15
27
|
const { environmentId, network, primaryWallet, projectSettings } = useInternalDynamicContext();
|
|
16
|
-
const fundingEnabled = (_b = (_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.
|
|
28
|
+
const fundingEnabled = (_b = (_a = projectSettings === null || projectSettings === void 0 ? void 0 : projectSettings.providers) === null || _a === void 0 ? void 0 : _a.some((p) => isOnrampProvider(p) && Boolean(p.enabledAt))) !== null && _b !== void 0 ? _b : false;
|
|
17
29
|
const value = useMemo(() => ({
|
|
18
30
|
fundingEnabled,
|
|
19
31
|
fundingRef,
|
package/src/lib/data/api.cjs
CHANGED
|
@@ -374,12 +374,14 @@ const getOnrampProviders = ({ chain, environmentId, networkId, token, walletAddr
|
|
|
374
374
|
}
|
|
375
375
|
return onramps;
|
|
376
376
|
});
|
|
377
|
-
const sendDynamicProps = (environmentId,
|
|
377
|
+
const sendDynamicProps = (environmentId, settingsToSend) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
378
378
|
try {
|
|
379
|
-
|
|
379
|
+
const { dynamicContextProps, dynamicWagmiSettings } = settingsToSend;
|
|
380
|
+
yield sdkApi().logDynamicSdkSettings({
|
|
380
381
|
environmentId,
|
|
381
382
|
sdkSettingsRequest: {
|
|
382
383
|
dynamicContextProps,
|
|
384
|
+
dynamicWagmiSettings,
|
|
383
385
|
},
|
|
384
386
|
});
|
|
385
387
|
}
|
package/src/lib/data/api.d.ts
CHANGED
|
@@ -62,4 +62,7 @@ export declare const getOnrampProviders: ({ chain, environmentId, networkId, tok
|
|
|
62
62
|
token?: string | undefined;
|
|
63
63
|
walletAddress: string;
|
|
64
64
|
}) => Promise<OnrampConfiguration[]>;
|
|
65
|
-
export declare const sendDynamicProps: (environmentId: string,
|
|
65
|
+
export declare const sendDynamicProps: (environmentId: string, settingsToSend: {
|
|
66
|
+
dynamicContextProps?: object;
|
|
67
|
+
dynamicWagmiSettings?: object;
|
|
68
|
+
}) => Promise<void>;
|
package/src/lib/data/api.js
CHANGED
|
@@ -370,12 +370,14 @@ const getOnrampProviders = ({ chain, environmentId, networkId, token, walletAddr
|
|
|
370
370
|
}
|
|
371
371
|
return onramps;
|
|
372
372
|
});
|
|
373
|
-
const sendDynamicProps = (environmentId,
|
|
373
|
+
const sendDynamicProps = (environmentId, settingsToSend) => __awaiter(void 0, void 0, void 0, function* () {
|
|
374
374
|
try {
|
|
375
|
-
|
|
375
|
+
const { dynamicContextProps, dynamicWagmiSettings } = settingsToSend;
|
|
376
|
+
yield sdkApi().logDynamicSdkSettings({
|
|
376
377
|
environmentId,
|
|
377
378
|
sdkSettingsRequest: {
|
|
378
379
|
dynamicContextProps,
|
|
380
|
+
dynamicWagmiSettings,
|
|
379
381
|
},
|
|
380
382
|
});
|
|
381
383
|
}
|
|
@@ -102,6 +102,7 @@ export type OnAuthSuccess = (params: {
|
|
|
102
102
|
export type OnConnectSuccess = (params: {
|
|
103
103
|
walletConnector: WalletConnector | null;
|
|
104
104
|
}) => void;
|
|
105
|
+
export type OnBeforeConnectSuccessConfirmation = (walletAddress: string) => Promise<boolean>;
|
|
105
106
|
export type OnUserProfileUpdate = (user: UserProfile) => void;
|
|
106
107
|
export type MultiWalletWidgetState = 'idle' | 'awaiting_account_switch' | 'awaiting_connection' | 'awaiting_signature' | 'detected_new_wallet';
|
|
107
108
|
export type AccountSwitchState = 'idle' | 'linking_new_wallet' | 'switching_primary' | 'primary_not_connected';
|
|
@@ -145,6 +146,7 @@ export type DynamicEventsCallbacks = {
|
|
|
145
146
|
onAuthFlowOpen?: () => void;
|
|
146
147
|
onAuthSuccess?: OnAuthSuccess;
|
|
147
148
|
onConnectSuccess?: OnConnectSuccess;
|
|
149
|
+
onBeforeConnectSuccessConfirmation?: OnBeforeConnectSuccessConfirmation;
|
|
148
150
|
onLinkSuccess?: OnAuthSuccess;
|
|
149
151
|
onLogout?: (user: UserProfile | undefined) => void;
|
|
150
152
|
onUnlinkSuccess?: (unlinkedWallet: JwtVerifiedCredential) => void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const ONRAMP_PROVIDERS: string[];
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
|
|
6
|
+
|
|
7
|
+
const getWalletVerifiedCredential = (walletAddress, verifiedCredentials, walletChain) => verifiedCredentials === null || verifiedCredentials === void 0 ? void 0 : verifiedCredentials.find(({ address }) => walletConnectorCore.isSameAddress(address || '', walletAddress || '', walletChain));
|
|
6
8
|
|
|
7
9
|
exports.getWalletVerifiedCredential = getWalletVerifiedCredential;
|
package/src/lib/utils/functions/getWalletVerifiedCredential/getWalletVerifiedCredential.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { JwtVerifiedCredential } from '@dynamic-labs/sdk-api';
|
|
2
|
-
export declare const getWalletVerifiedCredential: (walletAddress: string | undefined, verifiedCredentials: JwtVerifiedCredential[] | undefined) => JwtVerifiedCredential | undefined;
|
|
2
|
+
export declare const getWalletVerifiedCredential: (walletAddress: string | undefined, verifiedCredentials: JwtVerifiedCredential[] | undefined, walletChain: string) => JwtVerifiedCredential | undefined;
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import { isSameAddress } from '@dynamic-labs/wallet-connector-core';
|
|
2
|
+
|
|
3
|
+
const getWalletVerifiedCredential = (walletAddress, verifiedCredentials, walletChain) => verifiedCredentials === null || verifiedCredentials === void 0 ? void 0 : verifiedCredentials.find(({ address }) => isSameAddress(address || '', walletAddress || '', walletChain));
|
|
2
4
|
|
|
3
5
|
export { getWalletVerifiedCredential };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { isOnrampProvider } from './isOnrampProvider';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var onrampProviders = require('../../constants/onrampProviders.cjs');
|
|
6
|
+
|
|
7
|
+
const isOnrampProvider = (provider) => onrampProviders.ONRAMP_PROVIDERS.includes(provider.provider);
|
|
8
|
+
|
|
9
|
+
exports.isOnrampProvider = isOnrampProvider;
|
|
@@ -56,6 +56,9 @@ const useConnectAndSign = () => {
|
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
const publicWalletAddress = yield connectWallet(walletConnector, fetchPublicAddressOpts);
|
|
59
|
+
if (!publicWalletAddress) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
59
62
|
const walletNetwork = yield walletConnector.getNetwork();
|
|
60
63
|
const usesSupportedNetwork = isSupportedNetwork.isSupportedNetwork({
|
|
61
64
|
network: walletNetwork,
|
|
@@ -52,6 +52,9 @@ const useConnectAndSign = () => {
|
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
const publicWalletAddress = yield connectWallet(walletConnector, fetchPublicAddressOpts);
|
|
55
|
+
if (!publicWalletAddress) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
55
58
|
const walletNetwork = yield walletConnector.getNetwork();
|
|
56
59
|
const usesSupportedNetwork = isSupportedNetwork({
|
|
57
60
|
network: walletNetwork,
|
|
@@ -77,6 +77,9 @@ const useConnectAndSignSplitSteps = () => {
|
|
|
77
77
|
ongoingVerifications.setAuthVerification(true);
|
|
78
78
|
try {
|
|
79
79
|
const publicWalletAddress = yield connectWallet(walletConnector, fetchPublicAddressOpts);
|
|
80
|
+
if (!publicWalletAddress) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
80
83
|
yield verifyWallet({
|
|
81
84
|
captchaToken,
|
|
82
85
|
publicWalletAddress,
|
|
@@ -73,6 +73,9 @@ const useConnectAndSignSplitSteps = () => {
|
|
|
73
73
|
ongoingVerifications.setAuthVerification(true);
|
|
74
74
|
try {
|
|
75
75
|
const publicWalletAddress = yield connectWallet(walletConnector, fetchPublicAddressOpts);
|
|
76
|
+
if (!publicWalletAddress) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
76
79
|
yield verifyWallet({
|
|
77
80
|
captchaToken,
|
|
78
81
|
publicWalletAddress,
|
package/src/lib/utils/hooks/authenticationHooks/useSignConnectOnlyUser/useSignConnectOnlyUser.cjs
CHANGED
|
@@ -43,6 +43,9 @@ const useSignConnectOnlyUser = () => {
|
|
|
43
43
|
// Wallet should be already connected at this point
|
|
44
44
|
// We just need to verify it
|
|
45
45
|
const publicWalletAddress = yield connectWallet(walletConnector, fetchPublicAddressOpts);
|
|
46
|
+
if (!publicWalletAddress) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
46
49
|
yield verifyWallet({
|
|
47
50
|
publicWalletAddress,
|
|
48
51
|
walletConnector,
|
package/src/lib/utils/hooks/authenticationHooks/useSignConnectOnlyUser/useSignConnectOnlyUser.js
CHANGED
|
@@ -39,6 +39,9 @@ const useSignConnectOnlyUser = () => {
|
|
|
39
39
|
// Wallet should be already connected at this point
|
|
40
40
|
// We just need to verify it
|
|
41
41
|
const publicWalletAddress = yield connectWallet(walletConnector, fetchPublicAddressOpts);
|
|
42
|
+
if (!publicWalletAddress) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
42
45
|
yield verifyWallet({
|
|
43
46
|
publicWalletAddress,
|
|
44
47
|
walletConnector,
|
|
@@ -72,7 +72,8 @@ const useSyncPrimaryWallet = ({ connectWallet, computeConnectedStateForWallets,
|
|
|
72
72
|
return;
|
|
73
73
|
primaryWallet.connector
|
|
74
74
|
.getConnectedAccounts()
|
|
75
|
-
.then((
|
|
75
|
+
.then((accounts) => {
|
|
76
|
+
const [connectedAddress] = accounts;
|
|
76
77
|
if (walletConnectorCore.isSameAddress(connectedAddress, primaryWallet.address, primaryWallet.chain)) {
|
|
77
78
|
return;
|
|
78
79
|
}
|
|
@@ -4,7 +4,7 @@ import { AuthModeType, MultiWalletWidgetState, Wallet } from '../../../../shared
|
|
|
4
4
|
import { MultiWalletWidgetStateSetter } from '../useMultiWalletWidgetState';
|
|
5
5
|
export type UseSyncPrimaryWalletArgs = {
|
|
6
6
|
canSync?: boolean;
|
|
7
|
-
connectWallet: (walletConnector: WalletConnector, fetchPublicAddressOpts?: FetchPublicAddressOpts) => Promise<string>;
|
|
7
|
+
connectWallet: (walletConnector: WalletConnector, fetchPublicAddressOpts?: FetchPublicAddressOpts) => Promise<string | undefined>;
|
|
8
8
|
computeConnectedStateForWallets: () => Promise<void>;
|
|
9
9
|
handleLogOut: () => Promise<void>;
|
|
10
10
|
multiWalletWidgetState: MultiWalletWidgetState;
|
|
@@ -68,7 +68,8 @@ const useSyncPrimaryWallet = ({ connectWallet, computeConnectedStateForWallets,
|
|
|
68
68
|
return;
|
|
69
69
|
primaryWallet.connector
|
|
70
70
|
.getConnectedAccounts()
|
|
71
|
-
.then((
|
|
71
|
+
.then((accounts) => {
|
|
72
|
+
const [connectedAddress] = accounts;
|
|
72
73
|
if (isSameAddress(connectedAddress, primaryWallet.address, primaryWallet.chain)) {
|
|
73
74
|
return;
|
|
74
75
|
}
|
|
@@ -23,7 +23,7 @@ var api = require('../../../data/api.cjs');
|
|
|
23
23
|
require('@dynamic-labs/multi-wallet');
|
|
24
24
|
var shouldManuallyReconnectOnRefresh = require('../../functions/shouldManuallyReconnectOnRefresh/shouldManuallyReconnectOnRefresh.cjs');
|
|
25
25
|
|
|
26
|
-
const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingOnConnectOnly, environmentId, primaryWalletId, setPrimaryWalletId, wallets, onUnlink, }) => {
|
|
26
|
+
const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingOnConnectOnly, environmentId, primaryWalletId, setPrimaryWalletId, wallets, onUnlink, onBeforeConnectSuccessConfirmation, setShowAuthFlow, }) => {
|
|
27
27
|
const [connectedWalletsInfo, setConnectedWalletsInfo, removeConnectedWalletsInfo,] = useLocalStorage.useLocalStorage(localStorage.CONNECTED_WALLETS_INFO, []);
|
|
28
28
|
const [connectedWallets, setConnectedWallets] = React.useState([]);
|
|
29
29
|
// The function to update and define the connectedWallets list.
|
|
@@ -126,6 +126,14 @@ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingO
|
|
|
126
126
|
error.code = 'missing-public-address';
|
|
127
127
|
throw error;
|
|
128
128
|
}
|
|
129
|
+
if (onBeforeConnectSuccessConfirmation) {
|
|
130
|
+
const shouldProceedWithConnection = yield onBeforeConnectSuccessConfirmation(publicWalletAddress);
|
|
131
|
+
if (!shouldProceedWithConnection) {
|
|
132
|
+
walletConnectorCore.logger.info('Connection was not established because onBeforeConnectSuccessConfirmation returned false');
|
|
133
|
+
setShowAuthFlow(false);
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
129
137
|
const walletId = `connect-wallet-${getNextIdAvailable(connectedWalletsInfo)}`;
|
|
130
138
|
if (!primaryWalletId) {
|
|
131
139
|
setPrimaryWalletId(walletId);
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { Dispatch, SetStateAction } from 'react';
|
|
1
2
|
import { Chain, FetchPublicAddressOpts, WalletConnector } from '@dynamic-labs/wallet-connector-core';
|
|
2
|
-
import { AuthModeType, Wallet, WalletOption } from '../../../shared';
|
|
3
|
+
import { AuthModeType, OnBeforeConnectSuccessConfirmation, Wallet, WalletOption } from '../../../shared';
|
|
3
4
|
export type ConnectedWalletConnectorType = {
|
|
4
5
|
id: string;
|
|
5
6
|
walletChain?: Chain;
|
|
@@ -16,9 +17,11 @@ type Props = {
|
|
|
16
17
|
setPrimaryWalletId: (walletId: string) => void;
|
|
17
18
|
wallets: WalletOption[];
|
|
18
19
|
onUnlink?: (walletId: string, connectedWalletsInfo: ConnectedWalletConnectorType[]) => void;
|
|
20
|
+
onBeforeConnectSuccessConfirmation: OnBeforeConnectSuccessConfirmation | undefined;
|
|
21
|
+
setShowAuthFlow: Dispatch<SetStateAction<boolean>>;
|
|
19
22
|
};
|
|
20
|
-
export declare const useConnectWallet: ({ authMode, clearPrimaryWalletId, enableVisitTrackingOnConnectOnly, environmentId, primaryWalletId, setPrimaryWalletId, wallets, onUnlink, }: Props) => {
|
|
21
|
-
connectWallet: (walletConnector: WalletConnector, fetchPublicAddressOpts?: FetchPublicAddressOpts) => Promise<string>;
|
|
23
|
+
export declare const useConnectWallet: ({ authMode, clearPrimaryWalletId, enableVisitTrackingOnConnectOnly, environmentId, primaryWalletId, setPrimaryWalletId, wallets, onUnlink, onBeforeConnectSuccessConfirmation, setShowAuthFlow, }: Props) => {
|
|
24
|
+
connectWallet: (walletConnector: WalletConnector, fetchPublicAddressOpts?: FetchPublicAddressOpts) => Promise<string | undefined>;
|
|
22
25
|
connectedWallet: Wallet;
|
|
23
26
|
connectedWallets: Wallet[];
|
|
24
27
|
connectedWalletsInfo: ConnectedWalletConnectorType[] | [];
|
|
@@ -19,7 +19,7 @@ import { createVisit } from '../../../data/api.js';
|
|
|
19
19
|
import '@dynamic-labs/multi-wallet';
|
|
20
20
|
import { shouldManuallyReconnectOnRefresh } from '../../functions/shouldManuallyReconnectOnRefresh/shouldManuallyReconnectOnRefresh.js';
|
|
21
21
|
|
|
22
|
-
const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingOnConnectOnly, environmentId, primaryWalletId, setPrimaryWalletId, wallets, onUnlink, }) => {
|
|
22
|
+
const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingOnConnectOnly, environmentId, primaryWalletId, setPrimaryWalletId, wallets, onUnlink, onBeforeConnectSuccessConfirmation, setShowAuthFlow, }) => {
|
|
23
23
|
const [connectedWalletsInfo, setConnectedWalletsInfo, removeConnectedWalletsInfo,] = useLocalStorage(CONNECTED_WALLETS_INFO, []);
|
|
24
24
|
const [connectedWallets, setConnectedWallets] = useState([]);
|
|
25
25
|
// The function to update and define the connectedWallets list.
|
|
@@ -122,6 +122,14 @@ const useConnectWallet = ({ authMode, clearPrimaryWalletId, enableVisitTrackingO
|
|
|
122
122
|
error.code = 'missing-public-address';
|
|
123
123
|
throw error;
|
|
124
124
|
}
|
|
125
|
+
if (onBeforeConnectSuccessConfirmation) {
|
|
126
|
+
const shouldProceedWithConnection = yield onBeforeConnectSuccessConfirmation(publicWalletAddress);
|
|
127
|
+
if (!shouldProceedWithConnection) {
|
|
128
|
+
logger.info('Connection was not established because onBeforeConnectSuccessConfirmation returned false');
|
|
129
|
+
setShowAuthFlow(false);
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
125
133
|
const walletId = `connect-wallet-${getNextIdAvailable(connectedWalletsInfo)}`;
|
|
126
134
|
if (!primaryWalletId) {
|
|
127
135
|
setPrimaryWalletId(walletId);
|
|
@@ -44,7 +44,7 @@ const useFetchProjectSettings = ({ authToken, environmentId, maxRetries = 2, dyn
|
|
|
44
44
|
environmentId &&
|
|
45
45
|
retries < maxRetries) {
|
|
46
46
|
setLoading(true);
|
|
47
|
-
api.sendDynamicProps(environmentId, dynamicContextProps);
|
|
47
|
+
api.sendDynamicProps(environmentId, { dynamicContextProps });
|
|
48
48
|
api.fetchProjectSettings(environmentId)
|
|
49
49
|
.then((response) => {
|
|
50
50
|
if (!response)
|
|
@@ -40,7 +40,7 @@ const useFetchProjectSettings = ({ authToken, environmentId, maxRetries = 2, dyn
|
|
|
40
40
|
environmentId &&
|
|
41
41
|
retries < maxRetries) {
|
|
42
42
|
setLoading(true);
|
|
43
|
-
sendDynamicProps(environmentId, dynamicContextProps);
|
|
43
|
+
sendDynamicProps(environmentId, { dynamicContextProps });
|
|
44
44
|
fetchProjectSettings(environmentId)
|
|
45
45
|
.then((response) => {
|
|
46
46
|
if (!response)
|
|
@@ -21,7 +21,7 @@ var useWalletsConnectionState = require('../useWalletsConnectionState/useWallets
|
|
|
21
21
|
var createLinkedWalletsFromWalletOptions = require('./utils/createLinkedWalletsFromWalletOptions/createLinkedWalletsFromWalletOptions.cjs');
|
|
22
22
|
var reconnectSocialWallet = require('./reconnectSocialWallet.cjs');
|
|
23
23
|
|
|
24
|
-
const useWalletConnectors = ({ authMode, authToken, connectedWallets, wallets: availableWallets, multiWalletWidgetState, setDesktopUri, setMultiWalletWidgetState, setQrcodeUri, primaryWalletId, setPrimaryWalletId, user, }) => {
|
|
24
|
+
const useWalletConnectors = ({ authMode, authToken, connectedWallets, wallets: availableWallets, multiWalletWidgetState, setDesktopUri, setMultiWalletWidgetState, setQrcodeUri, primaryWalletId, setPrimaryWalletId, user, onboardingOnlyJwt, }) => {
|
|
25
25
|
const [showQrcodeModal, setShowQrcodeModal] = React.useState(false);
|
|
26
26
|
const linkedWallets = React.useMemo(() => {
|
|
27
27
|
if (!authToken) {
|
|
@@ -38,11 +38,12 @@ const useWalletConnectors = ({ authMode, authToken, connectedWallets, wallets: a
|
|
|
38
38
|
// This is because we want the first connected wallet to have events applied by useWalletEventListeners
|
|
39
39
|
// In connect-and-sign mode, events are only applied after the message is signed.
|
|
40
40
|
// This change ensures that events will be applied even before the signature.
|
|
41
|
-
|
|
41
|
+
// After signing the message user could be undefined in scenarios like OTP
|
|
42
|
+
if (authMode === 'connect-and-sign' && (user || onboardingOnlyJwt)) {
|
|
42
43
|
return linkedWallets;
|
|
43
44
|
}
|
|
44
45
|
return connectedWallets;
|
|
45
|
-
}, [authMode, connectedWallets, linkedWallets, user]);
|
|
46
|
+
}, [authMode, connectedWallets, linkedWallets, user, onboardingOnlyJwt]);
|
|
46
47
|
const { connectedWalletMap, computeConnectedStateForWallets, didConnectedStateLoad, } = useWalletsConnectionState.useWalletsConnectionState(walletsBasedOnAuthMode);
|
|
47
48
|
const wallets = React.useMemo(() => walletsBasedOnAuthMode.map((wallet) => (Object.assign(Object.assign({}, wallet), { connected: Boolean(connectedWalletMap[wallet.id]) }))), [connectedWalletMap, walletsBasedOnAuthMode]);
|
|
48
49
|
React.useEffect(() => {
|
|
@@ -14,6 +14,7 @@ type Props = {
|
|
|
14
14
|
setPrimaryWalletId: (walletId: string) => void;
|
|
15
15
|
primaryWalletId: string | undefined;
|
|
16
16
|
user?: UserProfile;
|
|
17
|
+
onboardingOnlyJwt?: string;
|
|
17
18
|
};
|
|
18
19
|
export interface UseWalletConnectors {
|
|
19
20
|
computeConnectedStateForWallets: () => Promise<void>;
|
|
@@ -28,5 +29,5 @@ export interface UseWalletConnectors {
|
|
|
28
29
|
walletConnectors: WalletConnector[];
|
|
29
30
|
wallets: Wallet[];
|
|
30
31
|
}
|
|
31
|
-
export declare const useWalletConnectors: ({ authMode, authToken, connectedWallets, wallets: availableWallets, multiWalletWidgetState, setDesktopUri, setMultiWalletWidgetState, setQrcodeUri, primaryWalletId, setPrimaryWalletId, user, }: Props) => UseWalletConnectors;
|
|
32
|
+
export declare const useWalletConnectors: ({ authMode, authToken, connectedWallets, wallets: availableWallets, multiWalletWidgetState, setDesktopUri, setMultiWalletWidgetState, setQrcodeUri, primaryWalletId, setPrimaryWalletId, user, onboardingOnlyJwt, }: Props) => UseWalletConnectors;
|
|
32
33
|
export {};
|
|
@@ -17,7 +17,7 @@ import { useWalletsConnectionState } from '../useWalletsConnectionState/useWalle
|
|
|
17
17
|
import { createLinkedWalletsFromWalletOptions } from './utils/createLinkedWalletsFromWalletOptions/createLinkedWalletsFromWalletOptions.js';
|
|
18
18
|
import { reconnectSocialWallet } from './reconnectSocialWallet.js';
|
|
19
19
|
|
|
20
|
-
const useWalletConnectors = ({ authMode, authToken, connectedWallets, wallets: availableWallets, multiWalletWidgetState, setDesktopUri, setMultiWalletWidgetState, setQrcodeUri, primaryWalletId, setPrimaryWalletId, user, }) => {
|
|
20
|
+
const useWalletConnectors = ({ authMode, authToken, connectedWallets, wallets: availableWallets, multiWalletWidgetState, setDesktopUri, setMultiWalletWidgetState, setQrcodeUri, primaryWalletId, setPrimaryWalletId, user, onboardingOnlyJwt, }) => {
|
|
21
21
|
const [showQrcodeModal, setShowQrcodeModal] = useState(false);
|
|
22
22
|
const linkedWallets = useMemo(() => {
|
|
23
23
|
if (!authToken) {
|
|
@@ -34,11 +34,12 @@ const useWalletConnectors = ({ authMode, authToken, connectedWallets, wallets: a
|
|
|
34
34
|
// This is because we want the first connected wallet to have events applied by useWalletEventListeners
|
|
35
35
|
// In connect-and-sign mode, events are only applied after the message is signed.
|
|
36
36
|
// This change ensures that events will be applied even before the signature.
|
|
37
|
-
|
|
37
|
+
// After signing the message user could be undefined in scenarios like OTP
|
|
38
|
+
if (authMode === 'connect-and-sign' && (user || onboardingOnlyJwt)) {
|
|
38
39
|
return linkedWallets;
|
|
39
40
|
}
|
|
40
41
|
return connectedWallets;
|
|
41
|
-
}, [authMode, connectedWallets, linkedWallets, user]);
|
|
42
|
+
}, [authMode, connectedWallets, linkedWallets, user, onboardingOnlyJwt]);
|
|
42
43
|
const { connectedWalletMap, computeConnectedStateForWallets, didConnectedStateLoad, } = useWalletsConnectionState(walletsBasedOnAuthMode);
|
|
43
44
|
const wallets = useMemo(() => walletsBasedOnAuthMode.map((wallet) => (Object.assign(Object.assign({}, wallet), { connected: Boolean(connectedWalletMap[wallet.id]) }))), [connectedWalletMap, walletsBasedOnAuthMode]);
|
|
44
45
|
useEffect(() => {
|
|
@@ -104,6 +104,9 @@ const WalletUsedView = () => {
|
|
|
104
104
|
// TODO refactor this block
|
|
105
105
|
try {
|
|
106
106
|
const publicWalletAddress = yield connectWallet(walletConnector);
|
|
107
|
+
if (!publicWalletAddress) {
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
107
110
|
const walletProvider = getWalletProvider.getWalletProvider(walletConnector);
|
|
108
111
|
const verifyArgs = yield getVerifyArgs.getVerifyArgs({
|
|
109
112
|
displayTermsOfService,
|
|
@@ -100,6 +100,9 @@ const WalletUsedView = () => {
|
|
|
100
100
|
// TODO refactor this block
|
|
101
101
|
try {
|
|
102
102
|
const publicWalletAddress = yield connectWallet(walletConnector);
|
|
103
|
+
if (!publicWalletAddress) {
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
103
106
|
const walletProvider = getWalletProvider(walletConnector);
|
|
104
107
|
const verifyArgs = yield getVerifyArgs({
|
|
105
108
|
displayTermsOfService,
|
package/src/lib/widgets/DynamicWidget/components/DynamicWidgetWallets/DynamicWidgetWallets.cjs
CHANGED
|
@@ -55,7 +55,7 @@ const DynamicWidgetWallets = () => {
|
|
|
55
55
|
'dynamic-widget-wallets__body--apply-height': !isEmpty,
|
|
56
56
|
}) }, { children: isEmpty ? (jsxRuntime.jsx(EmptyWallets.EmptyWallets, {})) : (jsxRuntime.jsx("div", Object.assign({ className: 'available-wallets__wallet-list' }, { children: secondaryWallets.map((wallet, index) => {
|
|
57
57
|
var _a;
|
|
58
|
-
return (jsxRuntime.jsx(Wallet.Wallet, { ens: (_a = getWalletVerifiedCredential.getWalletVerifiedCredential(wallet.address, user === null || user === void 0 ? void 0 : user.verifiedCredentials)) === null || _a === void 0 ? void 0 : _a.nameService, wallet: wallet }, wallet.id));
|
|
58
|
+
return (jsxRuntime.jsx(Wallet.Wallet, { ens: (_a = getWalletVerifiedCredential.getWalletVerifiedCredential(wallet.address, user === null || user === void 0 ? void 0 : user.verifiedCredentials, wallet.chain)) === null || _a === void 0 ? void 0 : _a.nameService, wallet: wallet }, wallet.id));
|
|
59
59
|
}) }))) }))] })));
|
|
60
60
|
};
|
|
61
61
|
|
package/src/lib/widgets/DynamicWidget/components/DynamicWidgetWallets/DynamicWidgetWallets.js
CHANGED
|
@@ -51,7 +51,7 @@ const DynamicWidgetWallets = () => {
|
|
|
51
51
|
'dynamic-widget-wallets__body--apply-height': !isEmpty,
|
|
52
52
|
}) }, { children: isEmpty ? (jsx(EmptyWallets, {})) : (jsx("div", Object.assign({ className: 'available-wallets__wallet-list' }, { children: secondaryWallets.map((wallet, index) => {
|
|
53
53
|
var _a;
|
|
54
|
-
return (jsx(Wallet, { ens: (_a = getWalletVerifiedCredential(wallet.address, user === null || user === void 0 ? void 0 : user.verifiedCredentials)) === null || _a === void 0 ? void 0 : _a.nameService, wallet: wallet }, wallet.id));
|
|
54
|
+
return (jsx(Wallet, { ens: (_a = getWalletVerifiedCredential(wallet.address, user === null || user === void 0 ? void 0 : user.verifiedCredentials, wallet.chain)) === null || _a === void 0 ? void 0 : _a.nameService, wallet: wallet }, wallet.id));
|
|
55
55
|
}) }))) }))] })));
|
|
56
56
|
};
|
|
57
57
|
|