thirdweb 5.108.6 → 5.108.7

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 (391) hide show
  1. package/dist/cjs/react/core/hooks/transaction/useSendTransaction.js.map +1 -1
  2. package/dist/cjs/react/core/hooks/usePaymentMethods.js +1 -2
  3. package/dist/cjs/react/core/hooks/usePaymentMethods.js.map +1 -1
  4. package/dist/cjs/react/web/hooks/transaction/useSendTransaction.js +1 -1
  5. package/dist/cjs/react/web/hooks/transaction/useSendTransaction.js.map +1 -1
  6. package/dist/cjs/react/web/ui/Bridge/BuyWidget.js +185 -99
  7. package/dist/cjs/react/web/ui/Bridge/BuyWidget.js.map +1 -1
  8. package/dist/cjs/react/web/ui/Bridge/CheckoutWidget.js +210 -56
  9. package/dist/cjs/react/web/ui/Bridge/CheckoutWidget.js.map +1 -1
  10. package/dist/cjs/react/web/ui/Bridge/DirectPayment.js +7 -7
  11. package/dist/cjs/react/web/ui/Bridge/DirectPayment.js.map +1 -1
  12. package/dist/cjs/react/web/ui/Bridge/FundWallet.js +233 -105
  13. package/dist/cjs/react/web/ui/Bridge/FundWallet.js.map +1 -1
  14. package/dist/cjs/react/web/ui/Bridge/QuoteLoader.js +1 -7
  15. package/dist/cjs/react/web/ui/Bridge/QuoteLoader.js.map +1 -1
  16. package/dist/cjs/react/web/ui/Bridge/TransactionPayment.js +16 -12
  17. package/dist/cjs/react/web/ui/Bridge/TransactionPayment.js.map +1 -1
  18. package/dist/cjs/react/web/ui/Bridge/TransactionWidget.js +199 -36
  19. package/dist/cjs/react/web/ui/Bridge/TransactionWidget.js.map +1 -1
  20. package/dist/cjs/react/web/ui/Bridge/bridge-widget/bridge-widget.js +2 -2
  21. package/dist/cjs/react/web/ui/Bridge/bridge-widget/bridge-widget.js.map +1 -1
  22. package/dist/cjs/react/web/ui/Bridge/common/WithHeader.js +4 -5
  23. package/dist/cjs/react/web/ui/Bridge/common/WithHeader.js.map +1 -1
  24. package/dist/cjs/react/web/ui/Bridge/common/active-wallet-details.js +52 -0
  25. package/dist/cjs/react/web/ui/Bridge/common/active-wallet-details.js.map +1 -0
  26. package/dist/cjs/react/web/ui/Bridge/common/decimal-input.js +36 -0
  27. package/dist/cjs/react/web/ui/Bridge/common/decimal-input.js.map +1 -0
  28. package/dist/cjs/react/web/ui/Bridge/common/selected-token-button.js +58 -0
  29. package/dist/cjs/react/web/ui/Bridge/common/selected-token-button.js.map +1 -0
  30. package/dist/cjs/react/web/ui/Bridge/common/token-balance.js +20 -0
  31. package/dist/cjs/react/web/ui/Bridge/common/token-balance.js.map +1 -0
  32. package/dist/cjs/react/web/ui/Bridge/common/token-query.js +34 -0
  33. package/dist/cjs/react/web/ui/Bridge/common/token-query.js.map +1 -0
  34. package/dist/cjs/react/web/ui/Bridge/payment-details/PaymentDetails.js +3 -3
  35. package/dist/cjs/react/web/ui/Bridge/payment-details/PaymentDetails.js.map +1 -1
  36. package/dist/cjs/react/web/ui/Bridge/payment-details/PaymentOverview.js +7 -7
  37. package/dist/cjs/react/web/ui/Bridge/payment-details/PaymentOverview.js.map +1 -1
  38. package/dist/cjs/react/web/ui/Bridge/payment-selection/PaymentSelection.js +1 -4
  39. package/dist/cjs/react/web/ui/Bridge/payment-selection/PaymentSelection.js.map +1 -1
  40. package/dist/cjs/react/web/ui/Bridge/payment-selection/TokenSelection.js.map +1 -1
  41. package/dist/cjs/react/web/ui/Bridge/payment-success/SuccessScreen.js +3 -3
  42. package/dist/cjs/react/web/ui/Bridge/payment-success/SuccessScreen.js.map +1 -1
  43. package/dist/cjs/react/web/ui/Bridge/swap-widget/SwapWidget.js +8 -11
  44. package/dist/cjs/react/web/ui/Bridge/swap-widget/SwapWidget.js.map +1 -1
  45. package/dist/cjs/react/web/ui/Bridge/swap-widget/swap-ui.js +19 -147
  46. package/dist/cjs/react/web/ui/Bridge/swap-widget/swap-ui.js.map +1 -1
  47. package/dist/cjs/react/web/ui/Bridge/types.js +3 -0
  48. package/dist/cjs/react/web/ui/Bridge/types.js.map +1 -0
  49. package/dist/cjs/react/web/ui/ConnectWallet/Details.js +4 -2
  50. package/dist/cjs/react/web/ui/ConnectWallet/Details.js.map +1 -1
  51. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.js +1 -1
  52. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.js.map +1 -1
  53. package/dist/cjs/react/web/ui/ConnectWallet/screens/formatTokenBalance.js.map +1 -1
  54. package/dist/cjs/react/web/ui/TransactionButton/DepositScreen.js +1 -1
  55. package/dist/cjs/react/web/ui/TransactionButton/DepositScreen.js.map +1 -1
  56. package/dist/cjs/react/web/ui/TransactionButton/TransactionModal.js +17 -10
  57. package/dist/cjs/react/web/ui/TransactionButton/TransactionModal.js.map +1 -1
  58. package/dist/cjs/react/web/ui/components/CopyIcon.js +1 -1
  59. package/dist/cjs/react/web/ui/components/CopyIcon.js.map +1 -1
  60. package/dist/cjs/stories/Bridge/CheckoutWidget.stories.js +115 -0
  61. package/dist/cjs/stories/Bridge/CheckoutWidget.stories.js.map +1 -0
  62. package/dist/cjs/stories/Bridge/ErrorBanner.stories.js +7 -111
  63. package/dist/cjs/stories/Bridge/ErrorBanner.stories.js.map +1 -1
  64. package/dist/cjs/stories/Bridge/PaymentDetails.stories.js +27 -306
  65. package/dist/cjs/stories/Bridge/PaymentDetails.stories.js.map +1 -1
  66. package/dist/cjs/stories/Bridge/PaymentSelection.stories.js +21 -128
  67. package/dist/cjs/stories/Bridge/PaymentSelection.stories.js.map +1 -1
  68. package/dist/cjs/stories/Bridge/StepRunner.stories.js +13 -39
  69. package/dist/cjs/stories/Bridge/StepRunner.stories.js.map +1 -1
  70. package/dist/cjs/stories/Bridge/SuccessScreen.stories.js +13 -101
  71. package/dist/cjs/stories/Bridge/SuccessScreen.stories.js.map +1 -1
  72. package/dist/cjs/stories/Bridge/Transaction/TransactionWidget.stories.js +49 -0
  73. package/dist/cjs/stories/Bridge/Transaction/TransactionWidget.stories.js.map +1 -0
  74. package/dist/cjs/stories/Bridge/Transaction/useSendTransactionModal.stories.js +53 -0
  75. package/dist/cjs/stories/Bridge/Transaction/useSendTransactionModal.stories.js.map +1 -0
  76. package/dist/cjs/stories/Bridge/UnsupportedTokenScreen.stories.js +11 -79
  77. package/dist/cjs/stories/Bridge/UnsupportedTokenScreen.stories.js.map +1 -1
  78. package/dist/cjs/stories/Bridge/fixtures.js +21 -62
  79. package/dist/cjs/stories/Bridge/fixtures.js.map +1 -1
  80. package/dist/cjs/stories/BuyWidget.stories.js +44 -8
  81. package/dist/cjs/stories/BuyWidget.stories.js.map +1 -1
  82. package/dist/cjs/stories/utils.js +5 -2
  83. package/dist/cjs/stories/utils.js.map +1 -1
  84. package/dist/cjs/version.js +1 -1
  85. package/dist/cjs/x402/common.js +3 -5
  86. package/dist/cjs/x402/common.js.map +1 -1
  87. package/dist/cjs/x402/facilitator.js +0 -1
  88. package/dist/cjs/x402/facilitator.js.map +1 -1
  89. package/dist/cjs/x402/schemas.js +4 -0
  90. package/dist/cjs/x402/schemas.js.map +1 -1
  91. package/dist/cjs/x402/settle-payment.js +6 -5
  92. package/dist/cjs/x402/settle-payment.js.map +1 -1
  93. package/dist/cjs/x402/sign.js +2 -6
  94. package/dist/cjs/x402/sign.js.map +1 -1
  95. package/dist/cjs/x402/types.js.map +1 -1
  96. package/dist/cjs/x402/verify-payment.js +6 -5
  97. package/dist/cjs/x402/verify-payment.js.map +1 -1
  98. package/dist/esm/react/core/hooks/transaction/useSendTransaction.js.map +1 -1
  99. package/dist/esm/react/core/hooks/usePaymentMethods.js +1 -2
  100. package/dist/esm/react/core/hooks/usePaymentMethods.js.map +1 -1
  101. package/dist/esm/react/web/hooks/transaction/useSendTransaction.js +1 -1
  102. package/dist/esm/react/web/hooks/transaction/useSendTransaction.js.map +1 -1
  103. package/dist/esm/react/web/ui/Bridge/BuyWidget.js +185 -99
  104. package/dist/esm/react/web/ui/Bridge/BuyWidget.js.map +1 -1
  105. package/dist/esm/react/web/ui/Bridge/CheckoutWidget.js +211 -57
  106. package/dist/esm/react/web/ui/Bridge/CheckoutWidget.js.map +1 -1
  107. package/dist/esm/react/web/ui/Bridge/DirectPayment.js +7 -7
  108. package/dist/esm/react/web/ui/Bridge/DirectPayment.js.map +1 -1
  109. package/dist/esm/react/web/ui/Bridge/FundWallet.js +237 -109
  110. package/dist/esm/react/web/ui/Bridge/FundWallet.js.map +1 -1
  111. package/dist/esm/react/web/ui/Bridge/QuoteLoader.js +1 -7
  112. package/dist/esm/react/web/ui/Bridge/QuoteLoader.js.map +1 -1
  113. package/dist/esm/react/web/ui/Bridge/TransactionPayment.js +16 -12
  114. package/dist/esm/react/web/ui/Bridge/TransactionPayment.js.map +1 -1
  115. package/dist/esm/react/web/ui/Bridge/TransactionWidget.js +198 -36
  116. package/dist/esm/react/web/ui/Bridge/TransactionWidget.js.map +1 -1
  117. package/dist/esm/react/web/ui/Bridge/bridge-widget/bridge-widget.js +2 -2
  118. package/dist/esm/react/web/ui/Bridge/bridge-widget/bridge-widget.js.map +1 -1
  119. package/dist/esm/react/web/ui/Bridge/common/WithHeader.js +4 -5
  120. package/dist/esm/react/web/ui/Bridge/common/WithHeader.js.map +1 -1
  121. package/dist/esm/react/web/ui/Bridge/common/active-wallet-details.js +49 -0
  122. package/dist/esm/react/web/ui/Bridge/common/active-wallet-details.js.map +1 -0
  123. package/dist/esm/react/web/ui/Bridge/common/decimal-input.js +33 -0
  124. package/dist/esm/react/web/ui/Bridge/common/decimal-input.js.map +1 -0
  125. package/dist/esm/react/web/ui/Bridge/common/selected-token-button.js +55 -0
  126. package/dist/esm/react/web/ui/Bridge/common/selected-token-button.js.map +1 -0
  127. package/dist/esm/react/web/ui/Bridge/common/token-balance.js +17 -0
  128. package/dist/esm/react/web/ui/Bridge/common/token-balance.js.map +1 -0
  129. package/dist/esm/react/web/ui/Bridge/common/token-query.js +31 -0
  130. package/dist/esm/react/web/ui/Bridge/common/token-query.js.map +1 -0
  131. package/dist/esm/react/web/ui/Bridge/payment-details/PaymentDetails.js +3 -3
  132. package/dist/esm/react/web/ui/Bridge/payment-details/PaymentDetails.js.map +1 -1
  133. package/dist/esm/react/web/ui/Bridge/payment-details/PaymentOverview.js +7 -7
  134. package/dist/esm/react/web/ui/Bridge/payment-details/PaymentOverview.js.map +1 -1
  135. package/dist/esm/react/web/ui/Bridge/payment-selection/PaymentSelection.js +1 -4
  136. package/dist/esm/react/web/ui/Bridge/payment-selection/PaymentSelection.js.map +1 -1
  137. package/dist/esm/react/web/ui/Bridge/payment-selection/TokenSelection.js.map +1 -1
  138. package/dist/esm/react/web/ui/Bridge/payment-success/SuccessScreen.js +3 -3
  139. package/dist/esm/react/web/ui/Bridge/payment-success/SuccessScreen.js.map +1 -1
  140. package/dist/esm/react/web/ui/Bridge/swap-widget/SwapWidget.js +8 -11
  141. package/dist/esm/react/web/ui/Bridge/swap-widget/SwapWidget.js.map +1 -1
  142. package/dist/esm/react/web/ui/Bridge/swap-widget/swap-ui.js +16 -144
  143. package/dist/esm/react/web/ui/Bridge/swap-widget/swap-ui.js.map +1 -1
  144. package/dist/esm/react/web/ui/Bridge/types.js +2 -0
  145. package/dist/esm/react/web/ui/Bridge/types.js.map +1 -0
  146. package/dist/esm/react/web/ui/ConnectWallet/Details.js +4 -2
  147. package/dist/esm/react/web/ui/ConnectWallet/Details.js.map +1 -1
  148. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.js +1 -1
  149. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.js.map +1 -1
  150. package/dist/esm/react/web/ui/ConnectWallet/screens/formatTokenBalance.js.map +1 -1
  151. package/dist/esm/react/web/ui/TransactionButton/DepositScreen.js +1 -1
  152. package/dist/esm/react/web/ui/TransactionButton/DepositScreen.js.map +1 -1
  153. package/dist/esm/react/web/ui/TransactionButton/TransactionModal.js +17 -10
  154. package/dist/esm/react/web/ui/TransactionButton/TransactionModal.js.map +1 -1
  155. package/dist/esm/react/web/ui/components/CopyIcon.js +1 -1
  156. package/dist/esm/react/web/ui/components/CopyIcon.js.map +1 -1
  157. package/dist/esm/stories/Bridge/CheckoutWidget.stories.js +112 -0
  158. package/dist/esm/stories/Bridge/CheckoutWidget.stories.js.map +1 -0
  159. package/dist/esm/stories/Bridge/ErrorBanner.stories.js +7 -111
  160. package/dist/esm/stories/Bridge/ErrorBanner.stories.js.map +1 -1
  161. package/dist/esm/stories/Bridge/PaymentDetails.stories.js +28 -307
  162. package/dist/esm/stories/Bridge/PaymentDetails.stories.js.map +1 -1
  163. package/dist/esm/stories/Bridge/PaymentSelection.stories.js +22 -129
  164. package/dist/esm/stories/Bridge/PaymentSelection.stories.js.map +1 -1
  165. package/dist/esm/stories/Bridge/StepRunner.stories.js +12 -38
  166. package/dist/esm/stories/Bridge/StepRunner.stories.js.map +1 -1
  167. package/dist/esm/stories/Bridge/SuccessScreen.stories.js +14 -102
  168. package/dist/esm/stories/Bridge/SuccessScreen.stories.js.map +1 -1
  169. package/dist/esm/stories/Bridge/Transaction/TransactionWidget.stories.js +46 -0
  170. package/dist/esm/stories/Bridge/Transaction/TransactionWidget.stories.js.map +1 -0
  171. package/dist/esm/stories/Bridge/Transaction/useSendTransactionModal.stories.js +50 -0
  172. package/dist/esm/stories/Bridge/Transaction/useSendTransactionModal.stories.js.map +1 -0
  173. package/dist/esm/stories/Bridge/UnsupportedTokenScreen.stories.js +12 -80
  174. package/dist/esm/stories/Bridge/UnsupportedTokenScreen.stories.js.map +1 -1
  175. package/dist/esm/stories/Bridge/fixtures.js +15 -56
  176. package/dist/esm/stories/Bridge/fixtures.js.map +1 -1
  177. package/dist/esm/stories/BuyWidget.stories.js +37 -9
  178. package/dist/esm/stories/BuyWidget.stories.js.map +1 -1
  179. package/dist/esm/stories/utils.js +6 -3
  180. package/dist/esm/stories/utils.js.map +1 -1
  181. package/dist/esm/version.js +1 -1
  182. package/dist/esm/x402/common.js +3 -5
  183. package/dist/esm/x402/common.js.map +1 -1
  184. package/dist/esm/x402/facilitator.js +0 -1
  185. package/dist/esm/x402/facilitator.js.map +1 -1
  186. package/dist/esm/x402/schemas.js +5 -1
  187. package/dist/esm/x402/schemas.js.map +1 -1
  188. package/dist/esm/x402/settle-payment.js +6 -5
  189. package/dist/esm/x402/settle-payment.js.map +1 -1
  190. package/dist/esm/x402/sign.js +2 -6
  191. package/dist/esm/x402/sign.js.map +1 -1
  192. package/dist/esm/x402/types.js.map +1 -1
  193. package/dist/esm/x402/verify-payment.js +6 -5
  194. package/dist/esm/x402/verify-payment.js.map +1 -1
  195. package/dist/scripts/bridge-widget.d.ts +3 -3
  196. package/dist/scripts/bridge-widget.js +113 -150
  197. package/dist/types/react/core/hooks/transaction/useSendTransaction.d.ts +6 -0
  198. package/dist/types/react/core/hooks/transaction/useSendTransaction.d.ts.map +1 -1
  199. package/dist/types/react/core/hooks/usePaymentMethods.d.ts +1 -2
  200. package/dist/types/react/core/hooks/usePaymentMethods.d.ts.map +1 -1
  201. package/dist/types/react/web/hooks/transaction/useSendTransaction.d.ts.map +1 -1
  202. package/dist/types/react/web/ui/Bridge/BuyWidget.d.ts +7 -12
  203. package/dist/types/react/web/ui/Bridge/BuyWidget.d.ts.map +1 -1
  204. package/dist/types/react/web/ui/Bridge/CheckoutWidget.d.ts +5 -8
  205. package/dist/types/react/web/ui/Bridge/CheckoutWidget.d.ts.map +1 -1
  206. package/dist/types/react/web/ui/Bridge/DirectPayment.d.ts +15 -12
  207. package/dist/types/react/web/ui/Bridge/DirectPayment.d.ts.map +1 -1
  208. package/dist/types/react/web/ui/Bridge/FundWallet.d.ts +33 -15
  209. package/dist/types/react/web/ui/Bridge/FundWallet.d.ts.map +1 -1
  210. package/dist/types/react/web/ui/Bridge/QuoteLoader.d.ts +9 -12
  211. package/dist/types/react/web/ui/Bridge/QuoteLoader.d.ts.map +1 -1
  212. package/dist/types/react/web/ui/Bridge/StepRunner.d.ts +7 -7
  213. package/dist/types/react/web/ui/Bridge/StepRunner.d.ts.map +1 -1
  214. package/dist/types/react/web/ui/Bridge/TransactionPayment.d.ts +14 -7
  215. package/dist/types/react/web/ui/Bridge/TransactionPayment.d.ts.map +1 -1
  216. package/dist/types/react/web/ui/Bridge/TransactionWidget.d.ts +3 -5
  217. package/dist/types/react/web/ui/Bridge/TransactionWidget.d.ts.map +1 -1
  218. package/dist/types/react/web/ui/Bridge/UnsupportedTokenScreen.d.ts +4 -3
  219. package/dist/types/react/web/ui/Bridge/UnsupportedTokenScreen.d.ts.map +1 -1
  220. package/dist/types/react/web/ui/Bridge/bridge-widget/bridge-widget.d.ts +3 -3
  221. package/dist/types/react/web/ui/Bridge/bridge-widget/bridge-widget.d.ts.map +1 -1
  222. package/dist/types/react/web/ui/Bridge/common/WithHeader.d.ts +4 -4
  223. package/dist/types/react/web/ui/Bridge/common/WithHeader.d.ts.map +1 -1
  224. package/dist/types/react/web/ui/Bridge/common/active-wallet-details.d.ts +8 -0
  225. package/dist/types/react/web/ui/Bridge/common/active-wallet-details.d.ts.map +1 -0
  226. package/dist/types/react/web/ui/Bridge/common/decimal-input.d.ts +6 -0
  227. package/dist/types/react/web/ui/Bridge/common/decimal-input.d.ts.map +1 -0
  228. package/dist/types/react/web/ui/Bridge/common/selected-token-button.d.ts +13 -0
  229. package/dist/types/react/web/ui/Bridge/common/selected-token-button.d.ts.map +1 -0
  230. package/dist/types/react/web/ui/Bridge/common/token-balance.d.ts +8 -0
  231. package/dist/types/react/web/ui/Bridge/common/token-balance.d.ts.map +1 -0
  232. package/dist/types/react/web/ui/Bridge/common/token-query.d.ts +15 -0
  233. package/dist/types/react/web/ui/Bridge/common/token-query.d.ts.map +1 -0
  234. package/dist/types/react/web/ui/Bridge/payment-details/PaymentDetails.d.ts +13 -11
  235. package/dist/types/react/web/ui/Bridge/payment-details/PaymentDetails.d.ts.map +1 -1
  236. package/dist/types/react/web/ui/Bridge/payment-details/PaymentOverview.d.ts +8 -3
  237. package/dist/types/react/web/ui/Bridge/payment-details/PaymentOverview.d.ts.map +1 -1
  238. package/dist/types/react/web/ui/Bridge/payment-selection/PaymentSelection.d.ts +12 -16
  239. package/dist/types/react/web/ui/Bridge/payment-selection/PaymentSelection.d.ts.map +1 -1
  240. package/dist/types/react/web/ui/Bridge/payment-selection/TokenSelection.d.ts +1 -1
  241. package/dist/types/react/web/ui/Bridge/payment-selection/TokenSelection.d.ts.map +1 -1
  242. package/dist/types/react/web/ui/Bridge/payment-success/SuccessScreen.d.ts +6 -6
  243. package/dist/types/react/web/ui/Bridge/payment-success/SuccessScreen.d.ts.map +1 -1
  244. package/dist/types/react/web/ui/Bridge/swap-widget/swap-ui.d.ts.map +1 -1
  245. package/dist/types/react/web/ui/Bridge/types.d.ts +39 -0
  246. package/dist/types/react/web/ui/Bridge/types.d.ts.map +1 -0
  247. package/dist/types/react/web/ui/ConnectWallet/Details.d.ts.map +1 -1
  248. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.d.ts.map +1 -1
  249. package/dist/types/react/web/ui/ConnectWallet/screens/formatTokenBalance.d.ts +2 -1
  250. package/dist/types/react/web/ui/ConnectWallet/screens/formatTokenBalance.d.ts.map +1 -1
  251. package/dist/types/react/web/ui/TransactionButton/DepositScreen.d.ts +0 -1
  252. package/dist/types/react/web/ui/TransactionButton/DepositScreen.d.ts.map +1 -1
  253. package/dist/types/react/web/ui/TransactionButton/TransactionModal.d.ts +3 -1
  254. package/dist/types/react/web/ui/TransactionButton/TransactionModal.d.ts.map +1 -1
  255. package/dist/types/react/web/ui/components/CopyIcon.d.ts +1 -0
  256. package/dist/types/react/web/ui/components/CopyIcon.d.ts.map +1 -1
  257. package/dist/types/script-exports/bridge-widget-script.d.ts +3 -3
  258. package/dist/types/script-exports/bridge-widget-script.d.ts.map +1 -1
  259. package/dist/types/stories/Bridge/CheckoutWidget.stories.d.ts +25 -0
  260. package/dist/types/stories/Bridge/CheckoutWidget.stories.d.ts.map +1 -0
  261. package/dist/types/stories/Bridge/ErrorBanner.stories.d.ts +3 -47
  262. package/dist/types/stories/Bridge/ErrorBanner.stories.d.ts.map +1 -1
  263. package/dist/types/stories/Bridge/PaymentDetails.stories.d.ts +3 -56
  264. package/dist/types/stories/Bridge/PaymentDetails.stories.d.ts.map +1 -1
  265. package/dist/types/stories/Bridge/PaymentSelection.stories.d.ts +5 -63
  266. package/dist/types/stories/Bridge/PaymentSelection.stories.d.ts.map +1 -1
  267. package/dist/types/stories/Bridge/StepRunner.stories.d.ts +4 -52
  268. package/dist/types/stories/Bridge/StepRunner.stories.d.ts.map +1 -1
  269. package/dist/types/stories/Bridge/SuccessScreen.stories.d.ts +4 -54
  270. package/dist/types/stories/Bridge/SuccessScreen.stories.d.ts.map +1 -1
  271. package/dist/types/stories/Bridge/Transaction/TransactionWidget.stories.d.ts +11 -0
  272. package/dist/types/stories/Bridge/Transaction/TransactionWidget.stories.d.ts.map +1 -0
  273. package/dist/types/stories/Bridge/Transaction/useSendTransactionModal.stories.d.ts +18 -0
  274. package/dist/types/stories/Bridge/Transaction/useSendTransactionModal.stories.d.ts.map +1 -0
  275. package/dist/types/stories/Bridge/UnsupportedTokenScreen.stories.d.ts +3 -34
  276. package/dist/types/stories/Bridge/UnsupportedTokenScreen.stories.d.ts.map +1 -1
  277. package/dist/types/stories/Bridge/fixtures.d.ts +19 -17
  278. package/dist/types/stories/Bridge/fixtures.d.ts.map +1 -1
  279. package/dist/types/stories/BuyWidget.stories.d.ts +9 -1
  280. package/dist/types/stories/BuyWidget.stories.d.ts.map +1 -1
  281. package/dist/types/stories/utils.d.ts +0 -2
  282. package/dist/types/stories/utils.d.ts.map +1 -1
  283. package/dist/types/version.d.ts +1 -1
  284. package/dist/types/x402/common.d.ts.map +1 -1
  285. package/dist/types/x402/facilitator.d.ts +2 -3
  286. package/dist/types/x402/facilitator.d.ts.map +1 -1
  287. package/dist/types/x402/schemas.d.ts +21 -0
  288. package/dist/types/x402/schemas.d.ts.map +1 -1
  289. package/dist/types/x402/settle-payment.d.ts.map +1 -1
  290. package/dist/types/x402/types.d.ts +5 -4
  291. package/dist/types/x402/types.d.ts.map +1 -1
  292. package/dist/types/x402/verify-payment.d.ts.map +1 -1
  293. package/package.json +1 -1
  294. package/src/react/core/hooks/transaction/useSendTransaction.ts +6 -0
  295. package/src/react/core/hooks/usePaymentMethods.ts +1 -4
  296. package/src/react/web/hooks/transaction/useSendTransaction.tsx +1 -0
  297. package/src/react/web/ui/Bridge/BuyWidget.tsx +355 -160
  298. package/src/react/web/ui/Bridge/CheckoutWidget.tsx +384 -107
  299. package/src/react/web/ui/Bridge/DirectPayment.tsx +34 -26
  300. package/src/react/web/ui/Bridge/FundWallet.tsx +610 -266
  301. package/src/react/web/ui/Bridge/QuoteLoader.tsx +10 -20
  302. package/src/react/web/ui/Bridge/StepRunner.tsx +7 -7
  303. package/src/react/web/ui/Bridge/TransactionPayment.tsx +35 -25
  304. package/src/react/web/ui/Bridge/TransactionWidget.tsx +395 -71
  305. package/src/react/web/ui/Bridge/UnsupportedTokenScreen.tsx +3 -3
  306. package/src/react/web/ui/Bridge/bridge-widget/bridge-widget.tsx +16 -14
  307. package/src/react/web/ui/Bridge/common/WithHeader.tsx +13 -19
  308. package/src/react/web/ui/Bridge/common/active-wallet-details.tsx +103 -0
  309. package/src/react/web/ui/Bridge/common/decimal-input.tsx +61 -0
  310. package/src/react/web/ui/Bridge/common/selected-token-button.tsx +168 -0
  311. package/src/react/web/ui/Bridge/common/token-balance.tsx +23 -0
  312. package/src/react/web/ui/Bridge/common/token-query.ts +49 -0
  313. package/src/react/web/ui/Bridge/payment-details/PaymentDetails.tsx +23 -14
  314. package/src/react/web/ui/Bridge/payment-details/PaymentOverview.tsx +36 -22
  315. package/src/react/web/ui/Bridge/payment-selection/PaymentSelection.tsx +11 -22
  316. package/src/react/web/ui/Bridge/payment-selection/TokenSelection.tsx +1 -1
  317. package/src/react/web/ui/Bridge/payment-success/SuccessScreen.tsx +7 -8
  318. package/src/react/web/ui/Bridge/swap-widget/SwapWidget.tsx +14 -12
  319. package/src/react/web/ui/Bridge/swap-widget/swap-ui.tsx +19 -332
  320. package/src/react/web/ui/Bridge/types.ts +47 -0
  321. package/src/react/web/ui/ConnectWallet/Details.tsx +3 -1
  322. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/WalletRow.tsx +1 -5
  323. package/src/react/web/ui/ConnectWallet/screens/formatTokenBalance.ts +5 -1
  324. package/src/react/web/ui/TransactionButton/DepositScreen.tsx +1 -2
  325. package/src/react/web/ui/TransactionButton/TransactionModal.tsx +44 -27
  326. package/src/react/web/ui/components/CopyIcon.tsx +11 -2
  327. package/src/script-exports/bridge-widget-script.tsx +3 -3
  328. package/src/script-exports/readme.md +1 -8
  329. package/src/stories/Bridge/CheckoutWidget.stories.tsx +147 -0
  330. package/src/stories/Bridge/ErrorBanner.stories.tsx +13 -138
  331. package/src/stories/Bridge/PaymentDetails.stories.tsx +34 -349
  332. package/src/stories/Bridge/PaymentSelection.stories.tsx +28 -156
  333. package/src/stories/Bridge/StepRunner.stories.tsx +18 -65
  334. package/src/stories/Bridge/SuccessScreen.stories.tsx +21 -130
  335. package/src/stories/Bridge/Transaction/TransactionWidget.stories.tsx +63 -0
  336. package/src/stories/Bridge/Transaction/useSendTransactionModal.stories.tsx +68 -0
  337. package/src/stories/Bridge/UnsupportedTokenScreen.stories.tsx +19 -108
  338. package/src/stories/Bridge/fixtures.ts +36 -63
  339. package/src/stories/BuyWidget.stories.tsx +103 -8
  340. package/src/stories/utils.tsx +16 -9
  341. package/src/version.ts +1 -1
  342. package/src/x402/common.ts +2 -5
  343. package/src/x402/facilitator.ts +3 -3
  344. package/src/x402/schemas.ts +10 -0
  345. package/src/x402/settle-payment.ts +7 -6
  346. package/src/x402/sign.ts +3 -8
  347. package/src/x402/types.ts +5 -4
  348. package/src/x402/verify-payment.ts +7 -6
  349. package/dist/cjs/react/core/machines/paymentMachine.js +0 -191
  350. package/dist/cjs/react/core/machines/paymentMachine.js.map +0 -1
  351. package/dist/cjs/react/web/ui/Bridge/BridgeOrchestrator.js +0 -129
  352. package/dist/cjs/react/web/ui/Bridge/BridgeOrchestrator.js.map +0 -1
  353. package/dist/cjs/stories/Bridge/BridgeOrchestrator.stories.js +0 -258
  354. package/dist/cjs/stories/Bridge/BridgeOrchestrator.stories.js.map +0 -1
  355. package/dist/cjs/stories/Bridge/DirectPayment.stories.js +0 -222
  356. package/dist/cjs/stories/Bridge/DirectPayment.stories.js.map +0 -1
  357. package/dist/cjs/stories/Bridge/FundWallet.stories.js +0 -201
  358. package/dist/cjs/stories/Bridge/FundWallet.stories.js.map +0 -1
  359. package/dist/cjs/stories/Bridge/TransactionPayment.stories.js +0 -168
  360. package/dist/cjs/stories/Bridge/TransactionPayment.stories.js.map +0 -1
  361. package/dist/esm/react/core/machines/paymentMachine.js +0 -188
  362. package/dist/esm/react/core/machines/paymentMachine.js.map +0 -1
  363. package/dist/esm/react/web/ui/Bridge/BridgeOrchestrator.js +0 -126
  364. package/dist/esm/react/web/ui/Bridge/BridgeOrchestrator.js.map +0 -1
  365. package/dist/esm/stories/Bridge/BridgeOrchestrator.stories.js +0 -255
  366. package/dist/esm/stories/Bridge/BridgeOrchestrator.stories.js.map +0 -1
  367. package/dist/esm/stories/Bridge/DirectPayment.stories.js +0 -219
  368. package/dist/esm/stories/Bridge/DirectPayment.stories.js.map +0 -1
  369. package/dist/esm/stories/Bridge/FundWallet.stories.js +0 -198
  370. package/dist/esm/stories/Bridge/FundWallet.stories.js.map +0 -1
  371. package/dist/esm/stories/Bridge/TransactionPayment.stories.js +0 -165
  372. package/dist/esm/stories/Bridge/TransactionPayment.stories.js.map +0 -1
  373. package/dist/types/react/core/machines/paymentMachine.d.ts +0 -89
  374. package/dist/types/react/core/machines/paymentMachine.d.ts.map +0 -1
  375. package/dist/types/react/web/ui/Bridge/BridgeOrchestrator.d.ts +0 -99
  376. package/dist/types/react/web/ui/Bridge/BridgeOrchestrator.d.ts.map +0 -1
  377. package/dist/types/stories/Bridge/BridgeOrchestrator.stories.d.ts +0 -97
  378. package/dist/types/stories/Bridge/BridgeOrchestrator.stories.d.ts.map +0 -1
  379. package/dist/types/stories/Bridge/DirectPayment.stories.d.ts +0 -69
  380. package/dist/types/stories/Bridge/DirectPayment.stories.d.ts.map +0 -1
  381. package/dist/types/stories/Bridge/FundWallet.stories.d.ts +0 -67
  382. package/dist/types/stories/Bridge/FundWallet.stories.d.ts.map +0 -1
  383. package/dist/types/stories/Bridge/TransactionPayment.stories.d.ts +0 -60
  384. package/dist/types/stories/Bridge/TransactionPayment.stories.d.ts.map +0 -1
  385. package/src/react/core/machines/paymentMachine.test.ts +0 -519
  386. package/src/react/core/machines/paymentMachine.ts +0 -295
  387. package/src/react/web/ui/Bridge/BridgeOrchestrator.tsx +0 -425
  388. package/src/stories/Bridge/BridgeOrchestrator.stories.tsx +0 -298
  389. package/src/stories/Bridge/DirectPayment.stories.tsx +0 -256
  390. package/src/stories/Bridge/FundWallet.stories.tsx +0 -227
  391. package/src/stories/Bridge/TransactionPayment.stories.tsx +0 -202
