@b3dotfun/sdk 0.1.0-alpha.8 → 0.1.0-alpha.9

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.
@@ -8,7 +8,7 @@ import { ClientType } from "../../../client-manager";
8
8
  /**
9
9
  * Main B3Provider component
10
10
  */
11
- export declare function B3Provider({ theme, children, accountOverride, environment, automaticallySetFirstEoa, simDuneApiKey, toaster: _toaster, clientType, rpcUrls, partnerId, stripePublishableKey, onConnect, connectors, overrideDefaultConnectors, createClientReferenceId, enableTurnkey, defaultPermissions, }: {
11
+ export declare function B3Provider({ theme, children, accountOverride, environment, automaticallySetFirstEoa, simDuneApiKey, toaster: _toaster, clientType, rpcUrls, partnerId, stripePublishableKey, onConnect, onLogout, connectors, overrideDefaultConnectors, createClientReferenceId, enableTurnkey, defaultPermissions, }: {
12
12
  theme: "light" | "dark";
13
13
  children: React.ReactNode;
14
14
  accountOverride?: Account;
@@ -25,6 +25,7 @@ export declare function B3Provider({ theme, children, accountOverride, environme
25
25
  /** Partner-specific Stripe publishable key. If not provided, uses default B3 Stripe account. */
26
26
  stripePublishableKey?: string;
27
27
  onConnect?: (wallet: Wallet, b3Jwt: string) => void | Promise<void>;
28
+ onLogout?: () => void | Promise<void>;
28
29
  connectors?: CreateConnectorFn[];
29
30
  overrideDefaultConnectors?: boolean;
30
31
  createClientReferenceId?: (params: CreateOrderParams | CreateOnrampOrderParams) => Promise<string>;
@@ -26,7 +26,7 @@ const queryClient = new react_query_1.QueryClient();
26
26
  */
27
27
  function B3Provider({ theme = "light", children, accountOverride, environment, automaticallySetFirstEoa, simDuneApiKey,
28
28
  // deprecated since v0.0.87
29
- toaster: _toaster, clientType = "rest", rpcUrls, partnerId, stripePublishableKey, onConnect, connectors, overrideDefaultConnectors = false, createClientReferenceId, enableTurnkey = false, defaultPermissions, }) {
29
+ toaster: _toaster, clientType = "rest", rpcUrls, partnerId, stripePublishableKey, onConnect, onLogout, connectors, overrideDefaultConnectors = false, createClientReferenceId, enableTurnkey = false, defaultPermissions, }) {
30
30
  // Initialize Google Analytics on mount
31
31
  (0, react_2.useEffect)(() => {
32
32
  (0, analytics_1.loadGA4Script)();
@@ -36,7 +36,7 @@ toaster: _toaster, clientType = "rest", rpcUrls, partnerId, stripePublishableKey
36
36
  (0, client_manager_1.setClientType)(clientType);
37
37
  }, [clientType]);
38
38
  const wagmiConfig = (0, react_2.useMemo)(() => (0, createWagmiConfig_1.createWagmiConfig)({ partnerId, rpcUrls, connectors, overrideDefaultConnectors }), [partnerId, rpcUrls, connectors, overrideDefaultConnectors]);
39
- return ((0, jsx_runtime_1.jsx)(react_3.ThirdwebProvider, { children: (0, jsx_runtime_1.jsx)(wagmi_1.WagmiProvider, { config: wagmiConfig, reconnectOnMount: false, children: (0, jsx_runtime_1.jsx)(react_query_1.QueryClientProvider, { client: queryClient, children: (0, jsx_runtime_1.jsx)(react_1.TooltipProvider, { children: (0, jsx_runtime_1.jsx)(index_1.ToastProvider, { children: (0, jsx_runtime_1.jsx)(LocalSDKProvider_1.LocalSDKProvider, { onConnectCallback: onConnect, children: (0, jsx_runtime_1.jsxs)(B3ConfigProvider_1.B3ConfigProvider, { accountOverride: accountOverride, environment: environment, automaticallySetFirstEoa: !!automaticallySetFirstEoa, theme: theme, clientType: clientType, partnerId: partnerId, stripePublishableKey: stripePublishableKey, createClientReferenceId: createClientReferenceId, enableTurnkey: enableTurnkey, defaultPermissions: defaultPermissions, children: [(0, jsx_runtime_1.jsx)(ToastContextConnector, {}), (0, jsx_runtime_1.jsxs)(react_1.RelayKitProviderWrapper, { simDuneApiKey: simDuneApiKey, children: [children, (0, jsx_runtime_1.jsx)(StyleRoot_1.StyleRoot, { id: "b3-root" })] }), (0, jsx_runtime_1.jsx)(AuthenticationProvider_1.default, { partnerId: partnerId, automaticallySetFirstEoa: !!automaticallySetFirstEoa })] }) }) }) }) }) }) }));
39
+ return ((0, jsx_runtime_1.jsx)(react_3.ThirdwebProvider, { children: (0, jsx_runtime_1.jsx)(wagmi_1.WagmiProvider, { config: wagmiConfig, reconnectOnMount: false, children: (0, jsx_runtime_1.jsx)(react_query_1.QueryClientProvider, { client: queryClient, children: (0, jsx_runtime_1.jsx)(react_1.TooltipProvider, { children: (0, jsx_runtime_1.jsx)(index_1.ToastProvider, { children: (0, jsx_runtime_1.jsx)(LocalSDKProvider_1.LocalSDKProvider, { onConnectCallback: onConnect, onLogoutCallback: onLogout, children: (0, jsx_runtime_1.jsxs)(B3ConfigProvider_1.B3ConfigProvider, { accountOverride: accountOverride, environment: environment, automaticallySetFirstEoa: !!automaticallySetFirstEoa, theme: theme, clientType: clientType, partnerId: partnerId, stripePublishableKey: stripePublishableKey, createClientReferenceId: createClientReferenceId, enableTurnkey: enableTurnkey, defaultPermissions: defaultPermissions, children: [(0, jsx_runtime_1.jsx)(ToastContextConnector, {}), (0, jsx_runtime_1.jsxs)(react_1.RelayKitProviderWrapper, { simDuneApiKey: simDuneApiKey, children: [children, (0, jsx_runtime_1.jsx)(StyleRoot_1.StyleRoot, { id: "b3-root" })] }), (0, jsx_runtime_1.jsx)(AuthenticationProvider_1.default, { partnerId: partnerId, automaticallySetFirstEoa: !!automaticallySetFirstEoa })] }) }) }) }) }) }) }));
40
40
  }
41
41
  /**
42
42
  * Component to connect the toast context to the global toast API
@@ -5,12 +5,14 @@ import { Wallet } from "thirdweb/wallets";
5
5
  */
6
6
  export interface LocalSDKContextType {
7
7
  onConnectCallback?: (wallet: Wallet, b3Jwt: string) => void | Promise<void>;
8
+ onLogoutCallback?: () => void | Promise<void>;
8
9
  }
9
10
  export declare const LocalSDKContext: import("react").Context<LocalSDKContextType>;
10
11
  /**
11
12
  * Local SDK Provider that wraps the app and provides internal SDK state
12
13
  */
13
- export declare function LocalSDKProvider({ children, onConnectCallback, }: {
14
+ export declare function LocalSDKProvider({ children, onConnectCallback, onLogoutCallback, }: {
14
15
  children: React.ReactNode;
15
16
  onConnectCallback?: (wallet: Wallet, b3Jwt: string) => void | Promise<void>;
17
+ onLogoutCallback?: () => void | Promise<void>;
16
18
  }): import("react/jsx-runtime").JSX.Element;
@@ -6,12 +6,14 @@ const jsx_runtime_1 = require("react/jsx-runtime");
6
6
  const react_1 = require("react");
7
7
  exports.LocalSDKContext = (0, react_1.createContext)({
8
8
  onConnectCallback: undefined,
9
+ onLogoutCallback: undefined,
9
10
  });
10
11
  /**
11
12
  * Local SDK Provider that wraps the app and provides internal SDK state
12
13
  */
13
- function LocalSDKProvider({ children, onConnectCallback, }) {
14
+ function LocalSDKProvider({ children, onConnectCallback, onLogoutCallback, }) {
14
15
  return ((0, jsx_runtime_1.jsx)(exports.LocalSDKContext.Provider, { value: {
15
16
  onConnectCallback,
17
+ onLogoutCallback,
16
18
  }, children: children }));
17
19
  }
@@ -22,7 +22,7 @@ const useTWAuth_1 = require("./useTWAuth");
22
22
  const useUserQuery_1 = require("./useUserQuery");
23
23
  const debug = (0, debug_1.debugB3React)("useAuthentication");
24
24
  function useAuthentication(partnerId) {
25
- const { onConnectCallback } = (0, react_2.useContext)(LocalSDKProvider_1.LocalSDKContext);
25
+ const { onConnectCallback, onLogoutCallback } = (0, react_2.useContext)(LocalSDKProvider_1.LocalSDKContext);
26
26
  const { disconnect } = (0, react_3.useDisconnect)();
27
27
  const wallets = (0, react_3.useConnectedWallets)();
28
28
  const activeWallet = (0, react_3.useActiveWallet)();
@@ -156,7 +156,10 @@ function useAuthentication(partnerId) {
156
156
  setIsConnected(false);
157
157
  setUser();
158
158
  callback?.();
159
- }, [activeWallet, disconnect, wallets, setIsAuthenticated, setUser, setIsConnected]);
159
+ if (onLogoutCallback) {
160
+ await onLogoutCallback();
161
+ }
162
+ }, [activeWallet, disconnect, wallets, setIsAuthenticated, setUser, setIsConnected, onLogoutCallback]);
160
163
  const onConnect = (0, react_2.useCallback)(async (_walleAutoConnectedWith, allConnectedWallets) => {
161
164
  debug("@@useAuthentication:onConnect", { _walleAutoConnectedWith, allConnectedWallets });
162
165
  try {
@@ -8,7 +8,7 @@ import { ClientType } from "../../../client-manager";
8
8
  /**
9
9
  * Main B3Provider component
10
10
  */
11
- export declare function B3Provider({ theme, children, accountOverride, environment, automaticallySetFirstEoa, simDuneApiKey, toaster: _toaster, clientType, rpcUrls, partnerId, stripePublishableKey, onConnect, connectors, overrideDefaultConnectors, createClientReferenceId, enableTurnkey, defaultPermissions, }: {
11
+ export declare function B3Provider({ theme, children, accountOverride, environment, automaticallySetFirstEoa, simDuneApiKey, toaster: _toaster, clientType, rpcUrls, partnerId, stripePublishableKey, onConnect, onLogout, connectors, overrideDefaultConnectors, createClientReferenceId, enableTurnkey, defaultPermissions, }: {
12
12
  theme: "light" | "dark";
13
13
  children: React.ReactNode;
14
14
  accountOverride?: Account;
@@ -25,6 +25,7 @@ export declare function B3Provider({ theme, children, accountOverride, environme
25
25
  /** Partner-specific Stripe publishable key. If not provided, uses default B3 Stripe account. */
26
26
  stripePublishableKey?: string;
27
27
  onConnect?: (wallet: Wallet, b3Jwt: string) => void | Promise<void>;
28
+ onLogout?: () => void | Promise<void>;
28
29
  connectors?: CreateConnectorFn[];
29
30
  overrideDefaultConnectors?: boolean;
30
31
  createClientReferenceId?: (params: CreateOrderParams | CreateOnrampOrderParams) => Promise<string>;
@@ -20,7 +20,7 @@ const queryClient = new QueryClient();
20
20
  */
21
21
  export function B3Provider({ theme = "light", children, accountOverride, environment, automaticallySetFirstEoa, simDuneApiKey,
22
22
  // deprecated since v0.0.87
23
- toaster: _toaster, clientType = "rest", rpcUrls, partnerId, stripePublishableKey, onConnect, connectors, overrideDefaultConnectors = false, createClientReferenceId, enableTurnkey = false, defaultPermissions, }) {
23
+ toaster: _toaster, clientType = "rest", rpcUrls, partnerId, stripePublishableKey, onConnect, onLogout, connectors, overrideDefaultConnectors = false, createClientReferenceId, enableTurnkey = false, defaultPermissions, }) {
24
24
  // Initialize Google Analytics on mount
25
25
  useEffect(() => {
26
26
  loadGA4Script();
@@ -30,7 +30,7 @@ toaster: _toaster, clientType = "rest", rpcUrls, partnerId, stripePublishableKey
30
30
  setClientType(clientType);
31
31
  }, [clientType]);
32
32
  const wagmiConfig = useMemo(() => createWagmiConfig({ partnerId, rpcUrls, connectors, overrideDefaultConnectors }), [partnerId, rpcUrls, connectors, overrideDefaultConnectors]);
33
- return (_jsx(ThirdwebProvider, { children: _jsx(WagmiProvider, { config: wagmiConfig, reconnectOnMount: false, children: _jsx(QueryClientProvider, { client: queryClient, children: _jsx(TooltipProvider, { children: _jsx(ToastProvider, { children: _jsx(LocalSDKProvider, { onConnectCallback: onConnect, children: _jsxs(B3ConfigProvider, { accountOverride: accountOverride, environment: environment, automaticallySetFirstEoa: !!automaticallySetFirstEoa, theme: theme, clientType: clientType, partnerId: partnerId, stripePublishableKey: stripePublishableKey, createClientReferenceId: createClientReferenceId, enableTurnkey: enableTurnkey, defaultPermissions: defaultPermissions, children: [_jsx(ToastContextConnector, {}), _jsxs(RelayKitProviderWrapper, { simDuneApiKey: simDuneApiKey, children: [children, _jsx(StyleRoot, { id: "b3-root" })] }), _jsx(AuthenticationProvider, { partnerId: partnerId, automaticallySetFirstEoa: !!automaticallySetFirstEoa })] }) }) }) }) }) }) }));
33
+ return (_jsx(ThirdwebProvider, { children: _jsx(WagmiProvider, { config: wagmiConfig, reconnectOnMount: false, children: _jsx(QueryClientProvider, { client: queryClient, children: _jsx(TooltipProvider, { children: _jsx(ToastProvider, { children: _jsx(LocalSDKProvider, { onConnectCallback: onConnect, onLogoutCallback: onLogout, children: _jsxs(B3ConfigProvider, { accountOverride: accountOverride, environment: environment, automaticallySetFirstEoa: !!automaticallySetFirstEoa, theme: theme, clientType: clientType, partnerId: partnerId, stripePublishableKey: stripePublishableKey, createClientReferenceId: createClientReferenceId, enableTurnkey: enableTurnkey, defaultPermissions: defaultPermissions, children: [_jsx(ToastContextConnector, {}), _jsxs(RelayKitProviderWrapper, { simDuneApiKey: simDuneApiKey, children: [children, _jsx(StyleRoot, { id: "b3-root" })] }), _jsx(AuthenticationProvider, { partnerId: partnerId, automaticallySetFirstEoa: !!automaticallySetFirstEoa })] }) }) }) }) }) }) }));
34
34
  }
35
35
  /**
36
36
  * Component to connect the toast context to the global toast API
@@ -5,12 +5,14 @@ import { Wallet } from "thirdweb/wallets";
5
5
  */
6
6
  export interface LocalSDKContextType {
7
7
  onConnectCallback?: (wallet: Wallet, b3Jwt: string) => void | Promise<void>;
8
+ onLogoutCallback?: () => void | Promise<void>;
8
9
  }
9
10
  export declare const LocalSDKContext: import("react").Context<LocalSDKContextType>;
10
11
  /**
11
12
  * Local SDK Provider that wraps the app and provides internal SDK state
12
13
  */
13
- export declare function LocalSDKProvider({ children, onConnectCallback, }: {
14
+ export declare function LocalSDKProvider({ children, onConnectCallback, onLogoutCallback, }: {
14
15
  children: React.ReactNode;
15
16
  onConnectCallback?: (wallet: Wallet, b3Jwt: string) => void | Promise<void>;
17
+ onLogoutCallback?: () => void | Promise<void>;
16
18
  }): import("react/jsx-runtime").JSX.Element;
@@ -2,12 +2,14 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { createContext } from "react";
3
3
  export const LocalSDKContext = createContext({
4
4
  onConnectCallback: undefined,
5
+ onLogoutCallback: undefined,
5
6
  });
6
7
  /**
7
8
  * Local SDK Provider that wraps the app and provides internal SDK state
8
9
  */
9
- export function LocalSDKProvider({ children, onConnectCallback, }) {
10
+ export function LocalSDKProvider({ children, onConnectCallback, onLogoutCallback, }) {
10
11
  return (_jsx(LocalSDKContext.Provider, { value: {
11
12
  onConnectCallback,
13
+ onLogoutCallback,
12
14
  }, children: children }));
13
15
  }
@@ -16,7 +16,7 @@ import { useTWAuth } from "./useTWAuth.js";
16
16
  import { useUserQuery } from "./useUserQuery.js";
17
17
  const debug = debugB3React("useAuthentication");
18
18
  export function useAuthentication(partnerId) {
19
- const { onConnectCallback } = useContext(LocalSDKContext);
19
+ const { onConnectCallback, onLogoutCallback } = useContext(LocalSDKContext);
20
20
  const { disconnect } = useDisconnect();
21
21
  const wallets = useConnectedWallets();
22
22
  const activeWallet = useActiveWallet();
@@ -150,7 +150,10 @@ export function useAuthentication(partnerId) {
150
150
  setIsConnected(false);
151
151
  setUser();
152
152
  callback?.();
153
- }, [activeWallet, disconnect, wallets, setIsAuthenticated, setUser, setIsConnected]);
153
+ if (onLogoutCallback) {
154
+ await onLogoutCallback();
155
+ }
156
+ }, [activeWallet, disconnect, wallets, setIsAuthenticated, setUser, setIsConnected, onLogoutCallback]);
154
157
  const onConnect = useCallback(async (_walleAutoConnectedWith, allConnectedWallets) => {
155
158
  debug("@@useAuthentication:onConnect", { _walleAutoConnectedWith, allConnectedWallets });
156
159
  try {
@@ -8,7 +8,7 @@ import { ClientType } from "../../../client-manager";
8
8
  /**
9
9
  * Main B3Provider component
10
10
  */
11
- export declare function B3Provider({ theme, children, accountOverride, environment, automaticallySetFirstEoa, simDuneApiKey, toaster: _toaster, clientType, rpcUrls, partnerId, stripePublishableKey, onConnect, connectors, overrideDefaultConnectors, createClientReferenceId, enableTurnkey, defaultPermissions, }: {
11
+ export declare function B3Provider({ theme, children, accountOverride, environment, automaticallySetFirstEoa, simDuneApiKey, toaster: _toaster, clientType, rpcUrls, partnerId, stripePublishableKey, onConnect, onLogout, connectors, overrideDefaultConnectors, createClientReferenceId, enableTurnkey, defaultPermissions, }: {
12
12
  theme: "light" | "dark";
13
13
  children: React.ReactNode;
14
14
  accountOverride?: Account;
@@ -25,6 +25,7 @@ export declare function B3Provider({ theme, children, accountOverride, environme
25
25
  /** Partner-specific Stripe publishable key. If not provided, uses default B3 Stripe account. */
26
26
  stripePublishableKey?: string;
27
27
  onConnect?: (wallet: Wallet, b3Jwt: string) => void | Promise<void>;
28
+ onLogout?: () => void | Promise<void>;
28
29
  connectors?: CreateConnectorFn[];
29
30
  overrideDefaultConnectors?: boolean;
30
31
  createClientReferenceId?: (params: CreateOrderParams | CreateOnrampOrderParams) => Promise<string>;
@@ -5,12 +5,14 @@ import { Wallet } from "thirdweb/wallets";
5
5
  */
6
6
  export interface LocalSDKContextType {
7
7
  onConnectCallback?: (wallet: Wallet, b3Jwt: string) => void | Promise<void>;
8
+ onLogoutCallback?: () => void | Promise<void>;
8
9
  }
9
10
  export declare const LocalSDKContext: import("react").Context<LocalSDKContextType>;
10
11
  /**
11
12
  * Local SDK Provider that wraps the app and provides internal SDK state
12
13
  */
13
- export declare function LocalSDKProvider({ children, onConnectCallback, }: {
14
+ export declare function LocalSDKProvider({ children, onConnectCallback, onLogoutCallback, }: {
14
15
  children: React.ReactNode;
15
16
  onConnectCallback?: (wallet: Wallet, b3Jwt: string) => void | Promise<void>;
17
+ onLogoutCallback?: () => void | Promise<void>;
16
18
  }): import("react/jsx-runtime").JSX.Element;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@b3dotfun/sdk",
3
- "version": "0.1.0-alpha.8",
3
+ "version": "0.1.0-alpha.9",
4
4
  "source": "src/index.ts",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "react-native": "./dist/cjs/index.native.js",
@@ -37,6 +37,7 @@ export function B3Provider({
37
37
  partnerId,
38
38
  stripePublishableKey,
39
39
  onConnect,
40
+ onLogout,
40
41
  connectors,
41
42
  overrideDefaultConnectors = false,
42
43
  createClientReferenceId,
@@ -59,6 +60,7 @@ export function B3Provider({
59
60
  /** Partner-specific Stripe publishable key. If not provided, uses default B3 Stripe account. */
60
61
  stripePublishableKey?: string;
61
62
  onConnect?: (wallet: Wallet, b3Jwt: string) => void | Promise<void>;
63
+ onLogout?: () => void | Promise<void>;
62
64
  connectors?: CreateConnectorFn[];
63
65
  overrideDefaultConnectors?: boolean;
64
66
  createClientReferenceId?: (params: CreateOrderParams | CreateOnrampOrderParams) => Promise<string>;
@@ -86,7 +88,7 @@ export function B3Provider({
86
88
  <QueryClientProvider client={queryClient}>
87
89
  <TooltipProvider>
88
90
  <ToastProvider>
89
- <LocalSDKProvider onConnectCallback={onConnect}>
91
+ <LocalSDKProvider onConnectCallback={onConnect} onLogoutCallback={onLogout}>
90
92
  <B3ConfigProvider
91
93
  accountOverride={accountOverride}
92
94
  environment={environment}
@@ -7,10 +7,12 @@ import { Wallet } from "thirdweb/wallets";
7
7
  */
8
8
  export interface LocalSDKContextType {
9
9
  onConnectCallback?: (wallet: Wallet, b3Jwt: string) => void | Promise<void>;
10
+ onLogoutCallback?: () => void | Promise<void>;
10
11
  }
11
12
 
12
13
  export const LocalSDKContext = createContext<LocalSDKContextType>({
13
14
  onConnectCallback: undefined,
15
+ onLogoutCallback: undefined,
14
16
  });
15
17
 
16
18
  /**
@@ -19,14 +21,17 @@ export const LocalSDKContext = createContext<LocalSDKContextType>({
19
21
  export function LocalSDKProvider({
20
22
  children,
21
23
  onConnectCallback,
24
+ onLogoutCallback,
22
25
  }: {
23
26
  children: React.ReactNode;
24
27
  onConnectCallback?: (wallet: Wallet, b3Jwt: string) => void | Promise<void>;
28
+ onLogoutCallback?: () => void | Promise<void>;
25
29
  }) {
26
30
  return (
27
31
  <LocalSDKContext.Provider
28
32
  value={{
29
33
  onConnectCallback,
34
+ onLogoutCallback,
30
35
  }}
31
36
  >
32
37
  {children}
@@ -25,7 +25,7 @@ import { useUserQuery } from "./useUserQuery";
25
25
  const debug = debugB3React("useAuthentication");
26
26
 
27
27
  export function useAuthentication(partnerId: string) {
28
- const { onConnectCallback } = useContext(LocalSDKContext);
28
+ const { onConnectCallback, onLogoutCallback } = useContext(LocalSDKContext);
29
29
  const { disconnect } = useDisconnect();
30
30
  const wallets = useConnectedWallets();
31
31
  const activeWallet = useActiveWallet();
@@ -181,8 +181,12 @@ export function useAuthentication(partnerId: string) {
181
181
  setIsConnected(false);
182
182
  setUser();
183
183
  callback?.();
184
+
185
+ if (onLogoutCallback) {
186
+ await onLogoutCallback();
187
+ }
184
188
  },
185
- [activeWallet, disconnect, wallets, setIsAuthenticated, setUser, setIsConnected],
189
+ [activeWallet, disconnect, wallets, setIsAuthenticated, setUser, setIsConnected, onLogoutCallback],
186
190
  );
187
191
 
188
192
  const onConnect = useCallback(