@b3dotfun/sdk 0.0.87 → 0.0.88

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.
Files changed (175) hide show
  1. package/README.md +2 -1
  2. package/dist/cjs/anyspend/react/components/AnySpend.d.ts +5 -0
  3. package/dist/cjs/anyspend/react/components/AnySpend.js +77 -73
  4. package/dist/cjs/anyspend/react/components/AnySpendCustom.js +0 -1
  5. package/dist/cjs/anyspend/react/components/AnySpendCustomExactIn.d.ts +1 -1
  6. package/dist/cjs/anyspend/react/components/AnySpendCustomExactIn.js +1 -2
  7. package/dist/cjs/anyspend/react/components/AnySpendDeposit.d.ts +122 -0
  8. package/dist/cjs/anyspend/react/components/AnySpendDeposit.js +190 -0
  9. package/dist/cjs/anyspend/react/components/QRDeposit.d.ts +43 -0
  10. package/dist/cjs/anyspend/react/components/QRDeposit.js +146 -0
  11. package/dist/cjs/anyspend/react/components/common/OrderDetails.js +17 -12
  12. package/dist/cjs/anyspend/react/components/common/OrderDetailsCollapsible.d.ts +2 -0
  13. package/dist/cjs/anyspend/react/components/common/OrderDetailsCollapsible.js +12 -5
  14. package/dist/cjs/anyspend/react/components/common/OrderStatus.js +2 -2
  15. package/dist/cjs/anyspend/react/components/common/WarningText.d.ts +32 -0
  16. package/dist/cjs/anyspend/react/components/common/WarningText.js +36 -0
  17. package/dist/cjs/anyspend/react/components/icons/CreditCardIcon.d.ts +6 -0
  18. package/dist/cjs/anyspend/react/components/icons/CreditCardIcon.js +6 -0
  19. package/dist/cjs/anyspend/react/components/icons/QrCodeIcon.d.ts +6 -0
  20. package/dist/cjs/anyspend/react/components/icons/QrCodeIcon.js +6 -0
  21. package/dist/cjs/anyspend/react/components/index.d.ts +2 -0
  22. package/dist/cjs/anyspend/react/components/index.js +3 -1
  23. package/dist/cjs/anyspend/react/hooks/index.d.ts +1 -0
  24. package/dist/cjs/anyspend/react/hooks/index.js +1 -0
  25. package/dist/cjs/anyspend/react/hooks/useAnyspendFlow.d.ts +2 -2
  26. package/dist/cjs/anyspend/react/hooks/useAnyspendFlow.js +35 -11
  27. package/dist/cjs/anyspend/react/hooks/useCreateDepositFirstOrder.d.ts +24 -0
  28. package/dist/cjs/anyspend/react/hooks/useCreateDepositFirstOrder.js +86 -0
  29. package/dist/cjs/anyspend/react/hooks/useSigMint.d.ts +1 -1
  30. package/dist/cjs/anyspend/utils/format.js +28 -5
  31. package/dist/cjs/global-account/react/components/AvatarEditor/AvatarEditor.js +2 -1
  32. package/dist/cjs/global-account/react/components/B3Provider/B3Provider.js +17 -47
  33. package/dist/cjs/global-account/react/components/B3Provider/B3Provider.native.js +6 -7
  34. package/dist/cjs/global-account/react/components/B3Provider/types.d.ts +0 -5
  35. package/dist/cjs/global-account/react/components/B3Provider/types.js +4 -4
  36. package/dist/cjs/global-account/react/components/B3Provider/useB3.d.ts +1 -0
  37. package/dist/cjs/global-account/react/components/B3Provider/useB3.js +1 -0
  38. package/dist/cjs/global-account/react/components/B3Provider/useB3Account.d.ts +1 -0
  39. package/dist/cjs/global-account/react/components/B3Provider/useB3Account.js +10 -0
  40. package/dist/cjs/global-account/react/components/B3Provider/useB3Config.d.ts +9 -0
  41. package/dist/cjs/global-account/react/components/B3Provider/useB3Config.js +23 -0
  42. package/dist/cjs/global-account/react/components/LinkAccount/LinkAccount.js +1 -1
  43. package/dist/cjs/global-account/react/components/LinkAccount/LinkNewAccount.js +1 -2
  44. package/dist/cjs/global-account/react/components/ManageAccount/ProfileSection.js +2 -1
  45. package/dist/cjs/global-account/react/components/ManageAccount/SettingsProfileCard.js +2 -1
  46. package/dist/cjs/global-account/react/components/SignInWithB3/SignInWithB3.js +2 -1
  47. package/dist/cjs/global-account/react/components/SignInWithB3/SignInWithB3Flow.js +2 -1
  48. package/dist/cjs/global-account/react/components/index.d.ts +2 -0
  49. package/dist/cjs/global-account/react/components/index.js +7 -3
  50. package/dist/cjs/global-account/react/hooks/useAccountWallet.js +3 -2
  51. package/dist/cjs/global-account/react/hooks/useAuthentication.d.ts +1 -1
  52. package/dist/cjs/global-account/react/hooks/useAutoSelectWallet.d.ts +7 -0
  53. package/dist/cjs/global-account/react/hooks/useAutoSelectWallet.js +42 -0
  54. package/dist/cjs/global-account/react/hooks/useTurnkeyAuth.js +6 -4
  55. package/dist/cjs/global-account/react/hooks/useUnifiedChainSwitchAndExecute.js +2 -2
  56. package/dist/cjs/global-account/react/hooks/useUserQuery.d.ts +1 -1
  57. package/dist/cjs/global-account/react/stores/useModalStore.d.ts +4 -0
  58. package/dist/esm/anyspend/react/components/AnySpend.d.ts +5 -0
  59. package/dist/esm/anyspend/react/components/AnySpend.js +77 -73
  60. package/dist/esm/anyspend/react/components/AnySpendCustom.js +0 -1
  61. package/dist/esm/anyspend/react/components/AnySpendCustomExactIn.d.ts +1 -1
  62. package/dist/esm/anyspend/react/components/AnySpendCustomExactIn.js +1 -2
  63. package/dist/esm/anyspend/react/components/AnySpendDeposit.d.ts +122 -0
  64. package/dist/esm/anyspend/react/components/AnySpendDeposit.js +187 -0
  65. package/dist/esm/anyspend/react/components/QRDeposit.d.ts +43 -0
  66. package/dist/esm/anyspend/react/components/QRDeposit.js +143 -0
  67. package/dist/esm/anyspend/react/components/common/OrderDetails.js +17 -12
  68. package/dist/esm/anyspend/react/components/common/OrderDetailsCollapsible.d.ts +2 -0
  69. package/dist/esm/anyspend/react/components/common/OrderDetailsCollapsible.js +12 -5
  70. package/dist/esm/anyspend/react/components/common/OrderStatus.js +2 -2
  71. package/dist/esm/anyspend/react/components/common/WarningText.d.ts +32 -0
  72. package/dist/esm/anyspend/react/components/common/WarningText.js +32 -0
  73. package/dist/esm/anyspend/react/components/icons/CreditCardIcon.d.ts +6 -0
  74. package/dist/esm/anyspend/react/components/icons/CreditCardIcon.js +2 -0
  75. package/dist/esm/anyspend/react/components/icons/QrCodeIcon.d.ts +6 -0
  76. package/dist/esm/anyspend/react/components/icons/QrCodeIcon.js +2 -0
  77. package/dist/esm/anyspend/react/components/index.d.ts +2 -0
  78. package/dist/esm/anyspend/react/components/index.js +1 -0
  79. package/dist/esm/anyspend/react/hooks/index.d.ts +1 -0
  80. package/dist/esm/anyspend/react/hooks/index.js +1 -0
  81. package/dist/esm/anyspend/react/hooks/useAnyspendFlow.d.ts +2 -2
  82. package/dist/esm/anyspend/react/hooks/useAnyspendFlow.js +35 -11
  83. package/dist/esm/anyspend/react/hooks/useCreateDepositFirstOrder.d.ts +24 -0
  84. package/dist/esm/anyspend/react/hooks/useCreateDepositFirstOrder.js +83 -0
  85. package/dist/esm/anyspend/react/hooks/useSigMint.d.ts +1 -1
  86. package/dist/esm/anyspend/utils/format.js +28 -5
  87. package/dist/esm/global-account/react/components/AvatarEditor/AvatarEditor.js +3 -2
  88. package/dist/esm/global-account/react/components/B3Provider/B3Provider.js +21 -51
  89. package/dist/esm/global-account/react/components/B3Provider/B3Provider.native.js +6 -7
  90. package/dist/esm/global-account/react/components/B3Provider/types.d.ts +0 -5
  91. package/dist/esm/global-account/react/components/B3Provider/types.js +4 -4
  92. package/dist/esm/global-account/react/components/B3Provider/useB3.d.ts +1 -0
  93. package/dist/esm/global-account/react/components/B3Provider/useB3.js +1 -0
  94. package/dist/esm/global-account/react/components/B3Provider/useB3Account.d.ts +1 -0
  95. package/dist/esm/global-account/react/components/B3Provider/useB3Account.js +6 -0
  96. package/dist/esm/global-account/react/components/B3Provider/useB3Config.d.ts +9 -0
  97. package/dist/esm/global-account/react/components/B3Provider/useB3Config.js +19 -0
  98. package/dist/esm/global-account/react/components/LinkAccount/LinkAccount.js +2 -2
  99. package/dist/esm/global-account/react/components/LinkAccount/LinkNewAccount.js +2 -3
  100. package/dist/esm/global-account/react/components/ManageAccount/ProfileSection.js +3 -2
  101. package/dist/esm/global-account/react/components/ManageAccount/SettingsProfileCard.js +3 -2
  102. package/dist/esm/global-account/react/components/SignInWithB3/SignInWithB3.js +3 -2
  103. package/dist/esm/global-account/react/components/SignInWithB3/SignInWithB3Flow.js +3 -2
  104. package/dist/esm/global-account/react/components/index.d.ts +2 -0
  105. package/dist/esm/global-account/react/components/index.js +2 -0
  106. package/dist/esm/global-account/react/hooks/useAccountWallet.js +4 -3
  107. package/dist/esm/global-account/react/hooks/useAuthentication.d.ts +1 -1
  108. package/dist/esm/global-account/react/hooks/useAutoSelectWallet.d.ts +7 -0
  109. package/dist/esm/global-account/react/hooks/useAutoSelectWallet.js +39 -0
  110. package/dist/esm/global-account/react/hooks/useTurnkeyAuth.js +6 -4
  111. package/dist/esm/global-account/react/hooks/useUnifiedChainSwitchAndExecute.js +2 -2
  112. package/dist/esm/global-account/react/hooks/useUserQuery.d.ts +1 -1
  113. package/dist/esm/global-account/react/stores/useModalStore.d.ts +4 -0
  114. package/dist/styles/index.css +1 -1
  115. package/dist/types/anyspend/react/components/AnySpend.d.ts +5 -0
  116. package/dist/types/anyspend/react/components/AnySpendCustomExactIn.d.ts +1 -1
  117. package/dist/types/anyspend/react/components/AnySpendDeposit.d.ts +122 -0
  118. package/dist/types/anyspend/react/components/QRDeposit.d.ts +43 -0
  119. package/dist/types/anyspend/react/components/common/OrderDetailsCollapsible.d.ts +2 -0
  120. package/dist/types/anyspend/react/components/common/WarningText.d.ts +32 -0
  121. package/dist/types/anyspend/react/components/icons/CreditCardIcon.d.ts +6 -0
  122. package/dist/types/anyspend/react/components/icons/QrCodeIcon.d.ts +6 -0
  123. package/dist/types/anyspend/react/components/index.d.ts +2 -0
  124. package/dist/types/anyspend/react/hooks/index.d.ts +1 -0
  125. package/dist/types/anyspend/react/hooks/useAnyspendFlow.d.ts +2 -2
  126. package/dist/types/anyspend/react/hooks/useCreateDepositFirstOrder.d.ts +24 -0
  127. package/dist/types/anyspend/react/hooks/useSigMint.d.ts +1 -1
  128. package/dist/types/global-account/react/components/B3Provider/types.d.ts +0 -5
  129. package/dist/types/global-account/react/components/B3Provider/useB3.d.ts +1 -0
  130. package/dist/types/global-account/react/components/B3Provider/useB3Account.d.ts +1 -0
  131. package/dist/types/global-account/react/components/B3Provider/useB3Config.d.ts +9 -0
  132. package/dist/types/global-account/react/components/index.d.ts +2 -0
  133. package/dist/types/global-account/react/hooks/useAuthentication.d.ts +1 -1
  134. package/dist/types/global-account/react/hooks/useAutoSelectWallet.d.ts +7 -0
  135. package/dist/types/global-account/react/hooks/useUserQuery.d.ts +1 -1
  136. package/dist/types/global-account/react/stores/useModalStore.d.ts +4 -0
  137. package/package.json +1 -1
  138. package/src/anyspend/react/components/AnySpend.tsx +105 -85
  139. package/src/anyspend/react/components/AnySpendCustom.tsx +0 -2
  140. package/src/anyspend/react/components/AnySpendCustomExactIn.tsx +2 -3
  141. package/src/anyspend/react/components/AnySpendDeposit.tsx +578 -0
  142. package/src/anyspend/react/components/QRDeposit.tsx +348 -0
  143. package/src/anyspend/react/components/common/OrderDetails.tsx +26 -8
  144. package/src/anyspend/react/components/common/OrderDetailsCollapsible.tsx +20 -8
  145. package/src/anyspend/react/components/common/OrderStatus.tsx +2 -2
  146. package/src/anyspend/react/components/common/WarningText.tsx +52 -0
  147. package/src/anyspend/react/components/icons/CreditCardIcon.tsx +25 -0
  148. package/src/anyspend/react/components/icons/QrCodeIcon.tsx +25 -0
  149. package/src/anyspend/react/components/icons/credit-card.svg +5 -0
  150. package/src/anyspend/react/components/icons/qr-code.svg +5 -0
  151. package/src/anyspend/react/components/index.ts +2 -0
  152. package/src/anyspend/react/hooks/index.ts +1 -0
  153. package/src/anyspend/react/hooks/useAnyspendFlow.ts +37 -12
  154. package/src/anyspend/react/hooks/useCreateDepositFirstOrder.ts +110 -0
  155. package/src/anyspend/utils/format.ts +33 -5
  156. package/src/global-account/react/components/AvatarEditor/AvatarEditor.tsx +10 -2
  157. package/src/global-account/react/components/B3Provider/B3Provider.native.tsx +6 -7
  158. package/src/global-account/react/components/B3Provider/B3Provider.tsx +20 -71
  159. package/src/global-account/react/components/B3Provider/types.ts +8 -9
  160. package/src/global-account/react/components/B3Provider/useB3.ts +1 -0
  161. package/src/global-account/react/components/B3Provider/useB3Account.ts +7 -0
  162. package/src/global-account/react/components/B3Provider/useB3Config.ts +34 -0
  163. package/src/global-account/react/components/LinkAccount/LinkAccount.tsx +2 -2
  164. package/src/global-account/react/components/LinkAccount/LinkNewAccount.tsx +2 -3
  165. package/src/global-account/react/components/ManageAccount/ProfileSection.tsx +10 -2
  166. package/src/global-account/react/components/ManageAccount/SettingsProfileCard.tsx +3 -2
  167. package/src/global-account/react/components/SignInWithB3/SignInWithB3.tsx +2 -2
  168. package/src/global-account/react/components/SignInWithB3/SignInWithB3Flow.tsx +5 -2
  169. package/src/global-account/react/components/index.ts +2 -0
  170. package/src/global-account/react/hooks/useAccountWallet.tsx +4 -3
  171. package/src/global-account/react/hooks/useAutoSelectWallet.ts +51 -0
  172. package/src/global-account/react/hooks/useTurnkeyAuth.ts +7 -5
  173. package/src/global-account/react/hooks/useUnifiedChainSwitchAndExecute.ts +2 -2
  174. package/src/global-account/react/stores/useModalStore.ts +4 -0
  175. package/src/styles/index.css +2 -0
