thirdweb 5.102.7-nightly-3f747601135809eedf86a150752f4b5f12c99776-20250617000426 → 5.103.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 (540) hide show
  1. package/dist/cjs/bridge/Routes.js +4 -1
  2. package/dist/cjs/bridge/Routes.js.map +1 -1
  3. package/dist/cjs/bridge/Token.js +57 -0
  4. package/dist/cjs/bridge/Token.js.map +1 -1
  5. package/dist/cjs/bridge/types/Errors.js +9 -0
  6. package/dist/cjs/bridge/types/Errors.js.map +1 -1
  7. package/dist/cjs/exports/react.js +9 -1
  8. package/dist/cjs/exports/react.js.map +1 -1
  9. package/dist/cjs/pay/buyWithFiat/getQuote.js +2 -2
  10. package/dist/cjs/pay/convert/cryptoToFiat.js +3 -3
  11. package/dist/cjs/pay/convert/cryptoToFiat.js.map +1 -1
  12. package/dist/cjs/pay/convert/fiatToCrypto.js +3 -3
  13. package/dist/cjs/pay/convert/fiatToCrypto.js.map +1 -1
  14. package/dist/cjs/pay/convert/get-token.js +15 -3
  15. package/dist/cjs/pay/convert/get-token.js.map +1 -1
  16. package/dist/cjs/pay/utils/commonTypes.js +1 -1
  17. package/dist/cjs/react/core/adapters/WindowAdapter.js +3 -0
  18. package/dist/cjs/react/core/adapters/WindowAdapter.js.map +1 -0
  19. package/dist/cjs/react/core/errors/mapBridgeError.js +27 -0
  20. package/dist/cjs/react/core/errors/mapBridgeError.js.map +1 -0
  21. package/dist/cjs/react/core/hooks/others/useChainQuery.js +1 -1
  22. package/dist/cjs/react/core/hooks/others/useChainQuery.js.map +1 -1
  23. package/dist/cjs/react/core/hooks/pay/useBuyWithFiatQuotesForProviders.js +40 -0
  24. package/dist/cjs/react/core/hooks/pay/useBuyWithFiatQuotesForProviders.js.map +1 -0
  25. package/dist/cjs/react/core/hooks/useBridgeError.js +94 -0
  26. package/dist/cjs/react/core/hooks/useBridgeError.js.map +1 -0
  27. package/dist/cjs/react/core/hooks/useBridgePrepare.js +90 -0
  28. package/dist/cjs/react/core/hooks/useBridgePrepare.js.map +1 -0
  29. package/dist/cjs/react/core/hooks/useBridgeQuote.js +50 -0
  30. package/dist/cjs/react/core/hooks/useBridgeQuote.js.map +1 -0
  31. package/dist/cjs/react/core/hooks/useBridgeRoutes.js +61 -0
  32. package/dist/cjs/react/core/hooks/useBridgeRoutes.js.map +1 -0
  33. package/dist/cjs/react/core/hooks/usePaymentMethods.js +154 -0
  34. package/dist/cjs/react/core/hooks/usePaymentMethods.js.map +1 -0
  35. package/dist/cjs/react/core/hooks/useStepExecutor.js +408 -0
  36. package/dist/cjs/react/core/hooks/useStepExecutor.js.map +1 -0
  37. package/dist/cjs/react/core/hooks/useTransactionDetails.js +126 -0
  38. package/dist/cjs/react/core/hooks/useTransactionDetails.js.map +1 -0
  39. package/dist/cjs/react/core/machines/paymentMachine.js +189 -0
  40. package/dist/cjs/react/core/machines/paymentMachine.js.map +1 -0
  41. package/dist/cjs/react/web/adapters/WindowAdapter.js +25 -0
  42. package/dist/cjs/react/web/adapters/WindowAdapter.js.map +1 -0
  43. package/dist/cjs/react/web/hooks/transaction/useSendTransaction.js +5 -0
  44. package/dist/cjs/react/web/hooks/transaction/useSendTransaction.js.map +1 -1
  45. package/dist/cjs/react/web/ui/Bridge/BridgeOrchestrator.js +107 -0
  46. package/dist/cjs/react/web/ui/Bridge/BridgeOrchestrator.js.map +1 -0
  47. package/dist/cjs/react/web/ui/Bridge/BuyWidget.js +177 -0
  48. package/dist/cjs/react/web/ui/Bridge/BuyWidget.js.map +1 -0
  49. package/dist/cjs/react/web/ui/Bridge/CheckoutWidget.js +154 -0
  50. package/dist/cjs/react/web/ui/Bridge/CheckoutWidget.js.map +1 -0
  51. package/dist/cjs/react/web/ui/Bridge/DirectPayment.js +62 -0
  52. package/dist/cjs/react/web/ui/Bridge/DirectPayment.js.map +1 -0
  53. package/dist/cjs/react/web/ui/Bridge/ErrorBanner.js +26 -0
  54. package/dist/cjs/react/web/ui/Bridge/ErrorBanner.js.map +1 -0
  55. package/dist/cjs/react/web/ui/Bridge/FundWallet.js +122 -0
  56. package/dist/cjs/react/web/ui/Bridge/FundWallet.js.map +1 -0
  57. package/dist/cjs/react/web/ui/Bridge/QuoteLoader.js +99 -0
  58. package/dist/cjs/react/web/ui/Bridge/QuoteLoader.js.map +1 -0
  59. package/dist/cjs/react/web/ui/Bridge/StepRunner.js +179 -0
  60. package/dist/cjs/react/web/ui/Bridge/StepRunner.js.map +1 -0
  61. package/dist/cjs/react/web/ui/Bridge/TransactionPayment.js +117 -0
  62. package/dist/cjs/react/web/ui/Bridge/TransactionPayment.js.map +1 -0
  63. package/dist/cjs/react/web/ui/Bridge/TransactionWidget.js +179 -0
  64. package/dist/cjs/react/web/ui/Bridge/TransactionWidget.js.map +1 -0
  65. package/dist/cjs/react/web/ui/Bridge/UnsupportedTokenScreen.js +23 -0
  66. package/dist/cjs/react/web/ui/Bridge/UnsupportedTokenScreen.js.map +1 -0
  67. package/dist/cjs/react/web/ui/Bridge/common/TokenAndChain.js +101 -0
  68. package/dist/cjs/react/web/ui/Bridge/common/TokenAndChain.js.map +1 -0
  69. package/dist/cjs/react/web/ui/Bridge/common/TokenBalanceRow.js +57 -0
  70. package/dist/cjs/react/web/ui/Bridge/common/TokenBalanceRow.js.map +1 -0
  71. package/dist/cjs/react/web/ui/Bridge/common/WithHeader.js +27 -0
  72. package/dist/cjs/react/web/ui/Bridge/common/WithHeader.js.map +1 -0
  73. package/dist/cjs/react/web/ui/Bridge/payment-details/PaymentDetails.js +121 -0
  74. package/dist/cjs/react/web/ui/Bridge/payment-details/PaymentDetails.js.map +1 -0
  75. package/dist/cjs/react/web/ui/Bridge/payment-details/PaymentOverview.js +80 -0
  76. package/dist/cjs/react/web/ui/Bridge/payment-details/PaymentOverview.js.map +1 -0
  77. package/dist/cjs/react/web/ui/Bridge/payment-selection/FiatProviderSelection.js +83 -0
  78. package/dist/cjs/react/web/ui/Bridge/payment-selection/FiatProviderSelection.js.map +1 -0
  79. package/dist/cjs/react/web/ui/Bridge/payment-selection/PaymentSelection.js +111 -0
  80. package/dist/cjs/react/web/ui/Bridge/payment-selection/PaymentSelection.js.map +1 -0
  81. package/dist/cjs/react/web/ui/Bridge/payment-selection/TokenSelection.js +71 -0
  82. package/dist/cjs/react/web/ui/Bridge/payment-selection/TokenSelection.js.map +1 -0
  83. package/dist/cjs/react/web/ui/Bridge/payment-selection/WalletFiatSelection.js +54 -0
  84. package/dist/cjs/react/web/ui/Bridge/payment-selection/WalletFiatSelection.js.map +1 -0
  85. package/dist/cjs/react/web/ui/Bridge/payment-success/PaymentReceipt.js +140 -0
  86. package/dist/cjs/react/web/ui/Bridge/payment-success/PaymentReceipt.js.map +1 -0
  87. package/dist/cjs/react/web/ui/Bridge/payment-success/SuccessScreen.js +61 -0
  88. package/dist/cjs/react/web/ui/Bridge/payment-success/SuccessScreen.js.map +1 -0
  89. package/dist/cjs/react/web/ui/ConnectWallet/WalletSelector.js +2 -2
  90. package/dist/cjs/react/web/ui/ConnectWallet/constants.js +1 -1
  91. package/dist/cjs/react/web/ui/ConnectWallet/icons/CreditCardIcon.js +12 -0
  92. package/dist/cjs/react/web/ui/ConnectWallet/icons/CreditCardIcon.js.map +1 -0
  93. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
  94. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.js +3 -1
  95. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.js.map +1 -1
  96. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.js +4 -0
  97. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.js.map +1 -1
  98. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js.map +1 -1
  99. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.js +4 -1
  100. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.js.map +1 -1
  101. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/StepConnector.js +1 -1
  102. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/StepConnector.js.map +1 -1
  103. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.js +1 -1
  104. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.js.map +1 -1
  105. package/dist/cjs/react/web/ui/ConnectWallet/screens/formatTokenBalance.js +11 -0
  106. package/dist/cjs/react/web/ui/ConnectWallet/screens/formatTokenBalance.js.map +1 -1
  107. package/dist/cjs/react/web/ui/PayEmbed.js +2 -1
  108. package/dist/cjs/react/web/ui/PayEmbed.js.map +1 -1
  109. package/dist/cjs/react/web/ui/TransactionButton/DepositScreen.js +6 -5
  110. package/dist/cjs/react/web/ui/TransactionButton/DepositScreen.js.map +1 -1
  111. package/dist/cjs/react/web/ui/TransactionButton/ExecutingScreen.js +43 -4
  112. package/dist/cjs/react/web/ui/TransactionButton/ExecutingScreen.js.map +1 -1
  113. package/dist/cjs/react/web/ui/TransactionButton/TransactionModal.js +8 -4
  114. package/dist/cjs/react/web/ui/TransactionButton/TransactionModal.js.map +1 -1
  115. package/dist/cjs/react/web/ui/components/ChainName.js +2 -1
  116. package/dist/cjs/react/web/ui/components/ChainName.js.map +1 -1
  117. package/dist/cjs/react/web/ui/components/TokenIcon.js +6 -3
  118. package/dist/cjs/react/web/ui/components/TokenIcon.js.map +1 -1
  119. package/dist/cjs/react/web/ui/components/buttons.js +1 -5
  120. package/dist/cjs/react/web/ui/components/buttons.js.map +1 -1
  121. package/dist/cjs/stories/Bridge/BridgeOrchestrator.stories.js +228 -0
  122. package/dist/cjs/stories/Bridge/BridgeOrchestrator.stories.js.map +1 -0
  123. package/dist/cjs/stories/Bridge/DirectPayment.stories.js +194 -0
  124. package/dist/cjs/stories/Bridge/DirectPayment.stories.js.map +1 -0
  125. package/dist/cjs/stories/Bridge/ErrorBanner.stories.js +153 -0
  126. package/dist/cjs/stories/Bridge/ErrorBanner.stories.js.map +1 -0
  127. package/dist/cjs/stories/Bridge/FundWallet.stories.js +173 -0
  128. package/dist/cjs/stories/Bridge/FundWallet.stories.js.map +1 -0
  129. package/dist/cjs/stories/Bridge/PaymentDetails.stories.js +430 -0
  130. package/dist/cjs/stories/Bridge/PaymentDetails.stories.js.map +1 -0
  131. package/dist/cjs/stories/Bridge/PaymentSelection.stories.js +151 -0
  132. package/dist/cjs/stories/Bridge/PaymentSelection.stories.js.map +1 -0
  133. package/dist/cjs/stories/Bridge/StepRunner.stories.js +82 -0
  134. package/dist/cjs/stories/Bridge/StepRunner.stories.js.map +1 -0
  135. package/dist/cjs/stories/Bridge/SuccessScreen.stories.js +180 -0
  136. package/dist/cjs/stories/Bridge/SuccessScreen.stories.js.map +1 -0
  137. package/dist/cjs/stories/Bridge/TransactionPayment.stories.js +139 -0
  138. package/dist/cjs/stories/Bridge/TransactionPayment.stories.js.map +1 -0
  139. package/dist/cjs/stories/Bridge/UnsupportedTokenScreen.stories.js +94 -0
  140. package/dist/cjs/stories/Bridge/UnsupportedTokenScreen.stories.js.map +1 -0
  141. package/dist/cjs/stories/Bridge/fixtures.js +731 -0
  142. package/dist/cjs/stories/Bridge/fixtures.js.map +1 -0
  143. package/dist/cjs/stories/TokenBalanceRow.stories.js +81 -0
  144. package/dist/cjs/stories/TokenBalanceRow.stories.js.map +1 -0
  145. package/dist/cjs/stories/WalletRow.stories.js +120 -0
  146. package/dist/cjs/stories/WalletRow.stories.js.map +1 -0
  147. package/dist/cjs/stories/utils.js +19 -1
  148. package/dist/cjs/stories/utils.js.map +1 -1
  149. package/dist/cjs/version.js +1 -1
  150. package/dist/cjs/version.js.map +1 -1
  151. package/dist/esm/bridge/Routes.js +4 -1
  152. package/dist/esm/bridge/Routes.js.map +1 -1
  153. package/dist/esm/bridge/Token.js +56 -0
  154. package/dist/esm/bridge/Token.js.map +1 -1
  155. package/dist/esm/bridge/types/Errors.js +9 -0
  156. package/dist/esm/bridge/types/Errors.js.map +1 -1
  157. package/dist/esm/exports/react.js +4 -0
  158. package/dist/esm/exports/react.js.map +1 -1
  159. package/dist/esm/pay/buyWithFiat/getQuote.js +2 -2
  160. package/dist/esm/pay/convert/cryptoToFiat.js +4 -4
  161. package/dist/esm/pay/convert/cryptoToFiat.js.map +1 -1
  162. package/dist/esm/pay/convert/fiatToCrypto.js +4 -4
  163. package/dist/esm/pay/convert/fiatToCrypto.js.map +1 -1
  164. package/dist/esm/pay/convert/get-token.js +15 -3
  165. package/dist/esm/pay/convert/get-token.js.map +1 -1
  166. package/dist/esm/pay/utils/commonTypes.js +1 -1
  167. package/dist/esm/react/core/adapters/WindowAdapter.js +2 -0
  168. package/dist/esm/react/core/adapters/WindowAdapter.js.map +1 -0
  169. package/dist/esm/react/core/errors/mapBridgeError.js +23 -0
  170. package/dist/esm/react/core/errors/mapBridgeError.js.map +1 -0
  171. package/dist/esm/react/core/hooks/others/useChainQuery.js +1 -1
  172. package/dist/esm/react/core/hooks/others/useChainQuery.js.map +1 -1
  173. package/dist/esm/react/core/hooks/pay/useBuyWithFiatQuotesForProviders.js +37 -0
  174. package/dist/esm/react/core/hooks/pay/useBuyWithFiatQuotesForProviders.js.map +1 -0
  175. package/dist/esm/react/core/hooks/useBridgeError.js +91 -0
  176. package/dist/esm/react/core/hooks/useBridgeError.js.map +1 -0
  177. package/dist/esm/react/core/hooks/useBridgePrepare.js +87 -0
  178. package/dist/esm/react/core/hooks/useBridgePrepare.js.map +1 -0
  179. package/dist/esm/react/core/hooks/useBridgeQuote.js +47 -0
  180. package/dist/esm/react/core/hooks/useBridgeQuote.js.map +1 -0
  181. package/dist/esm/react/core/hooks/useBridgeRoutes.js +58 -0
  182. package/dist/esm/react/core/hooks/useBridgeRoutes.js.map +1 -0
  183. package/dist/esm/react/core/hooks/usePaymentMethods.js +151 -0
  184. package/dist/esm/react/core/hooks/usePaymentMethods.js.map +1 -0
  185. package/dist/esm/react/core/hooks/useStepExecutor.js +405 -0
  186. package/dist/esm/react/core/hooks/useStepExecutor.js.map +1 -0
  187. package/dist/esm/react/core/hooks/useTransactionDetails.js +123 -0
  188. package/dist/esm/react/core/hooks/useTransactionDetails.js.map +1 -0
  189. package/dist/esm/react/core/machines/paymentMachine.js +186 -0
  190. package/dist/esm/react/core/machines/paymentMachine.js.map +1 -0
  191. package/dist/esm/react/web/adapters/WindowAdapter.js +21 -0
  192. package/dist/esm/react/web/adapters/WindowAdapter.js.map +1 -0
  193. package/dist/esm/react/web/hooks/transaction/useSendTransaction.js +5 -0
  194. package/dist/esm/react/web/hooks/transaction/useSendTransaction.js.map +1 -1
  195. package/dist/esm/react/web/ui/Bridge/BridgeOrchestrator.js +104 -0
  196. package/dist/esm/react/web/ui/Bridge/BridgeOrchestrator.js.map +1 -0
  197. package/dist/esm/react/web/ui/Bridge/BuyWidget.js +174 -0
  198. package/dist/esm/react/web/ui/Bridge/BuyWidget.js.map +1 -0
  199. package/dist/esm/react/web/ui/Bridge/CheckoutWidget.js +151 -0
  200. package/dist/esm/react/web/ui/Bridge/CheckoutWidget.js.map +1 -0
  201. package/dist/esm/react/web/ui/Bridge/DirectPayment.js +59 -0
  202. package/dist/esm/react/web/ui/Bridge/DirectPayment.js.map +1 -0
  203. package/dist/esm/react/web/ui/Bridge/ErrorBanner.js +23 -0
  204. package/dist/esm/react/web/ui/Bridge/ErrorBanner.js.map +1 -0
  205. package/dist/esm/react/web/ui/Bridge/FundWallet.js +119 -0
  206. package/dist/esm/react/web/ui/Bridge/FundWallet.js.map +1 -0
  207. package/dist/esm/react/web/ui/Bridge/QuoteLoader.js +96 -0
  208. package/dist/esm/react/web/ui/Bridge/QuoteLoader.js.map +1 -0
  209. package/dist/esm/react/web/ui/Bridge/StepRunner.js +176 -0
  210. package/dist/esm/react/web/ui/Bridge/StepRunner.js.map +1 -0
  211. package/dist/esm/react/web/ui/Bridge/TransactionPayment.js +114 -0
  212. package/dist/esm/react/web/ui/Bridge/TransactionPayment.js.map +1 -0
  213. package/dist/esm/react/web/ui/Bridge/TransactionWidget.js +176 -0
  214. package/dist/esm/react/web/ui/Bridge/TransactionWidget.js.map +1 -0
  215. package/dist/esm/react/web/ui/Bridge/UnsupportedTokenScreen.js +20 -0
  216. package/dist/esm/react/web/ui/Bridge/UnsupportedTokenScreen.js.map +1 -0
  217. package/dist/esm/react/web/ui/Bridge/common/TokenAndChain.js +96 -0
  218. package/dist/esm/react/web/ui/Bridge/common/TokenAndChain.js.map +1 -0
  219. package/dist/esm/react/web/ui/Bridge/common/TokenBalanceRow.js +54 -0
  220. package/dist/esm/react/web/ui/Bridge/common/TokenBalanceRow.js.map +1 -0
  221. package/dist/esm/react/web/ui/Bridge/common/WithHeader.js +24 -0
  222. package/dist/esm/react/web/ui/Bridge/common/WithHeader.js.map +1 -0
  223. package/dist/esm/react/web/ui/Bridge/payment-details/PaymentDetails.js +119 -0
  224. package/dist/esm/react/web/ui/Bridge/payment-details/PaymentDetails.js.map +1 -0
  225. package/dist/esm/react/web/ui/Bridge/payment-details/PaymentOverview.js +77 -0
  226. package/dist/esm/react/web/ui/Bridge/payment-details/PaymentOverview.js.map +1 -0
  227. package/dist/esm/react/web/ui/Bridge/payment-selection/FiatProviderSelection.js +80 -0
  228. package/dist/esm/react/web/ui/Bridge/payment-selection/FiatProviderSelection.js.map +1 -0
  229. package/dist/esm/react/web/ui/Bridge/payment-selection/PaymentSelection.js +108 -0
  230. package/dist/esm/react/web/ui/Bridge/payment-selection/PaymentSelection.js.map +1 -0
  231. package/dist/esm/react/web/ui/Bridge/payment-selection/TokenSelection.js +68 -0
  232. package/dist/esm/react/web/ui/Bridge/payment-selection/TokenSelection.js.map +1 -0
  233. package/dist/esm/react/web/ui/Bridge/payment-selection/WalletFiatSelection.js +51 -0
  234. package/dist/esm/react/web/ui/Bridge/payment-selection/WalletFiatSelection.js.map +1 -0
  235. package/dist/esm/react/web/ui/Bridge/payment-success/PaymentReceipt.js +137 -0
  236. package/dist/esm/react/web/ui/Bridge/payment-success/PaymentReceipt.js.map +1 -0
  237. package/dist/esm/react/web/ui/Bridge/payment-success/SuccessScreen.js +58 -0
  238. package/dist/esm/react/web/ui/Bridge/payment-success/SuccessScreen.js.map +1 -0
  239. package/dist/esm/react/web/ui/ConnectWallet/WalletSelector.js +2 -2
  240. package/dist/esm/react/web/ui/ConnectWallet/constants.js +1 -1
  241. package/dist/esm/react/web/ui/ConnectWallet/icons/CreditCardIcon.js +8 -0
  242. package/dist/esm/react/web/ui/ConnectWallet/icons/CreditCardIcon.js.map +1 -0
  243. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
  244. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.js +3 -1
  245. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.js.map +1 -1
  246. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.js +3 -0
  247. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.js.map +1 -1
  248. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js.map +1 -1
  249. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.js +4 -1
  250. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.js.map +1 -1
  251. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/StepConnector.js +1 -1
  252. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/StepConnector.js.map +1 -1
  253. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.js +1 -1
  254. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.js.map +1 -1
  255. package/dist/esm/react/web/ui/ConnectWallet/screens/formatTokenBalance.js +9 -0
  256. package/dist/esm/react/web/ui/ConnectWallet/screens/formatTokenBalance.js.map +1 -1
  257. package/dist/esm/react/web/ui/PayEmbed.js +2 -1
  258. package/dist/esm/react/web/ui/PayEmbed.js.map +1 -1
  259. package/dist/esm/react/web/ui/TransactionButton/DepositScreen.js +6 -5
  260. package/dist/esm/react/web/ui/TransactionButton/DepositScreen.js.map +1 -1
  261. package/dist/esm/react/web/ui/TransactionButton/ExecutingScreen.js +45 -6
  262. package/dist/esm/react/web/ui/TransactionButton/ExecutingScreen.js.map +1 -1
  263. package/dist/esm/react/web/ui/TransactionButton/TransactionModal.js +8 -4
  264. package/dist/esm/react/web/ui/TransactionButton/TransactionModal.js.map +1 -1
  265. package/dist/esm/react/web/ui/components/ChainName.js +2 -2
  266. package/dist/esm/react/web/ui/components/ChainName.js.map +1 -1
  267. package/dist/esm/react/web/ui/components/TokenIcon.js +7 -4
  268. package/dist/esm/react/web/ui/components/TokenIcon.js.map +1 -1
  269. package/dist/esm/react/web/ui/components/buttons.js +1 -5
  270. package/dist/esm/react/web/ui/components/buttons.js.map +1 -1
  271. package/dist/esm/stories/Bridge/BridgeOrchestrator.stories.js +226 -0
  272. package/dist/esm/stories/Bridge/BridgeOrchestrator.stories.js.map +1 -0
  273. package/dist/esm/stories/Bridge/DirectPayment.stories.js +191 -0
  274. package/dist/esm/stories/Bridge/DirectPayment.stories.js.map +1 -0
  275. package/dist/esm/stories/Bridge/ErrorBanner.stories.js +150 -0
  276. package/dist/esm/stories/Bridge/ErrorBanner.stories.js.map +1 -0
  277. package/dist/esm/stories/Bridge/FundWallet.stories.js +170 -0
  278. package/dist/esm/stories/Bridge/FundWallet.stories.js.map +1 -0
  279. package/dist/esm/stories/Bridge/PaymentDetails.stories.js +427 -0
  280. package/dist/esm/stories/Bridge/PaymentDetails.stories.js.map +1 -0
  281. package/dist/esm/stories/Bridge/PaymentSelection.stories.js +148 -0
  282. package/dist/esm/stories/Bridge/PaymentSelection.stories.js.map +1 -0
  283. package/dist/esm/stories/Bridge/StepRunner.stories.js +79 -0
  284. package/dist/esm/stories/Bridge/StepRunner.stories.js.map +1 -0
  285. package/dist/esm/stories/Bridge/SuccessScreen.stories.js +177 -0
  286. package/dist/esm/stories/Bridge/SuccessScreen.stories.js.map +1 -0
  287. package/dist/esm/stories/Bridge/TransactionPayment.stories.js +136 -0
  288. package/dist/esm/stories/Bridge/TransactionPayment.stories.js.map +1 -0
  289. package/dist/esm/stories/Bridge/UnsupportedTokenScreen.stories.js +91 -0
  290. package/dist/esm/stories/Bridge/UnsupportedTokenScreen.stories.js.map +1 -0
  291. package/dist/esm/stories/Bridge/fixtures.js +728 -0
  292. package/dist/esm/stories/Bridge/fixtures.js.map +1 -0
  293. package/dist/esm/stories/TokenBalanceRow.stories.js +78 -0
  294. package/dist/esm/stories/TokenBalanceRow.stories.js.map +1 -0
  295. package/dist/esm/stories/WalletRow.stories.js +117 -0
  296. package/dist/esm/stories/WalletRow.stories.js.map +1 -0
  297. package/dist/esm/stories/utils.js +17 -0
  298. package/dist/esm/stories/utils.js.map +1 -1
  299. package/dist/esm/version.js +1 -1
  300. package/dist/esm/version.js.map +1 -1
  301. package/dist/types/bridge/Routes.d.ts +1 -0
  302. package/dist/types/bridge/Routes.d.ts.map +1 -1
  303. package/dist/types/bridge/Token.d.ts +48 -1
  304. package/dist/types/bridge/Token.d.ts.map +1 -1
  305. package/dist/types/bridge/types/BridgeAction.d.ts +1 -1
  306. package/dist/types/bridge/types/BridgeAction.d.ts.map +1 -1
  307. package/dist/types/bridge/types/Errors.d.ts +1 -0
  308. package/dist/types/bridge/types/Errors.d.ts.map +1 -1
  309. package/dist/types/exports/react.d.ts +4 -0
  310. package/dist/types/exports/react.d.ts.map +1 -1
  311. package/dist/types/pay/convert/get-token.d.ts +2 -1
  312. package/dist/types/pay/convert/get-token.d.ts.map +1 -1
  313. package/dist/types/pay/utils/commonTypes.d.ts +1 -1
  314. package/dist/types/react/core/adapters/WindowAdapter.d.ts +14 -0
  315. package/dist/types/react/core/adapters/WindowAdapter.d.ts.map +1 -0
  316. package/dist/types/react/core/errors/mapBridgeError.d.ts +17 -0
  317. package/dist/types/react/core/errors/mapBridgeError.d.ts.map +1 -0
  318. package/dist/types/react/core/hooks/connection/ConnectButtonProps.d.ts +14 -6
  319. package/dist/types/react/core/hooks/connection/ConnectButtonProps.d.ts.map +1 -1
  320. package/dist/types/react/core/hooks/pay/useBuyWithFiatQuotesForProviders.d.ts +54 -0
  321. package/dist/types/react/core/hooks/pay/useBuyWithFiatQuotesForProviders.d.ts.map +1 -0
  322. package/dist/types/react/core/hooks/transaction/useSendTransaction.d.ts +1 -1
  323. package/dist/types/react/core/hooks/transaction/useSendTransaction.d.ts.map +1 -1
  324. package/dist/types/react/core/hooks/useBridgeError.d.ts +72 -0
  325. package/dist/types/react/core/hooks/useBridgeError.d.ts.map +1 -0
  326. package/dist/types/react/core/hooks/useBridgePrepare.d.ts +75 -0
  327. package/dist/types/react/core/hooks/useBridgePrepare.d.ts.map +1 -0
  328. package/dist/types/react/core/hooks/useBridgeQuote.d.ts +14 -0
  329. package/dist/types/react/core/hooks/useBridgeQuote.d.ts.map +1 -0
  330. package/dist/types/react/core/hooks/useBridgeRoutes.d.ts +30 -0
  331. package/dist/types/react/core/hooks/useBridgeRoutes.d.ts.map +1 -0
  332. package/dist/types/react/core/hooks/usePaymentMethods.d.ts +36 -0
  333. package/dist/types/react/core/hooks/usePaymentMethods.d.ts.map +1 -0
  334. package/dist/types/react/core/hooks/useStepExecutor.d.ts +67 -0
  335. package/dist/types/react/core/hooks/useStepExecutor.d.ts.map +1 -0
  336. package/dist/types/react/core/hooks/useTransactionDetails.d.ts +31 -0
  337. package/dist/types/react/core/hooks/useTransactionDetails.d.ts.map +1 -0
  338. package/dist/types/react/core/machines/paymentMachine.d.ts +86 -0
  339. package/dist/types/react/core/machines/paymentMachine.d.ts.map +1 -0
  340. package/dist/types/react/web/adapters/WindowAdapter.d.ts +19 -0
  341. package/dist/types/react/web/adapters/WindowAdapter.d.ts.map +1 -0
  342. package/dist/types/react/web/hooks/transaction/useSendTransaction.d.ts +5 -0
  343. package/dist/types/react/web/hooks/transaction/useSendTransaction.d.ts.map +1 -1
  344. package/dist/types/react/web/ui/Bridge/BridgeOrchestrator.d.ts +78 -0
  345. package/dist/types/react/web/ui/Bridge/BridgeOrchestrator.d.ts.map +1 -0
  346. package/dist/types/react/web/ui/Bridge/BuyWidget.d.ts +325 -0
  347. package/dist/types/react/web/ui/Bridge/BuyWidget.d.ts.map +1 -0
  348. package/dist/types/react/web/ui/Bridge/CheckoutWidget.d.ts +328 -0
  349. package/dist/types/react/web/ui/Bridge/CheckoutWidget.d.ts.map +1 -0
  350. package/dist/types/react/web/ui/Bridge/DirectPayment.d.ts +27 -0
  351. package/dist/types/react/web/ui/Bridge/DirectPayment.d.ts.map +1 -0
  352. package/dist/types/react/web/ui/Bridge/ErrorBanner.d.ts +17 -0
  353. package/dist/types/react/web/ui/Bridge/ErrorBanner.d.ts.map +1 -0
  354. package/dist/types/react/web/ui/Bridge/FundWallet.d.ts +35 -0
  355. package/dist/types/react/web/ui/Bridge/FundWallet.d.ts.map +1 -0
  356. package/dist/types/react/web/ui/Bridge/QuoteLoader.d.ts +57 -0
  357. package/dist/types/react/web/ui/Bridge/QuoteLoader.d.ts.map +1 -0
  358. package/dist/types/react/web/ui/Bridge/StepRunner.d.ts +39 -0
  359. package/dist/types/react/web/ui/Bridge/StepRunner.d.ts.map +1 -0
  360. package/dist/types/react/web/ui/Bridge/TransactionPayment.d.ts +27 -0
  361. package/dist/types/react/web/ui/Bridge/TransactionPayment.d.ts.map +1 -0
  362. package/dist/types/react/web/ui/Bridge/TransactionWidget.d.ts +355 -0
  363. package/dist/types/react/web/ui/Bridge/TransactionWidget.d.ts.map +1 -0
  364. package/dist/types/react/web/ui/Bridge/UnsupportedTokenScreen.d.ts +13 -0
  365. package/dist/types/react/web/ui/Bridge/UnsupportedTokenScreen.d.ts.map +1 -0
  366. package/dist/types/react/web/ui/Bridge/common/TokenAndChain.d.ts +16 -0
  367. package/dist/types/react/web/ui/Bridge/common/TokenAndChain.d.ts.map +1 -0
  368. package/dist/types/react/web/ui/Bridge/common/TokenBalanceRow.d.ts +10 -0
  369. package/dist/types/react/web/ui/Bridge/common/TokenBalanceRow.d.ts.map +1 -0
  370. package/dist/types/react/web/ui/Bridge/common/WithHeader.d.ts +9 -0
  371. package/dist/types/react/web/ui/Bridge/common/WithHeader.d.ts.map +1 -0
  372. package/dist/types/react/web/ui/Bridge/payment-details/PaymentDetails.d.ts +36 -0
  373. package/dist/types/react/web/ui/Bridge/payment-details/PaymentDetails.d.ts.map +1 -0
  374. package/dist/types/react/web/ui/Bridge/payment-details/PaymentOverview.d.ts +15 -0
  375. package/dist/types/react/web/ui/Bridge/payment-details/PaymentOverview.d.ts.map +1 -0
  376. package/dist/types/react/web/ui/Bridge/payment-selection/FiatProviderSelection.d.ts +12 -0
  377. package/dist/types/react/web/ui/Bridge/payment-selection/FiatProviderSelection.d.ts.map +1 -0
  378. package/dist/types/react/web/ui/Bridge/payment-selection/PaymentSelection.d.ts +50 -0
  379. package/dist/types/react/web/ui/Bridge/payment-selection/PaymentSelection.d.ts.map +1 -0
  380. package/dist/types/react/web/ui/Bridge/payment-selection/TokenSelection.d.ts +15 -0
  381. package/dist/types/react/web/ui/Bridge/payment-selection/TokenSelection.d.ts.map +1 -0
  382. package/dist/types/react/web/ui/Bridge/payment-selection/WalletFiatSelection.d.ts +12 -0
  383. package/dist/types/react/web/ui/Bridge/payment-selection/WalletFiatSelection.d.ts.map +1 -0
  384. package/dist/types/react/web/ui/Bridge/payment-success/PaymentReceipt.d.ts +24 -0
  385. package/dist/types/react/web/ui/Bridge/payment-success/PaymentReceipt.d.ts.map +1 -0
  386. package/dist/types/react/web/ui/Bridge/payment-success/SuccessScreen.d.ts +28 -0
  387. package/dist/types/react/web/ui/Bridge/payment-success/SuccessScreen.d.ts.map +1 -0
  388. package/dist/types/react/web/ui/ConnectWallet/constants.d.ts +1 -1
  389. package/dist/types/react/web/ui/ConnectWallet/icons/CreditCardIcon.d.ts +6 -0
  390. package/dist/types/react/web/ui/ConnectWallet/icons/CreditCardIcon.d.ts.map +1 -0
  391. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.d.ts.map +1 -1
  392. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.d.ts.map +1 -1
  393. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.d.ts +4 -0
  394. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.d.ts.map +1 -1
  395. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.d.ts +4 -1
  396. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.d.ts.map +1 -1
  397. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.d.ts.map +1 -1
  398. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/StepConnector.d.ts.map +1 -1
  399. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.d.ts.map +1 -1
  400. package/dist/types/react/web/ui/ConnectWallet/screens/formatTokenBalance.d.ts +2 -0
  401. package/dist/types/react/web/ui/ConnectWallet/screens/formatTokenBalance.d.ts.map +1 -1
  402. package/dist/types/react/web/ui/PayEmbed.d.ts.map +1 -1
  403. package/dist/types/react/web/ui/TransactionButton/DepositScreen.d.ts.map +1 -1
  404. package/dist/types/react/web/ui/TransactionButton/ExecutingScreen.d.ts +2 -0
  405. package/dist/types/react/web/ui/TransactionButton/ExecutingScreen.d.ts.map +1 -1
  406. package/dist/types/react/web/ui/TransactionButton/TransactionModal.d.ts.map +1 -1
  407. package/dist/types/react/web/ui/components/ChainName.d.ts +3 -0
  408. package/dist/types/react/web/ui/components/ChainName.d.ts.map +1 -1
  409. package/dist/types/react/web/ui/components/TokenIcon.d.ts.map +1 -1
  410. package/dist/types/react/web/ui/components/buttons.d.ts.map +1 -1
  411. package/dist/types/stories/Bridge/BridgeOrchestrator.stories.d.ts +90 -0
  412. package/dist/types/stories/Bridge/BridgeOrchestrator.stories.d.ts.map +1 -0
  413. package/dist/types/stories/Bridge/DirectPayment.stories.d.ts +65 -0
  414. package/dist/types/stories/Bridge/DirectPayment.stories.d.ts.map +1 -0
  415. package/dist/types/stories/Bridge/ErrorBanner.stories.d.ts +55 -0
  416. package/dist/types/stories/Bridge/ErrorBanner.stories.d.ts.map +1 -0
  417. package/dist/types/stories/Bridge/FundWallet.stories.d.ts +63 -0
  418. package/dist/types/stories/Bridge/FundWallet.stories.d.ts.map +1 -0
  419. package/dist/types/stories/Bridge/PaymentDetails.stories.d.ts +70 -0
  420. package/dist/types/stories/Bridge/PaymentDetails.stories.d.ts.map +1 -0
  421. package/dist/types/stories/Bridge/PaymentSelection.stories.d.ts +65 -0
  422. package/dist/types/stories/Bridge/PaymentSelection.stories.d.ts.map +1 -0
  423. package/dist/types/stories/Bridge/StepRunner.stories.d.ts +61 -0
  424. package/dist/types/stories/Bridge/StepRunner.stories.d.ts.map +1 -0
  425. package/dist/types/stories/Bridge/SuccessScreen.stories.d.ts +58 -0
  426. package/dist/types/stories/Bridge/SuccessScreen.stories.d.ts.map +1 -0
  427. package/dist/types/stories/Bridge/TransactionPayment.stories.d.ts +55 -0
  428. package/dist/types/stories/Bridge/TransactionPayment.stories.d.ts.map +1 -0
  429. package/dist/types/stories/Bridge/UnsupportedTokenScreen.stories.d.ts +39 -0
  430. package/dist/types/stories/Bridge/UnsupportedTokenScreen.stories.d.ts.map +1 -0
  431. package/dist/types/stories/Bridge/fixtures.d.ts +37 -0
  432. package/dist/types/stories/Bridge/fixtures.d.ts.map +1 -0
  433. package/dist/types/stories/TokenBalanceRow.stories.d.ts +53 -0
  434. package/dist/types/stories/TokenBalanceRow.stories.d.ts.map +1 -0
  435. package/dist/types/stories/WalletRow.stories.d.ts +63 -0
  436. package/dist/types/stories/WalletRow.stories.d.ts.map +1 -0
  437. package/dist/types/stories/utils.d.ts +5 -0
  438. package/dist/types/stories/utils.d.ts.map +1 -1
  439. package/dist/types/version.d.ts +1 -1
  440. package/dist/types/version.d.ts.map +1 -1
  441. package/package.json +2 -1
  442. package/src/bridge/Routes.ts +5 -0
  443. package/src/bridge/Token.ts +82 -1
  444. package/src/bridge/types/BridgeAction.ts +1 -1
  445. package/src/bridge/types/Errors.ts +11 -0
  446. package/src/exports/react.ts +16 -0
  447. package/src/pay/buyWithFiat/getQuote.ts +2 -2
  448. package/src/pay/convert/cryptoToFiat.ts +4 -4
  449. package/src/pay/convert/fiatToCrypto.ts +4 -4
  450. package/src/pay/convert/get-token.ts +17 -4
  451. package/src/pay/utils/commonTypes.ts +1 -1
  452. package/src/react/components.md +134 -0
  453. package/src/react/core/adapters/.keep +2 -0
  454. package/src/react/core/adapters/WindowAdapter.ts +13 -0
  455. package/src/react/core/errors/.keep +2 -0
  456. package/src/react/core/errors/mapBridgeError.test.ts +98 -0
  457. package/src/react/core/errors/mapBridgeError.ts +25 -0
  458. package/src/react/core/hooks/connection/ConnectButtonProps.ts +42 -37
  459. package/src/react/core/hooks/others/useChainQuery.ts +1 -1
  460. package/src/react/core/hooks/pay/useBuyWithFiatQuotesForProviders.ts +100 -0
  461. package/src/react/core/hooks/transaction/useSendTransaction.ts +1 -1
  462. package/src/react/core/hooks/useBridgeError.test.ts +172 -0
  463. package/src/react/core/hooks/useBridgeError.ts +149 -0
  464. package/src/react/core/hooks/useBridgePrepare.test.ts +161 -0
  465. package/src/react/core/hooks/useBridgePrepare.ts +133 -0
  466. package/src/react/core/hooks/useBridgeQuote.ts +67 -0
  467. package/src/react/core/hooks/useBridgeRoutes.test.ts +137 -0
  468. package/src/react/core/hooks/useBridgeRoutes.ts +75 -0
  469. package/src/react/core/hooks/usePaymentMethods.test.ts +336 -0
  470. package/src/react/core/hooks/usePaymentMethods.ts +203 -0
  471. package/src/react/core/hooks/useStepExecutor.ts +606 -0
  472. package/src/react/core/hooks/useTransactionDetails.ts +177 -0
  473. package/src/react/core/hooks/wallets/useAutoConnectCore.test.tsx +1 -57
  474. package/src/react/core/machines/.keep +2 -0
  475. package/src/react/core/machines/paymentMachine.test.ts +691 -0
  476. package/src/react/core/machines/paymentMachine.ts +290 -0
  477. package/src/react/core/types/.keep +2 -0
  478. package/src/react/core/utils/wallet.test.ts +77 -0
  479. package/src/react/native/flows/.keep +2 -0
  480. package/src/react/web/adapters/WindowAdapter.ts +23 -0
  481. package/src/react/web/adapters/adapters.test.ts +38 -0
  482. package/src/react/web/flows/.keep +2 -0
  483. package/src/react/web/hooks/transaction/useSendTransaction.tsx +5 -0
  484. package/src/react/web/ui/Bridge/BridgeOrchestrator.tsx +357 -0
  485. package/src/react/web/ui/Bridge/BuyWidget.tsx +494 -0
  486. package/src/react/web/ui/Bridge/CheckoutWidget.tsx +484 -0
  487. package/src/react/web/ui/Bridge/DirectPayment.tsx +234 -0
  488. package/src/react/web/ui/Bridge/ErrorBanner.tsx +86 -0
  489. package/src/react/web/ui/Bridge/FundWallet.tsx +341 -0
  490. package/src/react/web/ui/Bridge/QuoteLoader.tsx +219 -0
  491. package/src/react/web/ui/Bridge/StepRunner.tsx +417 -0
  492. package/src/react/web/ui/Bridge/TransactionPayment.tsx +403 -0
  493. package/src/react/web/ui/Bridge/TransactionWidget.tsx +502 -0
  494. package/src/react/web/ui/Bridge/UnsupportedTokenScreen.tsx +84 -0
  495. package/src/react/web/ui/Bridge/common/TokenAndChain.tsx +203 -0
  496. package/src/react/web/ui/Bridge/common/TokenBalanceRow.tsx +112 -0
  497. package/src/react/web/ui/Bridge/common/WithHeader.tsx +65 -0
  498. package/src/react/web/ui/Bridge/payment-details/PaymentDetails.tsx +318 -0
  499. package/src/react/web/ui/Bridge/payment-details/PaymentOverview.tsx +301 -0
  500. package/src/react/web/ui/Bridge/payment-selection/FiatProviderSelection.tsx +186 -0
  501. package/src/react/web/ui/Bridge/payment-selection/PaymentSelection.tsx +268 -0
  502. package/src/react/web/ui/Bridge/payment-selection/TokenSelection.tsx +282 -0
  503. package/src/react/web/ui/Bridge/payment-selection/WalletFiatSelection.tsx +172 -0
  504. package/src/react/web/ui/Bridge/payment-success/PaymentReceipt.tsx +392 -0
  505. package/src/react/web/ui/Bridge/payment-success/SuccessScreen.tsx +155 -0
  506. package/src/react/web/ui/ConnectWallet/Details.test.tsx +2 -2
  507. package/src/react/web/ui/ConnectWallet/WalletSelector.tsx +2 -2
  508. package/src/react/web/ui/ConnectWallet/constants.ts +1 -1
  509. package/src/react/web/ui/ConnectWallet/icons/CreditCardIcon.tsx +24 -0
  510. package/src/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.tsx +5 -2
  511. package/src/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.tsx +3 -1
  512. package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/currencies.tsx +8 -0
  513. package/src/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.ts +3 -2
  514. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/FiatValue.tsx +7 -1
  515. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/StepConnector.tsx +1 -0
  516. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.tsx +7 -3
  517. package/src/react/web/ui/ConnectWallet/screens/formatTokenBalance.ts +22 -0
  518. package/src/react/web/ui/PayEmbed.tsx +2 -0
  519. package/src/react/web/ui/TransactionButton/DepositScreen.tsx +10 -5
  520. package/src/react/web/ui/TransactionButton/ExecutingScreen.tsx +78 -25
  521. package/src/react/web/ui/TransactionButton/TransactionModal.tsx +15 -9
  522. package/src/react/web/ui/components/ChainName.tsx +4 -2
  523. package/src/react/web/ui/components/TokenIcon.tsx +7 -4
  524. package/src/react/web/ui/components/buttons.tsx +1 -5
  525. package/src/stories/Bridge/BridgeOrchestrator.stories.tsx +267 -0
  526. package/src/stories/Bridge/DirectPayment.stories.tsx +225 -0
  527. package/src/stories/Bridge/ErrorBanner.stories.tsx +184 -0
  528. package/src/stories/Bridge/FundWallet.stories.tsx +196 -0
  529. package/src/stories/Bridge/PaymentDetails.stories.tsx +501 -0
  530. package/src/stories/Bridge/PaymentSelection.stories.tsx +177 -0
  531. package/src/stories/Bridge/StepRunner.stories.tsx +109 -0
  532. package/src/stories/Bridge/SuccessScreen.stories.tsx +217 -0
  533. package/src/stories/Bridge/TransactionPayment.stories.tsx +170 -0
  534. package/src/stories/Bridge/UnsupportedTokenScreen.stories.tsx +119 -0
  535. package/src/stories/Bridge/fixtures.ts +802 -0
  536. package/src/stories/TokenBalanceRow.stories.tsx +169 -0
  537. package/src/stories/WalletRow.stories.tsx +166 -0
  538. package/src/stories/utils.tsx +35 -0
  539. package/src/version.ts +1 -1
  540. package/src/wallets/connection/autoConnectCore.test.ts +0 -53
