thirdweb 5.32.2-nightly-a6ed6e66dae7f2fa239c76a57e93b545e5d8da8d-20240704000330 → 5.32.3

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 (414) hide show
  1. package/dist/cjs/gas/fee-data.js +13 -6
  2. package/dist/cjs/gas/fee-data.js.map +1 -1
  3. package/dist/cjs/pay/buyWithCrypto/getQuote.js +1 -0
  4. package/dist/cjs/pay/buyWithCrypto/getQuote.js.map +1 -1
  5. package/dist/cjs/pay/buyWithFiat/getPostOnRampQuote.js +5 -0
  6. package/dist/cjs/pay/buyWithFiat/getPostOnRampQuote.js.map +1 -1
  7. package/dist/cjs/pay/buyWithFiat/getQuote.js.map +1 -1
  8. package/dist/cjs/react/core/hooks/auth/useSiweAuth.js +4 -1
  9. package/dist/cjs/react/core/hooks/auth/useSiweAuth.js.map +1 -1
  10. package/dist/cjs/react/native/ui/components/Header.js +1 -1
  11. package/dist/cjs/react/native/ui/components/Header.js.map +1 -1
  12. package/dist/cjs/react/native/ui/components/button.js +1 -1
  13. package/dist/cjs/react/native/ui/components/button.js.map +1 -1
  14. package/dist/cjs/react/native/ui/connect/ConnectButton.js +1 -1
  15. package/dist/cjs/react/native/ui/connect/ConnectButton.js.map +1 -1
  16. package/dist/cjs/react/native/ui/connect/ConnectModal.js +7 -8
  17. package/dist/cjs/react/native/ui/connect/ConnectModal.js.map +1 -1
  18. package/dist/cjs/react/native/ui/connect/InAppWalletUI.js +1 -1
  19. package/dist/cjs/react/native/ui/connect/InAppWalletUI.js.map +1 -1
  20. package/dist/cjs/react/native/ui/icons/svgs.js +5 -5
  21. package/dist/cjs/react/web/hooks/transaction/useSendTransaction.js +2 -2
  22. package/dist/cjs/react/web/hooks/transaction/useSendTransaction.js.map +1 -1
  23. package/dist/cjs/react/web/ui/ConnectWallet/ConnectButton.js +12 -2
  24. package/dist/cjs/react/web/ui/ConnectWallet/ConnectButton.js.map +1 -1
  25. package/dist/cjs/react/web/ui/ConnectWallet/Details.js +19 -5
  26. package/dist/cjs/react/web/ui/ConnectWallet/Details.js.map +1 -1
  27. package/dist/cjs/react/web/ui/ConnectWallet/Modal/AllWalletsUI.js +1 -1
  28. package/dist/cjs/react/web/ui/ConnectWallet/Modal/AllWalletsUI.js.map +1 -1
  29. package/dist/cjs/react/web/ui/ConnectWallet/Modal/AnyWalletConnectUI.js +5 -4
  30. package/dist/cjs/react/web/ui/ConnectWallet/Modal/AnyWalletConnectUI.js.map +1 -1
  31. package/dist/cjs/react/web/ui/ConnectWallet/Modal/ConnectEmbed.js +5 -4
  32. package/dist/cjs/react/web/ui/ConnectWallet/Modal/ConnectEmbed.js.map +1 -1
  33. package/dist/cjs/react/web/ui/ConnectWallet/Modal/ConnectModal.js +1 -1
  34. package/dist/cjs/react/web/ui/ConnectWallet/Modal/ConnectModal.js.map +1 -1
  35. package/dist/cjs/react/web/ui/ConnectWallet/Modal/ConnectModalContent.js +11 -8
  36. package/dist/cjs/react/web/ui/ConnectWallet/Modal/ConnectModalContent.js.map +1 -1
  37. package/dist/cjs/react/web/ui/ConnectWallet/Modal/ConnectModalInline.js +1 -1
  38. package/dist/cjs/react/web/ui/ConnectWallet/Modal/ConnectModalInline.js.map +1 -1
  39. package/dist/cjs/react/web/ui/ConnectWallet/Modal/SmartWalletConnectUI.js +12 -12
  40. package/dist/cjs/react/web/ui/ConnectWallet/Modal/SmartWalletConnectUI.js.map +1 -1
  41. package/dist/cjs/react/web/ui/ConnectWallet/WalletEntryButton.js +3 -5
  42. package/dist/cjs/react/web/ui/ConnectWallet/WalletEntryButton.js.map +1 -1
  43. package/dist/cjs/react/web/ui/ConnectWallet/WalletSelector.js +24 -14
  44. package/dist/cjs/react/web/ui/ConnectWallet/WalletSelector.js.map +1 -1
  45. package/dist/cjs/react/web/ui/ConnectWallet/locale/en.js +1 -0
  46. package/dist/cjs/react/web/ui/ConnectWallet/locale/en.js.map +1 -1
  47. package/dist/cjs/react/web/ui/ConnectWallet/locale/es.js +1 -0
  48. package/dist/cjs/react/web/ui/ConnectWallet/locale/es.js.map +1 -1
  49. package/dist/cjs/react/web/ui/ConnectWallet/locale/ja.js +1 -0
  50. package/dist/cjs/react/web/ui/ConnectWallet/locale/ja.js.map +1 -1
  51. package/dist/cjs/react/web/ui/ConnectWallet/locale/tl.js +1 -0
  52. package/dist/cjs/react/web/ui/ConnectWallet/locale/tl.js.map +1 -1
  53. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +144 -87
  54. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
  55. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/ReceiverWalletSelectionScreen.js +49 -0
  56. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/ReceiverWalletSelectionScreen.js.map +1 -0
  57. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/WalletSelectorButton.js +32 -0
  58. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/WalletSelectorButton.js.map +1 -0
  59. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatFlow.js +1 -1
  60. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatFlow.js.map +1 -1
  61. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatStatusScreen.js +1 -1
  62. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatStatusScreen.js.map +1 -1
  63. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.js +6 -1
  64. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.js.map +1 -1
  65. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwap.js +2 -4
  66. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwap.js.map +1 -1
  67. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwapFlow.js +1 -1
  68. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwapFlow.js.map +1 -1
  69. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js +18 -17
  70. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js.map +1 -1
  71. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.js +2 -6
  72. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.js.map +1 -1
  73. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/SwapFlow.js +1 -1
  74. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/SwapFlow.js.map +1 -1
  75. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/WalletSwitcherDrawerContent.js +26 -0
  76. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/WalletSwitcherDrawerContent.js.map +1 -0
  77. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/tx-history/BuyTxHistory.js +12 -1
  78. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/tx-history/BuyTxHistory.js.map +1 -1
  79. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/tx-history/FiatDetailsScreen.js +1 -1
  80. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/tx-history/FiatDetailsScreen.js.map +1 -1
  81. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/tx-history/SwapDetailsScreen.js +8 -1
  82. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/tx-history/SwapDetailsScreen.js.map +1 -1
  83. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/tx-history/TxDetailsScreen.js +1 -1
  84. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/tx-history/TxDetailsScreen.js.map +1 -1
  85. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/types.js +3 -0
  86. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/types.js.map +1 -0
  87. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/usePayerSetup.js +55 -0
  88. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/usePayerSetup.js.map +1 -0
  89. package/dist/cjs/react/web/ui/ConnectWallet/screens/Details/WalletManagerScreen.js +78 -0
  90. package/dist/cjs/react/web/ui/ConnectWallet/screens/Details/WalletManagerScreen.js.map +1 -0
  91. package/dist/cjs/react/web/ui/ConnectWallet/screens/SendFunds.js +3 -4
  92. package/dist/cjs/react/web/ui/ConnectWallet/screens/SendFunds.js.map +1 -1
  93. package/dist/cjs/react/web/ui/ConnectWallet/screens/SignatureScreen.js +1 -1
  94. package/dist/cjs/react/web/ui/ConnectWallet/screens/SignatureScreen.js.map +1 -1
  95. package/dist/cjs/react/web/ui/ConnectWallet/screens/WalletSwitcherConnectionScreen.js +31 -0
  96. package/dist/cjs/react/web/ui/ConnectWallet/screens/WalletSwitcherConnectionScreen.js.map +1 -0
  97. package/dist/cjs/react/web/ui/MediaRenderer/MediaRenderer.js +19 -26
  98. package/dist/cjs/react/web/ui/MediaRenderer/MediaRenderer.js.map +1 -1
  99. package/dist/cjs/react/web/ui/MediaRenderer/ModelViewer.js +2 -2
  100. package/dist/cjs/react/web/ui/MediaRenderer/ModelViewer.js.map +1 -1
  101. package/dist/cjs/react/web/ui/PayEmbed.js +3 -17
  102. package/dist/cjs/react/web/ui/PayEmbed.js.map +1 -1
  103. package/dist/cjs/react/web/ui/components/CopyIcon.js +1 -1
  104. package/dist/cjs/react/web/ui/components/CopyIcon.js.map +1 -1
  105. package/dist/cjs/react/web/ui/components/Drawer.js +51 -17
  106. package/dist/cjs/react/web/ui/components/Drawer.js.map +1 -1
  107. package/dist/cjs/react/web/ui/components/SwitchNetwork.js +1 -3
  108. package/dist/cjs/react/web/ui/components/SwitchNetwork.js.map +1 -1
  109. package/dist/cjs/react/web/ui/components/WalletImage.js +1 -0
  110. package/dist/cjs/react/web/ui/components/WalletImage.js.map +1 -1
  111. package/dist/cjs/react/web/ui/components/buttons.js +5 -1
  112. package/dist/cjs/react/web/ui/components/buttons.js.map +1 -1
  113. package/dist/cjs/react/web/wallets/ecosystem/EcosystemWalletConnectUI.js +2 -1
  114. package/dist/cjs/react/web/wallets/ecosystem/EcosystemWalletConnectUI.js.map +1 -1
  115. package/dist/cjs/react/web/wallets/in-app/InAppWalletConnectUI.js +2 -1
  116. package/dist/cjs/react/web/wallets/in-app/InAppWalletConnectUI.js.map +1 -1
  117. package/dist/cjs/react/web/wallets/in-app/InAppWalletSelectionUI.js +2 -2
  118. package/dist/cjs/react/web/wallets/in-app/InAppWalletSelectionUI.js.map +1 -1
  119. package/dist/cjs/utils/formatNumber.js +4 -1
  120. package/dist/cjs/utils/formatNumber.js.map +1 -1
  121. package/dist/cjs/version.js +1 -1
  122. package/dist/cjs/version.js.map +1 -1
  123. package/dist/esm/gas/fee-data.js +13 -6
  124. package/dist/esm/gas/fee-data.js.map +1 -1
  125. package/dist/esm/pay/buyWithCrypto/getQuote.js +1 -0
  126. package/dist/esm/pay/buyWithCrypto/getQuote.js.map +1 -1
  127. package/dist/esm/pay/buyWithFiat/getPostOnRampQuote.js +5 -0
  128. package/dist/esm/pay/buyWithFiat/getPostOnRampQuote.js.map +1 -1
  129. package/dist/esm/pay/buyWithFiat/getQuote.js.map +1 -1
  130. package/dist/esm/react/core/hooks/auth/useSiweAuth.js +4 -1
  131. package/dist/esm/react/core/hooks/auth/useSiweAuth.js.map +1 -1
  132. package/dist/esm/react/native/ui/components/Header.js +1 -1
  133. package/dist/esm/react/native/ui/components/Header.js.map +1 -1
  134. package/dist/esm/react/native/ui/components/button.js +1 -1
  135. package/dist/esm/react/native/ui/components/button.js.map +1 -1
  136. package/dist/esm/react/native/ui/connect/ConnectButton.js +1 -1
  137. package/dist/esm/react/native/ui/connect/ConnectButton.js.map +1 -1
  138. package/dist/esm/react/native/ui/connect/ConnectModal.js +8 -9
  139. package/dist/esm/react/native/ui/connect/ConnectModal.js.map +1 -1
  140. package/dist/esm/react/native/ui/connect/InAppWalletUI.js +1 -1
  141. package/dist/esm/react/native/ui/connect/InAppWalletUI.js.map +1 -1
  142. package/dist/esm/react/native/ui/icons/svgs.js +5 -5
  143. package/dist/esm/react/web/hooks/transaction/useSendTransaction.js +2 -2
  144. package/dist/esm/react/web/hooks/transaction/useSendTransaction.js.map +1 -1
  145. package/dist/esm/react/web/ui/ConnectWallet/ConnectButton.js +12 -2
  146. package/dist/esm/react/web/ui/ConnectWallet/ConnectButton.js.map +1 -1
  147. package/dist/esm/react/web/ui/ConnectWallet/Details.js +20 -6
  148. package/dist/esm/react/web/ui/ConnectWallet/Details.js.map +1 -1
  149. package/dist/esm/react/web/ui/ConnectWallet/Modal/AllWalletsUI.js +1 -1
  150. package/dist/esm/react/web/ui/ConnectWallet/Modal/AllWalletsUI.js.map +1 -1
  151. package/dist/esm/react/web/ui/ConnectWallet/Modal/AnyWalletConnectUI.js +5 -4
  152. package/dist/esm/react/web/ui/ConnectWallet/Modal/AnyWalletConnectUI.js.map +1 -1
  153. package/dist/esm/react/web/ui/ConnectWallet/Modal/ConnectEmbed.js +2 -2
  154. package/dist/esm/react/web/ui/ConnectWallet/Modal/ConnectEmbed.js.map +1 -1
  155. package/dist/esm/react/web/ui/ConnectWallet/Modal/ConnectModal.js +1 -1
  156. package/dist/esm/react/web/ui/ConnectWallet/Modal/ConnectModal.js.map +1 -1
  157. package/dist/esm/react/web/ui/ConnectWallet/Modal/ConnectModalContent.js +11 -8
  158. package/dist/esm/react/web/ui/ConnectWallet/Modal/ConnectModalContent.js.map +1 -1
  159. package/dist/esm/react/web/ui/ConnectWallet/Modal/ConnectModalInline.js +1 -1
  160. package/dist/esm/react/web/ui/ConnectWallet/Modal/ConnectModalInline.js.map +1 -1
  161. package/dist/esm/react/web/ui/ConnectWallet/Modal/SmartWalletConnectUI.js +12 -12
  162. package/dist/esm/react/web/ui/ConnectWallet/Modal/SmartWalletConnectUI.js.map +1 -1
  163. package/dist/esm/react/web/ui/ConnectWallet/WalletEntryButton.js +2 -4
  164. package/dist/esm/react/web/ui/ConnectWallet/WalletEntryButton.js.map +1 -1
  165. package/dist/esm/react/web/ui/ConnectWallet/WalletSelector.js +25 -15
  166. package/dist/esm/react/web/ui/ConnectWallet/WalletSelector.js.map +1 -1
  167. package/dist/esm/react/web/ui/ConnectWallet/locale/en.js +1 -0
  168. package/dist/esm/react/web/ui/ConnectWallet/locale/en.js.map +1 -1
  169. package/dist/esm/react/web/ui/ConnectWallet/locale/es.js +1 -0
  170. package/dist/esm/react/web/ui/ConnectWallet/locale/es.js.map +1 -1
  171. package/dist/esm/react/web/ui/ConnectWallet/locale/ja.js +1 -0
  172. package/dist/esm/react/web/ui/ConnectWallet/locale/ja.js.map +1 -1
  173. package/dist/esm/react/web/ui/ConnectWallet/locale/tl.js +1 -0
  174. package/dist/esm/react/web/ui/ConnectWallet/locale/tl.js.map +1 -1
  175. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +145 -88
  176. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
  177. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/ReceiverWalletSelectionScreen.js +46 -0
  178. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/ReceiverWalletSelectionScreen.js.map +1 -0
  179. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/WalletSelectorButton.js +29 -0
  180. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/WalletSelectorButton.js.map +1 -0
  181. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatFlow.js +1 -1
  182. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatFlow.js.map +1 -1
  183. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatStatusScreen.js +1 -1
  184. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatStatusScreen.js.map +1 -1
  185. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.js +6 -1
  186. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.js.map +1 -1
  187. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwap.js +2 -4
  188. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwap.js.map +1 -1
  189. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwapFlow.js +1 -1
  190. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwapFlow.js.map +1 -1
  191. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js +18 -17
  192. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js.map +1 -1
  193. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.js +3 -7
  194. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.js.map +1 -1
  195. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/SwapFlow.js +1 -1
  196. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/SwapFlow.js.map +1 -1
  197. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/WalletSwitcherDrawerContent.js +23 -0
  198. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/WalletSwitcherDrawerContent.js.map +1 -0
  199. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/tx-history/BuyTxHistory.js +12 -1
  200. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/tx-history/BuyTxHistory.js.map +1 -1
  201. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/tx-history/FiatDetailsScreen.js +1 -1
  202. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/tx-history/FiatDetailsScreen.js.map +1 -1
  203. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/tx-history/SwapDetailsScreen.js +8 -1
  204. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/tx-history/SwapDetailsScreen.js.map +1 -1
  205. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/tx-history/TxDetailsScreen.js +1 -1
  206. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/tx-history/TxDetailsScreen.js.map +1 -1
  207. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/types.js +2 -0
  208. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/types.js.map +1 -0
  209. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/usePayerSetup.js +52 -0
  210. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/usePayerSetup.js.map +1 -0
  211. package/dist/esm/react/web/ui/ConnectWallet/screens/Details/WalletManagerScreen.js +75 -0
  212. package/dist/esm/react/web/ui/ConnectWallet/screens/Details/WalletManagerScreen.js.map +1 -0
  213. package/dist/esm/react/web/ui/ConnectWallet/screens/SendFunds.js +4 -5
  214. package/dist/esm/react/web/ui/ConnectWallet/screens/SendFunds.js.map +1 -1
  215. package/dist/esm/react/web/ui/ConnectWallet/screens/SignatureScreen.js +1 -1
  216. package/dist/esm/react/web/ui/ConnectWallet/screens/SignatureScreen.js.map +1 -1
  217. package/dist/esm/react/web/ui/ConnectWallet/screens/WalletSwitcherConnectionScreen.js +28 -0
  218. package/dist/esm/react/web/ui/ConnectWallet/screens/WalletSwitcherConnectionScreen.js.map +1 -0
  219. package/dist/esm/react/web/ui/MediaRenderer/MediaRenderer.js +19 -26
  220. package/dist/esm/react/web/ui/MediaRenderer/MediaRenderer.js.map +1 -1
  221. package/dist/esm/react/web/ui/MediaRenderer/ModelViewer.js +2 -2
  222. package/dist/esm/react/web/ui/MediaRenderer/ModelViewer.js.map +1 -1
  223. package/dist/esm/react/web/ui/PayEmbed.js +3 -17
  224. package/dist/esm/react/web/ui/PayEmbed.js.map +1 -1
  225. package/dist/esm/react/web/ui/components/CopyIcon.js +1 -1
  226. package/dist/esm/react/web/ui/components/CopyIcon.js.map +1 -1
  227. package/dist/esm/react/web/ui/components/Drawer.js +54 -20
  228. package/dist/esm/react/web/ui/components/Drawer.js.map +1 -1
  229. package/dist/esm/react/web/ui/components/SwitchNetwork.js +1 -3
  230. package/dist/esm/react/web/ui/components/SwitchNetwork.js.map +1 -1
  231. package/dist/esm/react/web/ui/components/WalletImage.js +1 -0
  232. package/dist/esm/react/web/ui/components/WalletImage.js.map +1 -1
  233. package/dist/esm/react/web/ui/components/buttons.js +5 -1
  234. package/dist/esm/react/web/ui/components/buttons.js.map +1 -1
  235. package/dist/esm/react/web/wallets/ecosystem/EcosystemWalletConnectUI.js +2 -1
  236. package/dist/esm/react/web/wallets/ecosystem/EcosystemWalletConnectUI.js.map +1 -1
  237. package/dist/esm/react/web/wallets/in-app/InAppWalletConnectUI.js +2 -1
  238. package/dist/esm/react/web/wallets/in-app/InAppWalletConnectUI.js.map +1 -1
  239. package/dist/esm/react/web/wallets/in-app/InAppWalletSelectionUI.js +2 -2
  240. package/dist/esm/react/web/wallets/in-app/InAppWalletSelectionUI.js.map +1 -1
  241. package/dist/esm/utils/formatNumber.js +4 -1
  242. package/dist/esm/utils/formatNumber.js.map +1 -1
  243. package/dist/esm/version.js +1 -1
  244. package/dist/esm/version.js.map +1 -1
  245. package/dist/types/gas/fee-data.d.ts.map +1 -1
  246. package/dist/types/pay/buyWithCrypto/getQuote.d.ts +5 -1
  247. package/dist/types/pay/buyWithCrypto/getQuote.d.ts.map +1 -1
  248. package/dist/types/pay/buyWithFiat/getPostOnRampQuote.d.ts.map +1 -1
  249. package/dist/types/pay/buyWithFiat/getQuote.d.ts +4 -0
  250. package/dist/types/pay/buyWithFiat/getQuote.d.ts.map +1 -1
  251. package/dist/types/react/core/hooks/auth/useSiweAuth.d.ts.map +1 -1
  252. package/dist/types/react/native/ui/components/Header.d.ts +1 -1
  253. package/dist/types/react/native/ui/components/Header.d.ts.map +1 -1
  254. package/dist/types/react/native/ui/components/button.d.ts.map +1 -1
  255. package/dist/types/react/native/ui/connect/ConnectModal.d.ts.map +1 -1
  256. package/dist/types/react/native/ui/connect/InAppWalletUI.d.ts.map +1 -1
  257. package/dist/types/react/native/ui/icons/svgs.d.ts +3 -3
  258. package/dist/types/react/native/ui/icons/svgs.d.ts.map +1 -1
  259. package/dist/types/react/web/ui/ConnectWallet/Details.d.ts +21 -1
  260. package/dist/types/react/web/ui/ConnectWallet/Details.d.ts.map +1 -1
  261. package/dist/types/react/web/ui/ConnectWallet/Modal/AllWalletsUI.d.ts.map +1 -1
  262. package/dist/types/react/web/ui/ConnectWallet/Modal/AnyWalletConnectUI.d.ts +0 -2
  263. package/dist/types/react/web/ui/ConnectWallet/Modal/AnyWalletConnectUI.d.ts.map +1 -1
  264. package/dist/types/react/web/ui/ConnectWallet/Modal/ConnectEmbed.d.ts +6 -0
  265. package/dist/types/react/web/ui/ConnectWallet/Modal/ConnectEmbed.d.ts.map +1 -1
  266. package/dist/types/react/web/ui/ConnectWallet/Modal/ConnectModal.d.ts.map +1 -1
  267. package/dist/types/react/web/ui/ConnectWallet/Modal/ConnectModalContent.d.ts +7 -3
  268. package/dist/types/react/web/ui/ConnectWallet/Modal/ConnectModalContent.d.ts.map +1 -1
  269. package/dist/types/react/web/ui/ConnectWallet/Modal/SmartWalletConnectUI.d.ts +0 -2
  270. package/dist/types/react/web/ui/ConnectWallet/Modal/SmartWalletConnectUI.d.ts.map +1 -1
  271. package/dist/types/react/web/ui/ConnectWallet/WalletEntryButton.d.ts +3 -1
  272. package/dist/types/react/web/ui/ConnectWallet/WalletEntryButton.d.ts.map +1 -1
  273. package/dist/types/react/web/ui/ConnectWallet/WalletSelector.d.ts +7 -5
  274. package/dist/types/react/web/ui/ConnectWallet/WalletSelector.d.ts.map +1 -1
  275. package/dist/types/react/web/ui/ConnectWallet/locale/en.d.ts.map +1 -1
  276. package/dist/types/react/web/ui/ConnectWallet/locale/es.d.ts.map +1 -1
  277. package/dist/types/react/web/ui/ConnectWallet/locale/ja.d.ts.map +1 -1
  278. package/dist/types/react/web/ui/ConnectWallet/locale/tl.d.ts.map +1 -1
  279. package/dist/types/react/web/ui/ConnectWallet/locale/types.d.ts +2 -0
  280. package/dist/types/react/web/ui/ConnectWallet/locale/types.d.ts.map +1 -1
  281. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.d.ts +5 -4
  282. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.d.ts.map +1 -1
  283. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/ReceiverWalletSelectionScreen.d.ts +8 -0
  284. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/ReceiverWalletSelectionScreen.d.ts.map +1 -0
  285. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/WalletSelectorButton.d.ts +13 -0
  286. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/WalletSelectorButton.d.ts.map +1 -0
  287. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatFlow.d.ts +2 -0
  288. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatFlow.d.ts.map +1 -1
  289. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.d.ts +2 -0
  290. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.d.ts.map +1 -1
  291. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwap.d.ts +2 -0
  292. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwap.d.ts.map +1 -1
  293. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwapFlow.d.ts +2 -0
  294. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwapFlow.d.ts.map +1 -1
  295. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/types.d.ts +12 -3
  296. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/types.d.ts.map +1 -1
  297. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.d.ts +2 -0
  298. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.d.ts.map +1 -1
  299. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.d.ts +2 -0
  300. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.d.ts.map +1 -1
  301. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/SwapFlow.d.ts +2 -2
  302. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/SwapFlow.d.ts.map +1 -1
  303. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/WalletSwitcherDrawerContent.d.ts +12 -0
  304. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/WalletSwitcherDrawerContent.d.ts.map +1 -0
  305. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/tx-history/BuyTxHistory.d.ts.map +1 -1
  306. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/tx-history/FiatDetailsScreen.d.ts +2 -0
  307. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/tx-history/FiatDetailsScreen.d.ts.map +1 -1
  308. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/tx-history/SwapDetailsScreen.d.ts.map +1 -1
  309. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/tx-history/TxDetailsScreen.d.ts +2 -0
  310. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/tx-history/TxDetailsScreen.d.ts.map +1 -1
  311. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/types.d.ts +9 -0
  312. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/types.d.ts.map +1 -0
  313. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/usePayerSetup.d.ts +6 -0
  314. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/usePayerSetup.d.ts.map +1 -0
  315. package/dist/types/react/web/ui/ConnectWallet/screens/Details/WalletManagerScreen.d.ts +9 -0
  316. package/dist/types/react/web/ui/ConnectWallet/screens/Details/WalletManagerScreen.d.ts.map +1 -0
  317. package/dist/types/react/web/ui/ConnectWallet/screens/SignatureScreen.d.ts +1 -1
  318. package/dist/types/react/web/ui/ConnectWallet/screens/SignatureScreen.d.ts.map +1 -1
  319. package/dist/types/react/web/ui/ConnectWallet/screens/WalletSwitcherConnectionScreen.d.ts +25 -0
  320. package/dist/types/react/web/ui/ConnectWallet/screens/WalletSwitcherConnectionScreen.d.ts.map +1 -0
  321. package/dist/types/react/web/ui/ConnectWallet/screens/types.d.ts +1 -1
  322. package/dist/types/react/web/ui/ConnectWallet/screens/types.d.ts.map +1 -1
  323. package/dist/types/react/web/ui/MediaRenderer/MediaRenderer.d.ts.map +1 -1
  324. package/dist/types/react/web/ui/MediaRenderer/ModelViewer.d.ts +1 -1
  325. package/dist/types/react/web/ui/MediaRenderer/ModelViewer.d.ts.map +1 -1
  326. package/dist/types/react/web/ui/MediaRenderer/types.d.ts +0 -2
  327. package/dist/types/react/web/ui/MediaRenderer/types.d.ts.map +1 -1
  328. package/dist/types/react/web/ui/PayEmbed.d.ts +1 -1
  329. package/dist/types/react/web/ui/PayEmbed.d.ts.map +1 -1
  330. package/dist/types/react/web/ui/components/CopyIcon.d.ts.map +1 -1
  331. package/dist/types/react/web/ui/components/Drawer.d.ts +2 -1
  332. package/dist/types/react/web/ui/components/Drawer.d.ts.map +1 -1
  333. package/dist/types/react/web/ui/components/SwitchNetwork.d.ts +1 -2
  334. package/dist/types/react/web/ui/components/SwitchNetwork.d.ts.map +1 -1
  335. package/dist/types/react/web/ui/components/WalletImage.d.ts +1 -0
  336. package/dist/types/react/web/ui/components/WalletImage.d.ts.map +1 -1
  337. package/dist/types/react/web/ui/components/buttons.d.ts.map +1 -1
  338. package/dist/types/react/web/wallets/ecosystem/EcosystemWalletConnectUI.d.ts +0 -2
  339. package/dist/types/react/web/wallets/ecosystem/EcosystemWalletConnectUI.d.ts.map +1 -1
  340. package/dist/types/react/web/wallets/in-app/InAppWalletConnectUI.d.ts +0 -2
  341. package/dist/types/react/web/wallets/in-app/InAppWalletConnectUI.d.ts.map +1 -1
  342. package/dist/types/react/web/wallets/in-app/InAppWalletSelectionUI.d.ts +0 -2
  343. package/dist/types/react/web/wallets/in-app/InAppWalletSelectionUI.d.ts.map +1 -1
  344. package/dist/types/utils/formatNumber.d.ts.map +1 -1
  345. package/dist/types/version.d.ts +1 -1
  346. package/dist/types/version.d.ts.map +1 -1
  347. package/package.json +1 -1
  348. package/src/gas/fee-data.ts +14 -6
  349. package/src/pay/buyWithCrypto/getQuote.ts +7 -3
  350. package/src/pay/buyWithFiat/getPostOnRampQuote.ts +5 -0
  351. package/src/pay/buyWithFiat/getQuote.ts +4 -0
  352. package/src/react/core/hooks/auth/useSiweAuth.ts +4 -1
  353. package/src/react/native/ui/components/Header.tsx +2 -2
  354. package/src/react/native/ui/components/button.tsx +6 -1
  355. package/src/react/native/ui/connect/ConnectButton.tsx +1 -1
  356. package/src/react/native/ui/connect/ConnectModal.tsx +9 -4
  357. package/src/react/native/ui/connect/InAppWalletUI.tsx +24 -20
  358. package/src/react/native/ui/icons/svgs.ts +5 -5
  359. package/src/react/web/hooks/transaction/useSendTransaction.tsx +30 -17
  360. package/src/react/web/ui/ConnectWallet/ConnectButton.tsx +12 -1
  361. package/src/react/web/ui/ConnectWallet/Details.tsx +73 -2
  362. package/src/react/web/ui/ConnectWallet/Modal/AllWalletsUI.tsx +2 -0
  363. package/src/react/web/ui/ConnectWallet/Modal/AnyWalletConnectUI.tsx +3 -6
  364. package/src/react/web/ui/ConnectWallet/Modal/ConnectEmbed.tsx +3 -2
  365. package/src/react/web/ui/ConnectWallet/Modal/ConnectModal.tsx +2 -1
  366. package/src/react/web/ui/ConnectWallet/Modal/ConnectModalContent.tsx +17 -11
  367. package/src/react/web/ui/ConnectWallet/Modal/ConnectModalInline.tsx +2 -1
  368. package/src/react/web/ui/ConnectWallet/Modal/SmartWalletConnectUI.tsx +14 -15
  369. package/src/react/web/ui/ConnectWallet/WalletEntryButton.tsx +12 -13
  370. package/src/react/web/ui/ConnectWallet/WalletSelector.tsx +35 -20
  371. package/src/react/web/ui/ConnectWallet/locale/en.ts +1 -0
  372. package/src/react/web/ui/ConnectWallet/locale/es.ts +1 -0
  373. package/src/react/web/ui/ConnectWallet/locale/ja.ts +1 -0
  374. package/src/react/web/ui/ConnectWallet/locale/tl.ts +1 -0
  375. package/src/react/web/ui/ConnectWallet/locale/types.ts +3 -0
  376. package/src/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.tsx +435 -266
  377. package/src/react/web/ui/ConnectWallet/screens/Buy/ReceiverWalletSelectionScreen.tsx +118 -0
  378. package/src/react/web/ui/ConnectWallet/screens/Buy/WalletSelectorButton.tsx +86 -0
  379. package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatFlow.tsx +3 -0
  380. package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatStatusScreen.tsx +2 -0
  381. package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatTxDetailsTable.tsx +23 -0
  382. package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwap.tsx +4 -5
  383. package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwapFlow.tsx +3 -0
  384. package/src/react/web/ui/ConnectWallet/screens/Buy/main/types.ts +15 -4
  385. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.tsx +43 -32
  386. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.tsx +4 -7
  387. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/SwapFlow.tsx +3 -2
  388. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/WalletSwitcherDrawerContent.tsx +66 -0
  389. package/src/react/web/ui/ConnectWallet/screens/Buy/tx-history/BuyTxHistory.tsx +16 -0
  390. package/src/react/web/ui/ConnectWallet/screens/Buy/tx-history/FiatDetailsScreen.tsx +3 -0
  391. package/src/react/web/ui/ConnectWallet/screens/Buy/tx-history/SwapDetailsScreen.tsx +27 -0
  392. package/src/react/web/ui/ConnectWallet/screens/Buy/tx-history/TxDetailsScreen.tsx +3 -0
  393. package/src/react/web/ui/ConnectWallet/screens/Buy/types.ts +9 -0
  394. package/src/react/web/ui/ConnectWallet/screens/Buy/usePayerSetup.tsx +63 -0
  395. package/src/react/web/ui/ConnectWallet/screens/Details/WalletManagerScreen.tsx +203 -0
  396. package/src/react/web/ui/ConnectWallet/screens/SendFunds.tsx +1 -13
  397. package/src/react/web/ui/ConnectWallet/screens/SignatureScreen.tsx +2 -2
  398. package/src/react/web/ui/ConnectWallet/screens/WalletSwitcherConnectionScreen.tsx +83 -0
  399. package/src/react/web/ui/ConnectWallet/screens/types.ts +2 -1
  400. package/src/react/web/ui/MediaRenderer/MediaRenderer.tsx +151 -111
  401. package/src/react/web/ui/MediaRenderer/ModelViewer.tsx +5 -5
  402. package/src/react/web/ui/MediaRenderer/types.ts +0 -3
  403. package/src/react/web/ui/PayEmbed.tsx +7 -29
  404. package/src/react/web/ui/components/CopyIcon.tsx +5 -1
  405. package/src/react/web/ui/components/Drawer.tsx +91 -40
  406. package/src/react/web/ui/components/SwitchNetwork.tsx +2 -5
  407. package/src/react/web/ui/components/WalletImage.tsx +2 -0
  408. package/src/react/web/ui/components/buttons.tsx +5 -1
  409. package/src/react/web/wallets/ecosystem/EcosystemWalletConnectUI.tsx +2 -3
  410. package/src/react/web/wallets/in-app/InAppWalletConnectUI.tsx +2 -3
  411. package/src/react/web/wallets/in-app/InAppWalletSelectionUI.tsx +3 -3
  412. package/src/utils/format-number.test.ts +23 -8
  413. package/src/utils/formatNumber.ts +4 -1
  414. package/src/version.ts +1 -1