@@ -0,0 +1,19 @@
1
+ import { useContext, useMemo } from "react";
2
+ import { B3Context } from "./types.js";
3
+ export const useB3Config = () => {
4
+ const context = useContext(B3Context);
5
+ if (!context) {
6
+ throw new Error("useB3 must be used within a B3Provider");
7
+ }
8
+ const { automaticallySetFirstEoa, environment, theme, clientType, partnerId, createClientReferenceId, enableTurnkey, } = context;
9
+ // Return a stable reference
10
+ return useMemo(() => ({
11
+ automaticallySetFirstEoa,
12
+ environment,
13
+ theme,
14
+ clientType,
15
+ partnerId,
16
+ createClientReferenceId,
17
+ enableTurnkey,
18
+ }), [automaticallySetFirstEoa, environment, theme, clientType, partnerId, createClientReferenceId, enableTurnkey]);
19
+ };
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import app from "../../../../global-account/app.js";
3
- import { Button, toast, useB3, useModalStore, useQueryB3, } from "../../../../global-account/react/index.js";
3
+ import { Button, toast, useAuthentication, useModalStore, useQueryB3, } from "../../../../global-account/react/index.js";
4
4
  import { client } from "../../../../shared/utils/thirdweb.js";
5
5
  import { Copy, Loader2, Pencil } from "lucide-react";
