@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
@@ -0,0 +1,37 @@
1
+ import type { GasPriceData } from "../../types/gas";
2
+ export interface UseGasPriceOptions {
3
+ /** Refetch interval in ms (default: 10000 = 10s) */
4
+ refetchInterval?: number;
5
+ /** Whether to enable the query (default: true if chainId is supported) */
6
+ enabled?: boolean;
7
+ }
8
+ export interface UseGasPriceResult {
9
+ /** Gas price data */
10
+ gasPrice: GasPriceData | undefined;
11
+ /** Whether the query is loading */
12
+ isLoading: boolean;
13
+ /** Whether there's an error */
14
+ isError: boolean;
15
+ /** Error object if any */
16
+ error: Error | null;
17
+ /** Whether gas is currently spiking */
18
+ isSpike: boolean;
19
+ /** Refetch function */
20
+ refetch: () => void;
21
+ }
22
+ /**
23
+ * React hook to fetch current gas price for a chain.
24
+ *
25
+ * @param chainId - The chain ID to fetch gas price for
26
+ * @param options - Optional configuration
27
+ *
28
+ * @example
29
+ * ```tsx
30
+ * const { gasPrice, isSpike, isLoading } = useGasPrice(8453); // Base
31
+ *
32
+ * if (isSpike) {
33
+ * return <Warning>Gas prices are high: {gasPrice?.recommendation}</Warning>;
34
+ * }
35
+ * ```
36
+ */
37
+ export declare function useGasPrice(chainId: number | undefined, options?: UseGasPriceOptions): UseGasPriceResult;
@@ -0,0 +1,40 @@
1
+ import { useQuery } from "@tanstack/react-query";
2
+ import { useMemo } from "react";
3
+ import { gasService, isGasOracleSupported } from "../../services/gas.js";
4
+ /**
5
+ * React hook to fetch current gas price for a chain.
6
+ *
7
+ * @param chainId - The chain ID to fetch gas price for
8
+ * @param options - Optional configuration
9
+ *
10
+ * @example
11
+ * ```tsx
12
+ * const { gasPrice, isSpike, isLoading } = useGasPrice(8453); // Base
13
+ *
14
+ * if (isSpike) {
15
+ * return <Warning>Gas prices are high: {gasPrice?.recommendation}</Warning>;
16
+ * }
17
+ * ```
18
+ */
19
+ export function useGasPrice(chainId, options = {}) {
20
+ const { refetchInterval = 10000, enabled } = options;
21
+ const isSupported = chainId !== undefined && isGasOracleSupported(chainId);
22
+ const queryEnabled = enabled ?? isSupported;
23
+ const { data, isLoading, isError, error, refetch } = useQuery({
24
+ queryKey: ["gasPrice", chainId],
25
+ queryFn: () => gasService.fetch(chainId),
26
+ enabled: queryEnabled && chainId !== undefined,
27
+ refetchInterval,
28
+ staleTime: 5000, // Consider data fresh for 5s
29
+ retry: 2,
30
+ refetchOnWindowFocus: true,
31
+ });
32
+ return useMemo(() => ({
33
+ gasPrice: data,
34
+ isLoading,
35
+ isError,
36
+ error: error,
37
+ isSpike: data?.isSpike ?? false,
38
+ refetch,
39
+ }), [data, isLoading, isError, error, refetch]);
40
+ }
@@ -1,12 +1,12 @@
1
1
  import { Validators } from "../../../anyspend/utils/validation.js";
2
- import { useB3 } from "../../../global-account/react/index.js";
2
+ import { useB3Config } from "../../../global-account/react/index.js";
3
3
  import { useCallback } from "react";
4
4
  /**
5
5
  * Hook that provides a validated client reference ID
6
6
  * Gets the createClientReferenceId function from B3 context and validates the result
7
7
  */
