@b3dotfun/sdk 0.0.88 → 0.0.89-alpha.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.
Files changed (281) hide show
  1. package/dist/cjs/anyspend/constants/index.d.ts +2 -0
  2. package/dist/cjs/anyspend/constants/index.js +3 -1
  3. package/dist/cjs/anyspend/index.d.ts +2 -0
  4. package/dist/cjs/anyspend/index.js +3 -0
  5. package/dist/cjs/anyspend/react/components/AnySpend.d.ts +6 -0
  6. package/dist/cjs/anyspend/react/components/AnySpend.js +9 -6
  7. package/dist/cjs/anyspend/react/components/AnySpendCollectorClubPurchase.d.ts +5 -1
  8. package/dist/cjs/anyspend/react/components/AnySpendCollectorClubPurchase.js +2 -2
  9. package/dist/cjs/anyspend/react/components/AnySpendCustom.d.ts +1 -0
  10. package/dist/cjs/anyspend/react/components/AnySpendCustom.js +3 -3
  11. package/dist/cjs/anyspend/react/components/AnySpendCustomExactIn.d.ts +6 -0
  12. package/dist/cjs/anyspend/react/components/AnySpendCustomExactIn.js +24 -20
  13. package/dist/cjs/anyspend/react/components/AnySpendDeposit.d.ts +7 -1
  14. package/dist/cjs/anyspend/react/components/AnySpendDeposit.js +3 -3
  15. package/dist/cjs/anyspend/react/components/AnyspendDepositHype.d.ts +4 -0
  16. package/dist/cjs/anyspend/react/components/common/CryptoPaymentMethod.js +14 -1
  17. package/dist/cjs/anyspend/react/components/common/CryptoReceiveSection.d.ts +3 -1
  18. package/dist/cjs/anyspend/react/components/common/CryptoReceiveSection.js +3 -2
  19. package/dist/cjs/anyspend/react/components/common/GasIndicator.d.ts +6 -0
  20. package/dist/cjs/anyspend/react/components/common/GasIndicator.js +34 -0
  21. package/dist/cjs/anyspend/react/components/common/OrderDetails.d.ts +4 -0
  22. package/dist/cjs/anyspend/react/components/common/OrderDetails.js +34 -6
  23. package/dist/cjs/anyspend/react/components/common/PanelOnramp.d.ts +3 -1
  24. package/dist/cjs/anyspend/react/components/common/PanelOnramp.js +3 -2
  25. package/dist/cjs/anyspend/react/components/common/PaymentStripeWeb2.js +3 -4
  26. package/dist/cjs/anyspend/react/hooks/index.d.ts +1 -0
  27. package/dist/cjs/anyspend/react/hooks/index.js +1 -0
  28. package/dist/cjs/anyspend/react/hooks/useAnyspendCreateOnrampOrder.js +1 -1
  29. package/dist/cjs/anyspend/react/hooks/useAnyspendCreateOrder.js +1 -1
  30. package/dist/cjs/anyspend/react/hooks/useCreateDepositFirstOrder.js +1 -1
  31. package/dist/cjs/anyspend/react/hooks/useGasPrice.d.ts +37 -0
  32. package/dist/cjs/anyspend/react/hooks/useGasPrice.js +43 -0
  33. package/dist/cjs/anyspend/react/hooks/useValidatedClientReferenceId.js +1 -1
  34. package/dist/cjs/anyspend/services/gas.d.ts +21 -0
  35. package/dist/cjs/anyspend/services/gas.js +65 -0
  36. package/dist/cjs/anyspend/types/gas.d.ts +61 -0
  37. package/dist/cjs/anyspend/types/gas.js +2 -0
  38. package/dist/cjs/global-account/react/components/B3DynamicModal.js +2 -3
  39. package/dist/cjs/global-account/react/components/B3Provider/AuthenticationProvider.d.ts +5 -0
  40. package/dist/cjs/global-account/react/components/B3Provider/AuthenticationProvider.js +12 -0
  41. package/dist/cjs/global-account/react/components/B3Provider/B3Provider.d.ts +2 -18
  42. package/dist/cjs/global-account/react/components/B3Provider/B3Provider.js +35 -52
  43. package/dist/cjs/global-account/react/components/B3Provider/B3Provider.native.d.ts +5 -5
  44. package/dist/cjs/global-account/react/components/B3Provider/B3Provider.native.js +38 -35
  45. package/dist/cjs/global-account/react/components/B3Provider/RelayKitProviderWrapper.js +3 -1
  46. package/dist/cjs/global-account/react/components/B3Provider/useB3.d.ts +14 -4
  47. package/dist/cjs/global-account/react/components/B3Provider/useB3.js +4 -11
  48. package/dist/cjs/global-account/react/components/B3Provider/useB3Account.js +5 -2
  49. package/dist/cjs/global-account/react/components/B3Provider/useB3Config.d.ts +10 -2
  50. package/dist/cjs/global-account/react/components/B3Provider/useB3Config.js +18 -17
  51. package/dist/cjs/global-account/react/components/ManageAccount/ProfileSection.js +1 -2
  52. package/dist/cjs/global-account/react/components/ManageAccount/channels/DiscordChannel.js +6 -6
  53. package/dist/cjs/global-account/react/components/ManageAccount/channels/EmailChannel.js +7 -7
  54. package/dist/cjs/global-account/react/components/ManageAccount/channels/PhoneChannel.js +7 -7
  55. package/dist/cjs/global-account/react/components/ManageAccount/channels/TelegramChannel.js +5 -5
  56. package/dist/cjs/global-account/react/components/RequestPermissions/RequestPermissions.js +8 -9
  57. package/dist/cjs/global-account/react/components/SignInWithB3/SignIn.js +1 -1
  58. package/dist/cjs/global-account/react/components/SignInWithB3/SignInWithB3Flow.js +76 -20
  59. package/dist/cjs/global-account/react/components/SignInWithB3/SignInWithB3Privy.js +1 -1
  60. package/dist/cjs/global-account/react/components/SignInWithB3/steps/LoginStep.js +1 -1
  61. package/dist/cjs/global-account/react/components/SignInWithB3/steps/LoginStepCustom.js +1 -1
  62. package/dist/cjs/global-account/react/components/StyleRoot.js +3 -3
  63. package/dist/cjs/global-account/react/components/TurnkeyAuthModal.js +3 -1
  64. package/dist/cjs/global-account/react/components/custom/ManageAccountButton.js +1 -2
  65. package/dist/cjs/global-account/react/components/index.d.ts +1 -2
  66. package/dist/cjs/global-account/react/components/index.js +3 -6
  67. package/dist/cjs/global-account/react/hooks/index.d.ts +2 -0
  68. package/dist/cjs/global-account/react/hooks/index.js +5 -1
  69. package/dist/cjs/global-account/react/hooks/useAuth.d.ts +76 -0
  70. package/dist/cjs/global-account/react/hooks/useAuth.js +337 -0
  71. package/dist/cjs/global-account/react/hooks/useClient.js +1 -1
  72. package/dist/cjs/global-account/react/hooks/useHandleConnectWithPrivy.js +1 -1
  73. package/dist/cjs/global-account/react/hooks/useNotifications.js +14 -14
  74. package/dist/cjs/global-account/react/hooks/useTWAuth.d.ts +3 -0
  75. package/dist/cjs/global-account/react/hooks/useTWAuth.js +8 -0
  76. package/dist/cjs/global-account/react/hooks/useTokenBalance.js +5 -5
  77. package/dist/cjs/global-account/react/hooks/useTokenBalancesByChain.js +4 -2
  78. package/dist/cjs/global-account/react/hooks/useTurnkeyAuth.js +50 -22
  79. package/dist/cjs/global-account/react/hooks/useUser.d.ts +60 -0
  80. package/dist/cjs/global-account/react/hooks/useUser.js +20 -0
  81. package/dist/cjs/global-account/react/hooks/useUserQuery.js +9 -35
  82. package/dist/cjs/global-account/react/index.native.d.ts +0 -2
  83. package/dist/cjs/global-account/react/index.native.js +1 -5
  84. package/dist/cjs/global-account/react/stores/configStore.d.ts +24 -0
  85. package/dist/cjs/global-account/react/stores/configStore.js +30 -0
  86. package/dist/cjs/global-account/react/stores/index.d.ts +1 -0
  87. package/dist/cjs/global-account/react/stores/index.js +3 -1
  88. package/dist/cjs/global-account/react/stores/useModalStore.d.ts +10 -0
  89. package/dist/cjs/global-account/react/stores/userStore.d.ts +22 -0
  90. package/dist/cjs/global-account/react/stores/userStore.js +30 -0
  91. package/dist/esm/anyspend/constants/index.d.ts +2 -0
  92. package/dist/esm/anyspend/constants/index.js +2 -0
  93. package/dist/esm/anyspend/index.d.ts +2 -0
  94. package/dist/esm/anyspend/index.js +3 -0
  95. package/dist/esm/anyspend/react/components/AnySpend.d.ts +6 -0
  96. package/dist/esm/anyspend/react/components/AnySpend.js +11 -8
  97. package/dist/esm/anyspend/react/components/AnySpendCollectorClubPurchase.d.ts +5 -1
  98. package/dist/esm/anyspend/react/components/AnySpendCollectorClubPurchase.js +2 -2
  99. package/dist/esm/anyspend/react/components/AnySpendCustom.d.ts +1 -0
  100. package/dist/esm/anyspend/react/components/AnySpendCustom.js +3 -3
  101. package/dist/esm/anyspend/react/components/AnySpendCustomExactIn.d.ts +6 -0
  102. package/dist/esm/anyspend/react/components/AnySpendCustomExactIn.js +8 -4
  103. package/dist/esm/anyspend/react/components/AnySpendDeposit.d.ts +7 -1
  104. package/dist/esm/anyspend/react/components/AnySpendDeposit.js +3 -3
  105. package/dist/esm/anyspend/react/components/AnyspendDepositHype.d.ts +4 -0
  106. package/dist/esm/anyspend/react/components/common/CryptoPaymentMethod.js +14 -1
  107. package/dist/esm/anyspend/react/components/common/CryptoReceiveSection.d.ts +3 -1
  108. package/dist/esm/anyspend/react/components/common/CryptoReceiveSection.js +3 -2
  109. package/dist/esm/anyspend/react/components/common/GasIndicator.d.ts +6 -0
  110. package/dist/esm/anyspend/react/components/common/GasIndicator.js +31 -0
  111. package/dist/esm/anyspend/react/components/common/OrderDetails.d.ts +4 -0
  112. package/dist/esm/anyspend/react/components/common/OrderDetails.js +36 -8
  113. package/dist/esm/anyspend/react/components/common/PanelOnramp.d.ts +3 -1
  114. package/dist/esm/anyspend/react/components/common/PanelOnramp.js +3 -2
  115. package/dist/esm/anyspend/react/components/common/PaymentStripeWeb2.js +3 -4
  116. package/dist/esm/anyspend/react/hooks/index.d.ts +1 -0
  117. package/dist/esm/anyspend/react/hooks/index.js +1 -0
  118. package/dist/esm/anyspend/react/hooks/useAnyspendCreateOnrampOrder.js +2 -2
  119. package/dist/esm/anyspend/react/hooks/useAnyspendCreateOrder.js +2 -2
  120. package/dist/esm/anyspend/react/hooks/useCreateDepositFirstOrder.js +2 -2
  121. package/dist/esm/anyspend/react/hooks/useGasPrice.d.ts +37 -0
  122. package/dist/esm/anyspend/react/hooks/useGasPrice.js +40 -0
  123. package/dist/esm/anyspend/react/hooks/useValidatedClientReferenceId.js +2 -2
  124. package/dist/esm/anyspend/services/gas.d.ts +21 -0
  125. package/dist/esm/anyspend/services/gas.js +59 -0
  126. package/dist/esm/anyspend/types/gas.d.ts +61 -0
  127. package/dist/esm/anyspend/types/gas.js +1 -0
  128. package/dist/esm/global-account/react/components/B3DynamicModal.js +3 -4
  129. package/dist/esm/global-account/react/components/B3Provider/AuthenticationProvider.d.ts +5 -0
  130. package/dist/esm/global-account/react/components/B3Provider/AuthenticationProvider.js +10 -0
  131. package/dist/esm/global-account/react/components/B3Provider/B3Provider.d.ts +2 -18
  132. package/dist/esm/global-account/react/components/B3Provider/B3Provider.js +34 -53
  133. package/dist/esm/global-account/react/components/B3Provider/B3Provider.native.d.ts +5 -5
  134. package/dist/esm/global-account/react/components/B3Provider/B3Provider.native.js +36 -36
  135. package/dist/esm/global-account/react/components/B3Provider/RelayKitProviderWrapper.js +3 -1
  136. package/dist/esm/global-account/react/components/B3Provider/useB3.d.ts +14 -4
  137. package/dist/esm/global-account/react/components/B3Provider/useB3.js +4 -11
  138. package/dist/esm/global-account/react/components/B3Provider/useB3Account.js +5 -2
  139. package/dist/esm/global-account/react/components/B3Provider/useB3Config.d.ts +10 -2
  140. package/dist/esm/global-account/react/components/B3Provider/useB3Config.js +18 -17
  141. package/dist/esm/global-account/react/components/ManageAccount/ProfileSection.js +2 -3
  142. package/dist/esm/global-account/react/components/ManageAccount/channels/DiscordChannel.js +2 -2
  143. package/dist/esm/global-account/react/components/ManageAccount/channels/EmailChannel.js +2 -2
  144. package/dist/esm/global-account/react/components/ManageAccount/channels/PhoneChannel.js +2 -2
  145. package/dist/esm/global-account/react/components/ManageAccount/channels/TelegramChannel.js +2 -2
  146. package/dist/esm/global-account/react/components/RequestPermissions/RequestPermissions.js +2 -3
  147. package/dist/esm/global-account/react/components/SignInWithB3/SignIn.js +2 -2
  148. package/dist/esm/global-account/react/components/SignInWithB3/SignInWithB3Flow.js +76 -20
  149. package/dist/esm/global-account/react/components/SignInWithB3/SignInWithB3Privy.js +2 -2
  150. package/dist/esm/global-account/react/components/SignInWithB3/steps/LoginStep.js +2 -2
  151. package/dist/esm/global-account/react/components/SignInWithB3/steps/LoginStepCustom.js +2 -2
  152. package/dist/esm/global-account/react/components/StyleRoot.js +3 -3
  153. package/dist/esm/global-account/react/components/TurnkeyAuthModal.js +5 -3
  154. package/dist/esm/global-account/react/components/custom/ManageAccountButton.js +2 -3
  155. package/dist/esm/global-account/react/components/index.d.ts +1 -2
  156. package/dist/esm/global-account/react/components/index.js +1 -2
  157. package/dist/esm/global-account/react/hooks/index.d.ts +2 -0
  158. package/dist/esm/global-account/react/hooks/index.js +2 -0
  159. package/dist/esm/global-account/react/hooks/useAuth.d.ts +76 -0
  160. package/dist/esm/global-account/react/hooks/useAuth.js +331 -0
  161. package/dist/esm/global-account/react/hooks/useClient.js +2 -2
  162. package/dist/esm/global-account/react/hooks/useHandleConnectWithPrivy.js +2 -2
  163. package/dist/esm/global-account/react/hooks/useNotifications.js +2 -2
  164. package/dist/esm/global-account/react/hooks/useTWAuth.d.ts +3 -0
  165. package/dist/esm/global-account/react/hooks/useTWAuth.js +8 -0
  166. package/dist/esm/global-account/react/hooks/useTokenBalance.js +6 -6
  167. package/dist/esm/global-account/react/hooks/useTokenBalancesByChain.js +4 -2
  168. package/dist/esm/global-account/react/hooks/useTurnkeyAuth.js +50 -22
  169. package/dist/esm/global-account/react/hooks/useUser.d.ts +60 -0
  170. package/dist/esm/global-account/react/hooks/useUser.js +17 -0
  171. package/dist/esm/global-account/react/hooks/useUserQuery.js +1 -27
  172. package/dist/esm/global-account/react/index.native.d.ts +0 -2
  173. package/dist/esm/global-account/react/index.native.js +0 -2
  174. package/dist/esm/global-account/react/stores/configStore.d.ts +24 -0
  175. package/dist/esm/global-account/react/stores/configStore.js +27 -0
  176. package/dist/esm/global-account/react/stores/index.d.ts +1 -0
  177. package/dist/esm/global-account/react/stores/index.js +1 -0
  178. package/dist/esm/global-account/react/stores/useModalStore.d.ts +10 -0
  179. package/dist/esm/global-account/react/stores/userStore.d.ts +22 -0
  180. package/dist/esm/global-account/react/stores/userStore.js +27 -0
  181. package/dist/styles/index.css +1 -1
  182. package/dist/types/anyspend/constants/index.d.ts +2 -0
  183. package/dist/types/anyspend/index.d.ts +2 -0
  184. package/dist/types/anyspend/react/components/AnySpend.d.ts +6 -0
  185. package/dist/types/anyspend/react/components/AnySpendCollectorClubPurchase.d.ts +5 -1
  186. package/dist/types/anyspend/react/components/AnySpendCustom.d.ts +1 -0
  187. package/dist/types/anyspend/react/components/AnySpendCustomExactIn.d.ts +6 -0
  188. package/dist/types/anyspend/react/components/AnySpendDeposit.d.ts +7 -1
  189. package/dist/types/anyspend/react/components/AnyspendDepositHype.d.ts +4 -0
  190. package/dist/types/anyspend/react/components/common/CryptoReceiveSection.d.ts +3 -1
  191. package/dist/types/anyspend/react/components/common/GasIndicator.d.ts +6 -0
  192. package/dist/types/anyspend/react/components/common/OrderDetails.d.ts +4 -0
  193. package/dist/types/anyspend/react/components/common/PanelOnramp.d.ts +3 -1
  194. package/dist/types/anyspend/react/hooks/index.d.ts +1 -0
  195. package/dist/types/anyspend/react/hooks/useGasPrice.d.ts +37 -0
  196. package/dist/types/anyspend/services/gas.d.ts +21 -0
  197. package/dist/types/anyspend/types/gas.d.ts +61 -0
  198. package/dist/types/global-account/react/components/B3Provider/AuthenticationProvider.d.ts +5 -0
  199. package/dist/types/global-account/react/components/B3Provider/B3Provider.d.ts +2 -18
  200. package/dist/types/global-account/react/components/B3Provider/B3Provider.native.d.ts +5 -5
  201. package/dist/types/global-account/react/components/B3Provider/useB3.d.ts +14 -4
  202. package/dist/types/global-account/react/components/B3Provider/useB3Config.d.ts +10 -2
  203. package/dist/types/global-account/react/components/index.d.ts +1 -2
  204. package/dist/types/global-account/react/hooks/index.d.ts +2 -0
  205. package/dist/types/global-account/react/hooks/useAuth.d.ts +76 -0
  206. package/dist/types/global-account/react/hooks/useTWAuth.d.ts +3 -0
  207. package/dist/types/global-account/react/hooks/useUser.d.ts +60 -0
  208. package/dist/types/global-account/react/index.native.d.ts +0 -2
  209. package/dist/types/global-account/react/stores/configStore.d.ts +24 -0
  210. package/dist/types/global-account/react/stores/index.d.ts +1 -0
  211. package/dist/types/global-account/react/stores/useModalStore.d.ts +10 -0
  212. package/dist/types/global-account/react/stores/userStore.d.ts +22 -0
  213. package/package.json +1 -1
  214. package/src/anyspend/constants/index.ts +3 -0
  215. package/src/anyspend/index.ts +4 -0
  216. package/src/anyspend/react/components/AnySpend.tsx +28 -2
  217. package/src/anyspend/react/components/AnySpendCollectorClubPurchase.tsx +6 -0
  218. package/src/anyspend/react/components/AnySpendCustom.tsx +52 -47
  219. package/src/anyspend/react/components/AnySpendCustomExactIn.tsx +23 -0
  220. package/src/anyspend/react/components/AnySpendDeposit.tsx +27 -18
  221. package/src/anyspend/react/components/AnyspendDepositHype.tsx +4 -0
  222. package/src/anyspend/react/components/common/CryptoPaymentMethod.tsx +15 -1
  223. package/src/anyspend/react/components/common/CryptoReceiveSection.tsx +5 -1
  224. package/src/anyspend/react/components/common/GasIndicator.tsx +59 -0
  225. package/src/anyspend/react/components/common/OrderDetails.tsx +60 -42
  226. package/src/anyspend/react/components/common/PanelOnramp.tsx +5 -1
  227. package/src/anyspend/react/components/common/PaymentStripeWeb2.tsx +3 -4
  228. package/src/anyspend/react/hooks/index.ts +1 -0
  229. package/src/anyspend/react/hooks/useAnyspendCreateOnrampOrder.ts +2 -2
  230. package/src/anyspend/react/hooks/useAnyspendCreateOrder.ts +2 -2
  231. package/src/anyspend/react/hooks/useCreateDepositFirstOrder.ts +2 -2
  232. package/src/anyspend/react/hooks/useGasPrice.ts +70 -0
  233. package/src/anyspend/react/hooks/useValidatedClientReferenceId.ts +2 -2
  234. package/src/anyspend/services/gas.test.ts +31 -0
  235. package/src/anyspend/services/gas.ts +73 -0
  236. package/src/anyspend/types/gas.ts +66 -0
  237. package/src/global-account/react/components/B3DynamicModal.tsx +3 -4
  238. package/src/global-account/react/components/B3Provider/AuthenticationProvider.tsx +19 -0
  239. package/src/global-account/react/components/B3Provider/B3Provider.native.tsx +43 -54
  240. package/src/global-account/react/components/B3Provider/B3Provider.tsx +44 -106
  241. package/src/global-account/react/components/B3Provider/RelayKitProviderWrapper.tsx +4 -1
  242. package/src/global-account/react/components/B3Provider/useB3.ts +4 -13
  243. package/src/global-account/react/components/B3Provider/useB3Account.ts +6 -2
  244. package/src/global-account/react/components/B3Provider/useB3Config.ts +18 -31
  245. package/src/global-account/react/components/ManageAccount/ProfileSection.tsx +2 -4
  246. package/src/global-account/react/components/ManageAccount/channels/DiscordChannel.tsx +2 -2
  247. package/src/global-account/react/components/ManageAccount/channels/EmailChannel.tsx +2 -2
  248. package/src/global-account/react/components/ManageAccount/channels/PhoneChannel.tsx +2 -2
  249. package/src/global-account/react/components/ManageAccount/channels/TelegramChannel.tsx +2 -2
  250. package/src/global-account/react/components/RequestPermissions/RequestPermissions.tsx +4 -4
  251. package/src/global-account/react/components/SignInWithB3/SignIn.tsx +2 -2
  252. package/src/global-account/react/components/SignInWithB3/SignInWithB3Flow.tsx +168 -100
  253. package/src/global-account/react/components/SignInWithB3/SignInWithB3Privy.tsx +2 -2
  254. package/src/global-account/react/components/SignInWithB3/steps/LoginStep.tsx +2 -2
  255. package/src/global-account/react/components/SignInWithB3/steps/LoginStepCustom.tsx +2 -2
  256. package/src/global-account/react/components/StyleRoot.tsx +3 -3
  257. package/src/global-account/react/components/TurnkeyAuthModal.tsx +7 -4
  258. package/src/global-account/react/components/custom/ManageAccountButton.tsx +2 -3
  259. package/src/global-account/react/components/index.ts +1 -2
  260. package/src/global-account/react/hooks/index.ts +2 -0
  261. package/src/global-account/react/hooks/useAuth.ts +379 -0
  262. package/src/global-account/react/hooks/useClient.ts +2 -2
  263. package/src/global-account/react/hooks/useHandleConnectWithPrivy.tsx +2 -2
  264. package/src/global-account/react/hooks/useNotifications.ts +2 -2
  265. package/src/global-account/react/hooks/useTWAuth.tsx +10 -0
  266. package/src/global-account/react/hooks/useTokenBalance.tsx +8 -7
  267. package/src/global-account/react/hooks/useTokenBalancesByChain.tsx +4 -2
  268. package/src/global-account/react/hooks/useTurnkeyAuth.ts +54 -23
  269. package/src/global-account/react/hooks/useUser.ts +20 -0
  270. package/src/global-account/react/hooks/useUserQuery.ts +1 -40
  271. package/src/global-account/react/index.native.ts +0 -2
  272. package/src/global-account/react/stores/configStore.ts +51 -0
  273. package/src/global-account/react/stores/index.ts +1 -0
  274. package/src/global-account/react/stores/useModalStore.ts +10 -0
  275. package/src/global-account/react/stores/userStore.ts +41 -0
  276. package/dist/cjs/global-account/react/components/B3Provider/types.d.ts +0 -27
  277. package/dist/cjs/global-account/react/components/B3Provider/types.js +0 -24
  278. package/dist/esm/global-account/react/components/B3Provider/types.d.ts +0 -27
  279. package/dist/esm/global-account/react/components/B3Provider/types.js +0 -21
  280. package/dist/types/global-account/react/components/B3Provider/types.d.ts +0 -27
  281. package/src/global-account/react/components/B3Provider/types.ts +0 -50