6
6
  import { useEffect, useRef, useState } from "react";
@@ -17,7 +17,7 @@ export const LinkAccount = ({ partnerId, onLogout: _onLogout, chain, }) => {
17
17
  const isLinking = useModalStore(state => state.isLinking);
18
18
  const setB3ModalOpen = useModalStore(state => state.setB3ModalOpen);
19
19
  const contentType = useModalStore(state => state.contentType);
20
- const { user, setUser } = useB3();
20
+ const { user, setUser } = useAuthentication(partnerId);
21
21
  const [isUpdatingCode, setIsUpdatingCode] = useState(false);
22
22
  const [newReferralCode, setNewReferralCode] = useState("");
23
23
  const [isEditingCode, setIsEditingCode] = useState(false);
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import app from "../../../../global-account/app.js";
3
- import { toast } from "../../../../global-account/react/index.js";
3
+ import { toast, useB3Account } from "../../../../global-account/react/index.js";
4
4
  import { ecosystemWalletId } from "../../../../shared/constants/index.js";
5
5
  import { thirdwebB3Mainnet } from "../../../../shared/constants/chains/b3Chain.js";
6
6
  import { client } from "../../../../shared/utils/thirdweb.js";
@@ -11,7 +11,6 @@ import { createWallet, preAuthenticate } from "thirdweb/wallets";
11
11
  import { WalletRow } from "../../index.js";
12
12
  import { useModalStore } from "../../stores/useModalStore.js";
13
13
  import { getProfileDisplayInfo } from "../../utils/profileDisplay.js";
14
- import { useB3 } from "../B3Provider/useB3.js";
15
14
  import { AppleIcon } from "../icons/AppleIcon.js";
16
15
  import { DiscordIcon } from "../icons/DiscordIcon.js";
17
16
  import { FarcasterIcon } from "../icons/FarcasterIcon.js";
@@ -90,7 +89,7 @@ export function LinkNewAccount({ onSuccess: onSuccessCallback, onError, onClose,
90
89
  ...getProfileDisplayInfo(profile),
91
90
  originalProfile: profile,
92
91
  }));