@@ -0,0 +1,66 @@
1
+ import { PlusIcon } from "@radix-ui/react-icons";
2
+ import type { ThirdwebClient } from "../../../../../../../client/client.js";
3
+ import type { Wallet } from "../../../../../../../wallets/interfaces/wallet.js";
4
+ import { iconSize } from "../../../../../../core/design-system/index.js";
5
+ import { useConnectedWallets } from "../../../../../hooks/wallets/useConnectedWallets.js";
6
+ import { Spacer } from "../../../../components/Spacer.js";
7
+ import { Container } from "../../../../components/basic.js";
8
+ import { Button } from "../../../../components/buttons.js";
9
+ import { Text } from "../../../../components/text.js";
10
+ import { WalletSelectorButton } from "../WalletSelectorButton.js";
11
+
12
+ export function WalletSwitcherDrawerContent(props: {
13
+ client: ThirdwebClient;
14
+ showAllWallets: boolean;
15
+ wallets: Wallet[] | undefined;
16
+ onSelect: (wallet: Wallet) => void;
17
+ onBack: () => void;
18
+ onConnect: () => void;
19
+ selectedAddress: string;
20
+ }) {
21
+ const connectedWallets = useConnectedWallets();
22
+
23
+ // if all wallets are connected and showAll wallets is disabled, hide the connect button
24
+ const hideConnectButton =
25
+ !props.showAllWallets &&
26
+ props.wallets?.every((w) => connectedWallets.includes(w));
27
+
28
+ return (
29
+ <Container>
30
+ <Text size="lg" color="primaryText">
31
+ Pay with
32
+ </Text>
33
+
34
+ <Spacer y="lg" />
35
+
36
+ <Container flex="column" gap="xs">
37
+ {connectedWallets.map((w) => {
38
+ const address = w.getAccount()?.address;
39
+ return (
40
+ <WalletSelectorButton
41
+ key={w.id}
42
+ walletId={w.id}
43
+ client={props.client}
44
+ address={address || ""}
45
+ onClick={() => {
46
+ props.onSelect(w);
47
+ props.onBack();
48
+ }}
49
+ disableChevron
50
+ checked={address === props.selectedAddress}
51
+ />
52
+ );
53
+ })}
54
+ </Container>
55
+
56
+ <Spacer y="xxl" />
57
+
58
+ {!hideConnectButton && (
59
+ <Button variant="accent" fullWidth onClick={props.onConnect} gap="xs">
60
+ <PlusIcon width={iconSize.sm} height={iconSize.sm} />
61
+ Connect Wallet
62
+ </Button>
63
+ )}
64
+ </Container>
65
+ );
66
+ }
@@ -13,12 +13,15 @@ import {
13
13
  } from "../../../../../../core/design-system/index.js";