8
8
  export function useValidatedClientReferenceId() {
9
- const { createClientReferenceId } = useB3();
9
+ const { createClientReferenceId } = useB3Config();
10
10
  const createValidatedClientReferenceId = useCallback(async (params) => {
11
11
  // If no function provided, return undefined
12
12
  if (!createClientReferenceId) {
@@ -0,0 +1,21 @@
1
+ import type { GasOracleResponse, GasPriceData } from "../types/gas";
2
+ /** Supported chain IDs for gas oracle */
3
+ export declare const GAS_ORACLE_SUPPORTED_CHAINS: readonly [1, 137, 42161, 8453, 56, 10, 43114, 8333, 2741, 4689, 3338, 1329];
4
+ export type GasOracleSupportedChainId = (typeof GAS_ORACLE_SUPPORTED_CHAINS)[number];
5
+ /** Check if a chain is supported by the gas oracle */
6
+ export declare function isGasOracleSupported(chainId: number): chainId is GasOracleSupportedChainId;
7
+ /** Fetch gas price data from the gas oracle */
8
+ export declare function fetchGasPrice(chainId: number): Promise<GasOracleResponse>;
9
+ /** Transform raw oracle response to simplified UI data */
10
+ export declare function toGasPriceData(response: GasOracleResponse): GasPriceData;
11
+ /** Gas service for fetching and transforming gas data */
12
+ export declare const gasService: {
13
+ /** Fetch raw gas oracle response */
14
+ fetchRaw: typeof fetchGasPrice;
15
+ /** Fetch and transform to UI-friendly format */
16
+ fetch: (chainId: number) => Promise<GasPriceData>;
17
+ /** Check if chain is supported */
18
+ isSupported: typeof isGasOracleSupported;
19
+ /** List of supported chain IDs */
20
+ supportedChains: readonly [1, 137, 42161, 8453, 56, 10, 43114, 8333, 2741, 4689, 3338, 1329];
21
+ };
@@ -0,0 +1,59 @@
1
+ import { GAS_ORACLE_BASE_URL } from "../constants/index.js";
2
+ /** Supported chain IDs for gas oracle */
3
+ export const GAS_ORACLE_SUPPORTED_CHAINS = [
4
+ 1, // Ethereum
5
+ 137, // Polygon
6
+ 42161, // Arbitrum
7
+ 8453, // Base
8
+ 56, // BSC
9
+ 10, // Optimism
10
+ 43114, // Avalanche
11
+ 8333, // B3
12
+ 2741, // Abstract
13
+ 4689, // IoTeX
14
+ 3338, // Peaq
15
+ 1329, // Sei
16
+ ];
17
+ /** Check if a chain is supported by the gas oracle */
18
+ export function isGasOracleSupported(chainId) {
19
+ return GAS_ORACLE_SUPPORTED_CHAINS.includes(chainId);
20
+ }
21
+ /** Fetch gas price data from the gas oracle */
22
+ export async function fetchGasPrice(chainId) {
23
+ const response = await fetch(`${GAS_ORACLE_BASE_URL}/gas/${chainId}`);
24
+ if (!response.ok) {
25
+ throw new Error(`Failed to fetch gas price for chain ${chainId}: ${response.status}`);
26
+ }
27
+ return response.json();
28
+ }
29
+ /** Transform raw oracle response to simplified UI data */
30
+ export function toGasPriceData(response) {
31
+ const { analysis } = response;
32
+ const isSpike = analysis.level === "elevated" || analysis.level === "high" || analysis.level === "spike";
33
+ return {
34
+ chainId: response.chainId,
35
+ chainName: response.chainName,
36
+ gasPriceGwei: response.gasPrice.standard,
37
+ baseFeeGwei: response.eip1559?.baseFee,
38
+ level: analysis.level,
39
+ isSpike,
40
+ recommendation: analysis.recommendation,
41
+ vsMedian: analysis.vs1h, // Use 1h as primary comparison
42
+ source: response.source,
43
+ timestamp: response.timestamp,
44
+ };
45
+ }
46
+ /** Gas service for fetching and transforming gas data */
47
+ export const gasService = {
48
+ /** Fetch raw gas oracle response */
49
+ fetchRaw: fetchGasPrice,
50
+ /** Fetch and transform to UI-friendly format */
51
+ fetch: async (chainId) => {
52
+ const response = await fetchGasPrice(chainId);
53
+ return toGasPriceData(response);
54
+ },
55
+ /** Check if chain is supported */
56
+ isSupported: isGasOracleSupported,
57
+ /** List of supported chain IDs */
58
+ supportedChains: GAS_ORACLE_SUPPORTED_CHAINS,
59
+ };
@@ -0,0 +1,61 @@
1
+ /** Gas level classification based on historical percentiles */
2
+ export type GasLevel = "low" | "normal" | "elevated" | "high" | "spike";
3
+ /** Gas prices in Gwei for different speed tiers */
4
+ export interface GasPrices {
5
+ low: string;
6
+ standard: string;
7
+ fast: string;
8
+ instant?: string;
9
+ }
10
+ /** EIP-1559 specific gas data */
11
+ export interface Eip1559Data {
12
+ baseFee: string;
13
+ maxPriorityFee: GasPrices;
14
+ maxFee: GasPrices;
15
+ }
16
+ /** Spike analysis comparing current gas to historical data */
17
+ export interface GasSpikeAnalysis {
18
+ level: GasLevel;
19
+ percentile: number;
20
+ /** Ratio to 1h median (primary spike detection) */
21
+ vs1h: number;
22
+ /** Ratio to 4h median (short-term context) */
23
+ vs4h: number;
24
+ /** Ratio to 24h median (daily context) */
25
+ vs24h: number;
26
+ recommendation: string;
27
+ }
28
+ /** Full gas response from the gas oracle */
29
+ export interface GasOracleResponse {
30
+ chainId: number;
31
+ chainName: string;
32
+ timestamp: string;
33
+ blockNumber?: number;
34
+ source: "blocknative" | "rpc";
35
+ gasPrice: GasPrices;
36
+ eip1559?: Eip1559Data;
37
+ analysis: GasSpikeAnalysis;
38
+ cached: boolean;
39
+ cacheAge?: number;
40
+ }
41
+ /** Simplified gas data for UI display */
42
+ export interface GasPriceData {
43
+ chainId: number;
44
+ chainName: string;
45
+ /** Standard gas price in Gwei */
46
+ gasPriceGwei: string;
47
+ /** Base fee in Gwei (EIP-1559 chains) */
48
+ baseFeeGwei?: string;
49
+ /** Gas level classification */
50
+ level: GasLevel;
51
+ /** Whether gas is currently spiking (elevated, high, or spike) */
52
+ isSpike: boolean;
53
+ /** Human-readable recommendation */
54
+ recommendation: string;
55
+ /** Ratio to recent median (1 = normal, >1.5 = elevated) */
56
+ vsMedian: number;
57
+ /** Data source */
58
+ source: "blocknative" | "rpc";
59
+ /** Timestamp of the data */
60
+ timestamp: string;
61
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -4,14 +4,13 @@ import { AnySpendDepositHype } from "../../../anyspend/react/components/Anyspend
4
4
  import { AnySpendDepositUpside } from "../../../anyspend/react/components/AnySpendDepositUpside.js";
5
5
  import { AnySpendStakeUpside } from "../../../anyspend/react/components/AnySpendStakeUpside.js";
6
6
  import { AnySpendStakeUpsideExactIn } from "../../../anyspend/react/components/AnySpendStakeUpsideExactIn.js";
7
- import { useGlobalAccount, useIsMobile, useModalStore } from "../../../global-account/react/index.js";
7
+ import { useB3Config, useGlobalAccount, useIsMobile, useModalStore } from "../../../global-account/react/index.js";
8
8
  import { cn } from "../../../shared/utils/cn.js";
9
9
  import { debugB3React } from "../../../shared/utils/debug.js";
10
10
  import { AnimatePresence, motion } from "framer-motion";
11
11
  import { useEffect, useRef } from "react";
12
12
  import { useSetActiveWallet } from "thirdweb/react";
13
13
  import { AvatarEditor } from "./AvatarEditor/AvatarEditor.js";
14
- import { useB3 } from "./B3Provider/useB3.js";
15
14
  import { Deposit } from "./Deposit/Deposit.js";
16
15
  import { LinkAccount } from "./LinkAccount/LinkAccount.js";
17
16
  import { LinkNewAccount } from "./LinkAccount/LinkNewAccount.js";
@@ -20,8 +19,8 @@ import NotificationsContent from "./ManageAccount/NotificationsContent.js";
20
19
  import { RequestPermissions } from "./RequestPermissions/RequestPermissions.js";
21
20
  import { Send } from "./Send/Send.js";
22
21
  import { SignInWithB3Flow } from "./SignInWithB3/SignInWithB3Flow.js";
23
- import { TurnkeyAuthModal } from "./TurnkeyAuthModal.js";
24
22
  import { ToastContainer, useToastContext } from "./Toast/index.js";
23
+ import { TurnkeyAuthModal } from "./TurnkeyAuthModal.js";
25
24
  import { Dialog, DialogContent, DialogDescription, DialogTitle } from "./ui/dialog.js";
26
25
  import { Drawer, DrawerContent, DrawerDescription, DrawerTitle } from "./ui/drawer.js";
27
26
  const debug = debugB3React("B3DynamicModal");
@@ -30,7 +29,7 @@ export function B3DynamicModal() {
30
29
  const setB3ModalOpen = useModalStore(state => state.setB3ModalOpen);
31
30
  const contentType = useModalStore(state => state.contentType);
32
31
  const navigateBack = useModalStore(state => state.navigateBack);
33
- const { theme } = useB3();
32
+ const { theme } = useB3Config();
34
33
  const isMobile = useIsMobile();
35
34
  const prevIsOpenRef = useRef(isOpen);
36
35
  const { wallet } = useGlobalAccount();
@@ -0,0 +1,5 @@
1
+ declare const AuthenticationProvider: ({ partnerId, automaticallySetFirstEoa, }: {
2
+ partnerId: string;
3
+ automaticallySetFirstEoa: boolean;
4
+ }) => null;
5
+ export default AuthenticationProvider;
@@ -0,0 +1,10 @@
1
+ import { useAuthentication } from "../../hooks/index.js";
2
+ import { useAutoSelectWallet } from "../../hooks/useAutoSelectWallet.js";
3
+ const AuthenticationProvider = ({ partnerId, automaticallySetFirstEoa, }) => {
4
+ useAuthentication(partnerId);
5
+ useAutoSelectWallet({
6
+ enabled: automaticallySetFirstEoa,
7
+ });
8
+ return null;
9
+ };
10
+ export default AuthenticationProvider;
@@ -5,15 +5,14 @@ import "@relayprotocol/relay-kit-ui/styles.css";
5
5
  import { Account, Wallet } from "thirdweb/wallets";
6
6
  import { CreateConnectorFn } from "wagmi";
7
7
  import { ClientType } from "../../../client-manager";
8
- import { B3ContextType } from "./types";
9
8
  /**
10
9
  * Main B3Provider component
11
10
  */
12
- export declare function B3Provider({ theme, children, accountOverride, environment, automaticallySetFirstEoa, simDuneApiKey, toaster: _toaster, clientType, rpcUrls, partnerId, stripePublishableKey, onConnect, connectors, overrideDefaultConnectors, createClientReferenceId, enableTurnkey, }: {
11
+ export declare function B3Provider({ theme, children, accountOverride, environment, automaticallySetFirstEoa, simDuneApiKey, toaster: _toaster, clientType, rpcUrls, partnerId, stripePublishableKey, onConnect, connectors, overrideDefaultConnectors, createClientReferenceId, enableTurnkey, defaultPermissions, }: {
13
12
  theme: "light" | "dark";
14
13
  children: React.ReactNode;
15
14
  accountOverride?: Account;
16
- environment: B3ContextType["environment"];
15
+ environment?: "development" | "production";
17
16
  automaticallySetFirstEoa?: boolean;
18
17
  simDuneApiKey?: string;
19
18
  toaster?: {
@@ -30,20 +29,5 @@ export declare function B3Provider({ theme, children, accountOverride, environme
30
29
  overrideDefaultConnectors?: boolean;
31
30
  createClientReferenceId?: (params: CreateOrderParams | CreateOnrampOrderParams) => Promise<string>;
32
31
  enableTurnkey?: boolean;
33
- }): import("react/jsx-runtime").JSX.Element;
34
- /**
35
- * Inner provider component that provides the actual B3Context
36
- */
37
- export declare function InnerProvider({ children, accountOverride, environment, defaultPermissions, automaticallySetFirstEoa, theme, clientType, partnerId, stripePublishableKey, createClientReferenceId, enableTurnkey, }: {
38
- children: React.ReactNode;
39
- accountOverride?: Account;
40
- environment: B3ContextType["environment"];
41
32
  defaultPermissions?: PermissionsConfig;
42
- automaticallySetFirstEoa: boolean;
43
- theme: "light" | "dark";
44
- clientType?: ClientType;
45
- partnerId: string;
46
- stripePublishableKey?: string;
47
- createClientReferenceId?: (params: CreateOrderParams | CreateOnrampOrderParams) => Promise<string>;
48
- enableTurnkey?: boolean;
49
33
  }): import("react/jsx-runtime").JSX.Element;
@@ -1,27 +1,18 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { RelayKitProviderWrapper, TooltipProvider, useAuthStore } from "../../../../global-account/react/index.js";
3
- import { useAutoSelectWallet } from "../../../../global-account/react/hooks/useAutoSelectWallet.js";
2
+ import { RelayKitProviderWrapper, TooltipProvider } from "../../../../global-account/react/index.js";
4
3
  import { createWagmiConfig } from "../../../../global-account/react/utils/createWagmiConfig.js";
5
4
  import { loadGA4Script } from "../../../../global-account/utils/analytics.js";
6
5
  import "@relayprotocol/relay-kit-ui/styles.css";
7
6
  import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
8
7
  import { useEffect, useMemo } from "react";
9
- import { ThirdwebProvider, useActiveAccount } from "thirdweb/react";
8
+ import { ThirdwebProvider } from "thirdweb/react";
10
9
  import { WagmiProvider } from "wagmi";
11
10
  import { setClientType } from "../../../client-manager.js";
11
+ import { useB3ConfigStore } from "../../stores/configStore.js";
12
12
  import { StyleRoot } from "../StyleRoot.js";
13
13
  import { setToastContext, ToastProvider, useToastContext } from "../Toast/index.js";
14
+ import AuthenticationProvider from "./AuthenticationProvider.js";
14
15
  import { LocalSDKProvider } from "./LocalSDKProvider.js";
15
- import { B3Context } from "./types.js";
16
- /**
17
- * Default permissions configuration for B3 provider
18
- */
19
- const DEFAULT_PERMISSIONS = {
20
- approvedTargets: ["0xa8e42121e318e3D3BeD7f5969AF6D360045317DD"], // Example contract
21
- nativeTokenLimitPerTransaction: 0.1, // in ETH
22
- startDate: new Date(),
23
- endDate: new Date(Date.now() + 1000 * 60 * 60 * 24 * 365), // 1 year from now
24
- };
25
16
  // Create queryClient instance
26
17
  const queryClient = new QueryClient();
27
18
  /**
@@ -29,7 +20,35 @@ const queryClient = new QueryClient();
29
20
  */
30
21
  export function B3Provider({ theme = "light", children, accountOverride, environment, automaticallySetFirstEoa, simDuneApiKey,
31
22
  // deprecated since v0.0.87
32
- toaster: _toaster, clientType = "rest", rpcUrls, partnerId, stripePublishableKey, onConnect, connectors, overrideDefaultConnectors = false, createClientReferenceId, enableTurnkey = false, }) {
23
+ toaster: _toaster, clientType = "rest", rpcUrls, partnerId, stripePublishableKey, onConnect, connectors, overrideDefaultConnectors = false, createClientReferenceId, enableTurnkey = false, defaultPermissions, }) {
24
+ const setConfig = useB3ConfigStore(state => state.setConfig);
25
+ // Initialize config store on mount
26
+ useEffect(() => {
27
+ setConfig({
28
+ accountOverride,
29
+ environment: environment ?? "development",
30
+ automaticallySetFirstEoa: !!automaticallySetFirstEoa,
31
+ theme,
32
+ clientType,
33
+ partnerId,
34
+ stripePublishableKey,
35
+ createClientReferenceId,
36
+ enableTurnkey,
37
+ defaultPermissions,
38
+ });
39
+ }, [
40
+ accountOverride,
41
+ environment,
42
+ automaticallySetFirstEoa,
43
+ theme,
44
+ clientType,
45
+ partnerId,
46
+ stripePublishableKey,
47
+ createClientReferenceId,
48
+ enableTurnkey,
49
+ defaultPermissions,
50
+ setConfig,
51
+ ]); // eslint-disable-line react-hooks/exhaustive-deps
33
52
  // Initialize Google Analytics on mount
34
53
  useEffect(() => {
35
54
  loadGA4Script();
@@ -39,45 +58,7 @@ toaster: _toaster, clientType = "rest", rpcUrls, partnerId, stripePublishableKey
39
58
  setClientType(clientType);
40
59
  }, [clientType]);
41
60
  const wagmiConfig = useMemo(() => createWagmiConfig({ partnerId, rpcUrls, connectors, overrideDefaultConnectors }), [partnerId, rpcUrls, connectors, overrideDefaultConnectors]);
42
- 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(InnerProvider, { accountOverride: accountOverride, environment: environment, theme: theme, automaticallySetFirstEoa: !!automaticallySetFirstEoa, clientType: clientType, partnerId: partnerId, stripePublishableKey: stripePublishableKey, createClientReferenceId: createClientReferenceId, enableTurnkey: enableTurnkey, children: [_jsx(ToastContextConnector, {}), _jsxs(RelayKitProviderWrapper, { simDuneApiKey: simDuneApiKey, children: [children, _jsx(StyleRoot, { id: "b3-root" })] })] }) }) }) }) }) }) }));
43
- }
44
- /**
45
- * Inner provider component that provides the actual B3Context
46
- */
47
- export function InnerProvider({ children, accountOverride, environment, defaultPermissions = DEFAULT_PERMISSIONS, automaticallySetFirstEoa, theme = "light", clientType = "socket", partnerId, stripePublishableKey, createClientReferenceId, enableTurnkey, }) {
48
- const activeAccount = useActiveAccount();
49
- const isAuthenticated = useAuthStore(state => state.isAuthenticated);
50
- //const isConnected = useAuthStore(state => state.isConnected);
51
- //const justCompletedLogin = useAuthStore(state => state.justCompletedLogin);
52
- // Use given accountOverride or activeAccount from thirdweb
53
- // WOJ: why if isAuthenticated is false, we don't use activeAccount, which should be undefined?
54
- // skip isAuthenticated check ?
55
- const effectiveAccount = isAuthenticated ? accountOverride || activeAccount : undefined;
56
- // Wrapper to set active wallet via thirdweb
57
- // Note: `wallet` in context is deprecated - use useActiveWallet() from thirdweb/react instead
58
- // Auto-select first EOA wallet when enabled
59
- useAutoSelectWallet({
60
- enabled: automaticallySetFirstEoa,
61
- });
62
- return (_jsx(B3Context.Provider, { value: {
63
- account: effectiveAccount,
64
- // setWallet,
65
- //wallet: undefined, // Deprecated: use useActiveWallet() from thirdweb/react instead
66
- //user,
67
- //setUser,
68
- //refetchUser,
69
- initialized: true,
70
- ready: !!effectiveAccount,
71
- automaticallySetFirstEoa,
72
- environment,
73
- defaultPermissions,
74
- theme,
75
- clientType,
76
- partnerId: partnerId,
77
- stripePublishableKey,
78
- createClientReferenceId,
79
- enableTurnkey,
80
- }, children: children }));
61
+ return (_jsx(ThirdwebProvider, { children: _jsx(WagmiProvider, { config: wagmiConfig, reconnectOnMount: false, children: _jsx(QueryClientProvider, { client: queryClient, children: _jsx(TooltipProvider, { children: _jsx(ToastProvider, { children: _jsxs(LocalSDKProvider, { onConnectCallback: onConnect, children: [_jsx(ToastContextConnector, {}), _jsxs(RelayKitProviderWrapper, { simDuneApiKey: simDuneApiKey, children: [children, _jsx(StyleRoot, { id: "b3-root" })] }), _jsx(AuthenticationProvider, { partnerId: partnerId, automaticallySetFirstEoa: !!automaticallySetFirstEoa })] }) }) }) }) }) }));
81
62
  }