93
- const { account } = useB3();
92
+ const account = useB3Account();
94
93
  const { mutate: linkProfile } = useLinkProfile();
95
94
  const onSuccess = useCallback(async () => {
96
95
  await onSuccessCallback?.();
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useAccountWallet, useB3, useModalStore, useProfile, useSimBalance } from "../../../../global-account/react/index.js";
2
+ import { useAccountWallet, useAuthentication, useB3Config, useModalStore, useProfile, useSimBalance, } from "../../../../global-account/react/index.js";
3
3
  import { formatUsername } from "../../../../shared/utils/index.js";
4
4
  import { formatDisplayNumber } from "../../../../shared/utils/number.js";
5
5
  import { Pencil } from "lucide-react";
@@ -15,7 +15,8 @@ const ProfileSection = () => {
15
15
  address: eoaAddress || account?.address,
16
16
  fresh: true,
17
17
  });
18
- const { user } = useB3();
18
+ const { partnerId } = useB3Config();
19
+ const { user } = useAuthentication(partnerId);
19
20
  const setB3ModalOpen = useModalStore(state => state.setB3ModalOpen);
20
21
  const setB3ModalContentType = useModalStore(state => state.setB3ModalContentType);
21
22
  const navigateBack = useModalStore(state => state.navigateBack);
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { ens_normalize } from "@adraffy/ens-normalize";
3
3
  import app from "../../../../global-account/app.js";