@@ -11,6 +11,7 @@ import { debugB3React } from "@b3dotfun/sdk/shared/utils/debug";
11
11
  import { useCallback, useEffect, useState } from "react";
12
12
  import { useActiveAccount } from "thirdweb/react";
13
13
  import { Account } from "thirdweb/wallets";
14
+ import { TurnkeyAuthModal } from "../TurnkeyAuthModal";
14
15
  import { SignInWithB3Privy } from "./SignInWithB3Privy";
15
16
  import { LoginStep, LoginStepContainer } from "./steps/LoginStep";
16
17
  import { LoginStepCustom } from "./steps/LoginStepCustom";
@@ -43,7 +44,9 @@ export function SignInWithB3Flow({
43
44
  const account = useActiveAccount();
44
45
  const isAuthenticating = useAuthStore(state => state.isAuthenticating);
45
46
  const isAuthenticated = useAuthStore(state => state.isAuthenticated);
47
+ const setIsAuthenticated = useAuthStore(state => state.setIsAuthenticated);
46
48
  const isConnected = useAuthStore(state => state.isConnected);
49
+ const setIsConnected = useAuthStore(state => state.setIsConnected);
47
50
  const setJustCompletedLogin = useAuthStore(state => state.setJustCompletedLogin);
48
51
  const [refetchCount, setRefetchCount] = useState(0);
49
52
  const [refetchError, setRefetchError] = useState<string | null>(null);
@@ -85,7 +88,9 @@ export function SignInWithB3Flow({
85
88
  refetchSigners();
86
89
  setRefetchQueued(false);
87
90
  }, backoffDelay);
88
- }, [refetchCount, refetchSigners, onError, setRefetchQueued, refetchQueued]);
91
+ // State setters are stable and don't need to be in dependencies
92
+ // eslint-disable-next-line react-hooks/exhaustive-deps
93
+ }, [refetchCount, refetchSigners, onError, refetchQueued]);
89
94
 
