thirdweb 5.39.0 → 5.40.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (334) hide show
  1. package/dist/cjs/exports/react.js +7 -2
  2. package/dist/cjs/exports/react.js.map +1 -1
  3. package/dist/cjs/react/core/design-system/index.js +2 -0
  4. package/dist/cjs/react/core/design-system/index.js.map +1 -1
  5. package/dist/cjs/react/core/hooks/transaction/useSendTransaction.js +13 -94
  6. package/dist/cjs/react/core/hooks/transaction/useSendTransaction.js.map +1 -1
  7. package/dist/cjs/react/core/hooks/wallets/useAutoConnect.js +16 -3
  8. package/dist/cjs/react/core/hooks/wallets/useAutoConnect.js.map +1 -1
  9. package/dist/cjs/react/core/utils/defaultTokens.js +32 -25
  10. package/dist/cjs/react/core/utils/defaultTokens.js.map +1 -1
  11. package/dist/cjs/react/core/utils/wallet.js +91 -13
  12. package/dist/cjs/react/core/utils/wallet.js.map +1 -1
  13. package/dist/cjs/react/web/hooks/transaction/useSendTransaction.js +18 -127
  14. package/dist/cjs/react/web/hooks/transaction/useSendTransaction.js.map +1 -1
  15. package/dist/cjs/react/web/ui/ConnectWallet/Details.js +3 -1
  16. package/dist/cjs/react/web/ui/ConnectWallet/Details.js.map +1 -1
  17. package/dist/cjs/react/web/ui/ConnectWallet/Modal/ConnectEmbed.js +7 -3
  18. package/dist/cjs/react/web/ui/ConnectWallet/Modal/ConnectEmbed.js.map +1 -1
  19. package/dist/cjs/react/web/ui/ConnectWallet/TransactionsScreen.js +1 -1
  20. package/dist/cjs/react/web/ui/ConnectWallet/TransactionsScreen.js.map +1 -1
  21. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +184 -118
  22. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
  23. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.js +104 -0
  24. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.js.map +1 -0
  25. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.js +69 -0
  26. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.js.map +1 -0
  27. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/WalletSelectorButton.js +23 -5
  28. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/WalletSelectorButton.js.map +1 -1
  29. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatFlow.js +4 -4
  30. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatFlow.js.map +1 -1
  31. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatStatusScreen.js +2 -2
  32. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatStatusScreen.js.map +1 -1
  33. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwap.js +2 -2
  34. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwap.js.map +1 -1
  35. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwapFlow.js +1 -1
  36. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwapFlow.js.map +1 -1
  37. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/main/useBuyTxStates.js +132 -45
  38. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/main/useBuyTxStates.js.map +1 -1
  39. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/main/useEnabledPaymentMethods.js +2 -5
  40. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/main/useEnabledPaymentMethods.js.map +1 -1
  41. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js +13 -8
  42. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js.map +1 -1
  43. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistory.js +1 -1
  44. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistory.js.map +1 -1
  45. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/FiatDetailsScreen.js +1 -1
  46. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/FiatDetailsScreen.js.map +1 -1
  47. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/SwapDetailsScreen.js +1 -1
  48. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/SwapDetailsScreen.js.map +1 -1
  49. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/TokenInfoRow.js +1 -1
  50. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/TokenInfoRow.js.map +1 -1
  51. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/TxDetailsScreen.js +1 -1
  52. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/TxDetailsScreen.js.map +1 -1
  53. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js +9 -5
  54. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js.map +1 -1
  55. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/Fees.js +1 -1
  56. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/Fees.js.map +1 -1
  57. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.js +8 -3
  58. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.js.map +1 -1
  59. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/SwapFlow.js +1 -1
  60. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/SwapFlow.js.map +1 -1
  61. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/SwapStatusScreen.js +1 -1
  62. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/SwapStatusScreen.js.map +1 -1
  63. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/TransferFlow.js +84 -0
  64. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/TransferFlow.js.map +1 -0
  65. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/WalletSwitcherDrawerContent.js +13 -7
  66. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/WalletSwitcherDrawerContent.js.map +1 -1
  67. package/dist/cjs/react/web/ui/ConnectWallet/screens/nativeToken.js +3 -1
  68. package/dist/cjs/react/web/ui/ConnectWallet/screens/nativeToken.js.map +1 -1
  69. package/dist/cjs/react/web/ui/PayEmbed.js +16 -9
  70. package/dist/cjs/react/web/ui/PayEmbed.js.map +1 -1
  71. package/dist/cjs/react/web/ui/TransactionButton/ExecutingScreen.js +53 -0
  72. package/dist/cjs/react/web/ui/TransactionButton/ExecutingScreen.js.map +1 -0
  73. package/dist/cjs/react/web/ui/TransactionButton/TransactionModal.js +33 -0
  74. package/dist/cjs/react/web/ui/TransactionButton/TransactionModal.js.map +1 -0
  75. package/dist/cjs/react/web/wallets/shared/ConnectWalletSocialOptions.js +16 -5
  76. package/dist/cjs/react/web/wallets/shared/ConnectWalletSocialOptions.js.map +1 -1
  77. package/dist/cjs/react/web/wallets/shared/SocialLogin.js +18 -2
  78. package/dist/cjs/react/web/wallets/shared/SocialLogin.js.map +1 -1
  79. package/dist/cjs/react/web/wallets/shared/{openOauthSignInWindow.js → oauthSignIn.js} +2 -3
  80. package/dist/cjs/react/web/wallets/shared/oauthSignIn.js.map +1 -0
  81. package/dist/cjs/version.js +1 -1
  82. package/dist/cjs/wallets/in-app/core/wallet/index.js +15 -0
  83. package/dist/cjs/wallets/in-app/core/wallet/index.js.map +1 -1
  84. package/dist/cjs/wallets/in-app/web/in-app.js +10 -0
  85. package/dist/cjs/wallets/in-app/web/in-app.js.map +1 -1
  86. package/dist/cjs/wallets/in-app/web/lib/auth/index.js +2 -0
  87. package/dist/cjs/wallets/in-app/web/lib/auth/index.js.map +1 -1
  88. package/dist/cjs/wallets/in-app/web/lib/auth/oauth.js +9 -1
  89. package/dist/cjs/wallets/in-app/web/lib/auth/oauth.js.map +1 -1
  90. package/dist/cjs/wallets/in-app/web/lib/get-url-token.js +26 -0
  91. package/dist/cjs/wallets/in-app/web/lib/get-url-token.js.map +1 -0
  92. package/dist/cjs/wallets/in-app/web/lib/web-connector.js +13 -3
  93. package/dist/cjs/wallets/in-app/web/lib/web-connector.js.map +1 -1
  94. package/dist/esm/exports/react.js +3 -1
  95. package/dist/esm/exports/react.js.map +1 -1
  96. package/dist/esm/react/core/design-system/index.js +2 -0
  97. package/dist/esm/react/core/design-system/index.js.map +1 -1
  98. package/dist/esm/react/core/hooks/transaction/useSendTransaction.js +13 -93
  99. package/dist/esm/react/core/hooks/transaction/useSendTransaction.js.map +1 -1
  100. package/dist/esm/react/core/hooks/wallets/useAutoConnect.js +16 -3
  101. package/dist/esm/react/core/hooks/wallets/useAutoConnect.js.map +1 -1
  102. package/dist/esm/react/core/utils/defaultTokens.js +31 -25
  103. package/dist/esm/react/core/utils/defaultTokens.js.map +1 -1
  104. package/dist/esm/react/core/utils/wallet.js +88 -13
  105. package/dist/esm/react/core/utils/wallet.js.map +1 -1
  106. package/dist/esm/react/web/hooks/transaction/useSendTransaction.js +20 -129
  107. package/dist/esm/react/web/hooks/transaction/useSendTransaction.js.map +1 -1
  108. package/dist/esm/react/web/ui/ConnectWallet/Details.js +3 -1
  109. package/dist/esm/react/web/ui/ConnectWallet/Details.js.map +1 -1
  110. package/dist/esm/react/web/ui/ConnectWallet/Modal/ConnectEmbed.js +7 -3
  111. package/dist/esm/react/web/ui/ConnectWallet/Modal/ConnectEmbed.js.map +1 -1
  112. package/dist/esm/react/web/ui/ConnectWallet/TransactionsScreen.js +1 -1
  113. package/dist/esm/react/web/ui/ConnectWallet/TransactionsScreen.js.map +1 -1
  114. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js +188 -122
  115. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
  116. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.js +101 -0
  117. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.js.map +1 -0
  118. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.js +66 -0
  119. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.js.map +1 -0
  120. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/WalletSelectorButton.js +22 -5
  121. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/WalletSelectorButton.js.map +1 -1
  122. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatFlow.js +4 -4
  123. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatFlow.js.map +1 -1
  124. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatStatusScreen.js +2 -2
  125. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatStatusScreen.js.map +1 -1
  126. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwap.js +2 -2
  127. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwap.js.map +1 -1
  128. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwapFlow.js +1 -1
  129. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwapFlow.js.map +1 -1
  130. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/main/useBuyTxStates.js +130 -44
  131. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/main/useBuyTxStates.js.map +1 -1
  132. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/main/useEnabledPaymentMethods.js +2 -5
  133. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/main/useEnabledPaymentMethods.js.map +1 -1
  134. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js +13 -8
  135. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js.map +1 -1
  136. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistory.js +1 -1
  137. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistory.js.map +1 -1
  138. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/FiatDetailsScreen.js +1 -1
  139. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/FiatDetailsScreen.js.map +1 -1
  140. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/SwapDetailsScreen.js +1 -1
  141. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/SwapDetailsScreen.js.map +1 -1
  142. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/TokenInfoRow.js +1 -1
  143. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/TokenInfoRow.js.map +1 -1
  144. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/TxDetailsScreen.js +1 -1
  145. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/TxDetailsScreen.js.map +1 -1
  146. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js +7 -4
  147. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.js.map +1 -1
  148. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/Fees.js +1 -1
  149. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/Fees.js.map +1 -1
  150. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.js +9 -4
  151. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.js.map +1 -1
  152. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/SwapFlow.js +1 -1
  153. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/SwapFlow.js.map +1 -1
  154. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/SwapStatusScreen.js +1 -1
  155. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/SwapStatusScreen.js.map +1 -1
  156. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/TransferFlow.js +81 -0
  157. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/TransferFlow.js.map +1 -0
  158. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/WalletSwitcherDrawerContent.js +14 -8
  159. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/WalletSwitcherDrawerContent.js.map +1 -1
  160. package/dist/esm/react/web/ui/ConnectWallet/screens/nativeToken.js +3 -1
  161. package/dist/esm/react/web/ui/ConnectWallet/screens/nativeToken.js.map +1 -1
  162. package/dist/esm/react/web/ui/PayEmbed.js +16 -9
  163. package/dist/esm/react/web/ui/PayEmbed.js.map +1 -1
  164. package/dist/esm/react/web/ui/TransactionButton/ExecutingScreen.js +50 -0
  165. package/dist/esm/react/web/ui/TransactionButton/ExecutingScreen.js.map +1 -0
  166. package/dist/esm/react/web/ui/TransactionButton/TransactionModal.js +29 -0
  167. package/dist/esm/react/web/ui/TransactionButton/TransactionModal.js.map +1 -0
  168. package/dist/esm/react/web/wallets/shared/ConnectWalletSocialOptions.js +15 -4
  169. package/dist/esm/react/web/wallets/shared/ConnectWalletSocialOptions.js.map +1 -1
  170. package/dist/esm/react/web/wallets/shared/SocialLogin.js +17 -1
  171. package/dist/esm/react/web/wallets/shared/SocialLogin.js.map +1 -1
  172. package/dist/esm/react/web/wallets/shared/{openOauthSignInWindow.js → oauthSignIn.js} +2 -3
  173. package/dist/esm/react/web/wallets/shared/oauthSignIn.js.map +1 -0
  174. package/dist/esm/version.js +1 -1
  175. package/dist/esm/wallets/in-app/core/wallet/index.js +15 -0
  176. package/dist/esm/wallets/in-app/core/wallet/index.js.map +1 -1
  177. package/dist/esm/wallets/in-app/web/in-app.js +10 -0
  178. package/dist/esm/wallets/in-app/web/in-app.js.map +1 -1
  179. package/dist/esm/wallets/in-app/web/lib/auth/index.js +2 -0
  180. package/dist/esm/wallets/in-app/web/lib/auth/index.js.map +1 -1
  181. package/dist/esm/wallets/in-app/web/lib/auth/oauth.js +7 -0
  182. package/dist/esm/wallets/in-app/web/lib/auth/oauth.js.map +1 -1
  183. package/dist/esm/wallets/in-app/web/lib/get-url-token.js +23 -0
  184. package/dist/esm/wallets/in-app/web/lib/get-url-token.js.map +1 -0
  185. package/dist/esm/wallets/in-app/web/lib/web-connector.js +14 -4
  186. package/dist/esm/wallets/in-app/web/lib/web-connector.js.map +1 -1
  187. package/dist/types/exports/react.d.ts +3 -2
  188. package/dist/types/exports/react.d.ts.map +1 -1
  189. package/dist/types/exports/utils.d.ts +1 -0
  190. package/dist/types/exports/utils.d.ts.map +1 -1
  191. package/dist/types/react/core/design-system/index.d.ts +2 -0
  192. package/dist/types/react/core/design-system/index.d.ts.map +1 -1
  193. package/dist/types/react/core/hooks/connection/ConnectButtonProps.d.ts +80 -34
  194. package/dist/types/react/core/hooks/connection/ConnectButtonProps.d.ts.map +1 -1
  195. package/dist/types/react/core/hooks/transaction/useSendTransaction.d.ts +3 -15
  196. package/dist/types/react/core/hooks/transaction/useSendTransaction.d.ts.map +1 -1
  197. package/dist/types/react/core/hooks/wallets/useAutoConnect.d.ts.map +1 -1
  198. package/dist/types/react/core/utils/defaultTokens.d.ts +222 -0
  199. package/dist/types/react/core/utils/defaultTokens.d.ts.map +1 -1
  200. package/dist/types/react/core/utils/wallet.d.ts +43 -1
  201. package/dist/types/react/core/utils/wallet.d.ts.map +1 -1
  202. package/dist/types/react/web/hooks/transaction/useSendTransaction.d.ts +2 -4
  203. package/dist/types/react/web/hooks/transaction/useSendTransaction.d.ts.map +1 -1
  204. package/dist/types/react/web/ui/ConnectWallet/Details.d.ts +3 -1
  205. package/dist/types/react/web/ui/ConnectWallet/Details.d.ts.map +1 -1
  206. package/dist/types/react/web/ui/ConnectWallet/Modal/ConnectEmbed.d.ts.map +1 -1
  207. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.d.ts +0 -3
  208. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.d.ts.map +1 -1
  209. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.d.ts +18 -0
  210. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.d.ts.map +1 -0
  211. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.d.ts +18 -0
  212. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.d.ts.map +1 -0
  213. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/WalletSelectorButton.d.ts +5 -0
  214. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/WalletSelectorButton.d.ts.map +1 -1
  215. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatFlow.d.ts +1 -2
  216. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatFlow.d.ts.map +1 -1
  217. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatStatusScreen.d.ts +1 -2
  218. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatStatusScreen.d.ts.map +1 -1
  219. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwap.d.ts +1 -2
  220. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwap.d.ts.map +1 -1
  221. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwapFlow.d.ts +1 -2
  222. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwapFlow.d.ts.map +1 -1
  223. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/types.d.ts +14 -8
  224. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/types.d.ts.map +1 -1
  225. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/useBuyTxStates.d.ts +19 -9
  226. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/useBuyTxStates.d.ts.map +1 -1
  227. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/useEnabledPaymentMethods.d.ts +6 -5
  228. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/useEnabledPaymentMethods.d.ts.map +1 -1
  229. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.d.ts +0 -2
  230. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.d.ts.map +1 -1
  231. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistory.d.ts +1 -1
  232. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistory.d.ts.map +1 -1
  233. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/FiatDetailsScreen.d.ts +1 -1
  234. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/FiatDetailsScreen.d.ts.map +1 -1
  235. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/TxDetailsScreen.d.ts +1 -1
  236. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/TxDetailsScreen.d.ts.map +1 -1
  237. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.d.ts +4 -0
  238. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.d.ts.map +1 -1
  239. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/Fees.d.ts.map +1 -1
  240. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.d.ts +1 -0
  241. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.d.ts.map +1 -1
  242. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/SwapFlow.d.ts +1 -2
  243. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/SwapFlow.d.ts.map +1 -1
  244. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/SwapStatusScreen.d.ts +1 -2
  245. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/SwapStatusScreen.d.ts.map +1 -1
  246. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/TransferFlow.d.ts +19 -0
  247. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/TransferFlow.d.ts.map +1 -0
  248. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/WalletSwitcherDrawerContent.d.ts.map +1 -1
  249. package/dist/types/react/web/ui/ConnectWallet/screens/nativeToken.d.ts.map +1 -1
  250. package/dist/types/react/web/ui/PayEmbed.d.ts +0 -6
  251. package/dist/types/react/web/ui/PayEmbed.d.ts.map +1 -1
  252. package/dist/types/react/web/ui/TransactionButton/ExecutingScreen.d.ts +9 -0
  253. package/dist/types/react/web/ui/TransactionButton/ExecutingScreen.d.ts.map +1 -0
  254. package/dist/types/react/web/ui/TransactionButton/TransactionModal.d.ts +24 -0
  255. package/dist/types/react/web/ui/TransactionButton/TransactionModal.d.ts.map +1 -0
  256. package/dist/types/react/web/wallets/shared/ConnectWalletSocialOptions.d.ts.map +1 -1
  257. package/dist/types/react/web/wallets/shared/SocialLogin.d.ts.map +1 -1
  258. package/dist/types/react/web/wallets/shared/{openOauthSignInWindow.d.ts → oauthSignIn.d.ts} +1 -2
  259. package/dist/types/react/web/wallets/shared/oauthSignIn.d.ts.map +1 -0
  260. package/dist/types/version.d.ts +1 -1
  261. package/dist/types/wallets/ecosystem/types.d.ts +3 -0
  262. package/dist/types/wallets/ecosystem/types.d.ts.map +1 -1
  263. package/dist/types/wallets/in-app/core/interfaces/connector.d.ts +4 -1
  264. package/dist/types/wallets/in-app/core/interfaces/connector.d.ts.map +1 -1
  265. package/dist/types/wallets/in-app/core/wallet/index.d.ts.map +1 -1
  266. package/dist/types/wallets/in-app/core/wallet/types.d.ts +4 -1
  267. package/dist/types/wallets/in-app/core/wallet/types.d.ts.map +1 -1
  268. package/dist/types/wallets/in-app/web/in-app.d.ts +10 -0
  269. package/dist/types/wallets/in-app/web/in-app.d.ts.map +1 -1
  270. package/dist/types/wallets/in-app/web/lib/auth/index.d.ts +11 -2
  271. package/dist/types/wallets/in-app/web/lib/auth/index.d.ts.map +1 -1
  272. package/dist/types/wallets/in-app/web/lib/auth/oauth.d.ts +5 -0
  273. package/dist/types/wallets/in-app/web/lib/auth/oauth.d.ts.map +1 -1
  274. package/dist/types/wallets/in-app/web/lib/get-url-token.d.ts +12 -0
  275. package/dist/types/wallets/in-app/web/lib/get-url-token.d.ts.map +1 -0
  276. package/dist/types/wallets/in-app/web/lib/web-connector.d.ts +4 -1
  277. package/dist/types/wallets/in-app/web/lib/web-connector.d.ts.map +1 -1
  278. package/package.json +1 -1
  279. package/src/exports/react.ts +14 -2
  280. package/src/exports/utils.ts +2 -0
  281. package/src/react/core/design-system/index.ts +2 -0
  282. package/src/react/core/hooks/connection/ConnectButtonProps.ts +103 -51
  283. package/src/react/core/hooks/transaction/useSendTransaction.ts +17 -127
  284. package/src/react/core/hooks/wallets/useAutoConnect.ts +17 -3
  285. package/src/react/core/utils/defaultTokens.ts +38 -26
  286. package/src/react/core/utils/wallet.ts +102 -18
  287. package/src/react/web/hooks/transaction/useSendTransaction.tsx +34 -278
  288. package/src/react/web/ui/ConnectWallet/Details.tsx +6 -4
  289. package/src/react/web/ui/ConnectWallet/Modal/ConnectEmbed.tsx +9 -3
  290. package/src/react/web/ui/ConnectWallet/TransactionsScreen.tsx +1 -1
  291. package/src/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.tsx +347 -383
  292. package/src/react/web/ui/ConnectWallet/screens/Buy/DirectPaymentModeScreen.tsx +266 -0
  293. package/src/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.tsx +253 -0
  294. package/src/react/web/ui/ConnectWallet/screens/Buy/WalletSelectorButton.tsx +52 -21
  295. package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatFlow.tsx +3 -6
  296. package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatStatusScreen.tsx +5 -6
  297. package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwap.tsx +2 -4
  298. package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/PostOnRampSwapFlow.tsx +2 -4
  299. package/src/react/web/ui/ConnectWallet/screens/Buy/main/types.ts +16 -12
  300. package/src/react/web/ui/ConnectWallet/screens/Buy/main/useBuyTxStates.ts +155 -60
  301. package/src/react/web/ui/ConnectWallet/screens/Buy/main/useEnabledPaymentMethods.ts +8 -3
  302. package/src/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.ts +17 -12
  303. package/src/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/BuyTxHistory.tsx +2 -2
  304. package/src/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/FiatDetailsScreen.tsx +2 -3
  305. package/src/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/SwapDetailsScreen.tsx +1 -1
  306. package/src/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/TokenInfoRow.tsx +1 -1
  307. package/src/react/web/ui/ConnectWallet/screens/Buy/pay-transactions/TxDetailsScreen.tsx +2 -2
  308. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/ConfirmationScreen.tsx +27 -19
  309. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/Fees.tsx +8 -4
  310. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.tsx +12 -5
  311. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/SwapFlow.tsx +2 -4
  312. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/SwapStatusScreen.tsx +3 -4
  313. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/TransferFlow.tsx +243 -0
  314. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/WalletSwitcherDrawerContent.tsx +30 -17
  315. package/src/react/web/ui/ConnectWallet/screens/nativeToken.ts +5 -1
  316. package/src/react/web/ui/PayEmbed.tsx +31 -32
  317. package/src/react/web/ui/TransactionButton/ExecutingScreen.tsx +127 -0
  318. package/src/react/web/ui/TransactionButton/TransactionModal.tsx +83 -0
  319. package/src/react/web/wallets/shared/ConnectWalletSocialOptions.tsx +18 -4
  320. package/src/react/web/wallets/shared/SocialLogin.tsx +20 -1
  321. package/src/react/web/wallets/shared/{openOauthSignInWindow.ts → oauthSignIn.ts} +1 -2
  322. package/src/version.ts +1 -1
  323. package/src/wallets/ecosystem/types.ts +3 -0
  324. package/src/wallets/in-app/core/interfaces/connector.ts +6 -0
  325. package/src/wallets/in-app/core/wallet/index.ts +22 -0
  326. package/src/wallets/in-app/core/wallet/types.ts +4 -0
  327. package/src/wallets/in-app/web/in-app.ts +10 -0
  328. package/src/wallets/in-app/web/lib/auth/index.ts +14 -3
  329. package/src/wallets/in-app/web/lib/auth/oauth.ts +12 -0
  330. package/src/wallets/in-app/web/lib/get-url-token.ts +36 -0
  331. package/src/wallets/in-app/web/lib/web-connector.ts +18 -4
  332. package/dist/cjs/react/web/wallets/shared/openOauthSignInWindow.js.map +0 -1
  333. package/dist/esm/react/web/wallets/shared/openOauthSignInWindow.js.map +0 -1
  334. package/dist/types/react/web/wallets/shared/openOauthSignInWindow.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../../../../../../src/wallets/in-app/core/interfaces/connector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EACnB,OAAO,EACP,gBAAgB,EAChB,eAAe,EACf,sBAAsB,EACvB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,WAAW,cAAc;IAC7B,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5B,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B,eAAe,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACxE,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC/D,MAAM,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACrC"}
