@0xsequence/connect 5.0.8 → 5.1.0
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/dist/cjs/components/Connect/Connect.js +1 -1
- package/dist/cjs/components/Connect/Connect.js.map +1 -1
- package/dist/cjs/config/defaultConnectors.d.ts +3 -1
- package/dist/cjs/config/defaultConnectors.d.ts.map +1 -1
- package/dist/cjs/config/defaultConnectors.js +3 -0
- package/dist/cjs/config/defaultConnectors.js.map +1 -1
- package/dist/cjs/constants/version.d.ts +1 -1
- package/dist/cjs/constants/version.js +1 -1
- package/dist/cjs/hooks/useChain.d.ts +29 -1
- package/dist/cjs/hooks/useChain.d.ts.map +1 -1
- package/dist/cjs/hooks/useChain.js +27 -1
- package/dist/cjs/hooks/useChain.js.map +1 -1
- package/dist/cjs/hooks/useCheckWaasFeeOptions.d.ts +41 -0
- package/dist/cjs/hooks/useCheckWaasFeeOptions.d.ts.map +1 -1
- package/dist/cjs/hooks/useCheckWaasFeeOptions.js +41 -0
- package/dist/cjs/hooks/useCheckWaasFeeOptions.js.map +1 -1
- package/dist/cjs/hooks/useDirectEcosystemConnect.d.ts +32 -0
- package/dist/cjs/hooks/useDirectEcosystemConnect.d.ts.map +1 -1
- package/dist/cjs/hooks/useDirectEcosystemConnect.js +32 -0
- package/dist/cjs/hooks/useDirectEcosystemConnect.js.map +1 -1
- package/dist/cjs/hooks/useListAccounts.d.ts +39 -0
- package/dist/cjs/hooks/useListAccounts.d.ts.map +1 -0
- package/dist/cjs/hooks/useListAccounts.js +62 -0
- package/dist/cjs/hooks/useListAccounts.js.map +1 -0
- package/dist/cjs/hooks/useOpenConnectModal.d.ts +1 -1
- package/dist/cjs/hooks/useOpenConnectModal.js +1 -1
- package/dist/cjs/hooks/useProjectAccessKey.d.ts +17 -0
- package/dist/cjs/hooks/useProjectAccessKey.d.ts.map +1 -1
- package/dist/cjs/hooks/useProjectAccessKey.js +17 -0
- package/dist/cjs/hooks/useProjectAccessKey.js.map +1 -1
- package/dist/cjs/hooks/useSignInEmail.d.ts +20 -0
- package/dist/cjs/hooks/useSignInEmail.d.ts.map +1 -1
- package/dist/cjs/hooks/useSignInEmail.js +20 -0
- package/dist/cjs/hooks/useSignInEmail.js.map +1 -1
- package/dist/cjs/hooks/useTheme.d.ts +26 -0
- package/dist/cjs/hooks/useTheme.d.ts.map +1 -1
- package/dist/cjs/hooks/useTheme.js +26 -0
- package/dist/cjs/hooks/useTheme.js.map +1 -1
- package/dist/cjs/hooks/useWaasConfirmationHandler.d.ts +39 -0
- package/dist/cjs/hooks/useWaasConfirmationHandler.d.ts.map +1 -1
- package/dist/cjs/hooks/useWaasConfirmationHandler.js +39 -0
- package/dist/cjs/hooks/useWaasConfirmationHandler.js.map +1 -1
- package/dist/cjs/hooks/useWaasEmailAuth.d.ts +46 -0
- package/dist/cjs/hooks/useWaasEmailAuth.d.ts.map +1 -1
- package/dist/cjs/hooks/useWaasEmailAuth.js +46 -0
- package/dist/cjs/hooks/useWaasEmailAuth.js.map +1 -1
- package/dist/cjs/hooks/useWaasEmailConflict.d.ts +39 -0
- package/dist/cjs/hooks/useWaasEmailConflict.d.ts.map +1 -1
- package/dist/cjs/hooks/useWaasEmailConflict.js +39 -0
- package/dist/cjs/hooks/useWaasEmailConflict.js.map +1 -1
- package/dist/cjs/hooks/useWaasGetLinkedWalletsSignature.d.ts +60 -0
- package/dist/cjs/hooks/useWaasGetLinkedWalletsSignature.d.ts.map +1 -1
- package/dist/cjs/hooks/useWaasGetLinkedWalletsSignature.js +50 -0
- package/dist/cjs/hooks/useWaasGetLinkedWalletsSignature.js.map +1 -1
- package/dist/cjs/hooks/useWaasLinkWallet.d.ts +57 -0
- package/dist/cjs/hooks/useWaasLinkWallet.d.ts.map +1 -1
- package/dist/cjs/hooks/useWaasLinkWallet.js +42 -0
- package/dist/cjs/hooks/useWaasLinkWallet.js.map +1 -1
- package/dist/cjs/hooks/useWalletSettings.d.ts +28 -0
- package/dist/cjs/hooks/useWalletSettings.d.ts.map +1 -1
- package/dist/cjs/hooks/useWalletSettings.js +28 -0
- package/dist/cjs/hooks/useWalletSettings.js.map +1 -1
- package/dist/cjs/hooks/useWallets.d.ts.map +1 -1
- package/dist/cjs/hooks/useWallets.js +17 -1
- package/dist/cjs/hooks/useWallets.js.map +1 -1
- package/dist/cjs/index.d.ts +2 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/components/Connect/Connect.js +1 -1
- package/dist/esm/components/Connect/Connect.js.map +1 -1
- package/dist/esm/config/defaultConnectors.d.ts +3 -1
- package/dist/esm/config/defaultConnectors.d.ts.map +1 -1
- package/dist/esm/config/defaultConnectors.js +3 -0
- package/dist/esm/config/defaultConnectors.js.map +1 -1
- package/dist/esm/constants/version.d.ts +1 -1
- package/dist/esm/constants/version.js +1 -1
- package/dist/esm/hooks/useChain.d.ts +29 -1
- package/dist/esm/hooks/useChain.d.ts.map +1 -1
- package/dist/esm/hooks/useChain.js +27 -1
- package/dist/esm/hooks/useChain.js.map +1 -1
- package/dist/esm/hooks/useCheckWaasFeeOptions.d.ts +41 -0
- package/dist/esm/hooks/useCheckWaasFeeOptions.d.ts.map +1 -1
- package/dist/esm/hooks/useCheckWaasFeeOptions.js +41 -0
- package/dist/esm/hooks/useCheckWaasFeeOptions.js.map +1 -1
- package/dist/esm/hooks/useDirectEcosystemConnect.d.ts +32 -0
- package/dist/esm/hooks/useDirectEcosystemConnect.d.ts.map +1 -1
- package/dist/esm/hooks/useDirectEcosystemConnect.js +32 -0
- package/dist/esm/hooks/useDirectEcosystemConnect.js.map +1 -1
- package/dist/esm/hooks/useListAccounts.d.ts +39 -0
- package/dist/esm/hooks/useListAccounts.d.ts.map +1 -0
- package/dist/esm/hooks/useListAccounts.js +58 -0
- package/dist/esm/hooks/useListAccounts.js.map +1 -0
- package/dist/esm/hooks/useOpenConnectModal.d.ts +1 -1
- package/dist/esm/hooks/useOpenConnectModal.js +1 -1
- package/dist/esm/hooks/useProjectAccessKey.d.ts +17 -0
- package/dist/esm/hooks/useProjectAccessKey.d.ts.map +1 -1
- package/dist/esm/hooks/useProjectAccessKey.js +17 -0
- package/dist/esm/hooks/useProjectAccessKey.js.map +1 -1
- package/dist/esm/hooks/useSignInEmail.d.ts +20 -0
- package/dist/esm/hooks/useSignInEmail.d.ts.map +1 -1
- package/dist/esm/hooks/useSignInEmail.js +20 -0
- package/dist/esm/hooks/useSignInEmail.js.map +1 -1
- package/dist/esm/hooks/useTheme.d.ts +26 -0
- package/dist/esm/hooks/useTheme.d.ts.map +1 -1
- package/dist/esm/hooks/useTheme.js +26 -0
- package/dist/esm/hooks/useTheme.js.map +1 -1
- package/dist/esm/hooks/useWaasConfirmationHandler.d.ts +39 -0
- package/dist/esm/hooks/useWaasConfirmationHandler.d.ts.map +1 -1
- package/dist/esm/hooks/useWaasConfirmationHandler.js +39 -0
- package/dist/esm/hooks/useWaasConfirmationHandler.js.map +1 -1
- package/dist/esm/hooks/useWaasEmailAuth.d.ts +46 -0
- package/dist/esm/hooks/useWaasEmailAuth.d.ts.map +1 -1
- package/dist/esm/hooks/useWaasEmailAuth.js +46 -0
- package/dist/esm/hooks/useWaasEmailAuth.js.map +1 -1
- package/dist/esm/hooks/useWaasEmailConflict.d.ts +39 -0
- package/dist/esm/hooks/useWaasEmailConflict.d.ts.map +1 -1
- package/dist/esm/hooks/useWaasEmailConflict.js +39 -0
- package/dist/esm/hooks/useWaasEmailConflict.js.map +1 -1
- package/dist/esm/hooks/useWaasGetLinkedWalletsSignature.d.ts +60 -0
- package/dist/esm/hooks/useWaasGetLinkedWalletsSignature.d.ts.map +1 -1
- package/dist/esm/hooks/useWaasGetLinkedWalletsSignature.js +50 -0
- package/dist/esm/hooks/useWaasGetLinkedWalletsSignature.js.map +1 -1
- package/dist/esm/hooks/useWaasLinkWallet.d.ts +57 -0
- package/dist/esm/hooks/useWaasLinkWallet.d.ts.map +1 -1
- package/dist/esm/hooks/useWaasLinkWallet.js +42 -0
- package/dist/esm/hooks/useWaasLinkWallet.js.map +1 -1
- package/dist/esm/hooks/useWalletSettings.d.ts +28 -0
- package/dist/esm/hooks/useWalletSettings.d.ts.map +1 -1
- package/dist/esm/hooks/useWalletSettings.js +28 -0
- package/dist/esm/hooks/useWalletSettings.js.map +1 -1
- package/dist/esm/hooks/useWallets.d.ts.map +1 -1
- package/dist/esm/hooks/useWallets.js +17 -1
- package/dist/esm/hooks/useWallets.js.map +1 -1
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/package.json +3 -3
|
@@ -2,6 +2,23 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.useProjectAccessKey = void 0;
|
|
4
4
|
const ConnectConfig_js_1 = require("../contexts/ConnectConfig.js");
|
|
5
|
+
/**
|
|
6
|
+
* Hook to access the project access key from the Sequence Connect configuration.
|
|
7
|
+
*
|
|
8
|
+
* The project access key is a required configuration parameter used to authenticate and
|
|
9
|
+
* identify your application with Sequence services. It is used across various SDK features
|
|
10
|
+
* including marketplace integration and wallet connections.
|
|
11
|
+
*
|
|
12
|
+
* @see {@link https://docs.sequence.xyz/sdk/web/hooks/useProjectAccessKey} for more detailed documentation.
|
|
13
|
+
*
|
|
14
|
+
* @returns {string} The project access key configured for the application
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```tsx
|
|
18
|
+
* const projectAccessKey = useProjectAccessKey()
|
|
19
|
+
* const marketplaceClient = new MarketplaceIndexer(apiUrl, projectAccessKey)
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
5
22
|
const useProjectAccessKey = () => {
|
|
6
23
|
const { projectAccessKey } = (0, ConnectConfig_js_1.useConnectConfigContext)();
|
|
7
24
|
return projectAccessKey;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useProjectAccessKey.js","sourceRoot":"","sources":["../../../src/hooks/useProjectAccessKey.ts"],"names":[],"mappings":";;;AAAA,mEAAsE;
|
|
1
|
+
{"version":3,"file":"useProjectAccessKey.js","sourceRoot":"","sources":["../../../src/hooks/useProjectAccessKey.ts"],"names":[],"mappings":";;;AAAA,mEAAsE;AAEtE;;;;;;;;;;;;;;;;GAgBG;AACI,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAA,0CAAuB,GAAE,CAAA;IAEtD,OAAO,gBAAgB,CAAA;AACzB,CAAC,CAAA;AAJY,QAAA,mBAAmB,uBAI/B"}
|
|
@@ -1,2 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hook to retrieve the email address associated with the currently connected wallet.
|
|
3
|
+
*
|
|
4
|
+
* This hook monitors the connection status and retrieves the stored email address when a wallet
|
|
5
|
+
* is connected. It works with both WaaS (Wallet-as-a-Service) and universal wallet types.
|
|
6
|
+
* The email is cleared when the wallet is disconnected.
|
|
7
|
+
*
|
|
8
|
+
* @see {@link https://docs.sequence.xyz/sdk/web/hooks/useSignInEmail} for more detailed documentation.
|
|
9
|
+
*
|
|
10
|
+
* @returns {string | null} The email address of the connected wallet user, or null if not connected
|
|
11
|
+
* or no email is associated
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```tsx
|
|
15
|
+
* const email = useSignInEmail()
|
|
16
|
+
* if (email) {
|
|
17
|
+
* console.log('Connected user email:', email)
|
|
18
|
+
* }
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
1
21
|
export declare const useSignInEmail: () => string | null;
|
|
2
22
|
//# sourceMappingURL=useSignInEmail.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSignInEmail.d.ts","sourceRoot":"","sources":["../../../src/hooks/useSignInEmail.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,cAAc,qBAoB1B,CAAA"}
|
|
1
|
+
{"version":3,"file":"useSignInEmail.d.ts","sourceRoot":"","sources":["../../../src/hooks/useSignInEmail.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,cAAc,qBAoB1B,CAAA"}
|
|
@@ -5,6 +5,26 @@ exports.useSignInEmail = void 0;
|
|
|
5
5
|
const react_1 = require("react");
|
|
6
6
|
const wagmi_1 = require("wagmi");
|
|
7
7
|
const localStorage_1 = require("../constants/localStorage");
|
|
8
|
+
/**
|
|
9
|
+
* Hook to retrieve the email address associated with the currently connected wallet.
|
|
10
|
+
*
|
|
11
|
+
* This hook monitors the connection status and retrieves the stored email address when a wallet
|
|
12
|
+
* is connected. It works with both WaaS (Wallet-as-a-Service) and universal wallet types.
|
|
13
|
+
* The email is cleared when the wallet is disconnected.
|
|
14
|
+
*
|
|
15
|
+
* @see {@link https://docs.sequence.xyz/sdk/web/hooks/useSignInEmail} for more detailed documentation.
|
|
16
|
+
*
|
|
17
|
+
* @returns {string | null} The email address of the connected wallet user, or null if not connected
|
|
18
|
+
* or no email is associated
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```tsx
|
|
22
|
+
* const email = useSignInEmail()
|
|
23
|
+
* if (email) {
|
|
24
|
+
* console.log('Connected user email:', email)
|
|
25
|
+
* }
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
8
28
|
const useSignInEmail = () => {
|
|
9
29
|
const { storage } = (0, wagmi_1.useConfig)();
|
|
10
30
|
const { isConnected } = (0, wagmi_1.useAccount)();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSignInEmail.js","sourceRoot":"","sources":["../../../src/hooks/useSignInEmail.ts"],"names":[],"mappings":";AAAA,YAAY,CAAA;;;AAEZ,iCAA2C;AAC3C,iCAA6C;AAE7C,4DAA2D;
|
|
1
|
+
{"version":3,"file":"useSignInEmail.js","sourceRoot":"","sources":["../../../src/hooks/useSignInEmail.ts"],"names":[],"mappings":";AAAA,YAAY,CAAA;;;AAEZ,iCAA2C;AAC3C,iCAA6C;AAE7C,4DAA2D;AAE3D;;;;;;;;;;;;;;;;;;;GAmBG;AACI,MAAM,cAAc,GAAG,GAAG,EAAE;IACjC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,iBAAS,GAAE,CAAA;IAC/B,MAAM,EAAE,WAAW,EAAE,GAAG,IAAA,kBAAU,GAAE,CAAA;IACpC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAgB,IAAI,CAAC,CAAA;IAEvD,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE;QAC5B,MAAM,WAAW,GAAG,MAAM,OAAO,EAAE,OAAO,CAAC,8BAAe,CAAC,eAAe,CAAC,CAAA;QAE3E,QAAQ,CAAC,WAAqB,CAAC,CAAA;IACjC,CAAC,CAAA;IAED,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,WAAW,EAAE,CAAC;YAChB,UAAU,EAAE,CAAA;QACd,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CAAC,CAAA;QAChB,CAAC;IACH,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAA;IAEjB,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AApBY,QAAA,cAAc,kBAoB1B"}
|
|
@@ -1,3 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hook to access and modify the theme and modal position settings.
|
|
3
|
+
*
|
|
4
|
+
* This hook provides access to the current theme (light/dark) and modal position settings,
|
|
5
|
+
* along with functions to update these values. The modal position can be set to various
|
|
6
|
+
* predefined positions on the screen.
|
|
7
|
+
*
|
|
8
|
+
* @see {@link https://docs.sequence.xyz/sdk/web/hooks/useTheme} for more detailed documentation.
|
|
9
|
+
*
|
|
10
|
+
* @returns {Object} An object containing:
|
|
11
|
+
* - `theme` - The current theme setting
|
|
12
|
+
* - `setTheme` - Function to update the theme
|
|
13
|
+
* - `position` - The current modal position ('center', 'top-right', 'bottom-left', etc.)
|
|
14
|
+
* - `setPosition` - Function to update the modal position
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```tsx
|
|
18
|
+
* const { theme, setTheme, position, setPosition } = useTheme()
|
|
19
|
+
*
|
|
20
|
+
* // Change theme
|
|
21
|
+
* setTheme('dark')
|
|
22
|
+
*
|
|
23
|
+
* // Update modal position
|
|
24
|
+
* setPosition('top-right')
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
1
27
|
export declare const useTheme: () => {
|
|
2
28
|
setTheme: import("react").Dispatch<import("react").SetStateAction<import("@0xsequence/design-system").Theme>>;
|
|
3
29
|
theme: import("@0xsequence/design-system").Theme;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTheme.d.ts","sourceRoot":"","sources":["../../../src/hooks/useTheme.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ;;;;;CASpB,CAAA"}
|
|
1
|
+
{"version":3,"file":"useTheme.d.ts","sourceRoot":"","sources":["../../../src/hooks/useTheme.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,QAAQ;;;;;CASpB,CAAA"}
|
|
@@ -2,6 +2,32 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.useTheme = void 0;
|
|
4
4
|
const Theme_1 = require("../contexts/Theme");
|
|
5
|
+
/**
|
|
6
|
+
* Hook to access and modify the theme and modal position settings.
|
|
7
|
+
*
|
|
8
|
+
* This hook provides access to the current theme (light/dark) and modal position settings,
|
|
9
|
+
* along with functions to update these values. The modal position can be set to various
|
|
10
|
+
* predefined positions on the screen.
|
|
11
|
+
*
|
|
12
|
+
* @see {@link https://docs.sequence.xyz/sdk/web/hooks/useTheme} for more detailed documentation.
|
|
13
|
+
*
|
|
14
|
+
* @returns {Object} An object containing:
|
|
15
|
+
* - `theme` - The current theme setting
|
|
16
|
+
* - `setTheme` - Function to update the theme
|
|
17
|
+
* - `position` - The current modal position ('center', 'top-right', 'bottom-left', etc.)
|
|
18
|
+
* - `setPosition` - Function to update the modal position
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```tsx
|
|
22
|
+
* const { theme, setTheme, position, setPosition } = useTheme()
|
|
23
|
+
*
|
|
24
|
+
* // Change theme
|
|
25
|
+
* setTheme('dark')
|
|
26
|
+
*
|
|
27
|
+
* // Update modal position
|
|
28
|
+
* setPosition('top-right')
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
5
31
|
const useTheme = () => {
|
|
6
32
|
const { setTheme, theme, position, setPosition } = (0, Theme_1.useThemeContext)();
|
|
7
33
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTheme.js","sourceRoot":"","sources":["../../../src/hooks/useTheme.ts"],"names":[],"mappings":";;;AAAA,6CAAmD;
|
|
1
|
+
{"version":3,"file":"useTheme.js","sourceRoot":"","sources":["../../../src/hooks/useTheme.ts"],"names":[],"mappings":";;;AAAA,6CAAmD;AAEnD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACI,MAAM,QAAQ,GAAG,GAAG,EAAE;IAC3B,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAA,uBAAe,GAAE,CAAA;IAEpE,OAAO;QACL,QAAQ;QACR,KAAK;QACL,QAAQ;QACR,WAAW;KACZ,CAAA;AACH,CAAC,CAAA;AATY,QAAA,QAAQ,YASpB"}
|
|
@@ -6,5 +6,44 @@ export type WaasRequestConfirmation = {
|
|
|
6
6
|
txs?: commons.transaction.Transaction[];
|
|
7
7
|
chainId?: number;
|
|
8
8
|
};
|
|
9
|
+
/**
|
|
10
|
+
* Hook to handle transaction and message signing confirmations for WaaS (Wallet-as-a-Service) connections.
|
|
11
|
+
*
|
|
12
|
+
* This hook sets up confirmation handlers for signing transactions and messages when using a WaaS connector.
|
|
13
|
+
* It manages the state of pending confirmations and provides functions to confirm or reject signing requests.
|
|
14
|
+
*
|
|
15
|
+
* @param waasConnector - The WaaS connector instance to handle confirmations for (optional)
|
|
16
|
+
*
|
|
17
|
+
* @returns A tuple containing:
|
|
18
|
+
* - [0] {@link WaasRequestConfirmation} | undefined - The current pending request confirmation info or undefined if none
|
|
19
|
+
* - [1] `(id: string) => void` - Function to confirm a pending request by ID
|
|
20
|
+
* - [2] `(id: string) => void` - Function to reject a pending request by ID
|
|
21
|
+
*
|
|
22
|
+
* The {@link WaasRequestConfirmation} object contains:
|
|
23
|
+
* - `id` - Unique identifier for the request
|
|
24
|
+
* - `type` - Either 'signTransaction' or 'signMessage'
|
|
25
|
+
* - `message?` - Optional message to sign (for signMessage requests)
|
|
26
|
+
* - `txs?` - Optional array of transactions (for signTransaction requests)
|
|
27
|
+
* - `chainId?` - Optional chain ID for the request
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```tsx
|
|
31
|
+
* const [
|
|
32
|
+
* pendingRequestConfirmation,
|
|
33
|
+
* confirmPendingRequest,
|
|
34
|
+
* rejectPendingRequest
|
|
35
|
+
* ] = useWaasConfirmationHandler(waasConnector)
|
|
36
|
+
*
|
|
37
|
+
* // When user confirms the request
|
|
38
|
+
* if (pendingRequestConfirmation) {
|
|
39
|
+
* confirmPendingRequest(pendingRequestConfirmation.id)
|
|
40
|
+
* }
|
|
41
|
+
*
|
|
42
|
+
* // When user rejects the request
|
|
43
|
+
* if (pendingRequestConfirmation) {
|
|
44
|
+
* rejectPendingRequest(pendingRequestConfirmation.id)
|
|
45
|
+
* }
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
9
48
|
export declare function useWaasConfirmationHandler(waasConnector?: any): [WaasRequestConfirmation | undefined, (id: string) => void, (id: string) => void];
|
|
10
49
|
//# sourceMappingURL=useWaasConfirmationHandler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWaasConfirmationHandler.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWaasConfirmationHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAO1C,MAAM,MAAM,uBAAuB,GAAG;IACpC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,iBAAiB,GAAG,aAAa,CAAA;IACvC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,CAAA;IACvC,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,wBAAgB,0BAA0B,CACxC,aAAa,CAAC,EAAE,GAAG,GAClB,CAAC,uBAAuB,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC,CAkDnF"}
|
|
1
|
+
{"version":3,"file":"useWaasConfirmationHandler.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWaasConfirmationHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAO1C,MAAM,MAAM,uBAAuB,GAAG;IACpC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,iBAAiB,GAAG,aAAa,CAAA;IACvC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,CAAA;IACvC,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAgB,0BAA0B,CACxC,aAAa,CAAC,EAAE,GAAG,GAClB,CAAC,uBAAuB,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC,CAkDnF"}
|
|
@@ -4,6 +4,45 @@ exports.useWaasConfirmationHandler = useWaasConfirmationHandler;
|
|
|
4
4
|
const react_1 = require("react");
|
|
5
5
|
const deferred_1 = require("../utils/deferred");
|
|
6
6
|
let _pendingConfirmation;
|
|
7
|
+
/**
|
|
8
|
+
* Hook to handle transaction and message signing confirmations for WaaS (Wallet-as-a-Service) connections.
|
|
9
|
+
*
|
|
10
|
+
* This hook sets up confirmation handlers for signing transactions and messages when using a WaaS connector.
|
|
11
|
+
* It manages the state of pending confirmations and provides functions to confirm or reject signing requests.
|
|
12
|
+
*
|
|
13
|
+
* @param waasConnector - The WaaS connector instance to handle confirmations for (optional)
|
|
14
|
+
*
|
|
15
|
+
* @returns A tuple containing:
|
|
16
|
+
* - [0] {@link WaasRequestConfirmation} | undefined - The current pending request confirmation info or undefined if none
|
|
17
|
+
* - [1] `(id: string) => void` - Function to confirm a pending request by ID
|
|
18
|
+
* - [2] `(id: string) => void` - Function to reject a pending request by ID
|
|
19
|
+
*
|
|
20
|
+
* The {@link WaasRequestConfirmation} object contains:
|
|
21
|
+
* - `id` - Unique identifier for the request
|
|
22
|
+
* - `type` - Either 'signTransaction' or 'signMessage'
|
|
23
|
+
* - `message?` - Optional message to sign (for signMessage requests)
|
|
24
|
+
* - `txs?` - Optional array of transactions (for signTransaction requests)
|
|
25
|
+
* - `chainId?` - Optional chain ID for the request
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```tsx
|
|
29
|
+
* const [
|
|
30
|
+
* pendingRequestConfirmation,
|
|
31
|
+
* confirmPendingRequest,
|
|
32
|
+
* rejectPendingRequest
|
|
33
|
+
* ] = useWaasConfirmationHandler(waasConnector)
|
|
34
|
+
*
|
|
35
|
+
* // When user confirms the request
|
|
36
|
+
* if (pendingRequestConfirmation) {
|
|
37
|
+
* confirmPendingRequest(pendingRequestConfirmation.id)
|
|
38
|
+
* }
|
|
39
|
+
*
|
|
40
|
+
* // When user rejects the request
|
|
41
|
+
* if (pendingRequestConfirmation) {
|
|
42
|
+
* rejectPendingRequest(pendingRequestConfirmation.id)
|
|
43
|
+
* }
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
7
46
|
function useWaasConfirmationHandler(waasConnector) {
|
|
8
47
|
const [pendingRequestConfirmation, setPendingRequestConfirmation] = (0, react_1.useState)();
|
|
9
48
|
function confirmPendingRequest(id) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWaasConfirmationHandler.js","sourceRoot":"","sources":["../../../src/hooks/useWaasConfirmationHandler.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"useWaasConfirmationHandler.js","sourceRoot":"","sources":["../../../src/hooks/useWaasConfirmationHandler.ts"],"names":[],"mappings":";;AAsDA,gEAoDC;AAzGD,iCAA2C;AAE3C,gDAA4C;AAE5C,IAAI,oBAA8E,CAAA;AAUlF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,SAAgB,0BAA0B,CACxC,aAAmB;IAEnB,MAAM,CAAC,0BAA0B,EAAE,6BAA6B,CAAC,GAAG,IAAA,gBAAQ,GAAuC,CAAA;IAEnH,SAAS,qBAAqB,CAAC,EAAU;QACvC,oBAAoB,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACtD,6BAA6B,CAAC,SAAS,CAAC,CAAA;QACxC,oBAAoB,GAAG,SAAS,CAAA;IAClC,CAAC;IAED,SAAS,oBAAoB,CAAC,EAAU;QACtC,oBAAoB,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAA;QACvD,6BAA6B,CAAC,SAAS,CAAC,CAAA;QACxC,oBAAoB,GAAG,SAAS,CAAA;IAClC,CAAC;IAED,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,KAAK,UAAU,KAAK;YAClB,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,OAAM;YACR,CAAC;YAED,MAAM,YAAY,GAAG,aAAa,CAAC,oBAAoB,CAAA;YAEvD,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,OAAM;YACR,CAAC;YAED,YAAY,CAAC,0BAA0B,GAAG;gBACxC,6BAA6B,CAC3B,EAAU,EACV,GAAsC,EACtC,OAAe;oBAEf,MAAM,OAAO,GAAG,IAAI,mBAAQ,EAAsC,CAAA;oBAClE,6BAA6B,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;oBAC9G,oBAAoB,GAAG,OAAO,CAAA;oBAC9B,OAAO,OAAO,CAAC,OAAO,CAAA;gBACxB,CAAC;gBACD,yBAAyB,CAAC,EAAU,EAAE,OAAe,EAAE,OAAe;oBACpE,MAAM,OAAO,GAAG,IAAI,mBAAQ,EAAsC,CAAA;oBAClE,6BAA6B,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAA;oBAC5E,oBAAoB,GAAG,OAAO,CAAA;oBAC9B,OAAO,OAAO,CAAC,OAAO,CAAA;gBACxB,CAAC;aACF,CAAA;QACH,CAAC;QACD,KAAK,EAAE,CAAA;IACT,CAAC,CAAC,CAAA;IAEF,OAAO,CAAC,0BAA0B,EAAE,qBAAqB,EAAE,oBAAoB,CAAC,CAAA;AAClF,CAAC"}
|
|
@@ -8,6 +8,52 @@ interface SuccessResultV2 {
|
|
|
8
8
|
version: 2;
|
|
9
9
|
signInResponse: SignInResponse;
|
|
10
10
|
}
|
|
11
|
+
/**
|
|
12
|
+
* Hook to handle email-based authentication flow for WaaS (Wallet-as-a-Service).
|
|
13
|
+
*
|
|
14
|
+
* This hook manages the complete email authentication process, including:
|
|
15
|
+
* - Initiating email authentication
|
|
16
|
+
* - Handling verification code submission
|
|
17
|
+
* - Managing loading and error states
|
|
18
|
+
* - Supporting both v1 (idToken) and v2 (SignInResponse) authentication formats
|
|
19
|
+
*
|
|
20
|
+
* @param {ExtendedConnector} [params.connector] - The WaaS connector to use for authentication.
|
|
21
|
+
* Optional because the user might not have selected a connector yet.
|
|
22
|
+
* @param {Function} params.onSuccess - Callback function called when authentication succeeds.
|
|
23
|
+
* Receives either a v1 result (with idToken) or v2 result (with SignInResponse).
|
|
24
|
+
*
|
|
25
|
+
* @returns {Object} An object containing:
|
|
26
|
+
* - `inProgress` - Whether authentication is currently in progress
|
|
27
|
+
* - `loading` - Whether a specific authentication operation is loading
|
|
28
|
+
* - `error` - Any error that occurred during authentication
|
|
29
|
+
* - `initiateAuth` - Function to start the email authentication process
|
|
30
|
+
* - `sendChallengeAnswer` - Function to submit the verification code
|
|
31
|
+
* - `cancel` - Function to cancel the authentication process
|
|
32
|
+
* - `resetError` - Function to clear any error state
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```tsx
|
|
36
|
+
* const {
|
|
37
|
+
* inProgress,
|
|
38
|
+
* loading,
|
|
39
|
+
* error,
|
|
40
|
+
* initiateAuth,
|
|
41
|
+
* sendChallengeAnswer,
|
|
42
|
+
* resetError
|
|
43
|
+
* } = useEmailAuth({
|
|
44
|
+
* connector: emailConnector,
|
|
45
|
+
* onSuccess: async (result) => {
|
|
46
|
+
* if ('signInResponse' in result) {
|
|
47
|
+
* // Handle v2 authentication
|
|
48
|
+
* await storage.setItem('email', result.signInResponse.email)
|
|
49
|
+
* } else {
|
|
50
|
+
* // Handle v1 authentication
|
|
51
|
+
* await storage.setItem('idToken', result.idToken)
|
|
52
|
+
* }
|
|
53
|
+
* }
|
|
54
|
+
* })
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
11
57
|
export declare function useEmailAuth({ connector, onSuccess }: {
|
|
12
58
|
connector?: ExtendedConnector;
|
|
13
59
|
onSuccess: (result: SuccessResultV1 | SuccessResultV2) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWaasEmailAuth.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWaasEmailAuth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAK/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAE5C,UAAU,eAAe;IACvB,OAAO,EAAE,CAAC,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,UAAU,eAAe;IACvB,OAAO,EAAE,CAAC,CAAA;IACV,cAAc,EAAE,cAAc,CAAA;CAC/B;AAED,wBAAgB,YAAY,CAAC,EAC3B,SAAS,EACT,SAAS,EACV,EAAE;IACD,SAAS,CAAC,EAAE,iBAAiB,CAAA;IAC7B,SAAS,EAAE,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe,KAAK,IAAI,CAAA;CAC/D;;;;2BAYkC,MAAM;mCACE,MAAM;;;;;;;0BAmBZ,MAAM;kCA2BE,MAAM;;;EAwClD"}
|
|
1
|
+
{"version":3,"file":"useWaasEmailAuth.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWaasEmailAuth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAK/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAE5C,UAAU,eAAe;IACvB,OAAO,EAAE,CAAC,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,UAAU,eAAe;IACvB,OAAO,EAAE,CAAC,CAAA;IACV,cAAc,EAAE,cAAc,CAAA;CAC/B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,wBAAgB,YAAY,CAAC,EAC3B,SAAS,EACT,SAAS,EACV,EAAE;IACD,SAAS,CAAC,EAAE,iBAAiB,CAAA;IAC7B,SAAS,EAAE,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe,KAAK,IAAI,CAAA;CAC/D;;;;2BAYkC,MAAM;mCACE,MAAM;;;;;;;0BAmBZ,MAAM;kCA2BE,MAAM;;;EAwClD"}
|
|
@@ -4,6 +4,52 @@ exports.useEmailAuth = useEmailAuth;
|
|
|
4
4
|
const react_1 = require("react");
|
|
5
5
|
// import { EmailWaasOptions } from '../connectors/email/emailWaas'
|
|
6
6
|
const wagmiConnectors_1 = require("../connectors/wagmiConnectors");
|
|
7
|
+
/**
|
|
8
|
+
* Hook to handle email-based authentication flow for WaaS (Wallet-as-a-Service).
|
|
9
|
+
*
|
|
10
|
+
* This hook manages the complete email authentication process, including:
|
|
11
|
+
* - Initiating email authentication
|
|
12
|
+
* - Handling verification code submission
|
|
13
|
+
* - Managing loading and error states
|
|
14
|
+
* - Supporting both v1 (idToken) and v2 (SignInResponse) authentication formats
|
|
15
|
+
*
|
|
16
|
+
* @param {ExtendedConnector} [params.connector] - The WaaS connector to use for authentication.
|
|
17
|
+
* Optional because the user might not have selected a connector yet.
|
|
18
|
+
* @param {Function} params.onSuccess - Callback function called when authentication succeeds.
|
|
19
|
+
* Receives either a v1 result (with idToken) or v2 result (with SignInResponse).
|
|
20
|
+
*
|
|
21
|
+
* @returns {Object} An object containing:
|
|
22
|
+
* - `inProgress` - Whether authentication is currently in progress
|
|
23
|
+
* - `loading` - Whether a specific authentication operation is loading
|
|
24
|
+
* - `error` - Any error that occurred during authentication
|
|
25
|
+
* - `initiateAuth` - Function to start the email authentication process
|
|
26
|
+
* - `sendChallengeAnswer` - Function to submit the verification code
|
|
27
|
+
* - `cancel` - Function to cancel the authentication process
|
|
28
|
+
* - `resetError` - Function to clear any error state
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```tsx
|
|
32
|
+
* const {
|
|
33
|
+
* inProgress,
|
|
34
|
+
* loading,
|
|
35
|
+
* error,
|
|
36
|
+
* initiateAuth,
|
|
37
|
+
* sendChallengeAnswer,
|
|
38
|
+
* resetError
|
|
39
|
+
* } = useEmailAuth({
|
|
40
|
+
* connector: emailConnector,
|
|
41
|
+
* onSuccess: async (result) => {
|
|
42
|
+
* if ('signInResponse' in result) {
|
|
43
|
+
* // Handle v2 authentication
|
|
44
|
+
* await storage.setItem('email', result.signInResponse.email)
|
|
45
|
+
* } else {
|
|
46
|
+
* // Handle v1 authentication
|
|
47
|
+
* await storage.setItem('idToken', result.idToken)
|
|
48
|
+
* }
|
|
49
|
+
* }
|
|
50
|
+
* })
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
7
53
|
function useEmailAuth({ connector, onSuccess }) {
|
|
8
54
|
const [_email, setEmail] = (0, react_1.useState)('');
|
|
9
55
|
const [error, setError] = (0, react_1.useState)();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWaasEmailAuth.js","sourceRoot":"","sources":["../../../src/hooks/useWaasEmailAuth.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"useWaasEmailAuth.js","sourceRoot":"","sources":["../../../src/hooks/useWaasEmailAuth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Represents formatted email conflict information returned by the hook.
|
|
3
|
+
* This is a user-friendly version of the EmailConflictInfo from the WaaS service.
|
|
4
|
+
*/
|
|
1
5
|
export type FormattedEmailConflictInfo = {
|
|
6
|
+
/** The email address that caused the conflict */
|
|
2
7
|
email: string;
|
|
8
|
+
/** User-friendly description of the account type (e.g., 'Google login', 'Email login') */
|
|
3
9
|
type: string;
|
|
4
10
|
};
|
|
11
|
+
/**
|
|
12
|
+
* Hook to handle email conflict detection and resolution for WaaS (Wallet-as-a-Service) authentication.
|
|
13
|
+
*
|
|
14
|
+
* This hook monitors all WaaS connectors for email conflicts that occur during sign-in attempts.
|
|
15
|
+
* A conflict happens when a user tries to sign up with an email that's already associated with
|
|
16
|
+
* a different authentication method (e.g., trying to use Google sign-in when the email was
|
|
17
|
+
* previously used with Apple sign-in).
|
|
18
|
+
*
|
|
19
|
+
* @returns An object containing:
|
|
20
|
+
* - `toggleEmailConflictModal` - Function to manually show/hide the conflict modal
|
|
21
|
+
* - `isEmailConflictOpen` - Whether the conflict modal is currently open
|
|
22
|
+
* - `emailConflictInfo` - Formatted information about the conflict (email and account type)
|
|
23
|
+
* - `forceCreate` - Function to force create a new account despite the conflict
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```tsx
|
|
27
|
+
* const {
|
|
28
|
+
* isEmailConflictOpen,
|
|
29
|
+
* emailConflictInfo,
|
|
30
|
+
* toggleEmailConflictModal
|
|
31
|
+
* } = useEmailConflict()
|
|
32
|
+
*
|
|
33
|
+
* // When a conflict is detected
|
|
34
|
+
* if (isEmailConflictOpen && emailConflictInfo) {
|
|
35
|
+
* console.log(
|
|
36
|
+
* `Email ${emailConflictInfo.email} is already used with ${emailConflictInfo.type}`
|
|
37
|
+
* )
|
|
38
|
+
* }
|
|
39
|
+
*
|
|
40
|
+
* // Close the conflict modal
|
|
41
|
+
* toggleEmailConflictModal(false)
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
5
44
|
export declare const useEmailConflict: () => {
|
|
6
45
|
toggleEmailConflictModal: import("react").Dispatch<import("react").SetStateAction<boolean>>;
|
|
7
46
|
isEmailConflictOpen: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWaasEmailConflict.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWaasEmailConflict.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,0BAA0B,GAAG;IACvC,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;
|
|
1
|
+
{"version":3,"file":"useWaasEmailConflict.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWaasEmailConflict.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,MAAM,MAAM,0BAA0B,GAAG;IACvC,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAA;IACb,0FAA0F;IAC1F,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAmCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,gBAAgB;;;uBAiCpB,0BAA0B;;CAKlC,CAAA"}
|
|
@@ -4,6 +4,12 @@ exports.useEmailConflict = void 0;
|
|
|
4
4
|
const waas_1 = require("@0xsequence/waas");
|
|
5
5
|
const react_1 = require("react");
|
|
6
6
|
const wagmi_1 = require("wagmi");
|
|
7
|
+
/**
|
|
8
|
+
* Helper function to convert raw account type information into user-friendly text.
|
|
9
|
+
*
|
|
10
|
+
* @param info - The raw email conflict information from WaaS
|
|
11
|
+
* @returns A user-friendly string describing the account type
|
|
12
|
+
*/
|
|
7
13
|
const accountTypeText = (info) => {
|
|
8
14
|
if (!info) {
|
|
9
15
|
return 'Unknown account type';
|
|
@@ -26,6 +32,39 @@ const accountTypeText = (info) => {
|
|
|
26
32
|
}
|
|
27
33
|
return info.type;
|
|
28
34
|
};
|
|
35
|
+
/**
|
|
36
|
+
* Hook to handle email conflict detection and resolution for WaaS (Wallet-as-a-Service) authentication.
|
|
37
|
+
*
|
|
38
|
+
* This hook monitors all WaaS connectors for email conflicts that occur during sign-in attempts.
|
|
39
|
+
* A conflict happens when a user tries to sign up with an email that's already associated with
|
|
40
|
+
* a different authentication method (e.g., trying to use Google sign-in when the email was
|
|
41
|
+
* previously used with Apple sign-in).
|
|
42
|
+
*
|
|
43
|
+
* @returns An object containing:
|
|
44
|
+
* - `toggleEmailConflictModal` - Function to manually show/hide the conflict modal
|
|
45
|
+
* - `isEmailConflictOpen` - Whether the conflict modal is currently open
|
|
46
|
+
* - `emailConflictInfo` - Formatted information about the conflict (email and account type)
|
|
47
|
+
* - `forceCreate` - Function to force create a new account despite the conflict
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* ```tsx
|
|
51
|
+
* const {
|
|
52
|
+
* isEmailConflictOpen,
|
|
53
|
+
* emailConflictInfo,
|
|
54
|
+
* toggleEmailConflictModal
|
|
55
|
+
* } = useEmailConflict()
|
|
56
|
+
*
|
|
57
|
+
* // When a conflict is detected
|
|
58
|
+
* if (isEmailConflictOpen && emailConflictInfo) {
|
|
59
|
+
* console.log(
|
|
60
|
+
* `Email ${emailConflictInfo.email} is already used with ${emailConflictInfo.type}`
|
|
61
|
+
* )
|
|
62
|
+
* }
|
|
63
|
+
*
|
|
64
|
+
* // Close the conflict modal
|
|
65
|
+
* toggleEmailConflictModal(false)
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
29
68
|
const useEmailConflict = () => {
|
|
30
69
|
const { connectors } = (0, wagmi_1.useConnect)();
|
|
31
70
|
const forceCreateFuncRef = (0, react_1.useRef)(null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWaasEmailConflict.js","sourceRoot":"","sources":["../../../src/hooks/useWaasEmailConflict.ts"],"names":[],"mappings":";;;AAAA,2CAAgF;AAChF,iCAAmD;AACnD,iCAAkC;
|
|
1
|
+
{"version":3,"file":"useWaasEmailConflict.js","sourceRoot":"","sources":["../../../src/hooks/useWaasEmailConflict.ts"],"names":[],"mappings":";;;AAAA,2CAAgF;AAChF,iCAAmD;AACnD,iCAAkC;AAalC;;;;;GAKG;AACH,MAAM,eAAe,GAAG,CAAC,IAA8B,EAAE,EAAE;IACzD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,sBAAsB,CAAA;IAC/B,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,mBAAY,CAAC,OAAO,EAAE,CAAC;QACvC,OAAO,eAAe,CAAA;IACxB,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,mBAAY,CAAC,KAAK,EAAE,CAAC;QACrC,OAAO,aAAa,CAAA;IACtB,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,mBAAY,CAAC,IAAI,EAAE,CAAC;QACpC,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;YACpB,KAAK,6BAA6B;gBAChC,OAAO,cAAc,CAAA;YACvB,KAAK,2BAA2B;gBAC9B,OAAO,aAAa,CAAA;YACtB;gBACE,OAAO,sBAAsB,CAAA;QACjC,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC,IAAI,CAAA;AAClB,CAAC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACI,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,MAAM,EAAE,UAAU,EAAE,GAAG,IAAA,kBAAU,GAAE,CAAA;IACnC,MAAM,kBAAkB,GAAG,IAAA,cAAM,EAAmD,IAAI,CAAC,CAAA;IACzF,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAA;IAC7C,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,IAAA,gBAAQ,EAA2B,IAAI,CAAC,CAAA;IAE1F,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAE,SAAiB,CAAC,YAAY,CAAC,CAAA;IACxF,MAAM,aAAa,GAAG,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAE,SAAiB,CAAC,YAA4B,CAAC,CAAA;IAEtG,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,0CAA0C;YAC1C,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CACzC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE;gBAC/C,kBAAkB,CAAC,OAAO,GAAG,WAAW,CAAA;gBACxC,oBAAoB,CAAC,IAAI,CAAC,CAAA;gBAC1B,WAAW,CAAC,IAAI,CAAC,CAAA;YACnB,CAAC,CAAC,CACH,CAAA;YAED,sDAAsD;YACtD,OAAO,GAAG,EAAE;gBACV,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;YAC3C,CAAC,CAAA;QACH,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO;QACL,wBAAwB,EAAE,WAAW;QACrC,mBAAmB,EAAE,MAAM;QAC3B,iBAAiB,EAAE;YACjB,KAAK,EAAE,iBAAiB,EAAE,KAAK,IAAI,SAAS;YAC5C,IAAI,EAAE,eAAe,CAAC,iBAAiB,CAAC;SACX;QAC/B,WAAW,EAAE,KAAK,IAAI,EAAE;YACtB,OAAO,kBAAkB,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAA;QAC3C,CAAC;KACF,CAAA;AACH,CAAC,CAAA;AAtCY,QAAA,gBAAgB,oBAsC5B"}
|
|
@@ -1,13 +1,73 @@
|
|
|
1
1
|
import { Address } from 'viem';
|
|
2
2
|
import { Connector } from 'wagmi';
|
|
3
|
+
/**
|
|
4
|
+
* Result object returned by the useWaasGetLinkedWalletsSignature hook.
|
|
5
|
+
* Contains all necessary information about the signature for wallet linking.
|
|
6
|
+
*/
|
|
3
7
|
interface UseWaasSignatureForLinkingResult {
|
|
8
|
+
/** The message that was signed */
|
|
4
9
|
message: string | undefined;
|
|
10
|
+
/** The signature of the message */
|
|
5
11
|
signature: string | undefined;
|
|
12
|
+
/** The address that signed the message */
|
|
6
13
|
address: string | undefined;
|
|
14
|
+
/** The chain ID used for signing */
|
|
7
15
|
chainId: number;
|
|
16
|
+
/** Whether the signature is currently being generated */
|
|
8
17
|
loading: boolean;
|
|
18
|
+
/** Any error that occurred during signature generation */
|
|
9
19
|
error: Error | null;
|
|
10
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Hook to manage signatures required for linking wallets in a WaaS (Wallet-as-a-Service) context.
|
|
23
|
+
*
|
|
24
|
+
* This hook handles the generation and caching of signatures that are used to prove ownership
|
|
25
|
+
* of a parent wallet when linking child wallets. The signatures are cached in localStorage
|
|
26
|
+
* for 24 hours to avoid unnecessary re-signing.
|
|
27
|
+
*
|
|
28
|
+
* Features:
|
|
29
|
+
* - Automatic signature generation when needed
|
|
30
|
+
* - 24-hour signature caching in localStorage
|
|
31
|
+
* - Automatic cleanup of old signatures
|
|
32
|
+
* - Error handling for signature generation
|
|
33
|
+
*
|
|
34
|
+
* @param connection - The current wallet connection object containing:
|
|
35
|
+
* - accounts: Array of connected addresses (uses the first one)
|
|
36
|
+
* - chainId: The current chain ID
|
|
37
|
+
* - connector: The wallet connector instance
|
|
38
|
+
*
|
|
39
|
+
* @returns An object containing:
|
|
40
|
+
* - `message` - The message that was signed
|
|
41
|
+
* - `signature` - The generated signature
|
|
42
|
+
* - `address` - The address that signed the message
|
|
43
|
+
* - `chainId` - The chain ID used for signing
|
|
44
|
+
* - `loading` - Whether signature generation is in progress
|
|
45
|
+
* - `error` - Any error that occurred during the process
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```tsx
|
|
49
|
+
* const {
|
|
50
|
+
* message,
|
|
51
|
+
* signature,
|
|
52
|
+
* address,
|
|
53
|
+
* loading,
|
|
54
|
+
* error
|
|
55
|
+
* } = useWaasGetLinkedWalletsSignature(waasConnection)
|
|
56
|
+
*
|
|
57
|
+
* if (loading) {
|
|
58
|
+
* return <div>Generating signature...</div>
|
|
59
|
+
* }
|
|
60
|
+
*
|
|
61
|
+
* if (error) {
|
|
62
|
+
* return <div>Error: {error.message}</div>
|
|
63
|
+
* }
|
|
64
|
+
*
|
|
65
|
+
* if (signature) {
|
|
66
|
+
* // Use the signature for wallet linking
|
|
67
|
+
* console.log(`Got signature from ${address} for message: ${message}`)
|
|
68
|
+
* }
|
|
69
|
+
* ```
|
|
70
|
+
*/
|
|
11
71
|
export declare const useWaasGetLinkedWalletsSignature: (connection: {
|
|
12
72
|
accounts: readonly [Address, ...Address[]];
|
|
13
73
|
chainId: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWaasGetLinkedWalletsSignature.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWaasGetLinkedWalletsSignature.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAIjC,UAAU,gCAAgC;IACxC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;CACpB;AAKD,eAAO,MAAM,gCAAgC,GAC3C,YACI;IACE,QAAQ,EAAE,SAAS,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC,CAAA;IAC1C,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,SAAS,CAAA;CACrB,GACD,SAAS,KACZ,gCAwIF,CAAA"}
|
|
1
|
+
{"version":3,"file":"useWaasGetLinkedWalletsSignature.d.ts","sourceRoot":"","sources":["../../../src/hooks/useWaasGetLinkedWalletsSignature.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAIjC;;;GAGG;AACH,UAAU,gCAAgC;IACxC,kCAAkC;IAClC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,mCAAmC;IACnC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,0CAA0C;IAC1C,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAA;IACf,yDAAyD;IACzD,OAAO,EAAE,OAAO,CAAA;IAChB,0DAA0D;IAC1D,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;CACpB;AAKD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,eAAO,MAAM,gCAAgC,GAC3C,YACI;IACE,QAAQ,EAAE,SAAS,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC,CAAA;IAC1C,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,SAAS,CAAA;CACrB,GACD,SAAS,KACZ,gCAwIF,CAAA"}
|