@b3dotfun/sdk 0.0.87-alpha.2 → 0.0.87-alpha.3
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/README.md +2 -1
- package/dist/cjs/anyspend/react/components/AnySpendCustom.js +0 -1
- package/dist/cjs/anyspend/react/hooks/useSigMint.d.ts +1 -1
- package/dist/cjs/global-account/react/components/AvatarEditor/AvatarEditor.js +2 -1
- package/dist/cjs/global-account/react/components/B3Provider/B3Provider.js +17 -47
- package/dist/cjs/global-account/react/components/B3Provider/B3Provider.native.js +6 -7
- package/dist/cjs/global-account/react/components/B3Provider/types.d.ts +0 -5
- package/dist/cjs/global-account/react/components/B3Provider/types.js +4 -4
- package/dist/cjs/global-account/react/components/B3Provider/useB3.d.ts +1 -0
- package/dist/cjs/global-account/react/components/B3Provider/useB3.js +1 -0
- package/dist/cjs/global-account/react/components/B3Provider/useB3Account.d.ts +1 -0
- package/dist/cjs/global-account/react/components/B3Provider/useB3Account.js +10 -0
- package/dist/cjs/global-account/react/components/B3Provider/useB3Config.d.ts +9 -0
- package/dist/cjs/global-account/react/components/B3Provider/useB3Config.js +23 -0
- package/dist/cjs/global-account/react/components/LinkAccount/LinkAccount.js +1 -1
- package/dist/cjs/global-account/react/components/LinkAccount/LinkNewAccount.js +1 -2
- package/dist/cjs/global-account/react/components/ManageAccount/ProfileSection.js +2 -1
- package/dist/cjs/global-account/react/components/ManageAccount/SettingsProfileCard.js +2 -1
- package/dist/cjs/global-account/react/components/SignInWithB3/SignInWithB3.js +2 -1
- package/dist/cjs/global-account/react/components/SignInWithB3/SignInWithB3Flow.js +2 -1
- package/dist/cjs/global-account/react/components/index.d.ts +2 -0
- package/dist/cjs/global-account/react/components/index.js +7 -3
- package/dist/cjs/global-account/react/hooks/useAccountWallet.js +3 -2
- package/dist/cjs/global-account/react/hooks/useAuthentication.d.ts +1 -1
- package/dist/cjs/global-account/react/hooks/useAutoSelectWallet.d.ts +7 -0
- package/dist/cjs/global-account/react/hooks/useAutoSelectWallet.js +42 -0
- package/dist/cjs/global-account/react/hooks/useTurnkeyAuth.js +6 -4
- package/dist/cjs/global-account/react/hooks/useUnifiedChainSwitchAndExecute.js +2 -2
- package/dist/cjs/global-account/react/hooks/useUserQuery.d.ts +1 -1
- package/dist/esm/anyspend/react/components/AnySpendCustom.js +0 -1
- package/dist/esm/anyspend/react/hooks/useSigMint.d.ts +1 -1
- package/dist/esm/global-account/react/components/AvatarEditor/AvatarEditor.js +3 -2
- package/dist/esm/global-account/react/components/B3Provider/B3Provider.js +21 -51
- package/dist/esm/global-account/react/components/B3Provider/B3Provider.native.js +6 -7
- package/dist/esm/global-account/react/components/B3Provider/types.d.ts +0 -5
- package/dist/esm/global-account/react/components/B3Provider/types.js +4 -4
- package/dist/esm/global-account/react/components/B3Provider/useB3.d.ts +1 -0
- package/dist/esm/global-account/react/components/B3Provider/useB3.js +1 -0
- package/dist/esm/global-account/react/components/B3Provider/useB3Account.d.ts +1 -0
- package/dist/esm/global-account/react/components/B3Provider/useB3Account.js +6 -0
- package/dist/esm/global-account/react/components/B3Provider/useB3Config.d.ts +9 -0
- package/dist/esm/global-account/react/components/B3Provider/useB3Config.js +19 -0
- package/dist/esm/global-account/react/components/LinkAccount/LinkAccount.js +2 -2
- package/dist/esm/global-account/react/components/LinkAccount/LinkNewAccount.js +2 -3
- package/dist/esm/global-account/react/components/ManageAccount/ProfileSection.js +3 -2
- package/dist/esm/global-account/react/components/ManageAccount/SettingsProfileCard.js +3 -2
- package/dist/esm/global-account/react/components/SignInWithB3/SignInWithB3.js +3 -2
- package/dist/esm/global-account/react/components/SignInWithB3/SignInWithB3Flow.js +3 -2
- package/dist/esm/global-account/react/components/index.d.ts +2 -0
- package/dist/esm/global-account/react/components/index.js +2 -0
- package/dist/esm/global-account/react/hooks/useAccountWallet.js +4 -3
- package/dist/esm/global-account/react/hooks/useAuthentication.d.ts +1 -1
- package/dist/esm/global-account/react/hooks/useAutoSelectWallet.d.ts +7 -0
- package/dist/esm/global-account/react/hooks/useAutoSelectWallet.js +39 -0
- package/dist/esm/global-account/react/hooks/useTurnkeyAuth.js +6 -4
- package/dist/esm/global-account/react/hooks/useUnifiedChainSwitchAndExecute.js +2 -2
- package/dist/esm/global-account/react/hooks/useUserQuery.d.ts +1 -1
- package/dist/types/anyspend/react/hooks/useSigMint.d.ts +1 -1
- package/dist/types/global-account/react/components/B3Provider/types.d.ts +0 -5
- package/dist/types/global-account/react/components/B3Provider/useB3.d.ts +1 -0
- package/dist/types/global-account/react/components/B3Provider/useB3Account.d.ts +1 -0
- package/dist/types/global-account/react/components/B3Provider/useB3Config.d.ts +9 -0
- package/dist/types/global-account/react/components/index.d.ts +2 -0
- package/dist/types/global-account/react/hooks/useAuthentication.d.ts +1 -1
- package/dist/types/global-account/react/hooks/useAutoSelectWallet.d.ts +7 -0
- package/dist/types/global-account/react/hooks/useUserQuery.d.ts +1 -1
- package/package.json +1 -1
- package/src/anyspend/react/components/AnySpendCustom.tsx +0 -2
- package/src/global-account/react/components/AvatarEditor/AvatarEditor.tsx +10 -2
- package/src/global-account/react/components/B3Provider/B3Provider.native.tsx +6 -7
- package/src/global-account/react/components/B3Provider/B3Provider.tsx +20 -71
- package/src/global-account/react/components/B3Provider/types.ts +8 -9
- package/src/global-account/react/components/B3Provider/useB3.ts +1 -0
- package/src/global-account/react/components/B3Provider/useB3Account.ts +7 -0
- package/src/global-account/react/components/B3Provider/useB3Config.ts +34 -0
- package/src/global-account/react/components/LinkAccount/LinkAccount.tsx +2 -2
- package/src/global-account/react/components/LinkAccount/LinkNewAccount.tsx +2 -3
- package/src/global-account/react/components/ManageAccount/ProfileSection.tsx +10 -2
- package/src/global-account/react/components/ManageAccount/SettingsProfileCard.tsx +3 -2
- package/src/global-account/react/components/SignInWithB3/SignInWithB3.tsx +2 -2
- package/src/global-account/react/components/SignInWithB3/SignInWithB3Flow.tsx +5 -2
- package/src/global-account/react/components/index.ts +2 -0
- package/src/global-account/react/hooks/useAccountWallet.tsx +4 -3
- package/src/global-account/react/hooks/useAutoSelectWallet.ts +51 -0
- package/src/global-account/react/hooks/useTurnkeyAuth.ts +7 -5
- package/src/global-account/react/hooks/useUnifiedChainSwitchAndExecute.ts +2 -2
package/README.md
CHANGED
|
@@ -267,7 +267,8 @@ function PermissionsExample() {
|
|
|
267
267
|
import { useB3 } from "@b3dotfun/sdk/global-account/react";
|
|
268
268
|
|
|
269
269
|
function AccountStatus() {
|
|
270
|
-
const
|
|
270
|
+
const isAuthenticated = useAuthStore(state => state.isAuthenticated);
|
|
271
|
+
const account = useB3Account();
|
|
271
272
|
|
|
272
273
|
return <div>{isAuthenticated ? <p>Welcome, {account?.displayName}!</p> : <p>Please sign in</p>}</div>;
|
|
273
274
|
}
|
|
@@ -219,7 +219,6 @@ function AnySpendCustomInner({ loadOrder, mode = "modal", activeTab: activeTabPr
|
|
|
219
219
|
}
|
|
220
220
|
}
|
|
221
221
|
}, [srcChainId, tokenList, getTokenWithBalance, nativeTokens, fungibleTokens, dirtySelectSrcToken, dstToken.address]);
|
|
222
|
-
// const { account: isAuthenticated } = useB3();
|
|
223
222
|
const getRelayQuoteRequest = (0, react_5.useMemo)(() => {
|
|
224
223
|
return generateGetRelayQuoteRequest({
|
|
225
224
|
orderType: orderType,
|
|
@@ -43,7 +43,8 @@ function AvatarEditor({ onSetAvatar, className }) {
|
|
|
43
43
|
const [zoom, setZoom] = (0, react_2.useState)(1);
|
|
44
44
|
const [croppedAreaPixels, setCroppedAreaPixels] = (0, react_2.useState)(null);
|
|
45
45
|
const fileInputRef = (0, react_2.useRef)(null);
|
|
46
|
-
const {
|
|
46
|
+
const { partnerId } = (0, react_1.useB3Config)();
|
|
47
|
+
const { user, setUser } = (0, react_1.useAuthentication)(partnerId);
|
|
47
48
|
const setB3ModalContentType = (0, stores_1.useModalStore)(state => state.setB3ModalContentType);
|
|
48
49
|
const contentType = (0, stores_1.useModalStore)(state => state.contentType);
|
|
49
50
|
const account = (0, react_3.useActiveAccount)();
|
|
@@ -4,9 +4,9 @@ exports.B3Provider = B3Provider;
|
|
|
4
4
|
exports.InnerProvider = InnerProvider;
|
|
5
5
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
6
|
const react_1 = require("../../../../global-account/react");
|
|
7
|
+
const useAutoSelectWallet_1 = require("../../../../global-account/react/hooks/useAutoSelectWallet");
|
|
7
8
|
const createWagmiConfig_1 = require("../../../../global-account/react/utils/createWagmiConfig");
|
|
8
9
|
const analytics_1 = require("../../../../global-account/utils/analytics");
|
|
9
|
-
const debug_1 = require("../../../../shared/utils/debug");
|
|
10
10
|
require("@relayprotocol/relay-kit-ui/styles.css");
|
|
11
11
|
const react_query_1 = require("@tanstack/react-query");
|
|
12
12
|
const react_2 = require("react");
|
|
@@ -17,7 +17,6 @@ const StyleRoot_1 = require("../StyleRoot");
|
|
|
17
17
|
const index_1 = require("../Toast/index");
|
|
18
18
|
const LocalSDKProvider_1 = require("./LocalSDKProvider");
|
|
19
19
|
const types_1 = require("./types");
|
|
20
|
-
const debug = (0, debug_1.debugB3React)("B3Provider");
|
|
21
20
|
/**
|
|
22
21
|
* Default permissions configuration for B3 provider
|
|
23
22
|
*/
|
|
@@ -51,52 +50,26 @@ toaster: _toaster, clientType = "rest", rpcUrls, partnerId, stripePublishableKey
|
|
|
51
50
|
*/
|
|
52
51
|
function InnerProvider({ children, accountOverride, environment, defaultPermissions = DEFAULT_PERMISSIONS, automaticallySetFirstEoa, theme = "light", clientType = "socket", partnerId, stripePublishableKey, createClientReferenceId, enableTurnkey, }) {
|
|
53
52
|
const activeAccount = (0, react_3.useActiveAccount)();
|
|
54
|
-
const [manuallySelectedWallet, setManuallySelectedWallet] = (0, react_2.useState)(undefined);
|
|
55
|
-
const wallets = (0, react_3.useConnectedWallets)();
|
|
56
53
|
const isAuthenticated = (0, react_1.useAuthStore)(state => state.isAuthenticated);
|
|
57
|
-
const isConnected =
|
|
58
|
-
const justCompletedLogin =
|
|
59
|
-
const setActiveWallet = (0, react_3.useSetActiveWallet)();
|
|
60
|
-
const { user, setUser, refetchUser } = (0, react_1.useAuthentication)(partnerId);
|
|
61
|
-
debug("@@B3Provider:isConnected", isConnected);
|
|
62
|
-
debug("@@wallets", wallets);
|
|
63
|
-
debug("@@B3Provider:user", user);
|
|
64
|
-
debug("@@B3Provider:justCompletedLogin", justCompletedLogin);
|
|
54
|
+
//const isConnected = useAuthStore(state => state.isConnected);
|
|
55
|
+
//const justCompletedLogin = useAuthStore(state => state.justCompletedLogin);
|
|
65
56
|
// Use given accountOverride or activeAccount from thirdweb
|
|
57
|
+
// WOJ: why if isAuthenticated is false, we don't use activeAccount, which should be undefined?
|
|
58
|
+
// skip isAuthenticated check ?
|
|
66
59
|
const effectiveAccount = isAuthenticated ? accountOverride || activeAccount : undefined;
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
}
|
|
73
|
-
(0, react_2.useEffect)(() => {
|
|
74
|
-
const autoSelectFirstEOAWallet = async () => {
|
|
75
|
-
// Only proceed if auto-selection is enabled and user is authenticated
|
|
76
|
-
if (!automaticallySetFirstEoa || !isAuthenticated) {
|
|
77
|
-
return;
|
|
78
|
-
}
|
|
79
|
-
// Find the first EOA wallet (excluding ecosystem wallets)
|
|
80
|
-
const isEOAWallet = (wallet) => !wallet.id.startsWith("ecosystem.");
|
|
81
|
-
const firstEOAWallet = wallets.find(isEOAWallet);
|
|
82
|
-
if (firstEOAWallet) {
|
|
83
|
-
// Only auto-select if the last auth was via wallet or no previous auth provider
|
|
84
|
-
const lastAuthProvider = await (0, react_3.getLastAuthProvider)();
|
|
85
|
-
const shouldAutoSelect = lastAuthProvider === null || lastAuthProvider === "wallet";
|
|
86
|
-
if (shouldAutoSelect) {
|
|
87
|
-
setWallet(firstEOAWallet);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
};
|
|
91
|
-
autoSelectFirstEOAWallet();
|
|
92
|
-
}, [automaticallySetFirstEoa, isAuthenticated, setWallet, wallets]);
|
|
60
|
+
// Wrapper to set active wallet via thirdweb
|
|
61
|
+
// Note: `wallet` in context is deprecated - use useActiveWallet() from thirdweb/react instead
|
|
62
|
+
// Auto-select first EOA wallet when enabled
|
|
63
|
+
(0, useAutoSelectWallet_1.useAutoSelectWallet)({
|
|
64
|
+
enabled: automaticallySetFirstEoa,
|
|
65
|
+
});
|
|
93
66
|
return ((0, jsx_runtime_1.jsx)(types_1.B3Context.Provider, { value: {
|
|
94
67
|
account: effectiveAccount,
|
|
95
|
-
setWallet,
|
|
96
|
-
wallet:
|
|
97
|
-
user,
|
|
98
|
-
setUser,
|
|
99
|
-
refetchUser,
|
|
68
|
+
// setWallet,
|
|
69
|
+
//wallet: undefined, // Deprecated: use useActiveWallet() from thirdweb/react instead
|
|
70
|
+
//user,
|
|
71
|
+
//setUser,
|
|
72
|
+
//refetchUser,
|
|
100
73
|
initialized: true,
|
|
101
74
|
ready: !!effectiveAccount,
|
|
102
75
|
automaticallySetFirstEoa,
|
|
@@ -108,11 +81,8 @@ function InnerProvider({ children, accountOverride, environment, defaultPermissi
|
|
|
108
81
|
stripePublishableKey,
|
|
109
82
|
createClientReferenceId,
|
|
110
83
|
enableTurnkey,
|
|
111
|
-
}, children:
|
|
84
|
+
}, children: children }));
|
|
112
85
|
}
|
|
113
|
-
const InnerProvider2 = ({ children }) => {
|
|
114
|
-
return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: children });
|
|
115
|
-
};
|
|
116
86
|
/**
|
|
117
87
|
* Component to connect the toast context to the global toast API
|
|
118
88
|
*/
|
|
@@ -6,7 +6,6 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
6
6
|
const react_query_1 = require("@tanstack/react-query");
|
|
7
7
|
const react_1 = require("thirdweb/react");
|
|
8
8
|
const wagmi_1 = require("wagmi");
|
|
9
|
-
const useAuthentication_1 = require("../../hooks/useAuthentication");
|
|
10
9
|
const createWagmiConfig_1 = require("../../utils/createWagmiConfig");
|
|
11
10
|
const LocalSDKProvider_1 = require("./LocalSDKProvider");
|
|
12
11
|
const types_1 = require("./types");
|
|
@@ -32,17 +31,17 @@ function B3Provider({ theme = "light", children, accountOverride, environment, c
|
|
|
32
31
|
*/
|
|
33
32
|
function InnerProvider({ children, accountOverride, environment, defaultPermissions = DEFAULT_PERMISSIONS, theme = "light", clientType = "socket", partnerId, rpcUrls, }) {
|
|
34
33
|
const activeAccount = (0, react_1.useActiveAccount)();
|
|
35
|
-
const { user, setUser, refetchUser } =
|
|
34
|
+
//const { user, setUser, refetchUser } = useAuthentication(partnerId);
|
|
36
35
|
const wagmiConfig = (0, createWagmiConfig_1.createWagmiConfig)({ partnerId, rpcUrls });
|
|
37
36
|
// Use given accountOverride or activeAccount from thirdweb
|
|
38
37
|
const effectiveAccount = accountOverride || activeAccount;
|
|
39
38
|
return ((0, jsx_runtime_1.jsx)(wagmi_1.WagmiProvider, { config: wagmiConfig, children: (0, jsx_runtime_1.jsx)(react_query_1.QueryClientProvider, { client: queryClient, children: (0, jsx_runtime_1.jsx)(types_1.B3Context.Provider, { value: {
|
|
40
|
-
account: effectiveAccount,
|
|
39
|
+
//account: effectiveAccount,
|
|
41
40
|
automaticallySetFirstEoa: false,
|
|
42
|
-
setWallet: () => {
|
|
41
|
+
//setWallet: () => {},
|
|
43
42
|
wallet: undefined,
|
|
44
|
-
user,
|
|
45
|
-
setUser,
|
|
43
|
+
//user,
|
|
44
|
+
//setUser,
|
|
46
45
|
initialized: true,
|
|
47
46
|
ready: !!effectiveAccount,
|
|
48
47
|
environment,
|
|
@@ -50,6 +49,6 @@ function InnerProvider({ children, accountOverride, environment, defaultPermissi
|
|
|
50
49
|
theme,
|
|
51
50
|
clientType,
|
|
52
51
|
partnerId,
|
|
53
|
-
refetchUser,
|
|
52
|
+
//refetchUser,
|
|
54
53
|
}, children: children }) }) }));
|
|
55
54
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { Users } from "@b3dotfun/b3-api";
|
|
2
1
|
import { CreateOnrampOrderParams } from "../../../../anyspend/react/hooks/useAnyspendCreateOnrampOrder";
|
|
3
2
|
import { CreateOrderParams } from "../../../../anyspend/react/hooks/useAnyspendCreateOrder";
|
|
4
3
|
import { PermissionsConfig } from "../../../../global-account/types/permissions";
|
|
@@ -10,11 +9,7 @@ import { ClientType } from "../../../client-manager";
|
|
|
10
9
|
export interface B3ContextType {
|
|
11
10
|
account?: Account;
|
|
12
11
|
automaticallySetFirstEoa: boolean;
|
|
13
|
-
user?: Users;
|
|
14
|
-
setWallet: (wallet: Wallet) => void;
|
|
15
12
|
wallet?: Wallet;
|
|
16
|
-
setUser: (user?: Users) => void;
|
|
17
|
-
refetchUser: () => Promise<any>;
|
|
18
13
|
initialized: boolean;
|
|
19
14
|
ready: boolean;
|
|
20
15
|
environment?: "development" | "production";
|
|
@@ -8,11 +8,11 @@ const react_1 = require("react");
|
|
|
8
8
|
exports.B3Context = (0, react_1.createContext)({
|
|
9
9
|
account: undefined,
|
|
10
10
|
automaticallySetFirstEoa: false,
|
|
11
|
-
user: undefined,
|
|
12
|
-
setWallet: () => {
|
|
11
|
+
//user: undefined,
|
|
12
|
+
//setWallet: () => {},
|
|
13
13
|
wallet: undefined,
|
|
14
|
-
setUser: () => {
|
|
15
|
-
refetchUser: async () => {
|
|
14
|
+
//setUser: () => {},
|
|
15
|
+
//refetchUser: async () => {},
|
|
16
16
|
initialized: false,
|
|
17
17
|
ready: false,
|
|
18
18
|
environment: "development",
|
|
@@ -6,6 +6,7 @@ const types_1 = require("./types");
|
|
|
6
6
|
/**
|
|
7
7
|
* Hook to access the B3 context
|
|
8
8
|
* @throws Error if used outside a B3Provider
|
|
9
|
+
* @deprecated Use useB3Config or useB3Account instead
|
|
9
10
|
*/
|
|
10
11
|
function useB3() {
|
|
11
12
|
const context = (0, react_1.useContext)(types_1.B3Context);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const useB3Account: () => import("thirdweb/wallets").Account | undefined;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useB3Account = void 0;
|
|
4
|
+
const react_1 = require("thirdweb/react");
|
|
5
|
+
// Wrapper around useActiveAccount
|
|
6
|
+
const useB3Account = () => {
|
|
7
|
+
const account = (0, react_1.useActiveAccount)();
|
|
8
|
+
return account;
|
|
9
|
+
};
|
|
10
|
+
exports.useB3Account = useB3Account;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare const useB3Config: () => {
|
|
2
|
+
automaticallySetFirstEoa: boolean;
|
|
3
|
+
environment: "development" | "production" | undefined;
|
|
4
|
+
theme: "light" | "dark";
|
|
5
|
+
clientType: import("../../../client-manager").ClientType;
|
|
6
|
+
partnerId: string;
|
|
7
|
+
createClientReferenceId: ((params: import("../../../../anyspend/react").CreateOrderParams | import("../../../../anyspend/react").CreateOnrampOrderParams) => Promise<string>) | undefined;
|
|
8
|
+
enableTurnkey: boolean | undefined;
|
|
9
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useB3Config = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const types_1 = require("./types");
|
|
6
|
+
const useB3Config = () => {
|
|
7
|
+
const context = (0, react_1.useContext)(types_1.B3Context);
|
|
8
|
+
if (!context) {
|
|
9
|
+
throw new Error("useB3 must be used within a B3Provider");
|
|
10
|
+
}
|
|
11
|
+
const { automaticallySetFirstEoa, environment, theme, clientType, partnerId, createClientReferenceId, enableTurnkey, } = context;
|
|
12
|
+
// Return a stable reference
|
|
13
|
+
return (0, react_1.useMemo)(() => ({
|
|
14
|
+
automaticallySetFirstEoa,
|
|
15
|
+
environment,
|
|
16
|
+
theme,
|
|
17
|
+
clientType,
|
|
18
|
+
partnerId,
|
|
19
|
+
createClientReferenceId,
|
|
20
|
+
enableTurnkey,
|
|
21
|
+
}), [automaticallySetFirstEoa, environment, theme, clientType, partnerId, createClientReferenceId, enableTurnkey]);
|
|
22
|
+
};
|
|
23
|
+
exports.useB3Config = useB3Config;
|
|
@@ -23,7 +23,7 @@ const LinkAccount = ({ partnerId, onLogout: _onLogout, chain, }) => {
|
|
|
23
23
|
const isLinking = (0, react_1.useModalStore)(state => state.isLinking);
|
|
24
24
|
const setB3ModalOpen = (0, react_1.useModalStore)(state => state.setB3ModalOpen);
|
|
25
25
|
const contentType = (0, react_1.useModalStore)(state => state.contentType);
|
|
26
|
-
const { user, setUser } = (0, react_1.
|
|
26
|
+
const { user, setUser } = (0, react_1.useAuthentication)(partnerId);
|
|
27
27
|
const [isUpdatingCode, setIsUpdatingCode] = (0, react_2.useState)(false);
|
|
28
28
|
const [newReferralCode, setNewReferralCode] = (0, react_2.useState)("");
|
|
29
29
|
const [isEditingCode, setIsEditingCode] = (0, react_2.useState)(false);
|
|
@@ -17,7 +17,6 @@ const wallets_1 = require("thirdweb/wallets");
|
|
|
17
17
|
const __1 = require("../..");
|
|
18
18
|
const useModalStore_1 = require("../../stores/useModalStore");
|
|
19
19
|
const profileDisplay_1 = require("../../utils/profileDisplay");
|
|
20
|
-
const useB3_1 = require("../B3Provider/useB3");
|
|
21
20
|
const AppleIcon_1 = require("../icons/AppleIcon");
|
|
22
21
|
const DiscordIcon_1 = require("../icons/DiscordIcon");
|
|
23
22
|
const FarcasterIcon_1 = require("../icons/FarcasterIcon");
|
|
@@ -96,7 +95,7 @@ function LinkNewAccount({ onSuccess: onSuccessCallback, onError, onClose, chain,
|
|
|
96
95
|
...(0, profileDisplay_1.getProfileDisplayInfo)(profile),
|
|
97
96
|
originalProfile: profile,
|
|
98
97
|
}));
|
|
99
|
-
const
|
|
98
|
+
const account = (0, react_1.useB3Account)();
|
|
100
99
|
const { mutate: linkProfile } = (0, react_3.useLinkProfile)();
|
|
101
100
|
const onSuccess = (0, react_2.useCallback)(async () => {
|
|
102
101
|
await onSuccessCallback?.();
|
|
@@ -17,7 +17,8 @@ const ProfileSection = () => {
|
|
|
17
17
|
address: eoaAddress || account?.address,
|
|
18
18
|
fresh: true,
|
|
19
19
|
});
|
|
20
|
-
const {
|
|
20
|
+
const { partnerId } = (0, react_1.useB3Config)();
|
|
21
|
+
const { user } = (0, react_1.useAuthentication)(partnerId);
|
|
21
22
|
const setB3ModalOpen = (0, react_1.useModalStore)(state => state.setB3ModalOpen);
|
|
22
23
|
const setB3ModalContentType = (0, react_1.useModalStore)(state => state.setB3ModalContentType);
|
|
23
24
|
const navigateBack = (0, react_1.useModalStore)(state => state.navigateBack);
|
|
@@ -20,7 +20,8 @@ const SettingsProfileCard = () => {
|
|
|
20
20
|
address: eoaAddress || account?.address,
|
|
21
21
|
fresh: true,
|
|
22
22
|
});
|
|
23
|
-
const {
|
|
23
|
+
const { partnerId } = (0, react_1.useB3Config)();
|
|
24
|
+
const { user, setUser } = (0, react_1.useAuthentication)(partnerId);
|
|
24
25
|
const setB3ModalOpen = (0, react_1.useModalStore)(state => state.setB3ModalOpen);
|
|
25
26
|
const setB3ModalContentType = (0, react_1.useModalStore)(state => state.setB3ModalContentType);
|
|
26
27
|
const navigateBack = (0, react_1.useModalStore)(state => state.navigateBack);
|
|
@@ -4,11 +4,12 @@ exports.SignInWithB3 = SignInWithB3;
|
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const react_1 = require("../../../../global-account/react");
|
|
6
6
|
const react_2 = require("react");
|
|
7
|
+
const useB3Account_1 = require("../B3Provider/useB3Account");
|
|
7
8
|
const ManageAccountButton_1 = require("../custom/ManageAccountButton");
|
|
8
9
|
const Loading_1 = require("../ui/Loading");
|
|
9
10
|
function SignInWithB3(props) {
|
|
10
11
|
const { setB3ModalOpen, setB3ModalContentType, setEcoSystemAccountAddress } = (0, react_1.useModalStore)();
|
|
11
|
-
const
|
|
12
|
+
const account = (0, useB3Account_1.useB3Account)();
|
|
12
13
|
const { isAuthenticating, isAuthenticated } = (0, react_1.useAuthStore)();
|
|
13
14
|
const isMobile = (0, react_1.useIsMobile)();
|
|
14
15
|
(0, react_2.useEffect)(() => {
|
|
@@ -16,7 +16,8 @@ const MAX_REFETCH_ATTEMPTS = 20;
|
|
|
16
16
|
* Handles different login providers, authentication steps, and session key management
|
|
17
17
|
*/
|
|
18
18
|
function SignInWithB3Flow({ strategies, onLoginSuccess, onSessionKeySuccess, onError, chain, sessionKeyAddress, partnerId, closeAfterLogin = false, source = "signInWithB3Button", signersEnabled = false, }) {
|
|
19
|
-
const { automaticallySetFirstEoa,
|
|
19
|
+
const { automaticallySetFirstEoa, enableTurnkey } = (0, react_1.useB3Config)();
|
|
20
|
+
const { user, refetchUser } = (0, react_1.useAuthentication)(partnerId);
|
|
20
21
|
const [step, setStep] = (0, react_2.useState)(source === "requestPermissions" ? null : "login");
|
|
21
22
|
const [sessionKeyAdded, setSessionKeyAdded] = (0, react_2.useState)(source === "requestPermissions" ? true : false);
|
|
22
23
|
const { setB3ModalContentType, setB3ModalOpen, isOpen, contentType } = (0, react_1.useModalStore)();
|
|
@@ -3,6 +3,8 @@ export { B3Provider, InnerProvider } from "./B3Provider/B3Provider";
|
|
|
3
3
|
export { RelayKitProviderWrapper } from "./B3Provider/RelayKitProviderWrapper";
|
|
4
4
|
export { B3Context, type B3ContextType } from "./B3Provider/types";
|
|
5
5
|
export { useB3 } from "./B3Provider/useB3";
|
|
6
|
+
export { useB3Account } from "./B3Provider/useB3Account";
|
|
7
|
+
export { useB3Config } from "./B3Provider/useB3Config";
|
|
6
8
|
export { StyleRoot } from "./StyleRoot";
|
|
7
9
|
export { AuthButton } from "./SignInWithB3/components/AuthButton";
|
|
8
10
|
export { PermissionItem } from "./SignInWithB3/components/PermissionItem";
|
|
@@ -3,9 +3,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
7
|
-
exports.
|
|
8
|
-
exports.WalletImage = exports.useToastContext = exports.ToastProvider = exports.ToastContainer = exports.Toast = void 0;
|
|
6
|
+
exports.DialogClose = exports.Dialog = exports.CommandShortcut = exports.CommandSeparator = exports.CommandList = exports.CommandItem = exports.CommandInput = exports.CommandGroup = exports.CommandEmpty = exports.CommandDialog = exports.Command = exports.buttonVariants = exports.Button = exports.badgeVariants = exports.Badge = exports.WalletConnectorIcon = exports.StaggeredFadeLoader = exports.CopyToClipboard = exports.ClientOnly = exports.customButtonVariants = exports.CustomButton = exports.SendERC20Button = exports.SendETHButton = exports.MintButton = exports.AccountAssets = exports.RequestPermissionsButton = exports.RequestPermissions = exports.IPFSMediaRenderer = exports.Send = exports.Deposit = exports.ManageAccount = exports.TurnkeyAuthModal = exports.isWalletType = exports.getConnectOptionsFromStrategy = exports.LoginStepContainer = exports.SignInWithB3Privy = exports.SignInWithB3Flow = exports.SignInWithB3 = exports.WalletRow = exports.PermissionItem = exports.AuthButton = exports.StyleRoot = exports.useB3Config = exports.useB3Account = exports.useB3 = exports.B3Context = exports.RelayKitProviderWrapper = exports.InnerProvider = exports.B3Provider = exports.B3DynamicModal = void 0;
|
|
7
|
+
exports.TransitionPanel = exports.TooltipTrigger = exports.TooltipProvider = exports.TooltipContent = exports.Tooltip = exports.TextShimmer = exports.TextLoop = exports.TabTrigger = exports.TabsTransitionWrapper = exports.TabsList = exports.TabsContent = exports.Tabs = exports.TabTriggerPrimitive = exports.TabsPrimitive = exports.TabsListPrimitive = exports.TabsContentPrimitive = exports.Skeleton = exports.ShinyButton = exports.ScrollBar = exports.ScrollArea = exports.PopoverTrigger = exports.PopoverContent = exports.Popover = exports.Loading = exports.Input = exports.GlareCardRounded = exports.GlareCard = exports.DropdownMenuTrigger = exports.DropdownMenuSeparator = exports.DropdownMenuItem = exports.DropdownMenuContent = exports.DropdownMenu = exports.DrawerTrigger = exports.DrawerTitle = exports.DrawerPortal = exports.DrawerOverlay = exports.DrawerHeader = exports.DrawerFooter = exports.DrawerDescription = exports.DrawerContent = exports.DrawerClose = exports.Drawer = exports.DialogTrigger = exports.DialogTitle = exports.DialogPortal = exports.DialogOverlay = exports.DialogHeader = exports.DialogFooter = exports.DialogDescription = exports.DialogContent = void 0;
|
|
8
|
+
exports.WalletImage = exports.useToastContext = exports.ToastProvider = exports.ToastContainer = exports.Toast = exports.toast = exports.AnimatedLottie = void 0;
|
|
9
9
|
// TODO woj: Barrel file for all components, this might be reason of bundle size issues
|
|
10
10
|
// Core Components
|
|
11
11
|
var B3DynamicModal_1 = require("./B3DynamicModal");
|
|
@@ -19,6 +19,10 @@ var types_1 = require("./B3Provider/types");
|
|
|
19
19
|
Object.defineProperty(exports, "B3Context", { enumerable: true, get: function () { return types_1.B3Context; } });
|
|
20
20
|
var useB3_1 = require("./B3Provider/useB3");
|
|
21
21
|
Object.defineProperty(exports, "useB3", { enumerable: true, get: function () { return useB3_1.useB3; } });
|
|
22
|
+
var useB3Account_1 = require("./B3Provider/useB3Account");
|
|
23
|
+
Object.defineProperty(exports, "useB3Account", { enumerable: true, get: function () { return useB3Account_1.useB3Account; } });
|
|
24
|
+
var useB3Config_1 = require("./B3Provider/useB3Config");
|
|
25
|
+
Object.defineProperty(exports, "useB3Config", { enumerable: true, get: function () { return useB3Config_1.useB3Config; } });
|
|
22
26
|
var StyleRoot_1 = require("./StyleRoot");
|
|
23
27
|
Object.defineProperty(exports, "StyleRoot", { enumerable: true, get: function () { return StyleRoot_1.StyleRoot; } });
|
|
24
28
|
// SignInWithB3 Components
|
|
@@ -8,6 +8,7 @@ const debug_1 = require("../../../shared/utils/debug");
|
|
|
8
8
|
const react_2 = require("react");
|
|
9
9
|
const react_3 = require("thirdweb/react");
|
|
10
10
|
const in_app_1 = require("thirdweb/wallets/in-app");
|
|
11
|
+
const useB3Account_1 = require("../components/B3Provider/useB3Account");
|
|
11
12
|
const debug = (0, debug_1.debugB3React)("useAccountWallet");
|
|
12
13
|
function useLastAuthProvider() {
|
|
13
14
|
const [lastAuthProvider, setLastAuthProvider] = (0, react_2.useState)(null);
|
|
@@ -27,7 +28,7 @@ function useAccountWallet() {
|
|
|
27
28
|
// const effectiveAccount = isAuthenticated ? accountOverride || activeAccount : undefined;
|
|
28
29
|
// can we possibly just use useActiveAccount here?
|
|
29
30
|
// --------------------
|
|
30
|
-
const
|
|
31
|
+
const account = (0, useB3Account_1.useB3Account)();
|
|
31
32
|
const activeWallet = (0, react_3.useActiveWallet)();
|
|
32
33
|
const connectedWallets = (0, react_3.useConnectedWallets)();
|
|
33
34
|
const connectedSmartWallet = connectedWallets.find(wallet => wallet.id === constants_1.ecosystemWalletId);
|
|
@@ -75,7 +76,7 @@ function useAccountWallet() {
|
|
|
75
76
|
return res;
|
|
76
77
|
}
|
|
77
78
|
function useAccountWalletImage() {
|
|
78
|
-
const
|
|
79
|
+
const account = (0, useB3Account_1.useB3Account)();
|
|
79
80
|
const activeWallet = (0, react_3.useActiveWallet)();
|
|
80
81
|
const connectedWallets = (0, react_3.useConnectedWallets)();
|
|
81
82
|
const connectedSmartWallet = connectedWallets.find(wallet => wallet.id === constants_1.ecosystemWalletId);
|
|
@@ -13,8 +13,8 @@ export declare function useAuthentication(partnerId: string): {
|
|
|
13
13
|
onConnect: (_walleAutoConnectedWith: Wallet, allConnectedWallets: Wallet[]) => Promise<void>;
|
|
14
14
|
user: {
|
|
15
15
|
email?: string | undefined;
|
|
16
|
-
telNumber?: string | undefined;
|
|
17
16
|
username?: string | undefined;
|
|
17
|
+
telNumber?: string | undefined;
|
|
18
18
|
ens?: string | undefined;
|
|
19
19
|
avatar?: string | undefined;
|
|
20
20
|
preferences?: {} | undefined;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useAutoSelectWallet = useAutoSelectWallet;
|
|
4
|
+
const debug_1 = require("../../../shared/utils/debug");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const react_2 = require("thirdweb/react");
|
|
7
|
+
const stores_1 = require("../stores");
|
|
8
|
+
const debug = (0, debug_1.debugB3React)("useAutoSelectWallet");
|
|
9
|
+
/**
|
|
10
|
+
* Hook to automatically select the first EOA wallet when user is authenticated
|
|
11
|
+
* Only auto-selects if the last auth was via wallet or no previous auth provider
|
|
12
|
+
*/
|
|
13
|
+
function useAutoSelectWallet({ enabled }) {
|
|
14
|
+
const isAuthenticated = (0, stores_1.useAuthStore)(state => state.isAuthenticated);
|
|
15
|
+
const wallets = (0, react_2.useConnectedWallets)();
|
|
16
|
+
const setActiveWallet = (0, react_2.useSetActiveWallet)();
|
|
17
|
+
const setWallet = (0, react_1.useCallback)((wallet) => {
|
|
18
|
+
debug("@@setWallet", wallet.id, wallet.getAccount()?.address);
|
|
19
|
+
setActiveWallet(wallet);
|
|
20
|
+
}, [setActiveWallet]);
|
|
21
|
+
(0, react_1.useEffect)(() => {
|
|
22
|
+
const autoSelectFirstEOAWallet = async () => {
|
|
23
|
+
// Only proceed if auto-selection is enabled and user is authenticated
|
|
24
|
+
if (!enabled || !isAuthenticated) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
// Find the first EOA wallet (excluding ecosystem wallets)
|
|
28
|
+
const isEOAWallet = (wallet) => !wallet.id.startsWith("ecosystem.");
|
|
29
|
+
const firstEOAWallet = wallets.find(isEOAWallet);
|
|
30
|
+
if (firstEOAWallet) {
|
|
31
|
+
// Only auto-select if the last auth was via wallet or no previous auth provider
|
|
32
|
+
const lastAuthProvider = await (0, react_2.getLastAuthProvider)();
|
|
33
|
+
const shouldAutoSelect = lastAuthProvider === null || lastAuthProvider === "wallet";
|
|
34
|
+
if (shouldAutoSelect) {
|
|
35
|
+
debug("Auto-selecting first EOA wallet", firstEOAWallet.id);
|
|
36
|
+
setWallet(firstEOAWallet);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
autoSelectFirstEOAWallet();
|
|
41
|
+
}, [enabled, isAuthenticated, setWallet, wallets]);
|
|
42
|
+
}
|
|
@@ -4,11 +4,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.useTurnkeyAuth = useTurnkeyAuth;
|
|
7
|
+
const debug_1 = require("../../../shared/utils/debug");
|
|
8
|
+
const react_1 = require("react");
|
|
7
9
|
const app_1 = __importDefault(require("../../app"));
|
|
10
|
+
const components_1 = require("../components");
|
|
8
11
|
const stores_1 = require("../stores");
|
|
9
|
-
const
|
|
10
|
-
const useB3_1 = require("../components/B3Provider/useB3");
|
|
11
|
-
const debug_1 = require("../../../shared/utils/debug");
|
|
12
|
+
const useAuthentication_1 = require("./useAuthentication");
|
|
12
13
|
const debug = (0, debug_1.debugB3React)("useTurnkeyAuth");
|
|
13
14
|
/**
|
|
14
15
|
* Hook for Turnkey email-based OTP authentication
|
|
@@ -23,7 +24,8 @@ function useTurnkeyAuth() {
|
|
|
23
24
|
const [error, setError] = (0, react_1.useState)(null);
|
|
24
25
|
const setIsAuthenticating = (0, stores_1.useAuthStore)(state => state.setIsAuthenticating);
|
|
25
26
|
const setIsAuthenticated = (0, stores_1.useAuthStore)(state => state.setIsAuthenticated);
|
|
26
|
-
const {
|
|
27
|
+
const { partnerId } = (0, components_1.useB3Config)();
|
|
28
|
+
const { user } = (0, useAuthentication_1.useAuthentication)(partnerId);
|
|
27
29
|
/**
|
|
28
30
|
* Step 1: Initiate login with email
|
|
29
31
|
* - Calls backend to create sub-org (if needed) and send OTP
|
|
@@ -14,7 +14,7 @@ const react_2 = require("react");
|
|
|
14
14
|
const thirdweb_2 = require("thirdweb");
|
|
15
15
|
const viem_1 = require("viem");
|
|
16
16
|
const wagmi_1 = require("wagmi");
|
|
17
|
-
const
|
|
17
|
+
const useB3Account_1 = require("../components/B3Provider/useB3Account");
|
|
18
18
|
const useAccountWallet_1 = require("./useAccountWallet");
|
|
19
19
|
const partnerId = String(process.env.PUBLIC_THIRDWEB_PARTNER_ID ||
|
|
20
20
|
process.env.NEXT_PUBLIC_THIRDWEB_PARTNER_ID ||
|
|
@@ -25,7 +25,7 @@ function useUnifiedChainSwitchAndExecute() {
|
|
|
25
25
|
const { switchChainAsync } = (0, wagmi_1.useSwitchChain)();
|
|
26
26
|
const [isSwitchingOrExecuting, setIsSwitchingOrExecuting] = (0, react_2.useState)(false);
|
|
27
27
|
const { isActiveSmartWallet, isActiveEOAWallet, connectedEOAWallet } = (0, useAccountWallet_1.useAccountWallet)();
|
|
28
|
-
const
|
|
28
|
+
const aaAccount = (0, useB3Account_1.useB3Account)();
|
|
29
29
|
// Handle EOA wallet chain switch and execute transaction
|
|
30
30
|
const handleEOASwitchChainAndSendTransaction = (0, react_2.useCallback)(async (targetChainId, params) => {
|
|
31
31
|
if (!connectedEOAWallet) {
|
|
@@ -8,8 +8,8 @@ import { Users } from "@b3dotfun/b3-api";
|
|
|
8
8
|
export declare function useUserQuery(): {
|
|
9
9
|
user: {
|
|
10
10
|
email?: string | undefined;
|
|
11
|
-
telNumber?: string | undefined;
|
|
12
11
|
username?: string | undefined;
|
|
12
|
+
telNumber?: string | undefined;
|
|
13
13
|
ens?: string | undefined;
|
|
14
14
|
avatar?: string | undefined;
|
|
15
15
|
preferences?: {} | undefined;
|
|
@@ -180,7 +180,6 @@ function AnySpendCustomInner({ loadOrder, mode = "modal", activeTab: activeTabPr
|
|
|
180
180
|
}
|
|
181
181
|
}
|
|
182
182
|
}, [srcChainId, tokenList, getTokenWithBalance, nativeTokens, fungibleTokens, dirtySelectSrcToken, dstToken.address]);
|
|
183
|
-
// const { account: isAuthenticated } = useB3();
|
|
184
183
|
const getRelayQuoteRequest = useMemo(() => {
|
|
185
184
|
return generateGetRelayQuoteRequest({
|
|
186
185
|
orderType: orderType,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
3
|
import app from "../../../../global-account/app.js";
|
|
4
|
-
import { Button, IPFSMediaRenderer, toast,
|
|
4
|
+
import { Button, IPFSMediaRenderer, toast, useAuthentication, useB3Config, useProfile, } from "../../../../global-account/react/index.js";
|
|
5
5
|
import { validateImageUrl } from "../../../../global-account/react/utils/profileDisplay.js";
|
|
6
6
|
import { cn } from "../../../../shared/utils/cn.js";
|
|
7
7
|
import { debugB3React } from "../../../../shared/utils/debug.js";
|
|
@@ -37,7 +37,8 @@ export function AvatarEditor({ onSetAvatar, className }) {
|
|
|
37
37
|
const [zoom, setZoom] = useState(1);
|
|
38
38
|
const [croppedAreaPixels, setCroppedAreaPixels] = useState(null);
|
|
39
39
|
const fileInputRef = useRef(null);
|
|
40
|
-
const {
|
|
40
|
+
const { partnerId } = useB3Config();
|
|
41
|
+
const { user, setUser } = useAuthentication(partnerId);
|
|
41
42
|
const setB3ModalContentType = useModalStore(state => state.setB3ModalContentType);
|
|
42
43
|
const contentType = useModalStore(state => state.contentType);
|
|
43
44
|
const account = useActiveAccount();
|