82
63
  /**
83
64
  * Component to connect the toast context to the global toast API
@@ -1,27 +1,27 @@
1
1
  import { PermissionsConfig } from "../../../../global-account/types/permissions";
2
2
  import { Account, Wallet } from "thirdweb/wallets";
3
3
  import { ClientType } from "../../../client-manager";
4
- import { B3ContextType } from "./types";
5
4
  /**
6
5
  * Main B3Provider component
7
6
  */
8
- export declare function B3Provider({ theme, children, accountOverride, environment, clientType, partnerId, rpcUrls, onConnect, }: {
7
+ export declare function B3Provider({ theme, children, accountOverride, environment, clientType, partnerId, rpcUrls, onConnect, defaultPermissions, }: {
9
8
  theme: "light" | "dark";
10
9
  children: React.ReactNode;
11
10
  accountOverride?: Account;
12
- environment: B3ContextType["environment"];
11
+ environment?: "development" | "production";
13
12
  clientType?: ClientType;
14
13
  partnerId: string;
15
14
  rpcUrls?: Record<number, string>;
16
15
  onConnect?: (wallet: Wallet, b3Jwt: string) => void | Promise<void>;
16
+ defaultPermissions?: PermissionsConfig;
17
17
  }): import("react/jsx-runtime").JSX.Element;
18
18
  /**
19
- * Inner provider component that provides the actual B3Context
19
+ * Inner provider component for native
20
20
  */
21
21
  export declare function InnerProvider({ children, accountOverride, environment, defaultPermissions, theme, clientType, partnerId, rpcUrls, }: {
22
22
  children: React.ReactNode;
23
23
  accountOverride?: Account;
24
- environment: B3ContextType["environment"];
24
+ environment?: "development" | "production";
25
25
  defaultPermissions?: PermissionsConfig;
26
26
  theme: "light" | "dark";
27
27
  clientType?: ClientType;
@@ -1,50 +1,50 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
3
- import { ThirdwebProvider, useActiveAccount } from "thirdweb/react";
3
+ import { useEffect } from "react";
4
+ import { ThirdwebProvider } from "thirdweb/react";
4
5
  import { WagmiProvider } from "wagmi";
6
+ import { useB3ConfigStore } from "../../stores/configStore.js";
5
7
  import { createWagmiConfig } from "../../utils/createWagmiConfig.js";
8
+ import AuthenticationProvider from "./AuthenticationProvider.js";
6
9
  import { LocalSDKProvider } from "./LocalSDKProvider.js";
7
- import { B3Context } from "./types.js";
8
- /**
9
- * Default permissions configuration for B3 provider
10
- */
11
- const DEFAULT_PERMISSIONS = {
12
- approvedTargets: ["0xa8e42121e318e3D3BeD7f5969AF6D360045317DD"], // Example contract
13
- nativeTokenLimitPerTransaction: 0.1, // in ETH
14
- startDate: new Date(),
15
- endDate: new Date(Date.now() + 1000 * 60 * 60 * 24 * 365), // 1 year from now
16
- };
17
10
  // Create queryClient instance
18
11
  const queryClient = new QueryClient();
19
12
  /**
20
13
  * Main B3Provider component
21
14
  */
22
- export function B3Provider({ theme = "light", children, accountOverride, environment, clientType = "socket", partnerId, rpcUrls, onConnect, }) {
23
- return (_jsx(ThirdwebProvider, { children: _jsx(LocalSDKProvider, { onConnectCallback: onConnect, children: _jsx(InnerProvider, { accountOverride: accountOverride, environment: environment, theme: theme, clientType: clientType, partnerId: partnerId, rpcUrls: rpcUrls, children: children }) }) }));
15
+ export function B3Provider({ theme = "light", children, accountOverride, environment, clientType = "socket", partnerId, rpcUrls, onConnect, defaultPermissions, }) {
16
+ const setConfig = useB3ConfigStore(state => state.setConfig);
17
+ // Initialize config store on mount - props are static and never change
18
+ useEffect(() => {
19
+ setConfig({
20
+ accountOverride,
21
+ environment: environment ?? "development",
22
+ automaticallySetFirstEoa: false,
23
+ theme,
24
+ clientType,
25
+ partnerId,
26
+ defaultPermissions,
27
+ });
28
+ }, []); // eslint-disable-line react-hooks/exhaustive-deps
29
+ return (_jsx(ThirdwebProvider, { children: _jsxs(LocalSDKProvider, { onConnectCallback: onConnect, children: [children, _jsx(AuthenticationProvider, { partnerId: partnerId, automaticallySetFirstEoa: false })] }) }));
24
30
  }
25
31
  /**
26
- * Inner provider component that provides the actual B3Context
32
+ * Inner provider component for native
27
33
  */
28
- export function InnerProvider({ children, accountOverride, environment, defaultPermissions = DEFAULT_PERMISSIONS, theme = "light", clientType = "socket", partnerId, rpcUrls, }) {
29
- const activeAccount = useActiveAccount();
30
- //const { user, setUser, refetchUser } = useAuthentication(partnerId);
34
+ export function InnerProvider({ children, accountOverride, environment, defaultPermissions, theme = "light", clientType = "socket", partnerId, rpcUrls, }) {
35
+ const setConfig = useB3ConfigStore(state => state.setConfig);
31
36
  const wagmiConfig = createWagmiConfig({ partnerId, rpcUrls });
32
- // Use given accountOverride or activeAccount from thirdweb
33
- const effectiveAccount = accountOverride || activeAccount;
34
- return (_jsx(WagmiProvider, { config: wagmiConfig, children: _jsx(QueryClientProvider, { client: queryClient, children: _jsx(B3Context.Provider, { value: {
35
- //account: effectiveAccount,
36
- automaticallySetFirstEoa: false,
37
- //setWallet: () => {},
38
- wallet: undefined,
39
- //user,
40
- //setUser,
41
- initialized: true,
42
- ready: !!effectiveAccount,
43
- environment,
44
- defaultPermissions,
45
- theme,
46
- clientType,
47
- partnerId,
48
- //refetchUser,
49
- }, children: children }) }) }));
37
+ // Initialize config store on mount - props are static and never change
38
+ useEffect(() => {
39
+ setConfig({
40
+ accountOverride,
41
+ environment: environment ?? "development",
42
+ automaticallySetFirstEoa: false,
43
+ theme,
44
+ clientType,
45
+ partnerId,
46
+ defaultPermissions,
47
+ });
48
+ }, []); // eslint-disable-line react-hooks/exhaustive-deps
49
+ return (_jsx(WagmiProvider, { config: wagmiConfig, children: _jsx(QueryClientProvider, { client: queryClient, children: children }) }));
50
50
  }
@@ -11,6 +11,8 @@ export function RelayKitProviderWrapper({ children, simDuneApiKey, }) {
11
11
  };
12
12
  fetchChains();
13
13
  }, []);
14
+ const isTurnkeyPrimary = process.env.NEXT_PUBLIC_TURNKEY_PRIMARY === "true";
15
+ const appName = isTurnkeyPrimary ? "Smart Wallet" : "AnySpend";
14
16
  return (_jsx(RelayKitProvider, { options: {
15
17
  baseApiUrl: MAINNET_RELAY_API,
16
18
  source: "anyspend",
@@ -20,7 +22,7 @@ export function RelayKitProviderWrapper({ children, simDuneApiKey, }) {
20
22
  },
21
23
  chains: relayChains,
22
24
  privateChainIds: undefined,
23
- appName: "AnySpend",
25
+ appName,
24
26
  useGasFeeEstimations: true,
25
27
  }, children: _jsx(_Fragment, { children: children }) }));
26
28
  }
@@ -1,6 +1,16 @@
1
1
  /**
2
- * Hook to access the B3 context
3
- * @throws Error if used outside a B3Provider
4
- * @deprecated Use useB3Config or useB3Account instead
2
+ * Hook to access the B3 configuration
3
+ * @deprecated This is just an alias for useB3Config. Use useB3Config directly instead.
5
4
  */
6
- export declare function useB3(): import("./types").B3ContextType;
5
+ export declare function useB3(): {
6
+ automaticallySetFirstEoa: boolean;
7
+ environment: "development" | "production";
8
+ theme: "light" | "dark";
9
+ clientType: import("../../../client-manager").ClientType;
10
+ partnerId: string;
11
+ createClientReferenceId: ((params: import("../../../../anyspend/react").CreateOrderParams | import("../../../../anyspend/react").CreateOnrampOrderParams) => Promise<string>) | undefined;
12
+ enableTurnkey: boolean;
13
+ stripePublishableKey: string | undefined;
14
+ defaultPermissions: import("../../../types/permissions").PermissionsConfig;
15
+ accountOverride: import("thirdweb/wallets").Account | undefined;
16
+ };
@@ -1,15 +1,8 @@
1
- import { useContext, useMemo } from "react";
2
- import { B3Context } from "./types.js";
1
+ import { useB3Config } from "./useB3Config.js";
3
2
  /**
4
- * Hook to access the B3 context
5
- * @throws Error if used outside a B3Provider
6
- * @deprecated Use useB3Config or useB3Account instead
3
+ * Hook to access the B3 configuration
4
+ * @deprecated This is just an alias for useB3Config. Use useB3Config directly instead.
7
5
  */
8
6
  export function useB3() {
9
- const context = useContext(B3Context);
10
- if (!context.initialized) {
11
- throw new Error("useB3 must be used within a B3Provider");
12
- }
13
- // Return a stable reference
14
- return useMemo(() => context, [context]);
7
+ return useB3Config();
15
8
  }
@@ -1,6 +1,9 @@
1
1
  import { useActiveAccount } from "thirdweb/react";
2
+ import { useAuthStore } from "../../stores/useAuthStore.js";
2
3
  // Wrapper around useActiveAccount
3
4
  export const useB3Account = () => {
4
- const account = useActiveAccount();
5
- return account;
5
+ const isAuthenticated = useAuthStore(state => state.isAuthenticated);
6
+ const activeAccount = useActiveAccount();
7
+ const effectiveAccount = isAuthenticated ? activeAccount : undefined;
8
+ return effectiveAccount;
6
9
  };