14
14
  import { useChainExplorers } from "../../../../../../core/hooks/others/useChainQuery.js";
15
15
  import { useActiveAccount } from "../../../../../hooks/wallets/useActiveAccount.js";
16
+ import { useActiveWallet } from "../../../../../hooks/wallets/useActiveWallet.js";
16
17
  import { useActiveWalletChain } from "../../../../../hooks/wallets/useActiveWalletChain.js";
18
+ import { LoadingScreen } from "../../../../../wallets/shared/LoadingScreen.js";
17
19
  import { Skeleton } from "../../../../components/Skeleton.js";
18
20
  import { Spinner } from "../../../../components/Spinner.js";
19
21
  import { Container, Line, ModalHeader } from "../../../../components/basic.js";
20
22
  import { Button, ButtonLink } from "../../../../components/buttons.js";
21
23
  import { Text } from "../../../../components/text.js";
24
+ import type { PayerInfo } from "../types.js";
22
25
  import {
23
26
  BuyTxHistoryButton,
24
27
  BuyTxHistoryButtonHeight,
@@ -40,6 +43,18 @@ export function BuyTxHistory(props: {
40
43
  isEmbed: boolean;
41
44
  }) {
42
45
  const [selectedTx, setSelectedTx] = useState<TxStatusInfo | null>(null);
46
+ const activeChain = useActiveWalletChain();
47
+ const activeWallet = useActiveWallet();
48
+ const activeAccount = useActiveAccount();
49
+
50
+ const payer: PayerInfo | undefined =
51
+ activeChain && activeAccount && activeWallet
52
+ ? { chain: activeChain, account: activeAccount, wallet: activeWallet }
53
+ : undefined;
54
+
55
+ if (!payer) {
56
+ return <LoadingScreen />;
57
+ }
43
58
 
44
59
  if (selectedTx) {
45
60
  return (
@@ -50,6 +65,7 @@ export function BuyTxHistory(props: {
50
65
  onDone={props.onDone}
51
66
  isBuyForTx={props.isBuyForTx}
52
67
  isEmbed={props.isEmbed}
68
+ payer={payer}
53
69
  />
54
70
  );
55
71
  }
@@ -8,6 +8,7 @@ import { useBuyWithFiatStatus } from "../../../../../../core/hooks/pay/useBuyWit
8
8
  import { Container, Line, ModalHeader } from "../../../../components/basic.js";
9
9
  import { OnRampTxDetailsTable } from "../fiat/FiatTxDetailsTable.js";
10
10
  import { PostOnRampSwapFlow } from "../fiat/PostOnRampSwapFlow.js";
11
+ import type { PayerInfo } from "../types.js";
11
12
  import { getBuyWithFiatStatusMeta } from "./statusMeta.js";
12
13
 
13
14
  export function FiatDetailsScreen(props: {
@@ -17,6 +18,7 @@ export function FiatDetailsScreen(props: {
17
18
  onDone: () => void;
18
19
  isBuyForTx: boolean;
19
20
  isEmbed: boolean;
21
+ payer: PayerInfo;
20
22
  }) {
21
23
  const initialStatus = props.status;
22
24
  const [stopPolling, setStopPolling] = useState(false);
@@ -69,6 +71,7 @@ export function FiatDetailsScreen(props: {
69
71
  onSwapFlowStarted={() => {
70
72
  setStopPolling(true);
71
73
  }}
74
+ payer={props.payer}
72
75
  />
73
76
  );
74
77
  }
@@ -3,6 +3,7 @@ import { getCachedChain } from "../../../../../../../chains/utils.js";
3
3
  import type { ThirdwebClient } from "../../../../../../../client/client.js";
4
4
  import type { BuyWithCryptoQuote } from "../../../../../../../pay/buyWithCrypto/getQuote.js";
5
5
  import type { ValidBuyWithCryptoStatus } from "../../../../../../../pay/buyWithCrypto/getStatus.js";
6
+ import { shortenAddress } from "../../../../../../../utils/address.js";
6
7
  import {
7
8
  fontSize,
8
9
  iconSize,
@@ -79,6 +80,8 @@ type SwapTxDetailsData = {
79
80
  destinationTxHash?: string;
80
81
  isPartialSuccess: boolean;
81
82
  estimatedDuration: number;
83
+ fromAddress: string;
84
+ toAddress: string;
82
85
  };
83
86
 
84
87
  export function SwapTxDetailsTable(
@@ -132,6 +135,8 @@ export function SwapTxDetailsTable(
132
135
  isPartialSuccess,
133
136
  destinationTxHash: status.destination?.transactionHash,
134
137
  sourceTxHash: status.source?.transactionHash,
138
+ fromAddress: status.fromAddress,
139
+ toAddress: status.toAddress,
135
140
  };
136
141
  } else {
137
142
  const quote = props.quote;
@@ -150,6 +155,8 @@ export function SwapTxDetailsTable(
150
155
  },
151
156
  isPartialSuccess: false,
152
157
  estimatedDuration: quote.swapDetails.estimated.durationSeconds || 0,
158
+ fromAddress: quote.swapDetails.fromAddress,
159
+ toAddress: quote.swapDetails.toAddress,
153
160
  };
154
161
  }
155
162
 
@@ -270,6 +277,26 @@ export function SwapTxDetailsTable(
270
277
  </>
271
278
  )}
272
279
 
280
+ {uiData.fromAddress.toLowerCase() !== uiData.toAddress.toLowerCase() && (
281
+ <>
282
+ {lineSpacer}
283
+ <Container
284
+ flex="row"
285
+ center="y"
286
+ style={{
287
+ justifyContent: "space-between",
288
+ }}
289
+ >
290
+ <Text>Send to</Text>
291
+ <Container flex="row" gap="xs" center="y">
292
+ <Text color="primaryText">
293
+ {shortenAddress(uiData.toAddress)}
294
+ </Text>
295
+ </Container>
296
+ </Container>
297
+ </>
298
+ )}
299
+
273
300
  {lineSpacer}
274
301
 
275
302
  {/* source chain Tx hash link */}
@@ -1,4 +1,5 @@
1
1
  import type { ThirdwebClient } from "../../../../../../../client/client.js";
2
+ import type { PayerInfo } from "../types.js";
2
3
  import { FiatDetailsScreen } from "./FiatDetailsScreen.js";
3
4
  import { SwapDetailsScreen } from "./SwapDetailsScreen.js";
4
5
  import type { TxStatusInfo } from "./useBuyTransactionsToShow.js";
@@ -10,6 +11,7 @@ export function TxDetailsScreen(props: {
10
11
  onDone: () => void;
11
12
  isBuyForTx: boolean;
12
13
  isEmbed: boolean;
14
+ payer: PayerInfo;
13
15
  }) {
14
16
  const { statusInfo } = props;
15
17
 
@@ -32,6 +34,7 @@ export function TxDetailsScreen(props: {
32
34
  onDone={props.onDone}
33
35
  isBuyForTx={props.isBuyForTx}
34
36
  isEmbed={props.isEmbed}
37
+ payer={props.payer}
35
38
  />
36
39
  );
37
40
  }
@@ -0,0 +1,9 @@
1
+ import type { Chain } from "../../../../../../chains/types.js";
2
+ import type { Wallet } from "../../../../../../wallets/interfaces/wallet.js";
3
+ import type { Account } from "../../../../../../wallets/interfaces/wallet.js";
4
+
5
+ export type PayerInfo = {
6
+ wallet: Wallet;
7
+ chain: Chain;
8
+ account: Account;
9
+ };
@@ -0,0 +1,63 @@
1
+ import { useEffect, useState } from "react";
2
+ import { useActiveAccount } from "../../../../hooks/wallets/useActiveAccount.js";
3
+ import { useActiveWallet } from "../../../../hooks/wallets/useActiveWallet.js";
4
+ import { useActiveWalletChain } from "../../../../hooks/wallets/useActiveWalletChain.js";
5
+ import type { PayerInfo } from "./types.js";
6
+
7
+ export function usePayerSetup() {
8
+ const wallet = useActiveWallet();
9
+ const account = useActiveAccount();
10
+ const activeChain = useActiveWalletChain();
11
+
12
+ const [_payer, setPayer] = useState<PayerInfo | undefined>();
13
+
14
+ useEffect(() => {
15
+ const wallet = _payer?.wallet;
16
+
17
+ function update() {
18
+ if (!wallet) {
19
+ setPayer(undefined);
20
+ return;
21
+ }
22
+
23
+ const account = wallet.getAccount();
24
+ const chain = wallet.getChain();
25
+ if (account && chain) {
26
+ console.log("updated to", account, chain);
27
+
28
+ setPayer({
29
+ account,
30
+ chain,
31
+ wallet,
32
+ });
33
+ } else {
34
+ setPayer(undefined);
35
+ }
36
+ }
37
+
38
+ if (wallet) {
39
+ const unsubChainChanged = wallet.subscribe("chainChanged", update);
40
+ const unsubAccountChanged = wallet.subscribe("accountChanged", update);
41
+ return () => {
42
+ unsubChainChanged();
43
+ unsubAccountChanged();
44
+ };
45
+ }
46
+
47
+ return undefined;
48
+ }, [_payer]);
49
+
50
+ const initialPayer =
51
+ account && activeChain && wallet
52
+ ? { account, chain: activeChain, wallet }
53
+ : undefined;
54
+
55
+ // return the payer state if its set
56
+ // otherwise return the active wallet as payer
57
+ const payer: PayerInfo | undefined = _payer || initialPayer;
58
+
59
+ return {
60
+ payer,
61
+ setPayer,
62
+ };
63
+ }
@@ -0,0 +1,203 @@
1
+ import { CheckIcon, CrossCircledIcon, PlusIcon } from "@radix-ui/react-icons";
2
+ import { useState } from "react";
3
+ import type { Chain } from "../../../../../../chains/types.js";
4
+ import type { ThirdwebClient } from "../../../../../../client/client.js";
5
+ import { shortenAddress } from "../../../../../../utils/address.js";
6
+ import type {
7
+ Account,
8
+ Wallet,
9
+ } from "../../../../../../wallets/interfaces/wallet.js";
10
+ import { useCustomTheme } from "../../../../../core/design-system/CustomThemeProvider.js";
11
+ import {
12
+ fontSize,
13
+ iconSize,
14
+ spacing,
15
+ } from "../../../../../core/design-system/index.js";
16
+ import { useWalletBalance } from "../../../../../core/hooks/others/useWalletBalance.js";
17
+ import { useActiveWallet } from "../../../../hooks/wallets/useActiveWallet.js";
18
+ import { useConnectedWallets } from "../../../../hooks/wallets/useConnectedWallets.js";
19
+ import { useDisconnect } from "../../../../hooks/wallets/useDisconnect.js";
20
+ import { useSetActiveWallet } from "../../../../hooks/wallets/useSetActiveWallet.js";
21
+ import { Skeleton } from "../../../components/Skeleton.js";
22
+ import { Spacer } from "../../../components/Spacer.js";
23
+ import { ToolTip } from "../../../components/Tooltip.js";
24
+ import { WalletImage } from "../../../components/WalletImage.js";
25
+ import { Container, Line, ModalHeader } from "../../../components/basic.js";
26
+ import { Button, IconButton } from "../../../components/buttons.js";
27
+ import { Text } from "../../../components/text.js";
28
+ import { WalletButtonEl } from "../../WalletEntryButton.js";
29
+ import {
30
+ WalletSwitcherConnectionScreen,
31
+ type WalletSwitcherConnectionScreenProps,
32
+ } from "../WalletSwitcherConnectionScreen.js";
33
+ import { formatTokenBalance } from "../formatTokenBalance.js";
34
+
35
+ export function WalletManagerScreen(
36
+ props: Omit<
37
+ WalletSwitcherConnectionScreenProps,
38
+ "onSelect" | "isEmbed" | "selectedWallet"
39
+ > & {
40
+ activeAccount: Account;
41
+ activeWallet: Wallet;
42
+ activeChain: Chain;
43
+ },
44
+ ) {
45
+ const [screen, setScreen] = useState<"wallets" | "connect">("wallets");
46
+ const connectedWallets = useConnectedWallets();
47
+ const setActive = useSetActiveWallet();
48
+
49
+ // if all wallets are connected and showAll wallets is disabled, hide the connect button
50
+ const hideConnectButton =
51
+ !props.showAllWallets &&
52
+ props.wallets?.every((w) => connectedWallets.includes(w));
53
+
54
+ if (screen === "connect") {
55
+ return (
56
+ <WalletSwitcherConnectionScreen
57
+ {...props}
58
+ isEmbed={false}
59
+ onSelect={(w) => {
60
+ setActive(w);
61
+ props.onBack();
62
+ }}
63
+ />
64
+ );
65
+ }
66
+
67
+ return (
68
+ <Container>
69
+ <Container p="lg">
70
+ <ModalHeader title="Wallets" onBack={props.onBack} />
71
+ </Container>
72
+
73
+ <Line />
74
+ <Spacer y="md" />
75
+
76
+ <Container
77
+ px="md"
78
+ style={{
79
+ minHeight: "150px",
80
+ }}
81
+ >
82
+ <Container flex="column" gap="xs">
83
+ {connectedWallets.map((w) => {
84
+ return (
85
+ <WalletManangerButton
86
+ key={w.id}
87
+ client={props.client}
88
+ // address={address || ""}
89
+ onClick={() => {
90
+ setActive(w);
91
+ props.onBack();
92
+ }}
93
+ chain={props.activeChain}
94
+ wallet={w}
95
+ />
96
+ );
97
+ })}
98
+ </Container>
99
+ </Container>
100
+
101
+ <Spacer y="xxl" />
102
+
103
+ <Container p="lg">
104
+ {!hideConnectButton && (
105
+ <Button
106
+ variant="accent"
107
+ fullWidth
108
+ onClick={() => {
109
+ setScreen("connect");
110
+ }}
111
+ gap="xs"
112
+ >
113
+ <PlusIcon width={iconSize.sm} height={iconSize.sm} />
114
+ Connect Wallet
115
+ </Button>
116
+ )}
117
+ </Container>
118
+ </Container>
119
+ );
120
+ }
121
+
122
+ function WalletManangerButton(props: {
123
+ wallet: Wallet;
124
+ client: ThirdwebClient;
125
+ chain: Chain;
126
+ onClick: () => void;
127
+ }) {
128
+ const theme = useCustomTheme();
129
+ const activeWallet = useActiveWallet();
130
+ const { disconnect } = useDisconnect();
131
+ const walletId = props.wallet.id;
132
+ const address = props.wallet.getAccount()?.address;
133
+ const balanceQuery = useWalletBalance({
134
+ address: address,
135
+ chain: props.chain,
136
+ client: props.client,
137
+ });
138
+
139
+ return (
140
+ <div
141
+ style={{
142
+ position: "relative",
143
+ }}
144
+ >
145
+ <WalletButtonEl
146
+ onClick={props.onClick}
147
+ style={{
148
+ justifyContent: "space-between",
149
+ }}
150
+ >
151
+ <Container flex="row" gap="sm" center="y">
152
+ <WalletImage client={props.client} id={walletId} size={iconSize.xl} />
153
+
154
+ <div>
155
+ <Text color="primaryText">{shortenAddress(address || "")}</Text>
156
+ <Spacer y="xxs" />
157
+ {balanceQuery.data ? (
158
+ <Text size="sm" color="secondaryText">
159
+ {formatTokenBalance(balanceQuery.data)}
160
+ </Text>
161
+ ) : (
162
+ <Skeleton width="100px" height={fontSize.sm} />
163
+ )}
164
+ </div>
165
+ </Container>
166
+ </WalletButtonEl>
167
+
168
+ <div
169
+ style={{
170
+ position: "absolute",
171
+ zIndex: 1,
172
+ right: spacing.xxs,
173
+ top: "50%",
174
+ transform: "translateY(-50%)",
175
+ }}
176
+ >
177
+ {activeWallet?.id === props.wallet.id ? (
178
+ <ToolTip tip="Active Wallet">
179
+ <IconButton>
180
+ <CheckIcon width={iconSize.md} height={iconSize.md} />
181
+ </IconButton>
182
+ </ToolTip>
183
+ ) : (
184
+ <ToolTip tip="Disconnect">
185
+ <IconButton
186
+ onClick={() => {
187
+ disconnect(props.wallet);
188
+ }}
189
+ >
190
+ <CrossCircledIcon
191
+ width={iconSize.md}
192
+ height={iconSize.md}
193
+ style={{
194
+ color: theme.colors.danger,
195
+ }}
196
+ />
197
+ </IconButton>
198
+ </ToolTip>
199
+ )}
200
+ </div>
201
+ </div>
202
+ );
203
+ }
@@ -136,8 +136,6 @@ function SendFundsForm(props: {
136
136
  });
137
137
 
138
138
  const { receiverAddress, setReceiverAddress, amount, setAmount } = props;
139
- const showInvalidAddressError = receiverAddress;
140
-
141
139
  const sendTokenMutation = useSendToken(props.client);
142
140
 
143
141
  function getErrorMessage(error?: TXError) {
@@ -155,7 +153,7 @@ function SendFundsForm(props: {
155
153
  return locale.insufficientFunds;
156
154
  }
157
155
 
158
- return locale.transactionFailed;
156
+ return message;
159
157
  }
160
158
 
161
159
  if (!activeChain) {
@@ -281,7 +279,6 @@ function SendFundsForm(props: {
281
279
  </Label>
282
280
  <Spacer y="sm" />
283
281
  <Input
284
- data-error={showInvalidAddressError}
285
282
  required
286
283
  id="receiver"
287
284
  placeholder={"0x... or ENS name"}
@@ -292,15 +289,6 @@ function SendFundsForm(props: {
292
289
  }}
293
290
  />
294
291
 
295
- {showInvalidAddressError && (
296
- <>
297
- <Spacer y="xs" />
298
- <Text color="danger" size="sm">
299
- {locale.invalidAddress}
300
- </Text>
301
- </>
302
- )}
303
-
304
292
  <Spacer y="lg" />
305
293
 
306
294
  {/* Amount */}
@@ -29,7 +29,7 @@ import { WalletLogoSpinner } from "./WalletLogoSpinner.js";
29
29
  type Status = "signing" | "failed" | "idle";
30
30
 
31
31
  export const SignatureScreen: React.FC<{
32
- onDone: () => void;
32
+ onDone: (() => void) | undefined;
33
33
  modalSize: "compact" | "wide";
34
34
  termsOfServiceUrl?: string;
35
35
  privacyPolicyUrl?: string;
@@ -56,7 +56,7 @@ export const SignatureScreen: React.FC<{
56
56
  try {
57
57
  setStatus("signing");
58
58
  await siweAuth.doLogin();
59
- onDone();
59
+ onDone?.();
60
60
  } catch (err) {
61
61
  await wait(1000);
62
62
  setStatus("failed");
@@ -0,0 +1,83 @@
1
+ import type { Chain } from "../../../../../chains/types.js";
2
+ import type { ThirdwebClient } from "../../../../../client/client.js";
3
+ import type { Wallet } from "../../../../../wallets/interfaces/wallet.js";
4
+ import type { SmartWalletOptions } from "../../../../../wallets/smart/types.js";
5
+ import type { AppMetadata } from "../../../../../wallets/types.js";
6
+ import { useConnectedWallets } from "../../../hooks/wallets/useConnectedWallets.js";
7
+ import { getDefaultWallets } from "../../../wallets/defaultWallets.js";
8
+ import { ConnectModalContent } from "../Modal/ConnectModalContent.js";
9
+ import { useSetupScreen } from "../Modal/screen.js";
10
+ import type { ConnectLocale } from "../locale/types.js";
11
+
12
+ export type WalletSwitcherConnectionScreenProps = {
13
+ chain: Chain | undefined;
14
+ chains: Chain[] | undefined;
15
+ client: ThirdwebClient;
16
+ wallets: Wallet[] | undefined;
17
+ appMetadata: AppMetadata | undefined;
18
+ connectLocale: ConnectLocale;
19
+ isEmbed: boolean;
20
+ accountAbstraction: SmartWalletOptions | undefined;
21
+ onSelect: (wallet: Wallet) => void;
22
+ recommendedWallets: Wallet[] | undefined;
23
+ showAllWallets: boolean;
24
+ walletConnect:
25
+ | {
26
+ projectId?: string;
27
+ }
28
+ | undefined;
29
+ onBack: () => void;
30
+ };
31
+
32
+ export function WalletSwitcherConnectionScreen(
33
+ props: WalletSwitcherConnectionScreenProps,
34
+ ) {
35
+ const connectedWallets = useConnectedWallets();
36
+ const wallets =
37
+ props.wallets ||
38
+ getDefaultWallets({
39
+ appMetadata: props.appMetadata,
40
+ chains: props.chains,
41
+ });
42
+
43
+ const screenSetup = useSetupScreen({
44
+ size: "compact",
45
+ welcomeScreen: undefined,
46
+ wallets: wallets,
47
+ });
48
+
49
+ return (
50
+ <ConnectModalContent
51
+ accountAbstraction={props.accountAbstraction}
52
+ auth={undefined}
53
+ chain={props.chain}
54
+ chains={props.chains}
55
+ client={props.client}
56
+ connectLocale={props.connectLocale}
57
+ isEmbed={props.isEmbed}
58
+ isOpen={true}
59
+ meta={{
60
+ showThirdwebBranding: false,
61
+ }}
62
+ onClose={() => {}}
63
+ onConnect={(w) => {
64
+ props.onSelect(w);
65
+ props.onBack();
66
+ }}
67
+ recommendedWallets={props.recommendedWallets}
68
+ screenSetup={screenSetup}
69
+ welcomeScreen={undefined}
70
+ wallets={wallets}
71
+ setModalVisibility={() => {}}
72
+ shouldSetActive={false}
73
+ showAllWallets={props.showAllWallets}
74
+ size="compact"
75
+ walletConnect={props.walletConnect}
76
+ modalHeader={{
77
+ title: "Connect",
78
+ onBack: props.onBack,
79
+ }}
80
+ walletIdsToHide={connectedWallets.map((x) => x.id)}
81
+ />
82
+ );
83
+ }
@@ -70,4 +70,5 @@ export type WalletDetailsModalScreen =
70
70
  | "view-funds"
71
71
  | "private-key"
72
72
  | "manage-wallet"
73
- | "wallet-connect-receiver";
73
+ | "wallet-connect-receiver"
74
+ | "wallet-manager";