1
+ {"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../../../../../../src/wallets/in-app/core/interfaces/connector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EACnB,mCAAmC,EACnC,OAAO,EACP,gBAAgB,EAChB,eAAe,EACf,sBAAsB,EACvB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,WAAW,cAAc;IAC7B,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5B,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B,eAAe,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACxE,wBAAwB,CAAC,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC5D,kBAAkB,CAAC,CACjB,UAAU,EAAE,mCAAmC,GAC9C,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAChC,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC/D,MAAM,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACrC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/wallets/in-app/core/wallet/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAEzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,KAAK,EACV,gBAAgB,EAChB,0BAA0B,EAC1B,sBAAsB,EACvB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,GACvB,MAAM,IAAI,MAAM,CAAC,OAAO,GAAG,UAAU,CAAC,CAExC;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EACH,sBAAsB,CAAC,OAAO,CAAC,GAC/B,sBAAsB,CAAC,iBAAiB,CAAC,EAC7C,aAAa,EACT,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAC5B,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAC1C,SAAS,EAAE,cAAc,GACxB,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAkB3B;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EACH,0BAA0B,CAAC,OAAO,CAAC,GACnC,0BAA0B,CAAC,iBAAiB,CAAC,EACjD,aAAa,EACT,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAC5B,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAC1C,SAAS,EAAE,cAAc,GACxB,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAsB3B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/wallets/in-app/core/wallet/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAMzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,KAAK,EACV,gBAAgB,EAChB,0BAA0B,EAC1B,sBAAsB,EACvB,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,GACvB,MAAM,IAAI,MAAM,CAAC,OAAO,GAAG,UAAU,CAAC,CAExC;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EACH,sBAAsB,CAAC,OAAO,CAAC,GAC/B,sBAAsB,CAAC,iBAAiB,CAAC,EAC7C,aAAa,EACT,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAC5B,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAC1C,SAAS,EAAE,cAAc,GACxB,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAgC3B;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EACH,0BAA0B,CAAC,OAAO,CAAC,GACnC,0BAA0B,CAAC,iBAAiB,CAAC,EACjD,aAAa,EACT,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAC5B,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAC1C,SAAS,EAAE,cAAc,GACxB,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CA0B3B"}
@@ -2,13 +2,15 @@ import type { Chain } from "../../../../chains/types.js";
2
2
  import type { ThirdwebClient } from "../../../../client/client.js";