@@ -1,519 +0,0 @@
1
- /**
2
- * @vitest-environment happy-dom
3
- */
4
- import { act, renderHook } from "@testing-library/react";
5
- import { beforeEach, describe, expect, it, vi } from "vitest";
6
- import { TEST_CLIENT } from "../../../../test/src/test-clients.js";
7
- import { TEST_IN_APP_WALLET_A } from "../../../../test/src/test-wallets.js";
8
- import type { Token } from "../../../bridge/types/Token.js";
9
- import { defineChain } from "../../../chains/utils.js";
10
- import { NATIVE_TOKEN_ADDRESS } from "../../../constants/addresses.js";
11
- import type { AsyncStorage } from "../../../utils/storage/AsyncStorage.js";
12
- import type { WindowAdapter } from "../adapters/WindowAdapter.js";
13
- import type { BridgePrepareResult } from "../hooks/useBridgePrepare.js";
14
- import {
15
- type PaymentMachineContext,
16
- type PaymentMethod,
17
- usePaymentMachine,
18
- } from "./paymentMachine.js";
19
-
20
- // Mock adapters
21
- const mockWindowAdapter: WindowAdapter = {
22
- open: vi.fn().mockResolvedValue(undefined),
23
- };
24
-
25
- const mockStorage: AsyncStorage = {
26
- getItem: vi.fn().mockResolvedValue(null),
27
- removeItem: vi.fn().mockResolvedValue(undefined),
28
- setItem: vi.fn().mockResolvedValue(undefined),
29
- };
30
-
31
- // Test token objects
32
- const testUSDCToken: Token = {
33
- address: "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174",
34
- chainId: 137,
35
- decimals: 6,
36
- name: "USD Coin (PoS)",
37
- priceUsd: 1.0,
38
- symbol: "USDC",
39
- };
40
-
41
- const testETHToken: Token = {
42
- address: NATIVE_TOKEN_ADDRESS,
43
- chainId: 1,
44
- decimals: 18,
45
- name: "Ethereum",
46
- priceUsd: 2500.0,
47
- symbol: "ETH",
48
- };
49
-
50
- const testTokenForPayment: Token = {
51
- address: "0xA0b86a33E6425c03e54c4b45DCb6d75b6B72E2AA",
52
- chainId: 1,
53
- decimals: 18,
54
- name: "Test Token",
55
- priceUsd: 1.0,
56
- symbol: "TT",
57
- };
58
-
59
- const mockBuyQuote: BridgePrepareResult = {
60
- destinationAmount: 100000000n,
61
- estimatedExecutionTimeMs: 120000, // 1 ETH
62
- intent: {
63
- amount: 100000000n,
64
- destinationChainId: 137,
65
- destinationTokenAddress: "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174",
66
- originChainId: 1,
67
- originTokenAddress: NATIVE_TOKEN_ADDRESS,
68
- receiver: "0xa3841994009B4fEabb01ebcC62062F9E56F701CD",
69
- sender: "0xa3841994009B4fEabb01ebcC62062F9E56F701CD",
70
- }, // 100 USDC
71
- originAmount: 1000000000000000000n,
72
- steps: [
73
- {
74
- destinationAmount: 100000000n,
75
- destinationToken: testUSDCToken,
76
- estimatedExecutionTimeMs: 120000,
77
- originAmount: 1000000000000000000n,
78
- originToken: testETHToken,
79
- transactions: [
80
- {
81
- action: "approval" as const,
82
- chain: defineChain(1),
83
- chainId: 1,
84
- client: TEST_CLIENT,
85
- data: "0x789" as const,
86
- id: "0x123" as const,
87
- to: "0x456" as const,
88
- },
89
- {
90
- action: "buy" as const,
91
- chain: defineChain(1),
92
- chainId: 1,
93
- client: TEST_CLIENT,
94
- data: "0x012" as const,
95
- id: "0xabc" as const,
96
- to: "0xdef" as const,
97
- value: 1000000000000000000n,
98
- },
99
- ],
100
- },
101
- ], // 2 minutes
102
- timestamp: Date.now(),
103
- type: "buy",
104
- };
105
-
106
- describe("PaymentMachine", () => {
107
- let adapters: PaymentMachineContext["adapters"];
108
-
109
- beforeEach(() => {
110
- adapters = {
111
- storage: mockStorage,
112
- window: mockWindowAdapter,
113
- };
114
- });
115
-
116
- it("should initialize in init state", () => {
117
- const { result } = renderHook(() =>
118
- usePaymentMachine(adapters, "fund_wallet"),
119
- );
120
- const [state] = result.current;
121
-
122
- expect(state.value).toBe("init");
123
- expect(state.context.mode).toBe("fund_wallet");
124
- expect(state.context.adapters).toBe(adapters);
125
- });
126
-
127
- it("should handle errors and allow retry", () => {
128
- const { result } = renderHook(() =>
129
- usePaymentMachine(adapters, "fund_wallet"),
130
- );
131
-
132
- const testError = new Error("Network error");
133
- act(() => {
134
- const [, send] = result.current;
135
- send({
136
- error: testError,
137
- type: "ERROR_OCCURRED",
138
- });
139
- });
140
-
141
- let [state] = result.current;
142
- expect(state.value).toBe("error");
143
- expect(state.context.currentError).toBe(testError);
144
- expect(state.context.retryState).toBe("init");
145
-
146
- // Retry should clear error and return to beginning
147
- act(() => {
148
- const [, send] = result.current;
149
- send({
150
- type: "RETRY",
151
- });
152
- });
153
-
154
- [state] = result.current;
155
- expect(state.value).toBe("init");
156
- expect(state.context.currentError).toBeUndefined();
157
- expect(state.context.retryState).toBeUndefined();
158
- });
159
-
160
- it("should preserve context data through transitions", () => {
161
- const { result } = renderHook(() =>
162
- usePaymentMachine(adapters, "fund_wallet"),
163
- );
164
-
165
- const testToken: Token = {
166
- address: "0xtest",
167
- chainId: 42,
168
- decimals: 18,
169
- name: "Test Token",
170
- priceUsd: 1.0,
171
- symbol: "TEST",
172
- };
173
-
174
- // Confirm destination
175
- act(() => {
176
- const [, send] = result.current;
177
- send({
178
- destinationAmount: "50",
179
- destinationToken: testToken,
180
- receiverAddress: "0xa3841994009B4fEabb01ebcC62062F9E56F701CD",
181
- type: "DESTINATION_CONFIRMED",
182
- });
183
- });
184
-
185
- // Select payment method
186
- const paymentMethod: PaymentMethod = {
187
- balance: 1000000000000000000n,
188
- originToken: testUSDCToken,
189
- payerWallet: TEST_IN_APP_WALLET_A,
190
- type: "wallet",
191
- };
192
-
193
- act(() => {
194
- const [, send] = result.current;
195
- send({
196
- paymentMethod,
197
- type: "PAYMENT_METHOD_SELECTED",
198
- });
199
- });
200
-
201
- const [state] = result.current;
202
- // All context should be preserved
203
- expect(state.context.destinationToken).toEqual(testToken);
204
- expect(state.context.destinationAmount).toBe("50");
205
- expect(state.context.selectedPaymentMethod).toEqual(paymentMethod);
206
- expect(state.context.mode).toBe("fund_wallet");
207
- expect(state.context.adapters).toBe(adapters);
208
- });
209
-
210
- it("should handle state transitions correctly", () => {
211
- const { result } = renderHook(() =>
212
- usePaymentMachine(adapters, "fund_wallet"),
213
- );
214
-
215
- const [initialState] = result.current;
216
- expect(initialState.value).toBe("init");
217
-
218
- // Only DESTINATION_CONFIRMED should be valid from initial state
219
- act(() => {
220
- const [, send] = result.current;
221
- send({
222
- paymentMethod: {
223
- currency: "USD",
224
- onramp: "stripe",
225
- payerWallet: TEST_IN_APP_WALLET_A,
226
- type: "fiat",
227
- },
228
- type: "PAYMENT_METHOD_SELECTED",
229
- });
230
- });
231
-
232
- let [state] = result.current;
233
- expect(state.value).toBe("init"); // Should stay in same state for invalid transition
234
-
235
- // Valid transition
236
- act(() => {
237
- const [, send] = result.current;
238
- send({
239
- destinationAmount: "100",
240
- destinationToken: testTokenForPayment,
241
- receiverAddress: "0xa3841994009B4fEabb01ebcC62062F9E56F701CD",
242
- type: "DESTINATION_CONFIRMED",
243
- });
244
- });
245
-
246
- [state] = result.current;
247
- expect(state.value).toBe("methodSelection");
248
- });
249
-
250
- it("should reset to initial state", () => {
251
- const { result } = renderHook(() =>
252
- usePaymentMachine(adapters, "fund_wallet"),
253
- );
254
-
255
- // Go through some states
256
- act(() => {
257
- const [, send] = result.current;
258
- send({
259
- destinationAmount: "100",
260
- destinationToken: testTokenForPayment,
261
- receiverAddress: "0xa3841994009B4fEabb01ebcC62062F9E56F701CD",
262
- type: "DESTINATION_CONFIRMED",
263
- });
264
- });
265
-
266
- act(() => {
267
- const [, send] = result.current;
268
- send({
269
- paymentMethod: {
270
- currency: "USD",
271
- onramp: "stripe",
272
- payerWallet: TEST_IN_APP_WALLET_A,
273
- type: "fiat",
274
- },
275
- type: "PAYMENT_METHOD_SELECTED",
276
- });
277
- });
278
-
279
- let [state] = result.current;
280
- expect(state.value).toBe("quote");
281
-
282
- // Trigger error
283
- act(() => {
284
- const [, send] = result.current;
285
- send({
286
- error: new Error("Test error"),
287
- type: "ERROR_OCCURRED",
288
- });
289
- });
290
-
291
- [state] = result.current;
292
- expect(state.value).toBe("error");
293
-
294
- // Reset
295
- act(() => {
296
- const [, send] = result.current;
297
- send({
298
- type: "RESET",
299
- });
300
- });
301
-
302
- [state] = result.current;
303
- expect(state.value).toBe("init");
304
- // Context should still have adapters and mode but other data should be cleared
305
- expect(state.context.adapters).toBe(adapters);
306
- expect(state.context.mode).toBe("fund_wallet");
307
- });
308
-
309
- it("should handle error states from all major states", () => {
310
- const { result } = renderHook(() =>
311
- usePaymentMachine(adapters, "fund_wallet"),
312
- );
313
-
314
- // Test error from init
315
- act(() => {
316
- const [, send] = result.current;
317
- send({
318
- error: new Error("Init error"),
319
- type: "ERROR_OCCURRED",
320
- });
321
- });
322
-
323
- let [state] = result.current;
324
- expect(state.value).toBe("error");
325
- expect(state.context.retryState).toBe("init");
326
-
327
- // Reset and test error from methodSelection
328
- act(() => {
329
- const [, send] = result.current;
330
- send({ type: "RESET" });
331
- });
332
-
333
- act(() => {
334
- const [, send] = result.current;
335
- send({
336
- destinationAmount: "100",
337
- destinationToken: testTokenForPayment,
338
- receiverAddress: "0xa3841994009B4fEabb01ebcC62062F9E56F701CD",
339
- type: "DESTINATION_CONFIRMED",
340
- });
341
- });
342
-
343
- act(() => {
344
- const [, send] = result.current;
345
- send({
346
- error: new Error("Method selection error"),
347
- type: "ERROR_OCCURRED",
348
- });
349
- });
350
-
351
- [state] = result.current;
352
- expect(state.value).toBe("error");
353
- expect(state.context.retryState).toBe("methodSelection");
354
- });
355
-
356
- it("should handle back navigation", () => {
357
- const { result } = renderHook(() =>
358
- usePaymentMachine(adapters, "fund_wallet"),
359
- );
360
-
361
- // Go to methodSelection
362
- act(() => {
363
- const [, send] = result.current;
364
- send({
365
- destinationAmount: "100",
366
- destinationToken: testTokenForPayment,
367
- receiverAddress: "0xa3841994009B4fEabb01ebcC62062F9E56F701CD",
368
- type: "DESTINATION_CONFIRMED",
369
- });
370
- });
371
-
372
- // Go to quote
373
- act(() => {
374
- const [, send] = result.current;
375
- send({
376
- paymentMethod: {
377
- currency: "USD",
378
- onramp: "stripe",
379
- payerWallet: TEST_IN_APP_WALLET_A,
380
- type: "fiat",
381
- },
382
- type: "PAYMENT_METHOD_SELECTED",
383
- });
384
- });
385
-
386
- let [state] = result.current;
387
- expect(state.value).toBe("quote");
388
-
389
- // Navigate back to methodSelection
390
- act(() => {
391
- const [, send] = result.current;
392
- send({
393
- type: "BACK",
394
- });
395
- });
396
-
397
- [state] = result.current;
398
- expect(state.value).toBe("methodSelection");
399
-
400
- // Navigate back to init
401
- act(() => {
402
- const [, send] = result.current;
403
- send({
404
- type: "BACK",
405
- });
406
- });
407
-
408
- [state] = result.current;
409
- expect(state.value).toBe("init");
410
- });
411
-
412
- it("should handle post-buy-transaction state flow", () => {
413
- const { result } = renderHook(() =>
414
- usePaymentMachine(adapters, "fund_wallet"),
415
- );
416
-
417
- // Go through the complete happy path to reach success state
418
- act(() => {
419
- const [, send] = result.current;
420
- send({
421
- destinationAmount: "100",
422
- destinationToken: testTokenForPayment,
423
- receiverAddress: "0xa3841994009B4fEabb01ebcC62062F9E56F701CD",
424
- type: "DESTINATION_CONFIRMED",
425
- });
426
- });
427
-
428
- act(() => {
429
- const [, send] = result.current;
430
- send({
431
- paymentMethod: {
432
- balance: 1000000000000000000n,
433
- originToken: testUSDCToken,
434
- payerWallet: TEST_IN_APP_WALLET_A,
435
- type: "wallet",
436
- },
437
- type: "PAYMENT_METHOD_SELECTED",
438
- });
439
- });
440
-
441
- act(() => {
442
- const [, send] = result.current;
443
- send({
444
- preparedQuote: mockBuyQuote,
445
- type: "QUOTE_RECEIVED",
446
- });
447
- });
448
-
449
- act(() => {
450
- const [, send] = result.current;
451
- send({
452
- type: "ROUTE_CONFIRMED",
453
- });
454
- });
455
-
456
- act(() => {
457
- const [, send] = result.current;
458
- send({
459
- completedStatuses: [
460
- {
461
- destinationAmount: 100000000n,
462
- destinationChainId: 137,
463
- destinationToken: testUSDCToken,
464
- destinationTokenAddress:
465
- "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174",
466
- originAmount: 1000000000000000000n,
467
- originChainId: 1,
468
- originToken: testETHToken,
469
- originTokenAddress: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
470
- paymentId: "test-payment-id",
471
- receiver: "0xa3841994009B4fEabb01ebcC62062F9E56F701CD",
472
- sender: "0xa3841994009B4fEabb01ebcC62062F9E56F701CD",
473
- status: "COMPLETED",
474
- transactions: [
475
- {
476
- chainId: 1,
477
- transactionHash: "0xtest123",
478
- },
479
- ],
480
- type: "buy",
481
- },
482
- ],
483
- type: "EXECUTION_COMPLETE",
484
- });
485
- });
486
-
487
- let [state] = result.current;
488
- expect(state.value).toBe("success");
489
-
490
- // Continue to post-buy transaction
491
- act(() => {
492
- const [, send] = result.current;
493
- send({
494
- type: "CONTINUE_TO_TRANSACTION",
495
- });
496
- });
497
-
498
- [state] = result.current;
499
- expect(state.value).toBe("post-buy-transaction");
500
-
501
- // Reset from post-buy-transaction should go back to init
502
- act(() => {
503
- const [, send] = result.current;
504
- send({
505
- type: "RESET",
506
- });
507
- });
508
-
509
- [state] = result.current;
510
- expect(state.value).toBe("init");
511
- // Context should be reset to initial state with only adapters and mode
512
- expect(state.context.adapters).toBe(adapters);
513
- expect(state.context.mode).toBe("fund_wallet");
514
- expect(state.context.destinationToken).toBeUndefined();
515
- expect(state.context.selectedPaymentMethod).toBeUndefined();
516
- expect(state.context.preparedQuote).toBeUndefined();
517
- expect(state.context.completedStatuses).toBeUndefined();
518
- });
519
- });