@@ -130,6 +130,22 @@ export type { AutoConnectProps } from "../wallets/connection/types.js";
130
130
  // auth
131
131
  export type { SiweAuthOptions } from "../react/core/hooks/auth/useSiweAuth.js";
132
132
 
133
+ export {
134
+ BuyWidget,
135
+ type BuyWidgetProps,
136
+ } from "../react/web/ui/Bridge/BuyWidget.js";
137
+ export {
138
+ CheckoutWidget,
139
+ type CheckoutWidgetProps,
140
+ } from "../react/web/ui/Bridge/CheckoutWidget.js";
141
+ export {
142
+ TransactionWidget,
143
+ type TransactionWidgetProps,
144
+ } from "../react/web/ui/Bridge/TransactionWidget.js";
145
+ export {
146
+ useBridgeRoutes,
147
+ type UseBridgeRoutesParams,
148
+ } from "../react/core/hooks/useBridgeRoutes.js";
133
149
  export {
134
150
  PayEmbed,
135
151
  type PayEmbedProps,
@@ -291,9 +291,9 @@ export async function getBuyWithFiatQuote(
291
291
  provider?: FiatProvider,
292
292
  ): "stripe" | "coinbase" | "transak" => {
293
293
  switch (provider) {
294
- case "STRIPE":
294
+ case "stripe":
295
295
  return "stripe";
296
- case "TRANSAK":
296
+ case "transak":
297
297
  return "transak";
298
298
  default: // default to coinbase when undefined or any other value
299
299
  return "coinbase";
@@ -2,7 +2,7 @@ import type { Address } from "abitype";
2
2
  import type { Chain } from "../../chains/types.js";
3
3
  import type { ThirdwebClient } from "../../client/client.js";
4
4
  import { isAddress } from "../../utils/address.js";
5
- import { getTokenPrice } from "./get-token.js";
5
+ import { getToken } from "./get-token.js";
6
6
  import type { SupportedFiatCurrency } from "./type.js";
7
7
 
8
8
  /**
@@ -73,11 +73,11 @@ export async function convertCryptoToFiat(
73
73
  "Invalid fromTokenAddress. Expected a valid EVM contract address",
74
74
  );
75
75
  }
76
- const price = await getTokenPrice(client, fromTokenAddress, chain.id);
77
- if (!price) {
76
+ const token = await getToken(client, fromTokenAddress, chain.id);
77
+ if (token.priceUsd === 0) {
78
78
  throw new Error(
79
79
  `Error: Failed to fetch price for token ${fromTokenAddress} on chainId: ${chain.id}`,
80
80
  );
81
81
  }
82
- return { result: price * fromAmount };
82
+ return { result: token.priceUsd * fromAmount };
83
83
  }
@@ -2,7 +2,7 @@ import type { Address } from "abitype";
2
2
  import type { Chain } from "../../chains/types.js";
3
3
  import type { ThirdwebClient } from "../../client/client.js";
4
4
  import { isAddress } from "../../utils/address.js";
5
- import { getTokenPrice } from "./get-token.js";
5
+ import { getToken } from "./get-token.js";
6
6
  import type { SupportedFiatCurrency } from "./type.js";
7
7
 
8
8
  /**
@@ -72,11 +72,11 @@ export async function convertFiatToCrypto(
72
72
  if (!isAddress(to)) {
73
73
  throw new Error("Invalid `to`. Expected a valid EVM contract address");
74
74
  }
75
- const price = await getTokenPrice(client, to, chain.id);
76
- if (!price || price === 0) {
75
+ const token = await getToken(client, to, chain.id);
76
+ if (!token || token.priceUsd === 0) {
77
77
  throw new Error(
78
78
  `Error: Failed to fetch price for token ${to} on chainId: ${chain.id}`,
79
79
  );
80
80
  }
81
- return { result: fromAmount / price };
81
+ return { result: fromAmount / token.priceUsd };
82
82
  }
@@ -1,12 +1,13 @@
1
- import { tokens } from "../../bridge/Token.js";
1
+ import { add, tokens } from "../../bridge/Token.js";
2
+ import type { Token } from "../../bridge/types/Token.js";
2
3
  import type { ThirdwebClient } from "../../client/client.js";
3
4
  import { withCache } from "../../utils/promise/withCache.js";
4
5
 
5
- export async function getTokenPrice(
6
+ export async function getToken(
6
7
  client: ThirdwebClient,
7
8
  tokenAddress: string,
8
9
  chainId: number,
9
- ) {
10
+ ): Promise<Token> {
10
11
  return withCache(
11
12
  async () => {
12
13
  const result = await tokens({
@@ -14,7 +15,19 @@ export async function getTokenPrice(
14
15
  tokenAddress,
15
16
  chainId,
16
17
  });
17
- return result[0]?.priceUsd;
18
+ const token = result[0];
19
+ if (!token) {
20
+ // Attempt to add the token
21
+ const tokenResult = await add({
22
+ client,
23
+ chainId,
24
+ tokenAddress,
25
+ }).catch(() => {
26
+ throw new Error("Token not supported");
27
+ });
28
+ return tokenResult;
29
+ }
30
+ return token;
18
31
  },
19
32
  {
20
33
  cacheKey: `get-token-price-${tokenAddress}-${chainId}`,
@@ -19,4 +19,4 @@ export type PayOnChainTransactionDetails = {
19
19
 
20
20
  export type FiatProvider = (typeof FiatProviders)[number];
21
21
 
22
- export const FiatProviders = ["COINBASE", "STRIPE", "TRANSAK"] as const;
22
+ export const FiatProviders = ["coinbase", "stripe", "transak"] as const;
@@ -0,0 +1,134 @@
1
+ # Web UI Components Catalog
2
+
3
+ This document catalogs the UI components found within `packages/thirdweb/src/react/web/ui`.
4
+
5
+ ## Core Components (`packages/thirdweb/src/react/web/ui/components`)
6
+
7
+ | Component | Occurrences |
8
+ | ------------------- | ----------- |
9
+ | Container | 100+ |
10
+ | Text | 93 |
11
+ | Spacer | 85 |
12
+ | Button | 58 |
13
+ | Skeleton | 40 |
14
+ | ModalHeader | 40 |
15
+ | Spinner | 31 |
16
+ | Img | 31 |
17
+ | Line | 28 |
18
+ | ChainIcon | 19 |
19
+ | TokenIcon | 16 |
20
+ | Input | 11 |
21
+ | SwitchNetworkButton | 10 |
22
+ | WalletImage | 11 |
23
+ | ToolTip | 6 |
24
+ | Drawer | 5 |
25
+ | QRCode | 5 |
26
+ | CopyIcon | 4 |
27
+ | ChainActiveDot | 3 |
28
+ | Label | 3 |
29
+ | ModalTitle | 3 |
30
+ | TextDivider | 3 |
31
+ | DynamicHeight | 3 |
32
+ | StepBar | 2 |
33
+ | IconContainer | 2 |
34
+ | OTPInput | 2 |
35
+ | ChainName | 1 |
36
+ | BackButton | 1 |
37
+ | IconButton | 1 |
38
+ | ButtonLink | 1 |
39
+ | Overlay | 1 |
40
+ | Tabs | 1 |
41
+ | FadeIn | 0 |
42
+ | InputContainer | 0 |
43
+
44
+ ## Prebuilt Components (`packages/thirdweb/src/react/web/ui/prebuilt`)
45
+
46
+ ### NFT
47
+
48
+ | Component | Occurrences (internal) |
49
+ | -------------- | ---------------------- |
50
+ | NFTName | 0 |
51
+ | NFTMedia | 0 |
52
+ | NFTDescription | 0 |
53
+ | NFTProvider | 0 |
54
+
55
+ ### Account
56
+
57
+ | Component | Occurrences (internal) |
58
+ | -------------- | ---------------------- |
59
+ | AccountBalance | 6 |
60
+ | AccountAvatar | 2 |
61
+ | AccountBlobbie | 4 |
62
+ | AccountName | 2 |
63
+ | AccountAddress | 4 |
64
+
65
+ ### Chain
66
+
67
+ | Component | Occurrences (internal) |
68
+ | ------------- | ---------------------- |
69
+ | ChainName | 5 |
70
+ | ChainIcon | 7 |
71
+ | ChainProvider | 2 |
72
+
73
+ ### Token
74
+
75
+ | Component | Occurrences (internal) |
76
+ | ------------- | ---------------------- |
77
+ | TokenName | 0 |
78
+ | TokenSymbol | 12 |
79
+ | TokenIcon | 7 |
80
+ | TokenProvider | 0 |
81
+
82
+ ### Wallet
83
+
84
+ | Component | Occurrences (internal) |
85
+ | ---------- | ---------------------- |
86
+ | WalletName | 0 |
87
+ | WalletIcon | 0 |
88
+
89
+ ### Thirdweb
90
+
91
+ | Component | Occurrences (internal) |
92
+ | ------------------------- | ---------------------- |
93
+ | ClaimButton | 0 |
94
+ | BuyDirectListingButton | 0 |
95
+ | CreateDirectListingButton | 0 |
96
+
97
+ ## Re-used Components (`packages/thirdweb/src/react/web/ui`)
98
+
99
+ ### Non-Core/Non-Prebuilt Components (ConnectWallet folder analysis)
100
+
101
+ | Component | Occurrences | Source/Type |
102
+ | ------------------------------ | ----------- | ---------------------------- |
103
+ | LoadingScreen | 19 | Wallets shared component |
104
+ | Suspense | 8 | React built-in |
105
+ | WalletRow | 8 | Buy/swap utility component |
106
+ | PoweredByThirdweb | 6 | Custom branding component |
107
+ | Modal | 5 | Core UI component |
108
+ | WalletUIStatesProvider | 4 | Wallet state management |
109
+ | NetworkSelectorContent | 4 | Network selection component |
110
+ | PayTokenIcon | 3 | Buy screen utility component |
111
+ | FiatValue | 3 | Buy/swap utility component |
112
+ | TOS | 3 | Terms of service component |
113
+ | ErrorState | 3 | Error handling component |
114
+ | AnimatedButton | 3 | Animation component |
115
+ | ConnectModalContent | 3 | Modal content layout |
116
+ | AnyWalletConnectUI | 2 | Wallet connection screen |
117
+ | SmartConnectUI | 2 | Smart wallet connection UI |
118
+ | WalletEntryButton | 2 | Wallet selection button |
119
+ | TokenSelector | 2 | Token selection component |
120
+ | SignatureScreen | 2 | Wallet signature screen |
121
+ | WalletSwitcherConnectionScreen | 2 | Wallet switching UI |
122
+ | ErrorText | 2 | Error display component |
123
+ | SwapSummary | 2 | Swap transaction summary |
124
+ | EstimatedTimeAndFees | 2 | Transaction info component |
125
+
126
+ ### Other Re-used Components
127
+
128
+ | Component | Occurrences |
129
+ | --------- | ----------- |
130
+ | PayEmbed | 1 |
131
+ | SiteEmbed | 0 |
132
+ | SiteLink | 0 |
133
+
134
+ **Note:** Occurrences are based on direct import and usage (e.g., `<ComponentName`). This count excludes test files and documentation examples, counting only internal usage within the src/react/web folder. The analysis focuses on commonly used components that are NOT from the core components or prebuilt folders, revealing key reusable components for state management, error handling, animations, and branding.
@@ -0,0 +1,2 @@
1
+ # Placeholder file to maintain directory structure
2
+ # This directory will contain dependency inversion interfaces and default implementations
@@ -0,0 +1,13 @@
1
+ /**
2
+ * WindowAdapter interface for platform-specific window/URL opening functionality.
3
+ * This allows dependency inversion so core logic doesn't directly depend on platform APIs.
4
+ */
5
+ export interface WindowAdapter {
6
+ /**
7
+ * Opens a URL in a new window/tab or appropriate platform mechanism.
8
+ *
9
+ * @param url - The URL to open
10
+ * @returns Promise that resolves when the operation is initiated
11
+ */
12
+ open(url: string, title?: string, options?: string): Promise<void>;
13
+ }
@@ -0,0 +1,2 @@
1
+ # Placeholder file to maintain directory structure
2
+ # This directory will contain error mapping and normalization utilities
@@ -0,0 +1,98 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { ApiError } from "../../../bridge/types/Errors.js";
3
+ import { isRetryable, mapBridgeError } from "./mapBridgeError.js";
4
+
5
+ describe("mapBridgeError", () => {
6
+ it("should return the same error for INVALID_INPUT", () => {
7
+ const error = new ApiError({
8
+ code: "INVALID_INPUT",
9
+ message: "Invalid input provided",
10
+ statusCode: 400,
11
+ correlationId: "test-correlation-id",
12
+ });
13
+
14
+ const result = mapBridgeError(error);
15
+
16
+ expect(result).toBe(error);
17
+ expect(result.code).toBe("INVALID_INPUT");
18
+ expect(result.message).toBe("Invalid input provided");
19
+ expect(result.statusCode).toBe(400);
20
+ expect(result.correlationId).toBe("test-correlation-id");
21
+ });
22
+
23
+ it("should return the same error for INTERNAL_SERVER_ERROR", () => {
24
+ const error = new ApiError({
25
+ code: "INTERNAL_SERVER_ERROR",
26
+ message: "Internal server error occurred",
27
+ statusCode: 500,
28
+ correlationId: "internal-error-id",
29
+ });
30
+
31
+ const result = mapBridgeError(error);
32
+
33
+ expect(result).toBe(error);
34
+ expect(result.code).toBe("INTERNAL_SERVER_ERROR");
35
+ expect(result.message).toBe("Internal server error occurred");
36
+ expect(result.statusCode).toBe(500);
37
+ expect(result.correlationId).toBe("internal-error-id");
38
+ });
39
+
40
+ it("should return the same error for ROUTE_NOT_FOUND", () => {
41
+ const error = new ApiError({
42
+ code: "ROUTE_NOT_FOUND",
43
+ message: "No route found for the requested parameters",
44
+ statusCode: 404,
45
+ });
46
+
47
+ const result = mapBridgeError(error);
48
+
49
+ expect(result).toBe(error);
50
+ expect(result.code).toBe("ROUTE_NOT_FOUND");
51
+ expect(result.message).toBe("No route found for the requested parameters");
52
+ expect(result.statusCode).toBe(404);
53
+ expect(result.correlationId).toBeUndefined();
54
+ });
55
+
56
+ it("should return the same error for AMOUNT_TOO_LOW", () => {
57
+ const error = new ApiError({
58
+ code: "AMOUNT_TOO_LOW",
59
+ message: "Amount is below minimum threshold",
60
+ statusCode: 400,
61
+ correlationId: "amount-validation-id",
62
+ });
63
+
64
+ const result = mapBridgeError(error);
65
+
66
+ expect(result).toBe(error);
67
+ expect(result.code).toBe("AMOUNT_TOO_LOW");
68
+ expect(result.message).toBe("Amount is below minimum threshold");
69
+ expect(result.statusCode).toBe(400);
70
+ expect(result.correlationId).toBe("amount-validation-id");
71
+ });
72
+ });
73
+
74
+ describe("isRetryable", () => {
75
+ it("should return true for INTERNAL_SERVER_ERROR", () => {
76
+ expect(isRetryable("INTERNAL_SERVER_ERROR")).toBe(true);
77
+ });
78
+
79
+ it("should return true for UNKNOWN_ERROR", () => {
80
+ expect(isRetryable("UNKNOWN_ERROR")).toBe(true);
81
+ });
82
+
83
+ it("should return false for INVALID_INPUT", () => {
84
+ expect(isRetryable("INVALID_INPUT")).toBe(false);
85
+ });
86
+
87
+ it("should return false for ROUTE_NOT_FOUND", () => {
88
+ expect(isRetryable("ROUTE_NOT_FOUND")).toBe(false);
89
+ });
90
+
91
+ it("should return false for AMOUNT_TOO_LOW", () => {
92
+ expect(isRetryable("AMOUNT_TOO_LOW")).toBe(false);
93
+ });
94
+
95
+ it("should return false for AMOUNT_TOO_HIGH", () => {
96
+ expect(isRetryable("AMOUNT_TOO_HIGH")).toBe(false);
97
+ });
98
+ });
@@ -0,0 +1,25 @@
1
+ import type { ApiError } from "../../../bridge/types/Errors.js";
2
+
3
+ /**
4
+ * Maps raw ApiError instances from the Bridge SDK into UI-friendly domain errors.
5
+ * Currently returns the same error; will evolve to provide better user-facing messages.
6
+ *
7
+ * @param e - The raw ApiError from the Bridge SDK
8
+ * @returns The mapped ApiError (currently unchanged)
9
+ */
10
+ export function mapBridgeError(e: ApiError): ApiError {
11
+ // For now, return the same error
12
+ // TODO: This will evolve to provide better user-facing error messages
13
+ return e;
14
+ }
15
+
16
+ /**
17
+ * Determines if an error code represents a retryable error condition.
18
+ *
19
+ * @param code - The error code from ApiError
20
+ * @returns true if the error is retryable, false otherwise
21
+ */
22
+ export function isRetryable(code: ApiError["code"]): boolean {
23
+ // Treat INTERNAL_SERVER_ERROR & UNKNOWN_ERROR as retryable
24
+ return code === "INTERNAL_SERVER_ERROR" || code === "UNKNOWN_ERROR";
25
+ }
@@ -25,40 +25,42 @@ import type {
25
25
  } from "../../utils/defaultTokens.js";
26
26
  import type { SiweAuthOptions } from "../auth/useSiweAuth.js";
27
27
 
28
- export type PaymentInfo = {
29
- /**
30
- * The chain to receive the payment on.
31
- */
32
- chain: Chain;
33
- /**
34
- * The address of the seller wallet to receive the payment on.
35
- */
36
- sellerAddress: string;
37
- /**
38
- * Optional ERC20 token to receive the payment on.
39
- * If not provided, the native token will be used.
40
- */
41
- token?: TokenInfo;
42
- /**
43
- * For direct transfers, specify who will pay the transfer fee. Can be "sender" or "receiver".
44
- */
45
- feePayer?: "sender" | "receiver";
46
- } & (
47
- | {
48
- /**
49
- * The amount of tokens to receive in ETH or tokens.
50
- * ex: 0.1 ETH or 100 USDC
51
- */
52
- amount: string;
53
- }
54
- | {
55
- /**
56
- * The amount of tokens to receive in wei.
57
- * ex: 1000000000000000000 wei
58
- */
59
- amountWei: bigint;
60
- }
61
- );
28
+ export type PaymentInfo = Prettify<
29
+ {
30
+ /**
31
+ * The chain to receive the payment on.
32
+ */
33
+ chain: Chain;
34
+ /**
35
+ * The address of the seller wallet to receive the payment on.
36
+ */
37
+ sellerAddress: string;
38
+ /**
39
+ * Optional ERC20 token to receive the payment on.
40
+ * If not provided, the native token will be used.
41
+ */
42
+ token?: Partial<TokenInfo> & { address: string };
43
+ /**
44
+ * For direct transfers, specify who will pay the transfer fee. Can be "sender" or "receiver".
45
+ */
46
+ feePayer?: "sender" | "receiver";
47
+ } & (
48
+ | {
49
+ /**
50
+ * The amount of tokens to receive in ETH or tokens.
51
+ * ex: 0.1 ETH or 100 USDC
52
+ */
53
+ amount: string;
54
+ }
55
+ | {
56
+ /**
57
+ * The amount of tokens to receive in wei.
58
+ * ex: 1000000000000000000 wei
59
+ */
60
+ amountWei: bigint;
61
+ }
62
+ )
63
+ >;
62
64
 
63
65
  export type PayUIOptions = Prettify<
64
66
  {
@@ -78,7 +80,7 @@ export type PayUIOptions = Prettify<
78
80
  testMode?: boolean;
79
81
  prefillSource?: {
80
82
  chain: Chain;
81
- token?: TokenInfo;
83
+ token?: Partial<TokenInfo> & { address: string };
82
84
  allowEdits?: {
83
85
  token: boolean;
84
86
  chain: boolean;
@@ -115,7 +117,8 @@ export type PayUIOptions = Prettify<
115
117
  * Callback to be called when the user successfully completes the purchase.
116
118
  */
117
119
  onPurchaseSuccess?: (
118
- info:
120
+ // TODO: remove this type from the callback entirely or adapt it from the new format
121
+ info?:
119
122
  | {
120
123
  type: "crypto";
121
124
  status: BuyWithCryptoStatus;
@@ -135,6 +138,7 @@ export type PayUIOptions = Prettify<
135
138
  */
136
139
  metadata?: {
137
140
  name?: string;
141
+ description?: string;
138
142
  image?: string;
139
143
  };
140
144
 
@@ -160,13 +164,14 @@ export type FundWalletOptions = {
160
164
  */
161
165
  prefillBuy?: {
162
166
  chain: Chain;
163
- token?: TokenInfo;
167
+ token?: Partial<TokenInfo> & { address: string };
164
168
  amount?: string;
165
169
  allowEdits?: {
166
170
  amount: boolean;
167
171
  token: boolean;
168
172
  chain: boolean;
169
173
  };
174
+ presetOptions?: [number, number, number];
170
175
  };
171
176
  };
172
177
 
@@ -137,7 +137,7 @@ export function useChainExplorers(chain?: Chain) {
137
137
 
138
138
  function getQueryOptions(chain?: Chain) {
139
139
  return {
140
- queryKey: ["chain", chain],
140
+ queryKey: ["chain", chain?.id],
141
141
  enabled: !!chain,
142
142
  staleTime: 1000 * 60 * 60, // 1 hour
143
143
  } as const;
@@ -0,0 +1,100 @@
1
+ import { type UseQueryOptions, useQueries } from "@tanstack/react-query";
2
+ import { prepare as prepareOnramp } from "../../../../bridge/Onramp.js";
3
+ import type { ThirdwebClient } from "../../../../client/client.js";
4
+ import { getToken } from "../../../../pay/convert/get-token.js";
5
+ import type { Address } from "../../../../utils/address.js";
6
+ import { toUnits } from "../../../../utils/units.js";
7
+
8
+ /**
9
+ * @internal
10
+ */
11
+ type UseBuyWithFiatQuotesForProvidersParams = {
12
+ /**
13
+ * A client is the entry point to the thirdweb SDK.
14
+ */
15
+ client: ThirdwebClient;
16
+ /**
17
+ * The destination chain ID.
18
+ */
19
+ chainId: number;
20
+ /**
21
+ * The destination token address.
22
+ */
23
+ tokenAddress: Address;
24
+ /**
25
+ * The address that will receive the tokens.
26
+ */
27
+ receiver: Address;
28
+ /**
29
+ * The desired token amount in wei.
30
+ */
31
+ amount: string;
32
+ /**
33
+ * The fiat currency (e.g., "USD"). Defaults to "USD".
34
+ */
35
+ currency?: string;
36
+ };
37
+
38
+ /**
39
+ * @internal
40
+ */
41
+ type OnrampQuoteQueryOptions = Omit<
42
+ UseQueryOptions<Awaited<ReturnType<typeof prepareOnramp>>>,
43
+ "queryFn" | "queryKey" | "enabled"
44
+ >;
45
+
46
+ /**
47
+ * @internal
48
+ */
49
+ type UseBuyWithFiatQuotesForProvidersResult = {
50
+ data: Awaited<ReturnType<typeof prepareOnramp>> | undefined;
51
+ isLoading: boolean;
52
+ error: Error | null;
53
+ isError: boolean;
54
+ isSuccess: boolean;
55
+ }[];
56
+
57
+ /**
58
+ * @internal
59
+ * Hook to get prepared onramp quotes from Coinbase, Stripe, and Transak providers.
60
+ */
61
+ export function useBuyWithFiatQuotesForProviders(
62
+ params?: UseBuyWithFiatQuotesForProvidersParams,
63
+ queryOptions?: OnrampQuoteQueryOptions,
64
+ ): UseBuyWithFiatQuotesForProvidersResult {
65
+ const providers = ["coinbase", "stripe", "transak"] as const;
66
+
67
+ const queries = useQueries({
68
+ queries: providers.map((provider) => ({
69
+ ...queryOptions,
70
+ queryKey: ["onramp-prepare", provider, params],
71
+ queryFn: async () => {
72
+ if (!params) {
73
+ throw new Error("No params provided");
74
+ }
75
+
76
+ const token = await getToken(
77
+ params.client,
78
+ params.tokenAddress,
79
+ params.chainId,
80
+ );
81
+
82
+ const amountWei = toUnits(params.amount, token.decimals);
83
+
84
+ return prepareOnramp({
85
+ client: params.client,
86
+ onramp: provider,
87
+ chainId: params.chainId,
88
+ tokenAddress: params.tokenAddress,
89
+ receiver: params.receiver,
90
+ amount: amountWei,
91
+ currency: params.currency || "USD",
92
+ });
93
+ },
94
+ enabled: !!params,
95
+ retry: false,
96
+ })),
97
+ });
98
+
99
+ return queries;
100
+ }
@@ -70,7 +70,7 @@ export type SendTransactionPayModalConfig =
70
70
  * Callback to be called when the user successfully completes the purchase.
71
71
  */
72
72
  onPurchaseSuccess?: (
73
- info:
73
+ info?:
74
74
  | {
75
75
  type: "crypto";
76
76
  status: BuyWithCryptoStatus;