3
3
  import type { SmartWalletOptions } from "../../../smart/types.js";
4
4
  import type { AuthOption, SocialAuthOption } from "../../../types.js";
5
- import type { MultiStepAuthArgsType, SingleStepAuthArgsType } from "../authentication/type.js";
5
+ import type { AuthStoredTokenWithCookieReturnType, MultiStepAuthArgsType, SingleStepAuthArgsType } from "../authentication/type.js";
6
6
  export type InAppWalletConnectionOptions = (MultiStepAuthArgsType | SingleStepAuthArgsType) & {
7
7
  client: ThirdwebClient;
8
8
  chain?: Chain;
9
+ redirect?: boolean;
9
10
  };
10
11
  export type InAppWalletAutoConnectOptions = {
11
12
  client: ThirdwebClient;
13
+ authResult?: AuthStoredTokenWithCookieReturnType;
12
14
  chain?: Chain;
13
15
  };
14
16
  export type InAppWalletSocialAuth = SocialAuthOption;
@@ -16,6 +18,7 @@ export type InAppWalletAuth = AuthOption;
16
18
  export type InAppWalletCreationOptions = {
17
19
  auth?: {
18
20
  options: InAppWalletAuth[];
21
+ mode?: "popup" | "redirect";
19
22
  };
20
23
  metadata?: {
21
24
  image?: {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/wallets/in-app/core/wallet/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,KAAK,EACV,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,MAAM,4BAA4B,GAAG,CACvC,qBAAqB,GACrB,sBAAsB,CACzB,GAAG;IACF,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,gBAAgB,CAAC;AACrD,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC;AAEzC,MAAM,MAAM,0BAA0B,GAClC;IACE,IAAI,CAAC,EAAE;QACL,OAAO,EAAE,eAAe,EAAE,CAAC;KAC5B,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,KAAK,CAAC,EAAE;YACN,GAAG,EAAE,MAAM,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,GAAG,CAAC,EAAE,MAAM,CAAC;SACd,CAAC;KACH,CAAC;IACF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC,GACD,SAAS,CAAC;AAEd,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/wallets/in-app/core/wallet/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,KAAK,EACV,mCAAmC,EACnC,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,MAAM,4BAA4B,GAAG,CACvC,qBAAqB,GACrB,sBAAsB,CACzB,GAAG;IACF,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,MAAM,EAAE,cAAc,CAAC;IACvB,UAAU,CAAC,EAAE,mCAAmC,CAAC;IACjD,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,gBAAgB,CAAC;AACrD,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC;AAEzC,MAAM,MAAM,0BAA0B,GAClC;IACE,IAAI,CAAC,EAAE;QACL,OAAO,EAAE,eAAe,EAAE,CAAC;QAC3B,IAAI,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;KAC7B,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,KAAK,CAAC,EAAE;YACN,GAAG,EAAE,MAAM,CAAC;YACZ,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,GAAG,CAAC,EAAE,MAAM,CAAC;SACd,CAAC;KACH,CAAC;IACF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC,GACD,SAAS,CAAC;AAEd,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC"}
@@ -50,6 +50,16 @@ import type { CreateWalletArgs } from "../../wallet-types.js";
50
50
  * hidePrivateKeyExport: true
51
51
  * });
52
52
  * ```
53
+ *
54
+ * Open the Oauth window in the same tab
55
+ * ```ts
56
+ * import { inAppWallet } from "thirdweb/wallets";
57
+ * const wallet = inAppWallet({
58
+ * auth: {
59
+ * mode: "redirect"
60
+ * }
61
+ * });
62
+ * ```
53
63
  * @wallet
54
64
  */
55
65
  export declare function inAppWallet(createOptions?: CreateWalletArgs<"inApp">[1]): Wallet<"inApp">;
@@ -1 +1 @@
1
- {"version":3,"file":"in-app.d.ts","sourceRoot":"","sources":["../../../../../src/wallets/in-app/web/in-app.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,wBAAgB,WAAW,CACzB,aAAa,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAC3C,MAAM,CAAC,OAAO,CAAC,CAUjB"}
1
+ {"version":3,"file":"in-app.d.ts","sourceRoot":"","sources":["../../../../../src/wallets/in-app/web/in-app.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG;AACH,wBAAgB,WAAW,CACzB,aAAa,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAC3C,MAAM,CAAC,OAAO,CAAC,CAUjB"}
@@ -1,4 +1,8 @@
1
- import { type AuthArgsType, type AuthLoginReturnType, type GetAuthenticatedUserParams, type PreAuthArgsType } from "../../../core/authentication/type.js";
1
+ import type { ThirdwebClient } from "../../../../../client/client.js";
2
+ import type { OneOf } from "../../../../../utils/type-utils.js";
3
+ import type { SocialAuthOption } from "../../../../../wallets/types.js";
4
+ import { type AuthArgsType, type GetAuthenticatedUserParams, type PreAuthArgsType } from "../../../core/authentication/type.js";
5
+ import type { Ecosystem } from "../../types.js";
2
6
  /**
3
7
  * Retrieves the authenticated user for the active in-app wallet.
4
8
  * @param options - The arguments for retrieving the authenticated user.
@@ -78,5 +82,10 @@ export declare function preAuthenticate(args: PreAuthArgsType): Promise<import("
78
82
  * ```
79
83
  * @wallet
80
84
  */
81
- export declare function authenticate(args: AuthArgsType): Promise<AuthLoginReturnType>;
85
+ export declare function authenticate(args: OneOf<AuthArgsType | {
86
+ strategy: SocialAuthOption;
87
+ client: ThirdwebClient;
88
+ ecosystem?: Ecosystem;
89
+ redirect: boolean;
90
+ }>): Promise<void | import("../../../core/authentication/type.js").AuthLoginReturnType>;
82
91
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/wallets/in-app/web/lib/auth/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,0BAA0B,EAC/B,KAAK,eAAe,EAErB,MAAM,sCAAsC,CAAC;AA2B9C;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,0BAA0B,uFAWpC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,0BAA0B,+BAMrE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,0BAA0B,+BAM3E;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,eAAe,kFAG1D;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,mBAAmB,CAAC,CAG9B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/wallets/in-app/web/lib/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,0BAA0B,EAC/B,KAAK,eAAe,EAErB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAyBhD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,0BAA0B,uFAWpC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,0BAA0B,+BAMrE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,0BAA0B,+BAM3E;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,eAAe,kFAG1D;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,KAAK,CACP,YAAY,GACZ;IACE,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;CACnB,CACJ,sFAMF"}
@@ -3,6 +3,11 @@ import type { AuthStoredTokenWithCookieReturnType } from "../../../../../wallets
3
3
  import type { SocialAuthOption } from "../../../../../wallets/types.js";
4
4
  import type { Ecosystem } from "../../types.js";
5
5
  export declare const getSocialAuthLoginPath: (authOption: SocialAuthOption, client: ThirdwebClient, ecosystem?: Ecosystem) => string;
6
+ export declare const loginWithOauthRedirect: (options: {
7
+ authOption: SocialAuthOption;
8
+ client: ThirdwebClient;
9
+ ecosystem?: Ecosystem;
10
+ }) => void;
6
11
  export declare const loginWithOauth: (options: {
7
12
  authOption: SocialAuthOption;
8
13
  client: ThirdwebClient;
@@ -1 +1 @@
1
- {"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../../../../../../src/wallets/in-app/web/lib/auth/oauth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEtE,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,2DAA2D,CAAC;AACrH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAuBhD,eAAO,MAAM,sBAAsB,eACrB,gBAAgB,UACpB,cAAc,cACV,SAAS,WAUtB,CAAC;AAEF,eAAO,MAAM,cAAc,YAAmB;IAC5C,UAAU,EAAE,gBAAgB,CAAC;IAC7B,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACzC,iBAAiB,CAAC,EAAE,CAAC,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CAClE,KAAG,OAAO,CAAC,mCAAmC,CA+E9C,CAAC"}
1
+ {"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../../../../../../src/wallets/in-app/web/lib/auth/oauth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEtE,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,2DAA2D,CAAC;AACrH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAuBhD,eAAO,MAAM,sBAAsB,eACrB,gBAAgB,UACpB,cAAc,cACV,SAAS,WAUtB,CAAC;AAEF,eAAO,MAAM,sBAAsB,YAAa;IAC9C,UAAU,EAAE,gBAAgB,CAAC;IAC7B,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,KAAG,IAMH,CAAC;AAEF,eAAO,MAAM,cAAc,YAAmB;IAC5C,UAAU,EAAE,gBAAgB,CAAC;IAC7B,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACzC,iBAAiB,CAAC,EAAE,CAAC,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CAClE,KAAG,OAAO,CAAC,mCAAmC,CA+E9C,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { AuthOption } from "../../../../wallets/types.js";
2
+ import type { WalletId } from "../../../wallet-types.js";
3
+ import type { AuthStoredTokenWithCookieReturnType } from "../../core/authentication/type.js";
4
+ /**
5
+ * Checks for an auth token and associated metadata in the current URL
6
+ */
7
+ export declare function getUrlToken(): {
8
+ walletId?: WalletId;
9
+ authResult?: AuthStoredTokenWithCookieReturnType;
10
+ authProvider?: AuthOption;
11
+ };
12
+ //# sourceMappingURL=get-url-token.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-url-token.d.ts","sourceRoot":"","sources":["../../../../../../src/wallets/in-app/web/lib/get-url-token.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,mCAAmC,CAAC;AAE7F;;GAEG;AACH,wBAAgB,WAAW,IAAI;IAC7B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,UAAU,CAAC,EAAE,mCAAmC,CAAC;IACjD,YAAY,CAAC,EAAE,UAAU,CAAC;CAC3B,CAwBA"}
@@ -1,6 +1,7 @@
1
1
  import type { ThirdwebClient } from "../../../../client/client.js";
2
+ import type { SocialAuthOption } from "../../../../wallets/types.js";
2
3
  import type { Account } from "../../../interfaces/wallet.js";
3
- import { type AuthLoginReturnType, type GetUser, type LogoutReturnType, type MultiStepAuthArgsType, type MultiStepAuthProviderType, type SendEmailOtpReturnType, type SingleStepAuthArgsType } from "../../core/authentication/type.js";
4
+ import { type AuthLoginReturnType, type AuthStoredTokenWithCookieReturnType, type GetUser, type LogoutReturnType, type MultiStepAuthArgsType, type MultiStepAuthProviderType, type SendEmailOtpReturnType, type SingleStepAuthArgsType } from "../../core/authentication/type.js";
4
5
  import type { InAppConnector } from "../../core/interfaces/connector.js";
5
6
  import type { InAppWalletConstructorType } from "../types.js";
6
7
  import { InAppWalletIframeCommunicator } from "../utils/iFrameCommunication/InAppWalletIframeCommunicator.js";
@@ -49,6 +50,8 @@ export declare class InAppWebConnector implements InAppConnector {
49
50
  getUser(): Promise<GetUser>;
50
51
  getAccount(): Promise<Account>;
51
52
  preAuthenticate(args: MultiStepAuthProviderType): Promise<SendEmailOtpReturnType>;
53
+ authenticateWithRedirect(strategy: SocialAuthOption): void;
54
+ loginWithAuthToken(authResult: AuthStoredTokenWithCookieReturnType): Promise<AuthLoginReturnType>;
52
55
  authenticate(args: MultiStepAuthArgsType | SingleStepAuthArgsType): Promise<AuthLoginReturnType>;
53
56
  logout(): Promise<LogoutReturnType>;
54
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"web-connector.d.ts","sourceRoot":"","sources":["../../../../../../src/wallets/in-app/web/lib/web-connector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,OAAO,EACZ,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAE5B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,6BAA6B,EAAE,MAAM,+DAA+D,CAAC;AAC9G,OAAO,EAAE,IAAI,EAAE,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAKpE;;GAEG;AACH,qBAAa,iBAAkB,YAAW,cAAc;IACtD,SAAS,CAAC,MAAM,EAAE,cAAc,CAAC;IACjC,SAAS,CAAC,OAAO,EAAE,6BAA6B,CAAC,gBAAgB,CAAC,CAAC;IAEnE,OAAO,CAAC,MAAM,CAAe;IAC7B;;OAEG;IACH,IAAI,EAAE,IAAI,CAAC;IAEX,OAAO,CAAC,qBAAqB;IAO7B;;;;OAIG;gBACS,EACV,MAAM,EACN,aAAa,EACb,SAAS,GACV,EAAE,0BAA0B;IAqD7B;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAIjC,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAIxB,eAAe,CACnB,IAAI,EAAE,yBAAyB,GAC9B,OAAO,CAAC,sBAAsB,CAAC;IAiB5B,YAAY,CAChB,IAAI,EAAE,qBAAqB,GAAG,sBAAsB,GACnD,OAAO,CAAC,mBAAmB,CAAC;IAuEzB,MAAM,IAAI,OAAO,CAAC,gBAAgB,CAAC;CAG1C"}
1
+ {"version":3,"file":"web-connector.d.ts","sourceRoot":"","sources":["../../../../../../src/wallets/in-app/web/lib/web-connector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,mCAAmC,EACxC,KAAK,OAAO,EACZ,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAE5B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,6BAA6B,EAAE,MAAM,+DAA+D,CAAC;AAC9G,OAAO,EAAE,IAAI,EAAE,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAKpE;;GAEG;AACH,qBAAa,iBAAkB,YAAW,cAAc;IACtD,SAAS,CAAC,MAAM,EAAE,cAAc,CAAC;IACjC,SAAS,CAAC,OAAO,EAAE,6BAA6B,CAAC,gBAAgB,CAAC,CAAC;IAEnE,OAAO,CAAC,MAAM,CAAe;IAC7B;;OAEG;IACH,IAAI,EAAE,IAAI,CAAC;IAEX,OAAO,CAAC,qBAAqB;IAO7B;;;;OAIG;gBACS,EACV,MAAM,EACN,aAAa,EACb,SAAS,GACV,EAAE,0BAA0B;IAqD7B;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAIjC,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAIxB,eAAe,CACnB,IAAI,EAAE,yBAAyB,GAC9B,OAAO,CAAC,sBAAsB,CAAC;IAiBlC,wBAAwB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAQpD,kBAAkB,CAAC,UAAU,EAAE,mCAAmC;IAIlE,YAAY,CAChB,IAAI,EAAE,qBAAqB,GAAG,sBAAsB,GACnD,OAAO,CAAC,mBAAmB,CAAC;IAuEzB,MAAM,IAAI,OAAO,CAAC,gBAAgB,CAAC;CAG1C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "thirdweb",
3
- "version": "5.39.0",
3
+ "version": "5.40.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/thirdweb-dev/js.git#main"
@@ -29,7 +29,10 @@ export type {
29
29
  SupportedTokens,
30
30
  TokenInfo,
31
31
  } from "../react/core/utils/defaultTokens.js";
32
- export { defaultTokens } from "../react/core/utils/defaultTokens.js";
32
+ export {
33
+ defaultTokens,
34
+ getDefaultToken,
35
+ } from "../react/core/utils/defaultTokens.js";
33
36
 
34
37
  // Media Renderer
35
38
  export { MediaRenderer } from "../react/web/ui/MediaRenderer/MediaRenderer.js";
@@ -121,7 +124,13 @@ export {
121
124
  type PayEmbedProps,
122
125
  type PayEmbedConnectOptions,
123
126
  } from "../react/web/ui/PayEmbed.js";
124
- export type { PayUIOptions } from "../react/core/hooks/connection/ConnectButtonProps.js";
127
+ export type {
128
+ PayUIOptions,
129
+ PaymentInfo,
130
+ DirectPaymentOptions,
131
+ FundWalletOptions,
132
+ TranasctionOptions,
133
+ } from "../react/core/hooks/connection/ConnectButtonProps.js";
125
134
 
126
135
  export {
127
136
  useConnectModal,
@@ -141,6 +150,9 @@ export {
141
150
  type UseNetworkSwitcherModalOptions,
142
151
  } from "../react/web/ui/ConnectWallet/NetworkSelector.js";
143
152
 
153
+ // ens
154
+ export { useEnsName, useEnsAvatar } from "../react/core/utils/wallet.js";
155
+
144
156
  /**
145
157
  * Prebuilt UI components for thirdweb contracts
146
158
  */
@@ -169,3 +169,5 @@ export {
169
169
  getClaimParams,
170
170
  type GetClaimParamsOptions,
171
171
  } from "../utils/extensions/drops/get-claim-params.js";
172
+
173
+ export type { NFTMetadata, NFTInput } from "../utils/nft/parseNft.js";
@@ -170,6 +170,7 @@ export const fontSize = {
170
170
  };
171
171
 
172
172
  export const spacing = {
173
+ "3xs": "4px",
173
174
  xxs: "6px",
174
175
  xs: "8px",
175
176
  sm: "12px",
@@ -181,6 +182,7 @@ export const spacing = {
181
182
  };
182
183
 
183
184
  export const radius = {
185
+ xs: "4px",
184
186
  sm: "6px",
185
187
  md: "8px",
186
188
  lg: "12px",
@@ -1,5 +1,7 @@
1
1
  import type { Chain } from "../../../../chains/types.js";
2
2
  import type { ThirdwebClient } from "../../../../client/client.js";
3
+ import type { PreparedTransaction } from "../../../../transaction/prepare-transaction.js";
4
+ import type { Prettify } from "../../../../utils/type-utils.js";
3
5
  import type { Account, Wallet } from "../../../../wallets/interfaces/wallet.js";
4
6
  import type { SmartWalletOptions } from "../../../../wallets/smart/types.js";
5
7
  import type { AppMetadata } from "../../../../wallets/types.js";
@@ -10,10 +12,88 @@ import type { Theme } from "../../design-system/index.js";
10
12
  import type {
11
13
  SupportedNFTs,
12
14
  SupportedTokens,
15
+ TokenInfo,
13
16
  } from "../../utils/defaultTokens.js";
14
17
  import type { SiweAuthOptions } from "../auth/useSiweAuth.js";
15
18
 
16
- export type PayUIOptions = {
19
+ export type PaymentInfo = {
20
+ /**
21
+ * The chain to receive the payment on.
22
+ */
23
+ chain: Chain;
24
+ /**
25
+ * The address of the seller wallet to receive the payment on.
26
+ */
27
+ sellerAddress: string;
28
+ /**
29
+ * Optional ERC20 token to receive the payment on.
30
+ * If not provided, the native token will be used.
31
+ */
32
+ token?: TokenInfo;
33
+ } & (
34
+ | {
35
+ /**
36
+ * The amount of tokens to receive in ETH or tokens.
37
+ * ex: 0.1 ETH or 100 USDC
38
+ */
39
+ amount: string;
40
+ }
41
+ | {
42
+ /**
43
+ * The amount of tokens to receive in wei.
44
+ * ex: 1000000000000000000 wei
45
+ */
46
+ amountWei: bigint;
47
+ }
48
+ );
49
+
50
+ export type PayUIOptions = Prettify<
51
+ {
52
+ /**
53
+ * Configure options for buying tokens using other token ( aka Swap )
54
+ *
55
+ * By default, the "Crypto" option is enabled. You can disable it by setting `buyWithCrypto` to `false`
56
+ *
57
+ * You can prefill the source token and chain using `prefillSource`
58
+ * You can also disable the edits for the prefilled values by setting `prefillSource.allowEdits` - By default all are editable
59
+ *
60
+ * For example, if you want to allow selecting chain and but disable selecting token, you can set `allowEdits` to `{ token: false, chain: true }`
61
+ */
62
+ buyWithCrypto?:
63
+ | false
64
+ | {
65
+ prefillSource?: {
66
+ chain: Chain;
67
+ token?: TokenInfo;
68
+ allowEdits?: {
69
+ token: boolean;
70
+ chain: boolean;
71
+ };
72
+ };
73
+ };
74
+
75
+ /**
76
+ * By default "Credit card" option is enabled. you can disable it by setting `buyWithFiat` to `false`
77
+ *
78
+ * You can also enable the test mode for the on-ramp provider to test on-ramp without using real credit card.
79
+ */
80
+ buyWithFiat?:
81
+ | {
82
+ testMode?: boolean;
83
+ }
84
+ | false;
85
+
86
+ /**
87
+ * Extra details to store with the purchase.
88
+ *
89
+ * This details will be stored with the purchase and can be retrieved later via the status API or Webhook
90
+ */
91
+ purchaseData?: object;
92
+ } & (FundWalletOptions | DirectPaymentOptions | TranasctionOptions)
93
+ >;
94
+
95
+ export type FundWalletOptions = {
96
+ mode?: "fund_wallet";
17
97
  /**
18
98
  * Prefill the Buy Token amount, chain and/or token.
19
99
  * You can also disable the edits for the prefilled values using `allowEdits` - By default all are editable
@@ -25,12 +105,7 @@ export type PayUIOptions = {
25
105
  */
26
106
  prefillBuy?: {
27
107
  chain: Chain;
28
- token?: {
29
- name: string;
30
- symbol: string;
31
- address: string;
32
- icon?: string;
33
- };
108
+ token?: TokenInfo;
34
109
  amount?: string;
35
110
  allowEdits?: {
36
111
  amount: boolean;
@@ -38,59 +113,36 @@ export type PayUIOptions = {
38
113
  chain: boolean;
39
114
  };
40
115
  };
116
+ };
41
117
 
118
+ export type DirectPaymentOptions = {
119
+ mode: "direct_payment";
42
120
  /**
43
- * Configure options for buying tokens using other token ( aka Swap )
44
- *
45
- * By default, the "Crypto" option is enabled. You can disable it by setting `buyWithCrypto` to `false`
46
- *
47
- * You can prefill the source token and chain using `prefillSource`
48
- * You can also disable the edits for the prefilled values by setting `prefillSource.allowEdits` - By default all are editable
49
- *
50
- * For example, if you want to allow selecting chain and but disable selecting token, you can set `allowEdits` to `{ token: false, chain: true }`
121
+ * The payment information
51
122
  */
52
- buyWithCrypto?:
53
- | false
54
- | {
55
- prefillSource?: {
56
- chain: Chain;
57
- token?: {
58
- name: string;
59
- symbol: string;
60
- address: string;
61
- icon?: string;
62
- };
63
- allowEdits?: {
64
- token: boolean;
65
- chain: boolean;
66
- };
67
- };
68
- };
69
-
123
+ paymentInfo: PaymentInfo;
70
124
  /**
71
- * By default "Credit card" option is enabled. you can disable it by setting `buyWithFiat` to `false`
72
- *
73
- * You can also enable the test mode for the on-ramp provider to test on-ramp without using real credit card.
125
+ * Customize the display of the PayEmbed UI.
74
126
  */
75
- buyWithFiat?:
76
- | {
77
- testMode?: boolean;
78
- }
79
- | false;
127
+ metadata?: {
128
+ name?: string;
129
+ image?: string;
130
+ };
131
+ };
80
132
 
133
+ export type TranasctionOptions = {
134
+ mode: "transaction";
81
135
  /**
82
- * Extra details to store with the purchase.
83
- *
84
- * This details will be stored with the purchase and can be retrieved later via the status API or Webhook
136
+ * The transaction to be executed.
85
137
  */
86
- purchaseData?: object;
87
-
138
+ transaction: PreparedTransaction;
88
139
  /**
89
- * The address of the recipient of the purchase.
90
- *
91
- * This address will be used to send the purchased tokens to.
140
+ * Customize the display of the PayEmbed UI.
92
141
  */
93
- recipientAddress?: string;
142
+ metadata?: {
143
+ name?: string;
144
+ image?: string;
145
+ };
94
146
  };
95
147
 
96
148
  /**
@@ -192,7 +244,7 @@ export type ConnectButton_detailsModalOptions = {
192
244
  *
193
245
  * thirdweb Pay allows users to buy tokens using crypto or fiat currency.
194
246
  */
195
- payOptions?: PayUIOptions;
247
+ payOptions?: Extract<PayUIOptions, { mode?: "fund_wallet" }>;
196
248
  };
197
249
 
198
250
  /**
@@ -1,21 +1,11 @@
1
1
  import { type UseMutationResult, useMutation } from "@tanstack/react-query";
2
- import type { Address } from "abitype";
3
2
  import type { Chain } from "../../../../chains/types.js";
4
- import { getContract } from "../../../../contract/contract.js";
5
- import { getCurrencyMetadata } from "../../../../extensions/erc20/read/getCurrencyMetadata.js";
6
- import { getGasPrice } from "../../../../gas/get-gas-price.js";
7
- import { estimateGasCost } from "../../../../transaction/actions/estimate-gas-cost.js";
8
3
  import type { GaslessOptions } from "../../../../transaction/actions/gasless/types.js";
9
4
  import { sendTransaction } from "../../../../transaction/actions/send-transaction.js";
10
5
  import type { WaitForReceiptOptions } from "../../../../transaction/actions/wait-for-tx-receipt.js";
11
6
  import type { PreparedTransaction } from "../../../../transaction/prepare-transaction.js";
12
7
  import { resolvePromisedValue } from "../../../../utils/promise/resolve-promised-value.js";
13
8
  import type { Wallet } from "../../../../wallets/interfaces/wallet.js";
14
- import {
15
- type GetWalletBalanceResult,
16
- getWalletBalance,
17
- } from "../../../../wallets/utils/getWalletBalance.js";
18
- import { fetchBuySupportedDestinations } from "../../../web/ui/ConnectWallet/screens/Buy/swap/useSwapSupportedChains.js";
19
9
  import type { LocaleId } from "../../../web/ui/types.js";
20
10
  import type { Theme } from "../../design-system/index.js";
21
11
  import type { SupportedTokens } from "../../utils/defaultTokens.js";
@@ -43,7 +33,8 @@ import type { SupportedTokens } from "../../utils/defaultTokens.js";
43
33
  export type SendTransactionPayModalConfig =
44
34
  | {
45
35
  metadata?: {
46
- title?: string;
36
+ name?: string;
37
+ image?: string;
47
38
  };
48
39
  locale?: LocaleId;
49
40
  supportedTokens?: SupportedTokens;
@@ -74,19 +65,10 @@ export type SendTransactionConfig = {
74
65
  gasless?: GaslessOptions;
75
66
  };
76
67
 
77
- type ShowModalData = {
68
+ export type ShowModalData = {
78
69
  tx: PreparedTransaction;
79
70
  sendTx: () => void;
80
71
  rejectTx: (reason: Error) => void;
81
- totalCostWei: bigint;
82
- currency?: {
83
- address: Address;
84
- name: string;
85
- symbol: string;
86
- decimals: number;
87
- icon?: string;
88
- };
89
- walletBalance: GetWalletBalanceResult;
90
72
  resolveTx: (data: WaitForReceiptOptions) => void;
91
73
  };
92
74
 
@@ -152,76 +134,23 @@ export function useSendTransactionCore(args: {
152
134
 
153
135
  (async () => {
154
136
  try {
155
- const destinations = await fetchBuySupportedDestinations(tx.client);
156
-
157
- const isBuySupported = destinations.find(
158
- (c) => c.chain.id === tx.chain.id,
159
- );
160
-
161
- // buy not supported, can't show modal - send tx directly
162
- if (!isBuySupported) {
163
- sendTx();
164
- return;
165
- }
166
-
167
- // buy supported, check if there is enough balance - if not show modal to buy tokens
168
- const [nativeWalletBalance, nativeCostWei] = await Promise.all([
169
- getWalletBalance({
170
- address: account.address,
171
- chain: tx.chain,
172
- client: tx.client,
173
- }),
174
- getTotalTxCostForBuy(tx, account?.address),
137
+ const [_nativeValue, _erc20Value] = await Promise.all([
138
+ resolvePromisedValue(tx.value),
139
+ resolvePromisedValue(tx.erc20Value),
175
140
  ]);
176
-
177
- let currency: ShowModalData["currency"] | undefined = undefined;
178
- let walletBalance = nativeWalletBalance;
179
- let totalCostWei = nativeCostWei;
180
- const hasEnoughForGas = nativeWalletBalance.value > nativeCostWei;
181
-
182
- const erc20Value = await resolvePromisedValue(tx.erc20Value);
183
- if (erc20Value && hasEnoughForGas) {
184
- const [tokenBalance, tokenMeta] = await Promise.all([
185
- getWalletBalance({
186
- address: account.address,
187
- chain: tx.chain,
188
- client: tx.client,
189
- tokenAddress: erc20Value.tokenAddress,
190
- }),
191
- getCurrencyMetadata({
192
- contract: getContract({
193
- address: erc20Value.tokenAddress,
194
- chain: tx.chain,
195
- client: tx.client,
196
- }),
197
- }),
198
- ]);
199
- totalCostWei = erc20Value.amountWei;
200
- walletBalance = tokenBalance;
201
- currency = {
202
- address: erc20Value.tokenAddress,
203
- name: tokenMeta.name,
204
- symbol: tokenMeta.symbol,
205
- decimals: tokenMeta.decimals,
206
- };
207
- }
208
-
209
- // if enough balance, send tx
210
- if (totalCostWei < walletBalance.value) {
141
+ const nativeValue = _nativeValue || 0n;
142
+ const erc20Value = _erc20Value?.amountWei || 0n;
143
+
144
+ if (nativeValue > 0n || erc20Value > 0n) {
145
+ showPayModal({
146
+ tx,
147
+ sendTx,
148
+ rejectTx: reject,
149
+ resolveTx: resolve,
150
+ });
151
+ } else {
211
152
  sendTx();
212
- return;
213
153
  }
214
-
215
- // if not enough balance - show modal
216
- showPayModal({
217
- tx,
218
- sendTx,
219
- rejectTx: reject,
220
- resolveTx: resolve,
221
- totalCostWei,
222
- walletBalance,
223
- currency,
224
- });
225
154
  } catch (e) {
226
155
  console.error("Failed to estimate cost", e);
227
156
  // send it anyway?
@@ -232,42 +161,3 @@ export function useSendTransactionCore(args: {
232
161
  },
233
162
  });
234
163
  }
235
-
236
- export async function getTotalTxCostForBuy(
237
- tx: PreparedTransaction,
238
- from?: string,
239
- ) {
240
- try {
241
- const gasCost = await estimateGasCost({
242
- transaction: tx,
243
- from,
244
- });
245
-
246
- const bufferCost = gasCost.wei / 10n;
247
-
248
- // Note: get tx.value AFTER estimateGasCost
249
- const txValue = await resolvePromisedValue(tx.value);
250
-
251
- // add 10% extra gas cost to the estimate to ensure user buys enough to cover the tx cost
252
- return gasCost.wei + bufferCost + (txValue || 0n);
253
- } catch (e) {
254
- if (from) {
255
- // try again without passing from
256
- return await getTotalTxCostForBuy(tx);
257
- }
258
- // fallback if both fail, use the tx value + 2M * gas price
259
- const value = await resolvePromisedValue(tx.value);
260
-
261
- const gasPrice = await getGasPrice({
262
- client: tx.client,
263
- chain: tx.chain,
264
- });
265
-
266
- const buffer = 2_000_000n * gasPrice;
267
-
268
- if (!value) {
269
- return 0n + buffer;
270
- }
271
- return value + buffer;
272
- }
273
- }