4
- import { toast, useB3, useModalStore, useProfile } from "../../../../global-account/react/index.js";
4
+ import { toast, useAuthentication, useB3Config, useModalStore, useProfile } from "../../../../global-account/react/index.js";
5
5
  import { formatUsername } from "../../../../shared/utils/index.js";
6
6
  import { Check, Loader2, Pencil, X } from "lucide-react";
7
7
  import { useEffect, useRef, useState } from "react";
@@ -15,7 +15,8 @@ const SettingsProfileCard = () => {
15
15
  address: eoaAddress || account?.address,
16
16
  fresh: true,
17
17
  });
18
- const { user, setUser } = useB3();
18
+ const { partnerId } = useB3Config();
19
+ const { user, setUser } = useAuthentication(partnerId);
19
20
  const setB3ModalOpen = useModalStore(state => state.setB3ModalOpen);
20
21
  const setB3ModalContentType = useModalStore(state => state.setB3ModalContentType);
21
22
  const navigateBack = useModalStore(state => state.navigateBack);
@@ -1,11 +1,12 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { Button, StyleRoot, useAuthStore, useB3, useIsMobile, useModalStore, } from "../../../../global-account/react/index.js";
2
+ import { Button, StyleRoot, useAuthStore, useIsMobile, useModalStore, } from "../../../../global-account/react/index.js";
3
3
  import { useEffect } from "react";