90
95
  // Extract the completion flow logic to be reused
91
96
  const handlePostTurnkeyFlow = useCallback(() => {
@@ -157,6 +162,11 @@ export function SignInWithB3Flow({
157
162
  await refetchUser();
158
163
  debug("User refetched successfully");
159
164
 
165
+ // Set authentication and connection state so UI updates properly
166
+ setIsAuthenticated(true);
167
+ setIsConnected(true);
168
+ setJustCompletedLogin(true);
169
+
160
170
  // After user data is refreshed, close Turnkey modal and go back to sign-in flow
161
171
  debug("Switching back to signInWithB3 modal");
162
172
  setB3ModalContentType({
@@ -176,7 +186,6 @@ export function SignInWithB3Flow({
176
186
  },
177
187
  [
178
188
  refetchUser,
179
- setB3ModalContentType,
180
189
  strategies,
181
190
  onLoginSuccess,
182
191
  onSessionKeySuccess,
@@ -187,90 +196,102 @@ export function SignInWithB3Flow({
187
196
  closeAfterLogin,
188
197
  source,
189
198
  signersEnabled,
199
+ setB3ModalContentType,
200
+ setIsAuthenticated,
201
+ setIsConnected,
202
+ setJustCompletedLogin,
190
203
  ],
191
204
  );
192
205
 
193
206
  // Handle post-login flow after signers are loaded
194
- useEffect(() => {
195
- debug("@@SignInWithB3Flow:useEffect", {
196
- isConnected,
197
- isAuthenticating,
198
- isFetchingSigners,
199
- closeAfterLogin,
200
- isOpen,
201
- source,
202
- });
207
+ useEffect(
208
+ () => {
209
+ debug("@@SignInWithB3Flow:useEffect", {
210
+ isConnected,
211
+ isAuthenticating,
212
+ isFetchingSigners,
213
+ closeAfterLogin,
214
+ isOpen,
215
+ source,
216
+ });
203
217
 
204
- if (isConnected && isAuthenticated && user) {
205
- // Mark that login just completed BEFORE opening manage account or closing modal
206
- // This allows Turnkey modal to show (if enableTurnkey is true)
207
- if (closeAfterLogin) {
208
- setJustCompletedLogin(true);
209
- }
218
+ if (isConnected && isAuthenticated && user) {
219
+ // Mark that login just completed BEFORE opening manage account or closing modal
220
+ // This allows Turnkey modal to show (if enableTurnkey is true)
221
+ if (closeAfterLogin) {
222
+ setJustCompletedLogin(true);
223
+ }
210
224
 
211
- // Check if we should show Turnkey login form
212
- // Show if enableTurnkey is true AND user just logged in AND hasn't completed Turnkey auth in this session
213
- // For new users (!turnkeyId): Show email form
214
- // For returning users (turnkeyId && turnkeyEmail): Auto-skip to OTP
215
- // Also check that we're not already showing the Turnkey modal
216
- const hasTurnkeyId = user?.partnerIds?.turnkeyId;
217
- const hasTurnkeyEmail = !!user?.email;
218
- const isTurnkeyModalCurrentlyOpen = contentType?.type === "turnkeyAuth";
219
- const shouldShowTurnkeyModal =
220
- enableTurnkey &&
221
- user &&
222
- !turnkeyAuthCompleted &&
223
- !isTurnkeyModalCurrentlyOpen &&
224
- (!hasTurnkeyId || (hasTurnkeyId && hasTurnkeyEmail));
225
+ // Check if we should show Turnkey login form as SECONDARY option (after wallet connection)
226
+ // This only applies when:
227
+ // - enableTurnkey={true} is set on B3Provider
228
+ // - NEXT_PUBLIC_TURNKEY_PRIMARY is NOT set to true (otherwise Turnkey shows as primary)
229
+ // - User just logged in AND hasn't completed Turnkey auth in this session
230
+ // For new users (!turnkeyId): Show email form
231
+ // For returning users (turnkeyId && turnkeyEmail): Auto-skip to OTP
232
+ // Also check that we're not already showing the Turnkey modal
233
+ const hasTurnkeyId = user?.partnerIds?.turnkeyId;
234
+ const hasTurnkeyEmail = !!user?.email;
235
+ const isTurnkeyModalCurrentlyOpen = contentType?.type === "turnkeyAuth";
236
+ const isTurnkeyPrimary = process.env.NEXT_PUBLIC_TURNKEY_PRIMARY === "true";
237
+ const shouldShowTurnkeyModal =
238
+ enableTurnkey &&
239
+ !isTurnkeyPrimary &&
240
+ user &&
241
+ !turnkeyAuthCompleted &&
242
+ !isTurnkeyModalCurrentlyOpen &&
243
+ (!hasTurnkeyId || (hasTurnkeyId && hasTurnkeyEmail));
225
244
 
226
- if (shouldShowTurnkeyModal) {
227
- // Extract email from user object - check partnerIds.turnkeyEmail first, then twProfiles, then user.email
228
- const email = user?.email || user?.twProfiles?.find((profile: any) => profile.details?.email)?.details?.email;
245
+ if (shouldShowTurnkeyModal) {
246
+ // Extract email from user object - check partnerIds.turnkeyEmail first, then twProfiles, then user.email
247
+ const email = user?.email || user?.twProfiles?.find((profile: any) => profile.details?.email)?.details?.email;
229
248
 
230
- // Open Turnkey modal through the modal store
231
- setB3ModalContentType({
232
- type: "turnkeyAuth",
233
- onSuccess: handleTurnkeySuccess,
234
- onClose: () => {
235
- // After closing Turnkey modal, continue with the rest of the flow
236
- setTurnkeyAuthCompleted(true);
237
- debug("Turnkey modal closed, running post-Turnkey flow");
238
- handlePostTurnkeyFlow();
239
- },
240
- initialEmail: email,
241
- skipToOtp: !!(hasTurnkeyId && hasTurnkeyEmail),
242
- closable: false, // Turnkey modal cannot be closed until auth is complete
243
- });
244
- return;
245
- }
249
+ // Open Turnkey modal through the modal store
250
+ setB3ModalContentType({
251
+ type: "turnkeyAuth",
252
+ onSuccess: handleTurnkeySuccess,
253
+ onClose: () => {
254
+ // After closing Turnkey modal, continue with the rest of the flow
255
+ setTurnkeyAuthCompleted(true);
256
+ debug("Turnkey modal closed, running post-Turnkey flow");
257
+ handlePostTurnkeyFlow();
258
+ },
259
+ initialEmail: email,
260
+ skipToOtp: !!(hasTurnkeyId && hasTurnkeyEmail),
261
+ closable: false, // Turnkey modal cannot be closed until auth is complete
262
+ });
263
+ return;
264
+ }
246
265
 
247
- // Normal flow continues after Turnkey auth is complete (or if not needed)
248
- handlePostTurnkeyFlow();
249
- }
250
- }, [
251
- signers,
252
- isFetchingSigners,
253
- partnerId,
254
- handleRefetchSigners,
255
- source,
256
- closeAfterLogin,
257
- setB3ModalContentType,
258
- chain,
259
- onSessionKeySuccess,
260
- setB3ModalOpen,
261
- signersEnabled,
262
- isConnected,
263
- isAuthenticating,
264
- isAuthenticated,
265
- isOpen,
266
- setJustCompletedLogin,
267
- user,
268
- enableTurnkey,
269
- turnkeyAuthCompleted,
270
- handleTurnkeySuccess,
271
- contentType,
272
- handlePostTurnkeyFlow,
273
- ]);
266
+ // Normal flow continues after Turnkey auth is complete (or if not needed)
267
+ handlePostTurnkeyFlow();
268
+ }
269
+ },
270
+ // eslint-disable-next-line react-hooks/exhaustive-deps
271
+ [
272
+ signers,
273
+ isFetchingSigners,
274
+ partnerId,
275
+ handleRefetchSigners,
276
+ source,
277
+ closeAfterLogin,
278
+ setB3ModalContentType,
279
+ chain,
280
+ onSessionKeySuccess,
281
+ setB3ModalOpen,
282
+ signersEnabled,
283
+ isConnected,
284
+ isAuthenticating,
285
+ isAuthenticated,
286
+ isOpen,
287
+ user,
288
+ enableTurnkey,
289
+ turnkeyAuthCompleted,
290
+ // handleTurnkeySuccess, // This is causing infinite loops
291
+ contentType,
292
+ handlePostTurnkeyFlow,
293
+ ],
294
+ );
274
295
 
275
296
  debug("render", {
276
297
  step,
@@ -286,7 +307,9 @@ export function SignInWithB3Flow({
286
307
  if (closeAfterLogin && sessionKeyAdded) {
287
308
  setB3ModalOpen(false);
288
309
  }
289
- }, [closeAfterLogin, sessionKeyAdded, setB3ModalOpen]);
310
+ // setB3ModalOpen is stable
311
+ // eslint-disable-next-line react-hooks/exhaustive-deps
312
+ }, [closeAfterLogin, sessionKeyAdded]);
290
313
 
291
314
  const onSessionKeySuccessEnhanced = useCallback(() => {
292
315
  onSessionKeySuccess?.();
@@ -343,32 +366,77 @@ export function SignInWithB3Flow({
343
366
  <div className="p-4 text-center text-red-500">{refetchError}</div>
344
367
  </LoginStepContainer>
345
368
  );
346
- } else if (isAuthenticating || (isFetchingSigners && step === "login") || source === "requestPermissions") {
347
- content = (
348
- <LoginStepContainer partnerId={partnerId}>
349
- <div className="my-8 flex min-h-[350px] items-center justify-center">
350
- <Loading variant="white" size="lg" />
351
- </div>
352
- </LoginStepContainer>
353
- );
354
369
  } else if (step === "login") {
355
- // Custom strategy
356
- if (strategies?.[0] === "privy") {
357
- content = <SignInWithB3Privy onSuccess={handleLoginSuccess} chain={chain} />;
358
- } else if (strategies) {
359
- // Strategies are explicitly provided
370
+ // PRIORITY: If NEXT_PUBLIC_TURNKEY_PRIMARY is true, show Turnkey modal FIRST as the primary authentication option
371
+ // Setting NEXT_PUBLIC_TURNKEY_PRIMARY="true" implicitly enables Turnkey
372
+ const isTurnkeyPrimary = process.env.NEXT_PUBLIC_TURNKEY_PRIMARY === "true";
373
+ const shouldShowTurnkeyFirst = isTurnkeyPrimary && !turnkeyAuthCompleted;
374
+
375
+ if (shouldShowTurnkeyFirst) {
376
+ // Don't show loading spinner for Turnkey - let the modal handle its own loading state
377
+ // This prevents the infinite loop where isAuthenticating causes the modal to be replaced
378
+ debug("Showing Turnkey as primary authentication option", {
379
+ isTurnkeyPrimary,
380
+ turnkeyAuthCompleted,
381
+ isAuthenticated,
382
+ });
383
+ // Show Turnkey authentication as primary option
360
384
  content = (
361
- <LoginStepCustom
362
- strategies={strategies}
363
- chain={chain}
364
- onSuccess={handleLoginSuccess}
365
- onError={onError}
366
- automaticallySetFirstEoa={!!automaticallySetFirstEoa}
367
- />
385
+ <LoginStepContainer partnerId={partnerId}>
386
+ <TurnkeyAuthModal
387
+ onSuccess={async (authenticatedUser: any) => {
388
+ debug("Turnkey authentication successful in primary flow", { authenticatedUser });
389
+ setTurnkeyAuthCompleted(true);
390
+ // After Turnkey auth, refetch user to get the full user object
391
+ await refetchUser();
392
+ // User is now authenticated via Turnkey
393
+ // Set both isAuthenticated and isConnected to true so UI updates properly
394
+ // Wallet connection is optional and can happen later for signing transactions
395
+ setIsAuthenticated(true);
396
+ setIsConnected(true);
397
+ setJustCompletedLogin(true);
398
+ // Call the login success callback
399
+ onLoginSuccess?.({} as Account);
400
+ }}
401
+ onClose={() => {
402
+ // If user closes Turnkey modal, they can still use wallet connection as fallback
403
+ setTurnkeyAuthCompleted(true);
404
+ }}
405
+ initialEmail=""
406
+ skipToOtp={false}
407
+ />
408
+ </LoginStepContainer>
368
409
  );
369
410
  } else {
370
- // Default to handle all strategies we support
371
- content = <LoginStep chain={chain} onSuccess={handleLoginSuccess} onError={onError} />;
411
+ // Show loading spinner only if not in Turnkey flow
412
+ if (isAuthenticating || (isFetchingSigners && step === "login") || source === "requestPermissions") {
413
+ content = (
414
+ <LoginStepContainer partnerId={partnerId}>
415
+ <div className="my-8 flex min-h-[350px] items-center justify-center">
416
+ <Loading variant="white" size="lg" />
417
+ </div>
418
+ </LoginStepContainer>
419
+ );
420
+ } else {
421
+ // Custom strategy
422
+ if (strategies?.[0] === "privy") {
423
+ content = <SignInWithB3Privy onSuccess={handleLoginSuccess} chain={chain} />;
424
+ } else if (strategies) {
425
+ // Strategies are explicitly provided
426
+ content = (
427
+ <LoginStepCustom
428
+ strategies={strategies}
429
+ chain={chain}
430
+ onSuccess={handleLoginSuccess}
431
+ onError={onError}
432
+ automaticallySetFirstEoa={!!automaticallySetFirstEoa}
433
+ />
434
+ );
435
+ } else {
436
+ // Default to handle all strategies we support
437
+ content = <LoginStep chain={chain} onSuccess={handleLoginSuccess} onError={onError} />;
438
+ }
439
+ }
372
440
  }
373
441
  }
374
442
 
@@ -2,7 +2,7 @@ import {
2
2
  Loading,
3
3
  useAuthentication,
4
4
  useAuthStore,
5
- useB3,
5
+ useB3Config,
6
6
  useHandleConnectWithPrivy,
7
7
  } from "@b3dotfun/sdk/global-account/react";
8
8
  import { debugB3React } from "@b3dotfun/sdk/shared/utils/debug";
@@ -19,7 +19,7 @@ interface SignInWithB3PrivyProps {
19
19
  }
20
20
 
21
21
  export function SignInWithB3Privy({ onSuccess, onError, chain }: SignInWithB3PrivyProps) {
22
- const { partnerId } = useB3();
22
+ const { partnerId } = useB3Config();
23
23
  const { isLoading, connectTw, fullToken } = useHandleConnectWithPrivy(chain, onSuccess);
24
24
  const setIsAuthenticating = useAuthStore(state => state.setIsAuthenticating);
25
25
  const setIsAuthenticated = useAuthStore(state => state.setIsAuthenticated);
@@ -1,4 +1,4 @@
1
- import { useAuthentication, useB3, useQueryB3 } from "@b3dotfun/sdk/global-account/react";
1
+ import { useAuthentication, useB3Config, useQueryB3 } from "@b3dotfun/sdk/global-account/react";
2
2
  import { ecosystemWalletId } from "@b3dotfun/sdk/shared/constants";
3
3
  import { client } from "@b3dotfun/sdk/shared/utils/thirdweb";
4
4
  import { Chain } from "thirdweb";
@@ -50,7 +50,7 @@ export function LoginStepContainer({ children, partnerId }: LoginStepContainerPr
50
50
  }
51
51
 
52
52
  export function LoginStep({ onSuccess, chain }: LoginStepProps) {
53
- const { partnerId, theme } = useB3();
53
+ const { partnerId, theme } = useB3Config();
54
54
  const wallet = ecosystemWallet(ecosystemWalletId, {
55
55
  partnerId: partnerId,
56
56
  });
@@ -7,7 +7,7 @@ import {
7
7
  LoginStepContainer,
8
8
  useAuthentication,
9
9
  useAuthStore,
10
- useB3,
10
+ useB3Config,
11
11
  useConnect,
12
12
  WalletRow,
13
13
  } from "@b3dotfun/sdk/global-account/react";
@@ -37,7 +37,7 @@ export function LoginStepCustom({
37
37
  maxInitialWallets = 2,
38
38
  automaticallySetFirstEoa,
39
39
  }: LoginStepCustomProps) {
40
- const { partnerId } = useB3();
40
+ const { partnerId } = useB3Config();
41
41
  const [isLoading, setIsLoading] = useState(false);
42
42
  const [showAllWallets, setShowAllWallets] = useState(false);
43
43
  const { connect } = useConnect(partnerId, chain);
@@ -1,11 +1,11 @@
1
1
  import { PropsWithChildren } from "react";
2
- import { useB3 } from "./B3Provider/useB3";
2
+ import { useB3Config } from "./B3Provider/useB3Config";
3
3
 
4
4
  export function StyleRoot({ children, id }: PropsWithChildren<{ id?: string }>) {
5
- const { theme: b3Theme } = useB3();
5
+ const { theme } = useB3Config();
6
6
 
7
7
  return (
8
- <div className="b3-root" id={id} data-theme={b3Theme}>
8
+ <div className="b3-root" id={id} data-theme={theme}>
9
9
  {children}
10
10
  </div>
11
11
  );
@@ -1,4 +1,4 @@
1
- import React, { useState, useEffect, useRef } from "react";
1
+ import React, { useEffect, useRef, useState } from "react";
2
2
  import { useTurnkeyAuth } from "../hooks/useTurnkeyAuth";
3
3
 
4
4
  type ModalStep = "email" | "otp" | "success";
@@ -94,17 +94,20 @@ export function TurnkeyAuthModal({ onClose, onSuccess, initialEmail = "", skipTo
94
94
  }
95
95
  };
96
96
 
97
+ const isTurnkeyPrimary = process.env.NEXT_PUBLIC_TURNKEY_PRIMARY === "true";
98
+ const walletBrand = isTurnkeyPrimary ? "Smart Wallet" : "AnySpend Wallet";
99
+
97
100
  return (
98
101
  <div className="font-neue-montreal p-8">
99
102
  {/* Email Step */}
100
103
  {step === "email" && (
101
104
  <>
102
105
  <h2 className="mb-6 text-center text-2xl font-bold text-gray-900 dark:text-white">
103
- Setup your AnySpend Wallet
106
+ Setup your {walletBrand}
104
107
  </h2>
105
108
  <div className="mb-6 space-y-3 text-center text-sm text-gray-600 dark:text-gray-400">
106
109
  <p>
107
- AnySpend uses a secure,
110
+ {isTurnkeyPrimary ? "We use a secure," : "AnySpend uses a secure,"}
108
111
  <br />
109
112
  embedded wallet to fund your workflows.
110
113
  </p>
@@ -158,7 +161,7 @@ export function TurnkeyAuthModal({ onClose, onSuccess, initialEmail = "", skipTo
158
161
  <h2 className="mb-4 text-center text-2xl font-bold text-gray-900 dark:text-white">2FA Security</h2>
159
162
  <div className="mb-6 space-y-3 text-center text-sm text-gray-600 dark:text-gray-400">
160
163
  <p>
161
- AnySpend uses a secure,
164
+ {isTurnkeyPrimary ? "We use a secure," : "AnySpend uses a secure,"}
162
165
  <br />
163
166
  embedded wallet to fund your workflows.
164
167
  <br />
@@ -1,11 +1,10 @@
1
- import { Button, StyleRoot, useAuthentication, useB3, useModalStore } from "@b3dotfun/sdk/global-account/react";
1
+ import { Button, StyleRoot, useModalStore, useUser } from "@b3dotfun/sdk/global-account/react";
2
2
  import { cn } from "@b3dotfun/sdk/shared/utils";
3
3
  import { SignInWithB3Props } from "../SignInWithB3/SignInWithB3";
4
4
 
5
5
  export function ManageAccountButton(props: SignInWithB3Props & { className?: string }) {
6
- const { partnerId } = useB3();
7
6
  const { setB3ModalOpen, setB3ModalContentType } = useModalStore();
8
- const { isConnected } = useAuthentication(partnerId);
7
+ const { isConnected } = useUser();
9
8
 
10
9
  const handleClickManageAccount = () => {
11
10
  setB3ModalContentType({
@@ -1,9 +1,8 @@
1
1
  // TODO woj: Barrel file for all components, this might be reason of bundle size issues
2
2
  // Core Components
3
3
  export { B3DynamicModal } from "./B3DynamicModal";
4
- export { B3Provider, InnerProvider } from "./B3Provider/B3Provider";
4
+ export { B3Provider } from "./B3Provider/B3Provider";
5
5
  export { RelayKitProviderWrapper } from "./B3Provider/RelayKitProviderWrapper";
6
- export { B3Context, type B3ContextType } from "./B3Provider/types";
7
6
  export { useB3 } from "./B3Provider/useB3";
8
7
  export { useB3Account } from "./B3Provider/useB3Account";
9
8
  export { useB3Config } from "./B3Provider/useB3Config";
@@ -3,6 +3,7 @@ export { useAccountAssets } from "./useAccountAssets";
3
3
  export { useAccountWallet } from "./useAccountWallet";
4
4
  export { useAddTWSessionKey } from "./useAddTWSessionKey";
5
5
  export { useAnalytics } from "./useAnalytics";
6
+ export { useAuth } from "./useAuth";
6
7
  export { useAuthentication } from "./useAuthentication";
7
8
  export { useB3BalanceFromAddresses } from "./useB3BalanceFromAddresses";
8
9
  export { useB3EnsName } from "./useB3EnsName";
@@ -51,3 +52,4 @@ export { useTokensFromAddress } from "./useTokensFromAddress";
51
52
  export { useTurnkeyAuth } from "./useTurnkeyAuth";
52
53
  export { useUnifiedChainSwitchAndExecute } from "./useUnifiedChainSwitchAndExecute";
53
54
  export { useURLParams } from "./useURLParams";
55
+ export { useUser } from "./useUser";