4
+ import { useB3Account } from "../B3Provider/useB3Account.js";
4
5
  import { ManageAccountButton } from "../custom/ManageAccountButton.js";
5
6
  import { Loading } from "../ui/Loading.js";
6
7
  export function SignInWithB3(props) {
7
8
  const { setB3ModalOpen, setB3ModalContentType, setEcoSystemAccountAddress } = useModalStore();
8
- const { account } = useB3();
9
+ const account = useB3Account();
9
10
  const { isAuthenticating, isAuthenticated } = useAuthStore();
10
11
  const isMobile = useIsMobile();
11
12
  useEffect(() => {
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { Loading, useAuthStore, useB3, useGetAllTWSigners, useModalStore, } from "../../../../global-account/react/index.js";
2
+ import { Loading, useAuthentication, useAuthStore, useB3Config, useGetAllTWSigners, useModalStore, } from "../../../../global-account/react/index.js";
3
3
  import { debugB3React } from "../../../../shared/utils/debug.js";
4
4
  import { useCallback, useEffect, useState } from "react";
5
5
  import { useActiveAccount } from "thirdweb/react";
@@ -13,7 +13,8 @@ const MAX_REFETCH_ATTEMPTS = 20;
13
13
  * Handles different login providers, authentication steps, and session key management
14
14
  */
15
15
  export function SignInWithB3Flow({ strategies, onLoginSuccess, onSessionKeySuccess, onError, chain, sessionKeyAddress, partnerId, closeAfterLogin = false, source = "signInWithB3Button", signersEnabled = false, }) {
16
- const { automaticallySetFirstEoa, user, refetchUser, enableTurnkey } = useB3();
16
+ const { automaticallySetFirstEoa, enableTurnkey } = useB3Config();
17
+ const { user, refetchUser } = useAuthentication(partnerId);
17
18
  const [step, setStep] = useState(source === "requestPermissions" ? null : "login");
18
19
  const [sessionKeyAdded, setSessionKeyAdded] = useState(source === "requestPermissions" ? true : false);
19
20
  const { setB3ModalContentType, setB3ModalOpen, isOpen, contentType } = 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";
@@ -5,6 +5,8 @@ export { B3Provider, InnerProvider } from "./B3Provider/B3Provider.js";
5
5
  export { RelayKitProviderWrapper } from "./B3Provider/RelayKitProviderWrapper.js";
6
6
  export { B3Context } from "./B3Provider/types.js";
7
7
  export { useB3 } from "./B3Provider/useB3.js";
8
+ export { useB3Account } from "./B3Provider/useB3Account.js";
9
+ export { useB3Config } from "./B3Provider/useB3Config.js";
8
10
  export { StyleRoot } from "./StyleRoot.js";
9
11
  // SignInWithB3 Components
10
12
  export { AuthButton } from "./SignInWithB3/components/AuthButton.js";
@@ -1,9 +1,10 @@
1
- import { useB3, useProfile } from "../../../global-account/react/index.js";
1
+ import { useProfile } from "../../../global-account/react/index.js";
2
2
  import { ecosystemWalletId } from "../../../shared/constants/index.js";
3
3
  import { debugB3React } from "../../../shared/utils/debug.js";
4
4
  import { useEffect, useMemo, useState } from "react";
5
5
  import { getLastAuthProvider, useActiveWallet, useConnectedWallets, useWalletImage } from "thirdweb/react";
6
6
  import { socialIcons } from "thirdweb/wallets/in-app";
7
+ import { useB3Account } from "../components/B3Provider/useB3Account.js";
7
8
  const debug = debugB3React("useAccountWallet");
8
9
  function useLastAuthProvider() {
9
10
  const [lastAuthProvider, setLastAuthProvider] = useState(null);
@@ -23,7 +24,7 @@ export function useAccountWallet() {
23
24
  // const effectiveAccount = isAuthenticated ? accountOverride || activeAccount : undefined;
24
25
  // can we possibly just use useActiveAccount here?
25
26
  // --------------------
26
- const { account } = useB3();
27
+ const account = useB3Account();
27
28
  const activeWallet = useActiveWallet();
28
29
  const connectedWallets = useConnectedWallets();
29
30
  const connectedSmartWallet = connectedWallets.find(wallet => wallet.id === ecosystemWalletId);
@@ -71,7 +72,7 @@ export function useAccountWallet() {
71
72
  return res;
72
73
  }
73
74
  export function useAccountWalletImage() {
74
- const { account } = useB3();
75
+ const account = useB3Account();
75
76
  const activeWallet = useActiveWallet();
76
77
  const connectedWallets = useConnectedWallets();
77
78
  const connectedSmartWallet = connectedWallets.find(wallet => wallet.id === 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,7 @@
1
+ /**
2
+ * Hook to automatically select the first EOA wallet when user is authenticated
3
+ * Only auto-selects if the last auth was via wallet or no previous auth provider
4
+ */
5
+ export declare function useAutoSelectWallet({ enabled }: {
6
+ enabled: boolean;
7
+ }): void;
@@ -0,0 +1,39 @@
1
+ import { debugB3React } from "../../../shared/utils/debug.js";
2
+ import { useCallback, useEffect } from "react";
3
+ import { getLastAuthProvider, useConnectedWallets, useSetActiveWallet } from "thirdweb/react";
4
+ import { useAuthStore } from "../stores/index.js";
5
+ const debug = debugB3React("useAutoSelectWallet");
6
+ /**
7
+ * Hook to automatically select the first EOA wallet when user is authenticated
8
+ * Only auto-selects if the last auth was via wallet or no previous auth provider
9
+ */
10
+ export function useAutoSelectWallet({ enabled }) {
11
+ const isAuthenticated = useAuthStore(state => state.isAuthenticated);
12
+ const wallets = useConnectedWallets();
13
+ const setActiveWallet = useSetActiveWallet();
14
+ const setWallet = useCallback((wallet) => {
15
+ debug("@@setWallet", wallet.id, wallet.getAccount()?.address);
16
+ setActiveWallet(wallet);
17
+ }, [setActiveWallet]);
18
+ useEffect(() => {
19
+ const autoSelectFirstEOAWallet = async () => {
20
+ // Only proceed if auto-selection is enabled and user is authenticated
21
+ if (!enabled || !isAuthenticated) {
22
+ return;
23
+ }
24
+ // Find the first EOA wallet (excluding ecosystem wallets)
25
+ const isEOAWallet = (wallet) => !wallet.id.startsWith("ecosystem.");
26
+ const firstEOAWallet = wallets.find(isEOAWallet);
27
+ if (firstEOAWallet) {
28
+ // Only auto-select if the last auth was via wallet or no previous auth provider
29
+ const lastAuthProvider = await getLastAuthProvider();
30
+ const shouldAutoSelect = lastAuthProvider === null || lastAuthProvider === "wallet";
31
+ if (shouldAutoSelect) {
32
+ debug("Auto-selecting first EOA wallet", firstEOAWallet.id);
33
+ setWallet(firstEOAWallet);
34
+ }
35
+ }
36
+ };
37
+ autoSelectFirstEOAWallet();
38
+ }, [enabled, isAuthenticated, setWallet, wallets]);
39
+ }
@@ -1,8 +1,9 @@
1
+ import { debugB3React } from "../../../shared/utils/debug.js";
2
+ import { useCallback, useState } from "react";
1
3
  import app from "../../app.js";
4
+ import { useB3Config } from "../components/index.js";
2
5
  import { useAuthStore } from "../stores/index.js";
3
- import { useCallback, useState } from "react";
4
- import { useB3 } from "../components/B3Provider/useB3.js";
5
- import { debugB3React } from "../../../shared/utils/debug.js";
6
+ import { useAuthentication } from "./useAuthentication.js";
6
7
  const debug = debugB3React("useTurnkeyAuth");
7
8
  /**
8
9
  * Hook for Turnkey email-based OTP authentication
@@ -17,7 +18,8 @@ export function useTurnkeyAuth() {
17
18
  const [error, setError] = useState(null);
18
19
  const setIsAuthenticating = useAuthStore(state => state.setIsAuthenticating);
19
20
  const setIsAuthenticated = useAuthStore(state => state.setIsAuthenticated);
20
- const { user } = useB3();
21
+ const { partnerId } = useB3Config();
22
+ const { user } = useAuthentication(partnerId);
21
23
  /**
22
24
  * Step 1: Initiate login with email
23
25
  * - Calls backend to create sub-org (if needed) and send OTP
@@ -8,7 +8,7 @@ import { useCallback, useState } from "react";
8
8
  import { prepareTransaction, sendTransaction as twSendTransaction } from "thirdweb";
9
9
  import { isAddress } from "viem";
10
10
  import { useSwitchChain } from "wagmi";
11
- import { useB3 } from "../components/index.js";
11
+ import { useB3Account } from "../components/B3Provider/useB3Account.js";
12
12
  import { useAccountWallet } from "./useAccountWallet.js";
13
13
  const partnerId = String(process.env.PUBLIC_THIRDWEB_PARTNER_ID ||
14
14
  process.env.NEXT_PUBLIC_THIRDWEB_PARTNER_ID ||
@@ -19,7 +19,7 @@ export function useUnifiedChainSwitchAndExecute() {
19
19
  const { switchChainAsync } = useSwitchChain();
20
20
  const [isSwitchingOrExecuting, setIsSwitchingOrExecuting] = useState(false);
21
21
  const { isActiveSmartWallet, isActiveEOAWallet, connectedEOAWallet } = useAccountWallet();
22
- const { account: aaAccount } = useB3();
22
+ const aaAccount = useB3Account();
23
23
  // Handle EOA wallet chain switch and execute transaction
24
24
  const handleEOASwitchChainAndSendTransaction = useCallback(async (targetChainId, params) => {
25
25
  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;
@@ -144,6 +144,10 @@ export interface AnySpendModalProps extends BaseModalProps {
144
144
  customUsdInputValues?: string[];
145
145
  /** Client-provided reference ID for tracking orders */
146
146
  clientReferenceId?: string;
147
+ /** Whether to hide the header */
148
+ hideHeader?: boolean;
149
+ /** When true, disables URL parameter management for swap configuration */
150
+ disableUrlParamManagement?: boolean;
147
151
  }
148
152
  /**
149
153
  * Props for the AnySpend NFT modal