thirdweb 5.31.1 → 5.32.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 (525) hide show
  1. package/dist/cjs/exports/react.js +4 -4
  2. package/dist/cjs/exports/react.js.map +1 -1
  3. package/dist/cjs/exports/react.native.js +14 -6
  4. package/dist/cjs/exports/react.native.js.map +1 -1
  5. package/dist/cjs/exports/wallets/in-app.js +1 -1
  6. package/dist/cjs/exports/wallets/in-app.js.map +1 -1
  7. package/dist/cjs/pay/utils/definitions.js +17 -10
  8. package/dist/cjs/pay/utils/definitions.js.map +1 -1
  9. package/dist/cjs/react/core/hooks/connection/ConnectButtonProps.js.map +1 -0
  10. package/dist/cjs/react/core/hooks/connection/ConnectEmbedProps.js +3 -0
  11. package/dist/cjs/react/core/hooks/connection/ConnectEmbedProps.js.map +1 -0
  12. package/dist/cjs/react/core/hooks/transaction/useSendTransaction.js.map +1 -1
  13. package/dist/cjs/react/core/hooks/wallets/useAutoConnect.js.map +1 -1
  14. package/dist/cjs/react/core/hooks/wallets/useSendToken.js +81 -0
  15. package/dist/cjs/react/core/hooks/wallets/useSendToken.js.map +1 -0
  16. package/dist/cjs/react/{web/ui/ConnectWallet → core/utils}/defaultTokens.js +20 -25
  17. package/dist/cjs/react/core/utils/defaultTokens.js.map +1 -0
  18. package/dist/cjs/react/core/utils/isSmartWallet.js.map +1 -0
  19. package/dist/cjs/react/{web/ui/ConnectWallet/icons/dataUris.js → core/utils/socialIcons.js} +19 -2
  20. package/dist/cjs/react/core/utils/socialIcons.js.map +1 -0
  21. package/dist/cjs/react/core/utils/storage.js.map +1 -0
  22. package/dist/cjs/react/core/utils/wallet.js +85 -0
  23. package/dist/cjs/react/core/utils/wallet.js.map +1 -0
  24. package/dist/cjs/react/native/design-system/index.js +33 -0
  25. package/dist/cjs/react/native/design-system/index.js.map +1 -0
  26. package/dist/cjs/react/native/hooks/wallets/useAutoConnect.js +5 -1
  27. package/dist/cjs/react/native/hooks/wallets/useAutoConnect.js.map +1 -1
  28. package/dist/cjs/react/native/hooks/wallets/useSendToken.js +31 -0
  29. package/dist/cjs/react/native/hooks/wallets/useSendToken.js.map +1 -0
  30. package/dist/cjs/react/native/ui/components/Address.js +31 -0
  31. package/dist/cjs/react/native/ui/components/Address.js.map +1 -0
  32. package/dist/cjs/react/native/ui/components/ChainIcon.js +30 -0
  33. package/dist/cjs/react/native/ui/components/ChainIcon.js.map +1 -0
  34. package/dist/cjs/react/native/ui/components/Header.js +30 -0
  35. package/dist/cjs/react/native/ui/components/Header.js.map +1 -0
  36. package/dist/cjs/react/native/ui/components/RNImage.js +43 -0
  37. package/dist/cjs/react/native/ui/components/RNImage.js.map +1 -0
  38. package/dist/cjs/react/native/ui/components/Skeleton.js +62 -0
  39. package/dist/cjs/react/native/ui/components/Skeleton.js.map +1 -0
  40. package/dist/cjs/react/native/ui/components/TokenIcon.js +16 -0
  41. package/dist/cjs/react/native/ui/components/TokenIcon.js.map +1 -0
  42. package/dist/cjs/react/native/ui/components/WalletImage.js +69 -0
  43. package/dist/cjs/react/native/ui/components/WalletImage.js.map +1 -0
  44. package/dist/cjs/react/native/ui/components/button.js +23 -8
  45. package/dist/cjs/react/native/ui/components/button.js.map +1 -1
  46. package/dist/cjs/react/native/ui/components/input.js +64 -0
  47. package/dist/cjs/react/native/ui/components/input.js.map +1 -0
  48. package/dist/cjs/react/native/ui/components/spacer.js +10 -0
  49. package/dist/cjs/react/native/ui/components/spacer.js.map +1 -0
  50. package/dist/cjs/react/native/ui/components/text.js +10 -7
  51. package/dist/cjs/react/native/ui/components/text.js.map +1 -1
  52. package/dist/cjs/react/native/ui/connect/ConnectButton.js +106 -0
  53. package/dist/cjs/react/native/ui/connect/ConnectButton.js.map +1 -0
  54. package/dist/cjs/react/native/ui/connect/ConnectModal.js +133 -0
  55. package/dist/cjs/react/native/ui/connect/ConnectModal.js.map +1 -0
  56. package/dist/cjs/react/native/ui/connect/ConnectedButton.js +42 -0
  57. package/dist/cjs/react/native/ui/connect/ConnectedButton.js.map +1 -0
  58. package/dist/cjs/react/native/ui/connect/ConnectedModal.js +175 -0
  59. package/dist/cjs/react/native/ui/connect/ConnectedModal.js.map +1 -0
  60. package/dist/cjs/react/native/ui/connect/ErrorView.js +25 -0
  61. package/dist/cjs/react/native/ui/connect/ErrorView.js.map +1 -0
  62. package/dist/cjs/react/native/ui/connect/ExternalWalletsList.js +67 -0
  63. package/dist/cjs/react/native/ui/connect/ExternalWalletsList.js.map +1 -0
  64. package/dist/cjs/react/native/ui/connect/InAppWalletUI.js +167 -0
  65. package/dist/cjs/react/native/ui/connect/InAppWalletUI.js.map +1 -0
  66. package/dist/cjs/react/native/ui/connect/ReceiveScreen.js +42 -0
  67. package/dist/cjs/react/native/ui/connect/ReceiveScreen.js.map +1 -0
  68. package/dist/cjs/react/native/ui/connect/SendScreen.js +82 -0
  69. package/dist/cjs/react/native/ui/connect/SendScreen.js.map +1 -0
  70. package/dist/cjs/react/native/ui/connect/SuccessView.js +25 -0
  71. package/dist/cjs/react/native/ui/connect/SuccessView.js.map +1 -0
  72. package/dist/cjs/react/native/ui/connect/TokenListScreen.js +59 -0
  73. package/dist/cjs/react/native/ui/connect/TokenListScreen.js.map +1 -0
  74. package/dist/cjs/react/native/ui/icons/svgs.js +236 -0
  75. package/dist/cjs/react/native/ui/icons/svgs.js.map +1 -0
  76. package/dist/cjs/react/native/ui/{TransactionButton/TrabsactionButton.js → transaction/TransactionButton.js} +1 -1
  77. package/dist/cjs/react/native/ui/transaction/TransactionButton.js.map +1 -0
  78. package/dist/cjs/react/native/wallets/defaultWallets.js +22 -0
  79. package/dist/cjs/react/native/wallets/defaultWallets.js.map +1 -0
  80. package/dist/cjs/react/web/hooks/transaction/useSendTransaction.js.map +1 -1
  81. package/dist/cjs/react/web/hooks/wallets/useAutoConnect.js +7 -2
  82. package/dist/cjs/react/web/hooks/wallets/useAutoConnect.js.map +1 -1
  83. package/dist/cjs/react/web/hooks/wallets/useSendToken.js +31 -0
  84. package/dist/cjs/react/web/hooks/wallets/useSendToken.js.map +1 -0
  85. package/dist/cjs/react/web/ui/ConnectWallet/ConnectButton.js +1 -1
  86. package/dist/cjs/react/web/ui/ConnectWallet/ConnectButton.js.map +1 -1
  87. package/dist/cjs/react/web/ui/ConnectWallet/Details.js +7 -51
  88. package/dist/cjs/react/web/ui/ConnectWallet/Details.js.map +1 -1
  89. package/dist/cjs/react/web/ui/ConnectWallet/Modal/AnyWalletConnectUI.js +2 -8
  90. package/dist/cjs/react/web/ui/ConnectWallet/Modal/AnyWalletConnectUI.js.map +1 -1
  91. package/dist/cjs/react/web/ui/ConnectWallet/Modal/ConnectEmbed.js +0 -4
  92. package/dist/cjs/react/web/ui/ConnectWallet/Modal/ConnectEmbed.js.map +1 -1
  93. package/dist/cjs/react/web/ui/ConnectWallet/Modal/ConnectModalContent.js +3 -1
  94. package/dist/cjs/react/web/ui/ConnectWallet/Modal/ConnectModalContent.js.map +1 -1
  95. package/dist/cjs/react/web/ui/ConnectWallet/Modal/SmartWalletConnectUI.js +2 -2
  96. package/dist/cjs/react/web/ui/ConnectWallet/Modal/SmartWalletConnectUI.js.map +1 -1
  97. package/dist/cjs/react/web/ui/ConnectWallet/WalletEntryButton.js +2 -2
  98. package/dist/cjs/react/web/ui/ConnectWallet/WalletEntryButton.js.map +1 -1
  99. package/dist/cjs/react/web/ui/ConnectWallet/WalletSelector.js +2 -2
  100. package/dist/cjs/react/web/ui/ConnectWallet/WalletSelector.js.map +1 -1
  101. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
  102. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatSteps.js.map +1 -1
  103. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js.map +1 -1
  104. package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.js.map +1 -1
  105. package/dist/cjs/react/web/ui/ConnectWallet/screens/SendFunds.js +4 -15
  106. package/dist/cjs/react/web/ui/ConnectWallet/screens/SendFunds.js.map +1 -1
  107. package/dist/cjs/react/web/ui/ConnectWallet/screens/SignatureScreen.js.map +1 -1
  108. package/dist/cjs/react/web/ui/ConnectWallet/screens/TokenSelector.js.map +1 -1
  109. package/dist/cjs/react/web/ui/ConnectWallet/screens/ViewFunds.js +1 -1
  110. package/dist/cjs/react/web/ui/ConnectWallet/screens/ViewFunds.js.map +1 -1
  111. package/dist/cjs/react/web/ui/PayEmbed.js.map +1 -1
  112. package/dist/cjs/react/web/ui/components/ChainIcon.js.map +1 -1
  113. package/dist/cjs/react/web/ui/components/TokenIcon.js +2 -2
  114. package/dist/cjs/react/web/ui/components/TokenIcon.js.map +1 -1
  115. package/dist/cjs/react/web/ui/components/WalletImage.js +12 -13
  116. package/dist/cjs/react/web/ui/components/WalletImage.js.map +1 -1
  117. package/dist/cjs/react/web/wallets/ecosystem/EcosystemWalletHeader.js +2 -2
  118. package/dist/cjs/react/web/wallets/ecosystem/EcosystemWalletHeader.js.map +1 -1
  119. package/dist/cjs/react/web/wallets/in-app/InAppWalletConnectUI.js +8 -4
  120. package/dist/cjs/react/web/wallets/in-app/InAppWalletConnectUI.js.map +1 -1
  121. package/dist/cjs/react/web/wallets/shared/ConnectWalletSocialOptions.js +5 -6
  122. package/dist/cjs/react/web/wallets/shared/ConnectWalletSocialOptions.js.map +1 -1
  123. package/dist/cjs/react/web/wallets/shared/OTPLoginUI.js +1 -1
  124. package/dist/cjs/react/web/wallets/shared/OTPLoginUI.js.map +1 -1
  125. package/dist/cjs/react/web/wallets/shared/PassKeyLogin.js +1 -1
  126. package/dist/cjs/react/web/wallets/shared/PassKeyLogin.js.map +1 -1
  127. package/dist/cjs/react/web/wallets/shared/SocialLogin.js +1 -1
  128. package/dist/cjs/react/web/wallets/shared/SocialLogin.js.map +1 -1
  129. package/dist/cjs/version.js +1 -1
  130. package/dist/cjs/wallets/in-app/native/native-connector.js +3 -4
  131. package/dist/cjs/wallets/in-app/native/native-connector.js.map +1 -1
  132. package/dist/cjs/wallets/manager/index.js +3 -2
  133. package/dist/cjs/wallets/manager/index.js.map +1 -1
  134. package/dist/esm/exports/react.js +4 -3
  135. package/dist/esm/exports/react.js.map +1 -1
  136. package/dist/esm/exports/react.native.js +6 -2
  137. package/dist/esm/exports/react.native.js.map +1 -1
  138. package/dist/esm/exports/wallets/in-app.js +1 -1
  139. package/dist/esm/exports/wallets/in-app.js.map +1 -1
  140. package/dist/esm/pay/utils/definitions.js +15 -9
  141. package/dist/esm/pay/utils/definitions.js.map +1 -1
  142. package/dist/esm/react/core/hooks/connection/ConnectButtonProps.js.map +1 -0
  143. package/dist/esm/react/core/hooks/connection/ConnectEmbedProps.js +2 -0
  144. package/dist/esm/react/core/hooks/connection/ConnectEmbedProps.js.map +1 -0
  145. package/dist/esm/react/core/hooks/transaction/useSendTransaction.js.map +1 -1
  146. package/dist/esm/react/core/hooks/wallets/useAutoConnect.js.map +1 -1
  147. package/dist/esm/react/core/hooks/wallets/useSendToken.js +78 -0
  148. package/dist/esm/react/core/hooks/wallets/useSendToken.js.map +1 -0
  149. package/dist/esm/react/{web/ui/ConnectWallet → core/utils}/defaultTokens.js +10 -15
  150. package/dist/esm/react/core/utils/defaultTokens.js.map +1 -0
  151. package/dist/esm/react/core/utils/isSmartWallet.js.map +1 -0
  152. package/dist/esm/react/{web/ui/ConnectWallet/icons/dataUris.js → core/utils/socialIcons.js} +18 -1
  153. package/dist/esm/react/core/utils/socialIcons.js.map +1 -0
  154. package/dist/esm/react/core/utils/storage.js.map +1 -0
  155. package/dist/esm/react/core/utils/wallet.js +80 -0
  156. package/dist/esm/react/core/utils/wallet.js.map +1 -0
  157. package/dist/esm/react/native/design-system/index.js +30 -0
  158. package/dist/esm/react/native/design-system/index.js.map +1 -0
  159. package/dist/esm/react/native/hooks/wallets/useAutoConnect.js +5 -1
  160. package/dist/esm/react/native/hooks/wallets/useAutoConnect.js.map +1 -1
  161. package/dist/esm/react/native/hooks/wallets/useSendToken.js +28 -0
  162. package/dist/esm/react/native/hooks/wallets/useSendToken.js.map +1 -0
  163. package/dist/esm/react/native/ui/components/Address.js +27 -0
  164. package/dist/esm/react/native/ui/components/Address.js.map +1 -0
  165. package/dist/esm/react/native/ui/components/ChainIcon.js +26 -0
  166. package/dist/esm/react/native/ui/components/ChainIcon.js.map +1 -0
  167. package/dist/esm/react/native/ui/components/Header.js +27 -0
  168. package/dist/esm/react/native/ui/components/Header.js.map +1 -0
  169. package/dist/esm/react/native/ui/components/RNImage.js +39 -0
  170. package/dist/esm/react/native/ui/components/RNImage.js.map +1 -0
  171. package/dist/esm/react/native/ui/components/Skeleton.js +58 -0
  172. package/dist/esm/react/native/ui/components/Skeleton.js.map +1 -0
  173. package/dist/esm/react/native/ui/components/TokenIcon.js +13 -0
  174. package/dist/esm/react/native/ui/components/TokenIcon.js.map +1 -0
  175. package/dist/esm/react/native/ui/components/WalletImage.js +65 -0
  176. package/dist/esm/react/native/ui/components/WalletImage.js.map +1 -0
  177. package/dist/esm/react/native/ui/components/button.js +24 -10
  178. package/dist/esm/react/native/ui/components/button.js.map +1 -1
  179. package/dist/esm/react/native/ui/components/input.js +60 -0
  180. package/dist/esm/react/native/ui/components/input.js.map +1 -0
  181. package/dist/esm/react/native/ui/components/spacer.js +7 -0
  182. package/dist/esm/react/native/ui/components/spacer.js.map +1 -0
  183. package/dist/esm/react/native/ui/components/text.js +10 -7
  184. package/dist/esm/react/native/ui/components/text.js.map +1 -1
  185. package/dist/esm/react/native/ui/connect/ConnectButton.js +103 -0
  186. package/dist/esm/react/native/ui/connect/ConnectButton.js.map +1 -0
  187. package/dist/esm/react/native/ui/connect/ConnectModal.js +129 -0
  188. package/dist/esm/react/native/ui/connect/ConnectModal.js.map +1 -0
  189. package/dist/esm/react/native/ui/connect/ConnectedButton.js +39 -0
  190. package/dist/esm/react/native/ui/connect/ConnectedButton.js.map +1 -0
  191. package/dist/esm/react/native/ui/connect/ConnectedModal.js +172 -0
  192. package/dist/esm/react/native/ui/connect/ConnectedModal.js.map +1 -0
  193. package/dist/esm/react/native/ui/connect/ErrorView.js +21 -0
  194. package/dist/esm/react/native/ui/connect/ErrorView.js.map +1 -0
  195. package/dist/esm/react/native/ui/connect/ExternalWalletsList.js +64 -0
  196. package/dist/esm/react/native/ui/connect/ExternalWalletsList.js.map +1 -0
  197. package/dist/esm/react/native/ui/connect/InAppWalletUI.js +163 -0
  198. package/dist/esm/react/native/ui/connect/InAppWalletUI.js.map +1 -0
  199. package/dist/esm/react/native/ui/connect/ReceiveScreen.js +38 -0
  200. package/dist/esm/react/native/ui/connect/ReceiveScreen.js.map +1 -0
  201. package/dist/esm/react/native/ui/connect/SendScreen.js +78 -0
  202. package/dist/esm/react/native/ui/connect/SendScreen.js.map +1 -0
  203. package/dist/esm/react/native/ui/connect/SuccessView.js +21 -0
  204. package/dist/esm/react/native/ui/connect/SuccessView.js.map +1 -0
  205. package/dist/esm/react/native/ui/connect/TokenListScreen.js +54 -0
  206. package/dist/esm/react/native/ui/connect/TokenListScreen.js.map +1 -0
  207. package/dist/esm/react/native/ui/icons/svgs.js +233 -0
  208. package/dist/esm/react/native/ui/icons/svgs.js.map +1 -0
  209. package/dist/esm/react/native/ui/{TransactionButton/TrabsactionButton.js → transaction/TransactionButton.js} +1 -1
  210. package/dist/esm/react/native/ui/transaction/TransactionButton.js.map +1 -0
  211. package/dist/esm/react/native/wallets/defaultWallets.js +19 -0
  212. package/dist/esm/react/native/wallets/defaultWallets.js.map +1 -0
  213. package/dist/esm/react/web/hooks/transaction/useSendTransaction.js.map +1 -1
  214. package/dist/esm/react/web/hooks/wallets/useAutoConnect.js +7 -2
  215. package/dist/esm/react/web/hooks/wallets/useAutoConnect.js.map +1 -1
  216. package/dist/esm/react/web/hooks/wallets/useSendToken.js +28 -0
  217. package/dist/esm/react/web/hooks/wallets/useSendToken.js.map +1 -0
  218. package/dist/esm/react/web/ui/ConnectWallet/ConnectButton.js +1 -1
  219. package/dist/esm/react/web/ui/ConnectWallet/ConnectButton.js.map +1 -1
  220. package/dist/esm/react/web/ui/ConnectWallet/Details.js +7 -51
  221. package/dist/esm/react/web/ui/ConnectWallet/Details.js.map +1 -1
  222. package/dist/esm/react/web/ui/ConnectWallet/Modal/AnyWalletConnectUI.js +2 -8
  223. package/dist/esm/react/web/ui/ConnectWallet/Modal/AnyWalletConnectUI.js.map +1 -1
  224. package/dist/esm/react/web/ui/ConnectWallet/Modal/ConnectEmbed.js +1 -5
  225. package/dist/esm/react/web/ui/ConnectWallet/Modal/ConnectEmbed.js.map +1 -1
  226. package/dist/esm/react/web/ui/ConnectWallet/Modal/ConnectModalContent.js +3 -1
  227. package/dist/esm/react/web/ui/ConnectWallet/Modal/ConnectModalContent.js.map +1 -1
  228. package/dist/esm/react/web/ui/ConnectWallet/Modal/SmartWalletConnectUI.js +1 -1
  229. package/dist/esm/react/web/ui/ConnectWallet/Modal/SmartWalletConnectUI.js.map +1 -1
  230. package/dist/esm/react/web/ui/ConnectWallet/WalletEntryButton.js +1 -1
  231. package/dist/esm/react/web/ui/ConnectWallet/WalletEntryButton.js.map +1 -1
  232. package/dist/esm/react/web/ui/ConnectWallet/WalletSelector.js +1 -1
  233. package/dist/esm/react/web/ui/ConnectWallet/WalletSelector.js.map +1 -1
  234. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
  235. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatSteps.js.map +1 -1
  236. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.js.map +1 -1
  237. package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.js.map +1 -1
  238. package/dist/esm/react/web/ui/ConnectWallet/screens/SendFunds.js +5 -16
  239. package/dist/esm/react/web/ui/ConnectWallet/screens/SendFunds.js.map +1 -1
  240. package/dist/esm/react/web/ui/ConnectWallet/screens/SignatureScreen.js.map +1 -1
  241. package/dist/esm/react/web/ui/ConnectWallet/screens/TokenSelector.js.map +1 -1
  242. package/dist/esm/react/web/ui/ConnectWallet/screens/ViewFunds.js +1 -1
  243. package/dist/esm/react/web/ui/ConnectWallet/screens/ViewFunds.js.map +1 -1
  244. package/dist/esm/react/web/ui/PayEmbed.js.map +1 -1
  245. package/dist/esm/react/web/ui/components/ChainIcon.js.map +1 -1
  246. package/dist/esm/react/web/ui/components/TokenIcon.js +1 -1
  247. package/dist/esm/react/web/ui/components/WalletImage.js +3 -4
  248. package/dist/esm/react/web/ui/components/WalletImage.js.map +1 -1
  249. package/dist/esm/react/web/wallets/ecosystem/EcosystemWalletHeader.js +1 -1
  250. package/dist/esm/react/web/wallets/ecosystem/EcosystemWalletHeader.js.map +1 -1
  251. package/dist/esm/react/web/wallets/in-app/InAppWalletConnectUI.js +8 -4
  252. package/dist/esm/react/web/wallets/in-app/InAppWalletConnectUI.js.map +1 -1
  253. package/dist/esm/react/web/wallets/shared/ConnectWalletSocialOptions.js +2 -3
  254. package/dist/esm/react/web/wallets/shared/ConnectWalletSocialOptions.js.map +1 -1
  255. package/dist/esm/react/web/wallets/shared/OTPLoginUI.js +1 -1
  256. package/dist/esm/react/web/wallets/shared/OTPLoginUI.js.map +1 -1
  257. package/dist/esm/react/web/wallets/shared/PassKeyLogin.js +1 -1
  258. package/dist/esm/react/web/wallets/shared/PassKeyLogin.js.map +1 -1
  259. package/dist/esm/react/web/wallets/shared/SocialLogin.js +1 -1
  260. package/dist/esm/react/web/wallets/shared/SocialLogin.js.map +1 -1
  261. package/dist/esm/version.js +1 -1
  262. package/dist/esm/wallets/in-app/native/native-connector.js +3 -4
  263. package/dist/esm/wallets/in-app/native/native-connector.js.map +1 -1
  264. package/dist/esm/wallets/manager/index.js +3 -2
  265. package/dist/esm/wallets/manager/index.js.map +1 -1
  266. package/dist/types/exports/react.d.ts +7 -6
  267. package/dist/types/exports/react.d.ts.map +1 -1
  268. package/dist/types/exports/react.native.d.ts +7 -2
  269. package/dist/types/exports/react.native.d.ts.map +1 -1
  270. package/dist/types/exports/wallets/in-app.d.ts +1 -1
  271. package/dist/types/exports/wallets/in-app.d.ts.map +1 -1
  272. package/dist/types/pay/utils/definitions.d.ts +1 -0
  273. package/dist/types/pay/utils/definitions.d.ts.map +1 -1
  274. package/dist/types/react/{web/ui/ConnectWallet → core/hooks/connection}/ConnectButtonProps.d.ts +6 -6
  275. package/dist/types/react/core/hooks/connection/ConnectButtonProps.d.ts.map +1 -0
  276. package/dist/types/react/core/hooks/connection/ConnectEmbedProps.d.ts +264 -0
  277. package/dist/types/react/core/hooks/connection/ConnectEmbedProps.d.ts.map +1 -0
  278. package/dist/types/react/core/hooks/connection/types.d.ts +1 -1
  279. package/dist/types/react/core/hooks/connection/types.d.ts.map +1 -1
  280. package/dist/types/react/core/hooks/transaction/useSendTransaction.d.ts +1 -1
  281. package/dist/types/react/core/hooks/transaction/useSendTransaction.d.ts.map +1 -1
  282. package/dist/types/react/core/hooks/wallets/useAutoConnect.d.ts +3 -1
  283. package/dist/types/react/core/hooks/wallets/useAutoConnect.d.ts.map +1 -1
  284. package/dist/types/react/core/hooks/wallets/useSendToken.d.ts +12 -0
  285. package/dist/types/react/core/hooks/wallets/useSendToken.d.ts.map +1 -0
  286. package/dist/types/react/{web/ui/ConnectWallet → core/utils}/defaultTokens.d.ts +1 -0
  287. package/dist/types/react/core/utils/defaultTokens.d.ts.map +1 -0
  288. package/dist/types/react/core/utils/isSmartWallet.d.ts.map +1 -0
  289. package/dist/types/react/{web/ui/ConnectWallet/icons/dataUris.d.ts → core/utils/socialIcons.d.ts} +17 -1
  290. package/dist/types/react/core/utils/socialIcons.d.ts.map +1 -0
  291. package/dist/types/react/core/utils/storage.d.ts +5 -0
  292. package/dist/types/react/core/utils/storage.d.ts.map +1 -0
  293. package/dist/types/react/core/utils/wallet.d.ts +26 -0
  294. package/dist/types/react/core/utils/wallet.d.ts.map +1 -0
  295. package/dist/types/react/native/design-system/index.d.ts +30 -0
  296. package/dist/types/react/native/design-system/index.d.ts.map +1 -0
  297. package/dist/types/react/native/hooks/wallets/useAutoConnect.d.ts.map +1 -1
  298. package/dist/types/react/{web/ui/hooks → native/hooks/wallets}/useSendToken.d.ts +18 -1
  299. package/dist/types/react/native/hooks/wallets/useSendToken.d.ts.map +1 -0
  300. package/dist/types/react/native/ui/components/Address.d.ts +9 -0
  301. package/dist/types/react/native/ui/components/Address.d.ts.map +1 -0
  302. package/dist/types/react/native/ui/components/ChainIcon.d.ts +11 -0
  303. package/dist/types/react/native/ui/components/ChainIcon.d.ts.map +1 -0
  304. package/dist/types/react/native/ui/components/Header.d.ts +10 -0
  305. package/dist/types/react/native/ui/components/Header.d.ts.map +1 -0
  306. package/dist/types/react/native/ui/components/RNImage.d.ts +10 -0
  307. package/dist/types/react/native/ui/components/RNImage.d.ts.map +1 -0
  308. package/dist/types/react/native/ui/components/Skeleton.d.ts +11 -0
  309. package/dist/types/react/native/ui/components/Skeleton.d.ts.map +1 -0
  310. package/dist/types/react/native/ui/components/TokenIcon.d.ts +15 -0
  311. package/dist/types/react/native/ui/components/TokenIcon.d.ts.map +1 -0
  312. package/dist/types/react/native/ui/components/WalletImage.d.ts +9 -0
  313. package/dist/types/react/native/ui/components/WalletImage.d.ts.map +1 -0
  314. package/dist/types/react/native/ui/components/button.d.ts +5 -1
  315. package/dist/types/react/native/ui/components/button.d.ts.map +1 -1
  316. package/dist/types/react/native/ui/components/input.d.ts +12 -0
  317. package/dist/types/react/native/ui/components/input.d.ts.map +1 -0
  318. package/dist/types/react/native/ui/components/spacer.d.ts +5 -0
  319. package/dist/types/react/native/ui/components/spacer.d.ts.map +1 -0
  320. package/dist/types/react/native/ui/components/text.d.ts +1 -1
  321. package/dist/types/react/native/ui/components/text.d.ts.map +1 -1
  322. package/dist/types/react/native/ui/connect/ConnectButton.d.ts +18 -0
  323. package/dist/types/react/native/ui/connect/ConnectButton.d.ts.map +1 -0
  324. package/dist/types/react/native/ui/connect/ConnectModal.d.ts +40 -0
  325. package/dist/types/react/native/ui/connect/ConnectModal.d.ts.map +1 -0
  326. package/dist/types/react/native/ui/connect/ConnectedButton.d.ts +9 -0
  327. package/dist/types/react/native/ui/connect/ConnectedButton.d.ts.map +1 -0
  328. package/dist/types/react/native/ui/connect/ConnectedModal.d.ts +14 -0
  329. package/dist/types/react/native/ui/connect/ConnectedModal.d.ts.map +1 -0
  330. package/dist/types/react/native/ui/connect/ErrorView.d.ts +7 -0
  331. package/dist/types/react/native/ui/connect/ErrorView.d.ts.map +1 -0
  332. package/dist/types/react/native/ui/connect/ExternalWalletsList.d.ts +15 -0
  333. package/dist/types/react/native/ui/connect/ExternalWalletsList.d.ts.map +1 -0
  334. package/dist/types/react/native/ui/connect/InAppWalletUI.d.ts +19 -0
  335. package/dist/types/react/native/ui/connect/InAppWalletUI.d.ts.map +1 -0
  336. package/dist/types/react/native/ui/connect/ReceiveScreen.d.ts +13 -0
  337. package/dist/types/react/native/ui/connect/ReceiveScreen.d.ts.map +1 -0
  338. package/dist/types/react/native/ui/connect/SendScreen.d.ts +14 -0
  339. package/dist/types/react/native/ui/connect/SendScreen.d.ts.map +1 -0
  340. package/dist/types/react/native/ui/connect/SuccessView.d.ts +7 -0
  341. package/dist/types/react/native/ui/connect/SuccessView.d.ts.map +1 -0
  342. package/dist/types/react/native/ui/connect/TokenListScreen.d.ts +20 -0
  343. package/dist/types/react/native/ui/connect/TokenListScreen.d.ts.map +1 -0
  344. package/dist/types/react/native/ui/icons/svgs.d.ts +22 -0
  345. package/dist/types/react/native/ui/icons/svgs.d.ts.map +1 -0
  346. package/dist/types/react/native/ui/{TransactionButton/TrabsactionButton.d.ts → transaction/TransactionButton.d.ts} +1 -1
  347. package/dist/types/react/native/ui/transaction/TransactionButton.d.ts.map +1 -0
  348. package/dist/types/react/native/wallets/defaultWallets.d.ts +11 -0
  349. package/dist/types/react/native/wallets/defaultWallets.d.ts.map +1 -0
  350. package/dist/types/react/web/hooks/transaction/useSendTransaction.d.ts.map +1 -1
  351. package/dist/types/react/web/hooks/wallets/useAutoConnect.d.ts.map +1 -1
  352. package/dist/types/react/web/hooks/wallets/useSendToken.d.ts +28 -0
  353. package/dist/types/react/web/hooks/wallets/useSendToken.d.ts.map +1 -0
  354. package/dist/types/react/web/ui/ConnectWallet/ConnectButton.d.ts +1 -1
  355. package/dist/types/react/web/ui/ConnectWallet/ConnectButton.d.ts.map +1 -1
  356. package/dist/types/react/web/ui/ConnectWallet/Details.d.ts +2 -2
  357. package/dist/types/react/web/ui/ConnectWallet/Details.d.ts.map +1 -1
  358. package/dist/types/react/web/ui/ConnectWallet/Modal/AnyWalletConnectUI.d.ts.map +1 -1
  359. package/dist/types/react/web/ui/ConnectWallet/Modal/ConnectEmbed.d.ts +1 -267
  360. package/dist/types/react/web/ui/ConnectWallet/Modal/ConnectEmbed.d.ts.map +1 -1
  361. package/dist/types/react/web/ui/ConnectWallet/Modal/ConnectModalContent.d.ts.map +1 -1
  362. package/dist/types/react/web/ui/ConnectWallet/WalletEntryButton.d.ts.map +1 -1
  363. package/dist/types/react/web/ui/ConnectWallet/WalletSelector.d.ts.map +1 -1
  364. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.d.ts +2 -2
  365. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.d.ts.map +1 -1
  366. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/useEnabledPaymentMethods.d.ts +1 -1
  367. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/useEnabledPaymentMethods.d.ts.map +1 -1
  368. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.d.ts +1 -1
  369. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.d.ts.map +1 -1
  370. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.d.ts +1 -1
  371. package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.d.ts.map +1 -1
  372. package/dist/types/react/web/ui/ConnectWallet/screens/SendFunds.d.ts +1 -1
  373. package/dist/types/react/web/ui/ConnectWallet/screens/SendFunds.d.ts.map +1 -1
  374. package/dist/types/react/web/ui/ConnectWallet/screens/SignatureScreen.d.ts +1 -1
  375. package/dist/types/react/web/ui/ConnectWallet/screens/SignatureScreen.d.ts.map +1 -1
  376. package/dist/types/react/web/ui/ConnectWallet/screens/TokenSelector.d.ts +1 -1
  377. package/dist/types/react/web/ui/ConnectWallet/screens/TokenSelector.d.ts.map +1 -1
  378. package/dist/types/react/web/ui/ConnectWallet/screens/ViewFunds.d.ts +1 -1
  379. package/dist/types/react/web/ui/ConnectWallet/screens/ViewFunds.d.ts.map +1 -1
  380. package/dist/types/react/web/ui/ConnectWallet/screens/nativeToken.d.ts +1 -1
  381. package/dist/types/react/web/ui/ConnectWallet/screens/nativeToken.d.ts.map +1 -1
  382. package/dist/types/react/web/ui/PayEmbed.d.ts +2 -2
  383. package/dist/types/react/web/ui/PayEmbed.d.ts.map +1 -1
  384. package/dist/types/react/web/ui/components/ChainIcon.d.ts.map +1 -1
  385. package/dist/types/react/web/ui/components/WalletImage.d.ts.map +1 -1
  386. package/dist/types/react/web/wallets/in-app/InAppWalletConnectUI.d.ts.map +1 -1
  387. package/dist/types/react/web/wallets/shared/ConnectWalletSocialOptions.d.ts.map +1 -1
  388. package/dist/types/react/web/wallets/shared/OTPLoginUI.d.ts.map +1 -1
  389. package/dist/types/react/web/wallets/shared/SocialLogin.d.ts.map +1 -1
  390. package/dist/types/version.d.ts +1 -1
  391. package/dist/types/wallets/in-app/native/native-connector.d.ts.map +1 -1
  392. package/dist/types/wallets/manager/index.d.ts +1 -0
  393. package/dist/types/wallets/manager/index.d.ts.map +1 -1
  394. package/package.json +19 -3
  395. package/src/exports/react.native.ts +19 -5
  396. package/src/exports/react.ts +7 -12
  397. package/src/exports/wallets/in-app.ts +1 -1
  398. package/src/pay/utils/definitions.ts +16 -9
  399. package/src/react/{web/ui/ConnectWallet → core/hooks/connection}/ConnectButtonProps.ts +7 -10
  400. package/src/react/core/hooks/connection/ConnectEmbedProps.ts +285 -0
  401. package/src/react/core/hooks/connection/types.ts +1 -1
  402. package/src/react/core/hooks/transaction/useSendTransaction.ts +1 -1
  403. package/src/react/core/hooks/wallets/useAutoConnect.ts +1 -1
  404. package/src/react/core/hooks/wallets/useSendToken.ts +94 -0
  405. package/src/react/{web/ui/ConnectWallet → core/utils}/defaultTokens.ts +10 -15
  406. package/src/react/{web/ui/ConnectWallet/icons/dataUris.ts → core/utils/socialIcons.ts} +30 -0
  407. package/src/react/{web/wallets/shared → core/utils}/storage.ts +2 -2
  408. package/src/react/core/utils/wallet.ts +101 -0
  409. package/src/react/native/design-system/index.ts +31 -0
  410. package/src/react/native/hooks/wallets/useAutoConnect.ts +5 -1
  411. package/src/react/native/hooks/wallets/useSendToken.ts +29 -0
  412. package/src/react/native/ui/components/Address.tsx +52 -0
  413. package/src/react/native/ui/components/ChainIcon.tsx +42 -0
  414. package/src/react/native/ui/components/Header.tsx +84 -0
  415. package/src/react/native/ui/components/RNImage.tsx +71 -0
  416. package/src/react/native/ui/components/Skeleton.tsx +93 -0
  417. package/src/react/native/ui/components/TokenIcon.tsx +31 -0
  418. package/src/react/native/ui/components/WalletImage.tsx +81 -0
  419. package/src/react/native/ui/components/button.tsx +41 -9
  420. package/src/react/native/ui/components/input.tsx +128 -0
  421. package/src/react/native/ui/components/spacer.tsx +6 -0
  422. package/src/react/native/ui/components/text.tsx +17 -8
  423. package/src/react/native/ui/connect/ConnectButton.tsx +188 -0
  424. package/src/react/native/ui/connect/ConnectModal.tsx +301 -0
  425. package/src/react/native/ui/connect/ConnectedButton.tsx +94 -0
  426. package/src/react/native/ui/connect/ConnectedModal.tsx +434 -0
  427. package/src/react/native/ui/connect/ErrorView.tsx +44 -0
  428. package/src/react/native/ui/connect/ExternalWalletsList.tsx +162 -0
  429. package/src/react/native/ui/connect/InAppWalletUI.tsx +320 -0
  430. package/src/react/native/ui/connect/ReceiveScreen.tsx +81 -0
  431. package/src/react/native/ui/connect/SendScreen.tsx +238 -0
  432. package/src/react/native/ui/connect/SuccessView.tsx +44 -0
  433. package/src/react/native/ui/connect/TokenListScreen.tsx +147 -0
  434. package/src/react/native/ui/icons/svgs.ts +252 -0
  435. package/src/react/native/wallets/defaultWallets.ts +30 -0
  436. package/src/react/web/hooks/transaction/useSendTransaction.tsx +2 -2
  437. package/src/react/web/hooks/wallets/useAutoConnect.ts +18 -8
  438. package/src/react/web/hooks/wallets/useSendToken.ts +29 -0
  439. package/src/react/web/ui/ConnectWallet/ConnectButton.tsx +2 -2
  440. package/src/react/web/ui/ConnectWallet/Details.tsx +26 -78
  441. package/src/react/web/ui/ConnectWallet/Modal/AnyWalletConnectUI.tsx +2 -9
  442. package/src/react/web/ui/ConnectWallet/Modal/ConnectEmbed.tsx +6 -285
  443. package/src/react/web/ui/ConnectWallet/Modal/ConnectModalContent.tsx +3 -1
  444. package/src/react/web/ui/ConnectWallet/Modal/SmartWalletConnectUI.tsx +1 -1
  445. package/src/react/web/ui/ConnectWallet/WalletEntryButton.tsx +1 -1
  446. package/src/react/web/ui/ConnectWallet/WalletSelector.tsx +1 -1
  447. package/src/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.tsx +2 -2
  448. package/src/react/web/ui/ConnectWallet/screens/Buy/fiat/FiatSteps.tsx +1 -1
  449. package/src/react/web/ui/ConnectWallet/screens/Buy/main/useEnabledPaymentMethods.ts +1 -1
  450. package/src/react/web/ui/ConnectWallet/screens/Buy/main/useUISelectionStates.ts +1 -1
  451. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/PayWithCrypto.tsx +1 -1
  452. package/src/react/web/ui/ConnectWallet/screens/Buy/swap/SwapFlow.tsx +1 -1
  453. package/src/react/web/ui/ConnectWallet/screens/SendFunds.tsx +8 -21
  454. package/src/react/web/ui/ConnectWallet/screens/SignatureScreen.tsx +1 -1
  455. package/src/react/web/ui/ConnectWallet/screens/TokenSelector.tsx +1 -1
  456. package/src/react/web/ui/ConnectWallet/screens/ViewFunds.tsx +4 -1
  457. package/src/react/web/ui/ConnectWallet/screens/nativeToken.ts +1 -1
  458. package/src/react/web/ui/PayEmbed.tsx +3 -3
  459. package/src/react/web/ui/components/ChainIcon.tsx +0 -1
  460. package/src/react/web/ui/components/TokenIcon.tsx +1 -1
  461. package/src/react/web/ui/components/WalletImage.tsx +7 -9
  462. package/src/react/web/wallets/ecosystem/EcosystemWalletHeader.tsx +1 -1
  463. package/src/react/web/wallets/in-app/InAppWalletConnectUI.tsx +8 -4
  464. package/src/react/web/wallets/shared/ConnectWalletSocialOptions.tsx +6 -6
  465. package/src/react/web/wallets/shared/OTPLoginUI.tsx +1 -1
  466. package/src/react/web/wallets/shared/PassKeyLogin.tsx +1 -1
  467. package/src/react/web/wallets/shared/SocialLogin.tsx +1 -1
  468. package/src/version.ts +1 -1
  469. package/src/wallets/in-app/native/native-connector.ts +4 -6
  470. package/src/wallets/manager/index.ts +4 -2
  471. package/dist/cjs/react/native/ui/TransactionButton/TrabsactionButton.js.map +0 -1
  472. package/dist/cjs/react/web/ui/ConnectWallet/ConnectButtonProps.js.map +0 -1
  473. package/dist/cjs/react/web/ui/ConnectWallet/defaultTokens.js.map +0 -1
  474. package/dist/cjs/react/web/ui/ConnectWallet/icons/dataUris.js.map +0 -1
  475. package/dist/cjs/react/web/ui/ConnectWallet/icons/socialLogins.js +0 -15
  476. package/dist/cjs/react/web/ui/ConnectWallet/icons/socialLogins.js.map +0 -1
  477. package/dist/cjs/react/web/ui/hooks/useSendToken.js +0 -57
  478. package/dist/cjs/react/web/ui/hooks/useSendToken.js.map +0 -1
  479. package/dist/cjs/react/web/ui/hooks/useWalletInfo.js +0 -37
  480. package/dist/cjs/react/web/ui/hooks/useWalletInfo.js.map +0 -1
  481. package/dist/cjs/react/web/utils/isSmartWallet.js.map +0 -1
  482. package/dist/cjs/react/web/wallets/in-app/socialIcons.js +0 -10
  483. package/dist/cjs/react/web/wallets/in-app/socialIcons.js.map +0 -1
  484. package/dist/cjs/react/web/wallets/shared/storage.js.map +0 -1
  485. package/dist/esm/react/native/ui/TransactionButton/TrabsactionButton.js.map +0 -1
  486. package/dist/esm/react/web/ui/ConnectWallet/ConnectButtonProps.js.map +0 -1
  487. package/dist/esm/react/web/ui/ConnectWallet/defaultTokens.js.map +0 -1
  488. package/dist/esm/react/web/ui/ConnectWallet/icons/dataUris.js.map +0 -1
  489. package/dist/esm/react/web/ui/ConnectWallet/icons/socialLogins.js +0 -12
  490. package/dist/esm/react/web/ui/ConnectWallet/icons/socialLogins.js.map +0 -1
  491. package/dist/esm/react/web/ui/hooks/useSendToken.js +0 -54
  492. package/dist/esm/react/web/ui/hooks/useSendToken.js.map +0 -1
  493. package/dist/esm/react/web/ui/hooks/useWalletInfo.js +0 -33
  494. package/dist/esm/react/web/ui/hooks/useWalletInfo.js.map +0 -1
  495. package/dist/esm/react/web/utils/isSmartWallet.js.map +0 -1
  496. package/dist/esm/react/web/wallets/in-app/socialIcons.js +0 -7
  497. package/dist/esm/react/web/wallets/in-app/socialIcons.js.map +0 -1
  498. package/dist/esm/react/web/wallets/shared/storage.js.map +0 -1
  499. package/dist/types/react/native/ui/TransactionButton/TrabsactionButton.d.ts.map +0 -1
  500. package/dist/types/react/web/ui/ConnectWallet/ConnectButtonProps.d.ts.map +0 -1
  501. package/dist/types/react/web/ui/ConnectWallet/defaultTokens.d.ts.map +0 -1
  502. package/dist/types/react/web/ui/ConnectWallet/icons/dataUris.d.ts.map +0 -1
  503. package/dist/types/react/web/ui/ConnectWallet/icons/socialLogins.d.ts +0 -12
  504. package/dist/types/react/web/ui/ConnectWallet/icons/socialLogins.d.ts.map +0 -1
  505. package/dist/types/react/web/ui/hooks/useSendToken.d.ts.map +0 -1
  506. package/dist/types/react/web/ui/hooks/useWalletInfo.d.ts +0 -13
  507. package/dist/types/react/web/ui/hooks/useWalletInfo.d.ts.map +0 -1
  508. package/dist/types/react/web/utils/isSmartWallet.d.ts.map +0 -1
  509. package/dist/types/react/web/wallets/in-app/socialIcons.d.ts +0 -6
  510. package/dist/types/react/web/wallets/in-app/socialIcons.d.ts.map +0 -1
  511. package/dist/types/react/web/wallets/shared/storage.d.ts +0 -5
  512. package/dist/types/react/web/wallets/shared/storage.d.ts.map +0 -1
  513. package/src/react/web/ui/ConnectWallet/icons/socialLogins.ts +0 -22
  514. package/src/react/web/ui/hooks/useSendToken.ts +0 -66
  515. package/src/react/web/ui/hooks/useWalletInfo.ts +0 -37
  516. package/src/react/web/wallets/in-app/socialIcons.ts +0 -11
  517. /package/dist/cjs/react/{web/ui/ConnectWallet → core/hooks/connection}/ConnectButtonProps.js +0 -0
  518. /package/dist/cjs/react/{web → core}/utils/isSmartWallet.js +0 -0
  519. /package/dist/cjs/react/{web/wallets/shared → core/utils}/storage.js +0 -0
  520. /package/dist/esm/react/{web/ui/ConnectWallet → core/hooks/connection}/ConnectButtonProps.js +0 -0
  521. /package/dist/esm/react/{web → core}/utils/isSmartWallet.js +0 -0
  522. /package/dist/esm/react/{web/wallets/shared → core/utils}/storage.js +0 -0
  523. /package/dist/types/react/{web → core}/utils/isSmartWallet.d.ts +0 -0
  524. /package/src/react/{web → core}/utils/isSmartWallet.ts +0 -0
  525. /package/src/react/native/ui/{TransactionButton/TrabsactionButton.tsx → transaction/TransactionButton.tsx} +0 -0
@@ -0,0 +1,94 @@
1
+ import { useMutation } from "@tanstack/react-query";
2
+ import type { ThirdwebClient } from "../../../../client/client.js";
3
+ import { getContract } from "../../../../contract/contract.js";
4
+ import { resolveAddress } from "../../../../extensions/ens/resolve-address.js";
5
+ import { transfer } from "../../../../extensions/erc20/write/transfer.js";
6
+ import { sendTransaction } from "../../../../transaction/actions/send-transaction.js";
7
+ import { prepareTransaction } from "../../../../transaction/prepare-transaction.js";
8
+ import { isAddress } from "../../../../utils/address.js";
9
+ import { toWei } from "../../../../utils/units.js";
10
+ import type { Wallet } from "../../../../wallets/interfaces/wallet.js";
11
+
12
+ /**
13
+ * Send Native or ERC20 tokens from active wallet to given address.
14
+ * @internal
15
+ */
16
+ export function useSendTokenCore(client: ThirdwebClient, wallet?: Wallet) {
17
+ return useMutation({
18
+ async mutationFn(option: {
19
+ tokenAddress?: string;
20
+ receiverAddress: string;
21
+ amount: string;
22
+ }) {
23
+ const { tokenAddress, receiverAddress, amount } = option;
24
+ const activeChain = wallet?.getChain();
25
+ const account = wallet?.getAccount();
26
+
27
+ // state validation
28
+ if (!activeChain) {
29
+ throw new Error("No active chain");
30
+ }
31
+ if (!account) {
32
+ throw new Error("No active account");
33
+ }
34
+
35
+ // input validation
36
+ if (
37
+ !receiverAddress ||
38
+ (!receiverAddress.endsWith(".eth") && !isAddress(receiverAddress))
39
+ ) {
40
+ throw new Error("Invalid address");
41
+ }
42
+
43
+ if (!amount || Number.isNaN(Number(amount)) || Number(amount) < 0) {
44
+ throw new Error("Invalid amount");
45
+ }
46
+
47
+ let to = receiverAddress;
48
+ // resolve ENS if needed
49
+ try {
50
+ to = await resolveAddress({
51
+ client,
52
+ name: receiverAddress,
53
+ });
54
+ } catch (e) {
55
+ throw new Error("Failed to resolve address");
56
+ }
57
+
58
+ // native token transfer
59
+ if (!tokenAddress) {
60
+ const sendNativeTokenTx = prepareTransaction({
61
+ chain: activeChain,
62
+ client,
63
+ to,
64
+ value: toWei(amount),
65
+ });
66
+
67
+ await sendTransaction({
68
+ transaction: sendNativeTokenTx,
69
+ account,
70
+ });
71
+ }
72
+
73
+ // erc20 token transfer
74
+ else {
75
+ const contract = getContract({
76
+ address: tokenAddress,
77
+ client,
78
+ chain: activeChain,
79
+ });
80
+
81
+ const tx = transfer({
82
+ amount,
83
+ contract,
84
+ to,
85
+ });
86
+
87
+ await sendTransaction({
88
+ transaction: tx,
89
+ account,
90
+ });
91
+ }
92
+ },
93
+ });
94
+ }
@@ -5,7 +5,7 @@ export type TokenInfo = {
5
5
  icon?: string;
6
6
  };
7
7
 
8
- const wrappedEthIcon =
8
+ export const wrappedEthIcon =
9
9
  "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTAwIiBoZWlnaHQ9IjI1MDAiIHZpZXdCb3g9IjAgMCAzMiAzMiI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48Y2lyY2xlIGN4PSIxNiIgY3k9IjE2IiByPSIxNiIgZmlsbD0iIzYyN0VFQSIvPjxnIGZpbGw9IiNGRkYiIGZpbGwtcnVsZT0ibm9uemVybyI+PHBhdGggZmlsbC1vcGFjaXR5PSIuNjAyIiBkPSJNMTYuNDk4IDR2OC44N2w3LjQ5NyAzLjM1eiIvPjxwYXRoIGQ9Ik0xNi40OTggNEw5IDE2LjIybDcuNDk4LTMuMzV6Ii8+PHBhdGggZmlsbC1vcGFjaXR5PSIuNjAyIiBkPSJNMTYuNDk4IDIxLjk2OHY2LjAyN0wyNCAxNy42MTZ6Ii8+PHBhdGggZD0iTTE2LjQ5OCAyNy45OTV2LTYuMDI4TDkgMTcuNjE2eiIvPjxwYXRoIGZpbGwtb3BhY2l0eT0iLjIiIGQ9Ik0xNi40OTggMjAuNTczbDcuNDk3LTQuMzUzLTcuNDk3LTMuMzQ4eiIvPjxwYXRoIGZpbGwtb3BhY2l0eT0iLjYwMiIgZD0iTTkgMTYuMjJsNy40OTggNC4zNTN2LTcuNzAxeiIvPjwvZz48L2c+PC9zdmc+";
10
10
 
11
11
  const tetherUsdIcon =
@@ -88,20 +88,6 @@ export const defaultTokens: SupportedTokens = {
88
88
  icon: maticIcon,
89
89
  },
90
90
  ],
91
- "5": [
92
- {
93
- address: "0xb4fbf271143f4fbf7b91a5ded31805e42b2208d6",
94
- name: "Wrapped Ether",
95
- symbol: "WETH",
96
- icon: wrappedEthIcon,
97
- },
98
- {
99
- address: "0x07865c6E87B9F70255377e024ace6630C1Eaa37F",
100
- name: "USD Coin",
101
- symbol: "USDC",
102
- icon: usdcIcon,
103
- },
104
- ],
105
91
  "10": [
106
92
  {
107
93
  address: "0x4200000000000000000000000000000000000006",
@@ -327,4 +313,13 @@ export const defaultTokens: SupportedTokens = {
327
313
  icon: usdcIcon,
328
314
  },
329
315
  ],
316
+ // Base sepolia
317
+ "84532": [
318
+ {
319
+ address: "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
320
+ name: "USD Coin",
321
+ symbol: "USDC",
322
+ icon: usdcIcon,
323
+ },
324
+ ],
330
325
  };
@@ -1,3 +1,27 @@
1
+ // TODO make the social icons usable in RN too
2
+ export const googleIconUri =
3
+ "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI3MDUuNiIgaGVpZ2h0PSI3MjAiIHZpZXdCb3g9IjAgMCAxODYuNjkgMTkwLjUiIHhtbG5zOnY9Imh0dHBzOi8vdmVjdGEuaW8vbmFubyI+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTE4NC41ODMgNzY1LjE3MSkiPjxwYXRoIGNsaXAtcGF0aD0ibm9uZSIgbWFzaz0ibm9uZSIgZD0iTS0xMDg5LjMzMy02ODcuMjM5djM2Ljg4OGg1MS4yNjJjLTIuMjUxIDExLjg2My05LjAwNiAyMS45MDgtMTkuMTM3IDI4LjY2MmwzMC45MTMgMjMuOTg2YzE4LjAxMS0xNi42MjUgMjguNDAyLTQxLjA0NCAyOC40MDItNzAuMDUyIDAtNi43NTQtLjYwNi0xMy4yNDktMS43MzItMTkuNDgzeiIgZmlsbD0iIzQyODVmNCIvPjxwYXRoIGNsaXAtcGF0aD0ibm9uZSIgbWFzaz0ibm9uZSIgZD0iTS0xMTQyLjcxNC02NTEuNzkxbC02Ljk3MiA1LjMzNy0yNC42NzkgMTkuMjIzaDBjMTUuNjczIDMxLjA4NiA0Ny43OTYgNTIuNTYxIDg1LjAzIDUyLjU2MSAyNS43MTcgMCA0Ny4yNzgtOC40ODYgNjMuMDM4LTIzLjAzM2wtMzAuOTEzLTIzLjk4NmMtOC40ODYgNS43MTUtMTkuMzEgOS4xNzktMzIuMTI1IDkuMTc5LTI0Ljc2NSAwLTQ1LjgwNi0xNi43MTItNTMuMzQtMzkuMjI2eiIgZmlsbD0iIzM0YTg1MyIvPjxwYXRoIGNsaXAtcGF0aD0ibm9uZSIgbWFzaz0ibm9uZSIgZD0iTS0xMTc0LjM2NS03MTIuNjFjLTYuNDk0IDEyLjgxNS0xMC4yMTcgMjcuMjc2LTEwLjIxNyA0Mi42ODlzMy43MjMgMjkuODc0IDEwLjIxNyA0Mi42ODljMCAuMDg2IDMxLjY5My0yNC41OTIgMzEuNjkzLTI0LjU5Mi0xLjkwNS01LjcxNS0zLjAzMS0xMS43NzYtMy4wMzEtMTguMDk4czEuMTI2LTEyLjM4MyAzLjAzMS0xOC4wOTh6IiBmaWxsPSIjZmJiYzA1Ii8+PHBhdGggZD0iTS0xMDg5LjMzMy03MjcuMjQ0YzE0LjAyOCAwIDI2LjQ5NyA0Ljg0OSAzNi40NTUgMTQuMjAxbDI3LjI3Ni0yNy4yNzZjLTE2LjUzOS0xNS40MTMtMzguMDEzLTI0Ljg1Mi02My43MzEtMjQuODUyLTM3LjIzNCAwLTY5LjM1OSAyMS4zODgtODUuMDMyIDUyLjU2MWwzMS42OTIgMjQuNTkyYzcuNTMzLTIyLjUxNCAyOC41NzUtMzkuMjI2IDUzLjM0LTM5LjIyNnoiIGZpbGw9IiNlYTQzMzUiIGNsaXAtcGF0aD0ibm9uZSIgbWFzaz0ibm9uZSIvPjwvZz48L3N2Zz4=";
4
+ export const facebookIconUri =
5
+ "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGRhdGEtbmFtZT0iRWJlbmUgMSIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgaWQ9ImZhY2Vib29rLWxvZ28tMjAxOSI+PHBhdGggZmlsbD0iIzE4NzdmMiIgZD0iTTEwMjQsNTEyQzEwMjQsMjI5LjIzMDE2LDc5NC43Njk3OCwwLDUxMiwwUzAsMjI5LjIzMDE2LDAsNTEyYzAsMjU1LjU1NCwxODcuMjMxLDQ2Ny4zNzAxMiw0MzIsNTA1Ljc3Nzc3VjY2MEgzMDJWNTEySDQzMlYzOTkuMkM0MzIsMjcwLjg3OTgyLDUwOC40Mzg1NCwyMDAsNjI1LjM4OTIyLDIwMCw2ODEuNDA3NjUsMjAwLDc0MCwyMTAsNzQwLDIxMFYzMzZINjc1LjQzNzEzQzYxMS44MzUwOCwzMzYsNTkyLDM3NS40NjY2Nyw1OTIsNDE1Ljk1NzI4VjUxMkg3MzRMNzExLjMsNjYwSDU5MnYzNTcuNzc3NzdDODM2Ljc2OSw5NzkuMzcwMTIsMTAyNCw3NjcuNTU0LDEwMjQsNTEyWiI+PC9wYXRoPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik03MTEuMyw2NjAsNzM0LDUxMkg1OTJWNDE1Ljk1NzI4QzU5MiwzNzUuNDY2NjcsNjExLjgzNTA4LDMzNiw2NzUuNDM3MTMsMzM2SDc0MFYyMTBzLTU4LjU5MjM1LTEwLTExNC42MTA3OC0xMEM1MDguNDM4NTQsMjAwLDQzMiwyNzAuODc5ODIsNDMyLDM5OS4yVjUxMkgzMDJWNjYwSDQzMnYzNTcuNzc3NzdhNTE3LjM5NjE5LDUxNy4zOTYxOSwwLDAsMCwxNjAsMFY2NjBaIj48L3BhdGg+PC9zdmc+";
6
+ export const twitterIconUri =
7
+ "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiIgaWQ9InR3aXR0ZXIiPjxwYXRoIGZpbGw9IiMwM0E5RjQiIGQ9Ik0xNiAzLjUzOWE2LjgzOSA2LjgzOSAwIDAgMS0xLjg5LjUxOCAzLjI2MiAzLjI2MiAwIDAgMCAxLjQ0My0xLjgxMyA2LjU1NSA2LjU1NSAwIDAgMS0yLjA4Ljc5NCAzLjI4IDMuMjggMCAwIDAtNS42NzQgMi4yNDNjMCAuMjYuMDIyLjUxLjA3Ni43NDhhOS4yODQgOS4yODQgMCAwIDEtNi43NjEtMy40MzEgMy4yODUgMy4yODUgMCAwIDAgMS4wMDggNC4zODRBMy4yNCAzLjI0IDAgMCAxIC42NCA2LjU3OHYuMDM2YTMuMjk1IDMuMjk1IDAgMCAwIDIuNjI4IDMuMjIzIDMuMjc0IDMuMjc0IDAgMCAxLS44Ni4xMDggMi45IDIuOSAwIDAgMS0uNjIxLS4wNTYgMy4zMTEgMy4zMTEgMCAwIDAgMy4wNjUgMi4yODUgNi41OSA2LjU5IDAgMCAxLTQuMDY3IDEuMzk5Yy0uMjY5IDAtLjUyNy0uMDEyLS43ODUtLjA0NUE5LjIzNCA5LjIzNCAwIDAgMCA1LjAzMiAxNWM2LjAzNiAwIDkuMzM2LTUgOS4zMzYtOS4zMzQgMC0uMTQ1LS4wMDUtLjI4NS0uMDEyLS40MjRBNi41NDQgNi41NDQgMCAwIDAgMTYgMy41Mzl6Ij48L3BhdGg+PC9zdmc+";
8
+ export const githubIconUri =
9
+ "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzEwXzIpIj4KPHBhdGggZD0iTTcuOTk5IDBDMy41ODIwMSAwIDQuNjE2NDhlLTA2IDMuNTk2IDQuNjE2NDhlLTA2IDguMDMyQy0wLjAwMTggOS43MTU1NSAwLjUyNTUxOSAxMS4zNTcxIDEuNTA3NDQgMTIuNzI0NkMyLjQ4OTM1IDE0LjA5MjIgMy44NzYyMSAxNS4xMTY2IDUuNDcyIDE1LjY1M0M1Ljg3MiAxNS43MjcgNi4wMTggMTUuNDc5IDYuMDE4IDE1LjI2NkM2LjAxOCAxNS4wNzUgNi4wMTEgMTQuNTcgNi4wMDcgMTMuOUMzLjc4MiAxNC4zODUgMy4zMTIgMTIuODIzIDMuMzEyIDEyLjgyM0MyLjk0OSAxMS44OTUgMi40MjQgMTEuNjQ4IDIuNDI0IDExLjY0OEMxLjY5NyAxMS4xNSAyLjQ3OCAxMS4xNiAyLjQ3OCAxMS4xNkMzLjI4MSAxMS4yMTcgMy43MDMgMTEuOTg4IDMuNzAzIDExLjk4OEM0LjQxNyAxMy4yMTUgNS41NzYgMTIuODYxIDYuMDMyIDEyLjY1NUM2LjEwNCAxMi4xMzYgNi4zMTEgMTEuNzgyIDYuNTQgMTEuNTgxQzQuNzY0IDExLjM3OCAyLjg5NiAxMC42ODkgMi44OTYgNy42MTJDMi44OTYgNi43MzUgMy4yMDggNi4wMTggMy43MiA1LjQ1NkMzLjYzNyA1LjI1MyAzLjM2MyA0LjQzNiAzLjc5OCAzLjMzMUMzLjc5OCAzLjMzMSA0LjQ3IDMuMTE1IDUuOTk4IDQuMTU0QzYuNjUwNzUgMy45NzU2MSA3LjMyNDMyIDMuODg0ODIgOC4wMDEwMSAzLjg4NEM4LjY3NzcyIDMuODg1MzQgOS4zNTEyNiAzLjk3NjQ3IDEwLjAwNCA0LjE1NUMxMS41MzEgMy4xMTYgMTIuMjAyIDMuMzMyIDEyLjIwMiAzLjMzMkMxMi42MzggNC40MzggMTIuMzY0IDUuMjU0IDEyLjI4MiA1LjQ1N0MxMi43OTUgNi4wMTkgMTMuMTA0IDYuNzM2IDEzLjEwNCA3LjYxM0MxMy4xMDQgMTAuNjk4IDExLjIzNCAxMS4zNzcgOS40NTIgMTEuNTc2QzkuNzM5IDExLjgyNCA5Ljk5NSAxMi4zMTQgOS45OTUgMTMuMDYzQzkuOTk1IDE0LjEzNyA5Ljk4NSAxNS4wMDMgOS45ODUgMTUuMjY2QzkuOTg1IDE1LjQ4MSAxMC4xMjkgMTUuNzMxIDEwLjUzNSAxNS42NTJDMTIuMTI5MiAxNS4xMTQzIDEzLjUxNDQgMTQuMDg5NSAxNC40OTQ5IDEyLjcyMjNDMTUuNDc1NSAxMS4zNTUxIDE2LjAwMTkgOS43MTQ0OCAxNiA4LjAzMkMxNiAzLjU5NiAxMi40MTggMCA3Ljk5OSAwWiIgZmlsbD0iIzhCOEI4QiIvPgo8L2c+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzEwXzIiPgo8cmVjdCB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9IndoaXRlIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg==";
10
+ export const appleIconUri =
11
+ "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMDM4IiBoZWlnaHQ9IjI1MDAiIHZpZXdCb3g9IjAgMCA0OTYuMjU1IDYwOC43MjgiIGlkPSJhcHBsZSI+PHBhdGggZmlsbD0iIzk5OSIgZD0iTTI3My44MSA1Mi45NzNDMzEzLjgwNi4yNTcgMzY5LjQxIDAgMzY5LjQxIDBzOC4yNzEgNDkuNTYyLTMxLjQ2MyA5Ny4zMDZjLTQyLjQyNiA1MC45OC05MC42NDkgNDIuNjM4LTkwLjY0OSA0Mi42MzhzLTkuMDU1LTQwLjA5NCAyNi41MTItODYuOTcxek0yNTIuMzg1IDE3NC42NjJjMjAuNTc2IDAgNTguNzY0LTI4LjI4NCAxMDguNDcxLTI4LjI4NCA4NS41NjIgMCAxMTkuMjIyIDYwLjg4MyAxMTkuMjIyIDYwLjg4M3MtNjUuODMzIDMzLjY1OS02NS44MzMgMTE1LjMzMWMwIDkyLjEzMyA4Mi4wMSAxMjMuODg1IDgyLjAxIDEyMy44ODVzLTU3LjMyOCAxNjEuMzU3LTEzNC43NjIgMTYxLjM1N2MtMzUuNTY1IDAtNjMuMjE1LTIzLjk2Ny0xMDAuNjg4LTIzLjk2Ny0zOC4xODggMC03Ni4wODQgMjQuODYxLTEwMC43NjYgMjQuODYxQzg5LjMzIDYwOC43MyAwIDQ1NS42NjYgMCAzMzIuNjI4YzAtMTIxLjA1MiA3NS42MTItMTg0LjU1NCAxNDYuNTMzLTE4NC41NTQgNDYuMTA1IDAgODEuODgzIDI2LjU4OCAxMDUuODUyIDI2LjU4OHoiPjwvcGF0aD48L3N2Zz4=";
12
+ export const linkedinIconUri =
13
+ "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NCIgaGVpZ2h0PSI0MCIgaWQ9ImxpbmtlZGluIj48cGF0aCBmaWxsPSIjMDA3RUJCIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00NCA0MGgtOS43MjVWMjUuOTM4YzAtMy42OC0xLjUyLTYuMTkzLTQuODY2LTYuMTkzLTIuNTU4IDAtMy45ODEgMS42OTYtNC42NDMgMy4zMy0uMjQ5LjU4Ni0uMjEgMS40MDMtLjIxIDIuMjJWNDBoLTkuNjM0cy4xMjQtMjQuOTA5IDAtMjcuMTczaDkuNjM0djQuMjY1Yy41Ny0xLjg2NSAzLjY0OC00LjUyNiA4LjU2LTQuNTI2QzM5LjIxMSAxMi41NjYgNDQgMTYuNDc0IDQ0IDI0Ljg5MVY0MHpNNS4xOCA5LjQyOGgtLjA2M0MyLjAxMyA5LjQyOCAwIDcuMzUxIDAgNC43MTggMCAyLjAzNCAyLjA3MiAwIDUuMjM5IDBjMy4xNjQgMCA1LjExIDIuMDI5IDUuMTcxIDQuNzEgMCAyLjYzMy0yLjAwNyA0LjcxOC01LjIzIDQuNzE4em0tNC4wNyAzLjM5OWg4LjU3NlY0MEgxLjExVjEyLjgyN3oiPjwvcGF0aD48L3N2Zz4=";
14
+ export const bitbucketIconUri =
15
+ "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgaWQ9ImJpdGJ1Y2tldCI+PHBhdGggZmlsbD0iIzI2ODBGOCIgZD0iTTQuMjk3IDIzaDE1LjY1OWEuNzc2Ljc3NiAwIDAgMCAuNzY5LS42NTdMMjMuOTkgMS45MTZhLjc4Ljc4IDAgMCAwLS42MzUtLjg5NyAxLjEzIDEuMTMgMCAwIDAtLjEzNC0uMDA5TC43NzkgMUEuNzc1Ljc3NSAwIDAgMCAwIDEuNzc1YzAgLjA0NC4wMDUuMDkzLjAwOS4xMzdsMy4yNjUgMjAuMTk2Yy4wODIuNTA5LjUxNS44ODcgMS4wMjMuODkyek0xNS43MzYgOC4zOTFsLTEuMjExIDcuMjA1aC01TDguMTczIDguMzkxaDcuNTYzeiI+PC9wYXRoPjwvc3ZnPg==";
16
+ export const gitlabIconUri =
17
+ "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNTAwIiBoZWlnaHQ9IjIzMDUiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaW5ZTWluIG1lZXQiIHZpZXdCb3g9IjAgMCAyNTYgMjM2IiBpZD0iZ2l0bGFiIj48cGF0aCBmaWxsPSIjRTI0MzI5IiBkPSJNMTI4LjA3NSAyMzYuMDc1bDQ3LjEwNC0xNDQuOTdIODAuOTdsNDcuMTA0IDE0NC45N3oiPjwvcGF0aD48cGF0aCBmaWxsPSIjRkM2RDI2IiBkPSJNMTI4LjA3NSAyMzYuMDc0TDgwLjk3IDkxLjEwNEgxNC45NTZsMTEzLjExOSAxNDQuOTd6Ij48L3BhdGg+PHBhdGggZmlsbD0iI0ZDQTMyNiIgZD0iTTE0Ljk1NiA5MS4xMDRMLjY0MiAxMzUuMTZhOS43NTIgOS43NTIgMCAwIDAgMy41NDIgMTAuOTAzbDEyMy44OTEgOTAuMDEyLTExMy4xMi0xNDQuOTd6Ij48L3BhdGg+PHBhdGggZmlsbD0iI0UyNDMyOSIgZD0iTTE0Ljk1NiA5MS4xMDVIODAuOTdMNTIuNjAxIDMuNzljLTEuNDYtNC40OTMtNy44MTYtNC40OTItOS4yNzUgMGwtMjguMzcgODcuMzE1eiI+PC9wYXRoPjxwYXRoIGZpbGw9IiNGQzZEMjYiIGQ9Ik0xMjguMDc1IDIzNi4wNzRsNDcuMTA0LTE0NC45N2g2Ni4wMTVsLTExMy4xMiAxNDQuOTd6Ij48L3BhdGg+PHBhdGggZmlsbD0iI0ZDQTMyNiIgZD0iTTI0MS4xOTQgOTEuMTA0bDE0LjMxNCA0NC4wNTZhOS43NTIgOS43NTIgMCAwIDEtMy41NDMgMTAuOTAzbC0xMjMuODkgOTAuMDEyIDExMy4xMTktMTQ0Ljk3eiI+PC9wYXRoPjxwYXRoIGZpbGw9IiNFMjQzMjkiIGQ9Ik0yNDEuMTk0IDkxLjEwNWgtNjYuMDE1bDI4LjM3LTg3LjMxNWMxLjQ2LTQuNDkzIDcuODE2LTQuNDkyIDkuMjc1IDBsMjguMzcgODcuMzE1eiI+PC9wYXRoPjwvc3ZnPg==";
18
+ export const twitchIconUri =
19
+ "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgdmlld0JveD0iMCAwIDExMS43ODY2NyAxMjcuMzg2NjciCiAgIGhlaWdodD0iMTI3LjM4NjY3IgogICB3aWR0aD0iMTExLjc4NjY3IgogICB4bWw6c3BhY2U9InByZXNlcnZlIgogICB2ZXJzaW9uPSIxLjEiCiAgIGlkPSJzdmczMzU1IgogICBzb2RpcG9kaTpkb2NuYW1lPSJUd2l0Y2hfbG9nby5zdmciCiAgIGlua3NjYXBlOnZlcnNpb249IjEuMS4xICgzYmY1YWUwZDI1LCAyMDIxLTA5LTIwKSIKICAgeG1sbnM6aW5rc2NhcGU9Imh0dHA6Ly93d3cuaW5rc2NhcGUub3JnL25hbWVzcGFjZXMvaW5rc2NhcGUiCiAgIHhtbG5zOnNvZGlwb2RpPSJodHRwOi8vc29kaXBvZGkuc291cmNlZm9yZ2UubmV0L0RURC9zb2RpcG9kaS0wLmR0ZCIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZGVmcwogICBpZD0iZGVmczI5Ij4KICAgIAogICAgCiAgPC9kZWZzPjxzb2RpcG9kaTpuYW1lZHZpZXcKICAgaWQ9Im5hbWVkdmlldzI3IgogICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2IgogICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiCiAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgIGlua3NjYXBlOnBhZ2VjaGVja2VyYm9hcmQ9IjAiCiAgIHNob3dncmlkPSJmYWxzZSIKICAgaW5rc2NhcGU6em9vbT0iNC4xOTkyMjg0IgogICBpbmtzY2FwZTpjeD0iLTUwLjYwNDUzNSIKICAgaW5rc2NhcGU6Y3k9IjE0MC4zODI5MyIKICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIyNTYwIgogICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxMzg3IgogICBpbmtzY2FwZTp3aW5kb3cteD0iMTkxMiIKICAgaW5rc2NhcGU6d2luZG93LXk9Ii04IgogICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIgogICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJzdmczMzU1IiAvPgogIDxnCiAgIHRyYW5zZm9ybT0ibWF0cml4KDEuMzMzMzMzMywwLDAsLTEuMzMzMzMzMywxMDEuMzkzMzMsNjcuNTg5MzMyKSIKICAgaWQ9ImczMzY1Ij4KICAgICAgPHBhdGgKICAgaWQ9InBhdGgzMzY3IgogICBzdHlsZT0iZmlsbDojNjQ0MWE1O2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTpub25lIgogICBkPSJtIDAsMCAtMTMuNjUyLC0xMy42NTEgaCAtMjEuNDQ1IGwgLTExLjY5OSwtMTEuNjk3IHYgMTEuNjk3IEggLTY0LjM0NCBWIDQyLjg5MyBIIDAgWiBtIC03Mi4xNDYsNTAuNjkyIC0zLjg5OSwtMTUuNTk5IHYgLTcwLjE5IGggMTcuNTUgdiAtOS43NTEgaCA5Ljc0NiBsIDkuNzUyLDkuNzUxIGggMTUuNTk2IEwgNy43OTUsLTMuOTA1IHYgNTQuNTk3IHoiIC8+CiAgICA8L2c+PHBhdGgKICAgaWQ9InBhdGgzMzY5IgogICBzdHlsZT0iZmlsbDojNjQ0MWE1O2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpldmVub2RkO3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDoxLjMzMzMzIgogICBkPSJtIDQ0LjE5NzMzMSw2Mi4zOTQyNjYgaCAxMC4zOTg2NyBWIDMxLjE5MjkzMyBoIC0xMC4zOTg2NyB6IG0gMjguNTk0NjcsMCBoIDEwLjM5ODY2IFYgMzEuMTkyOTMzIGggLTEwLjM5ODY2IHoiIC8+Cjwvc3ZnPgo=";
20
+ export const discordIconUri =
21
+ "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDEwMCAxMDAiIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiBpZD0iZGlzY29yZCI+PHBhdGggZmlsbD0iIzY2NjVkMiIgZD0iTTg1LjIyLDI0Ljk1OGMtMTEuNDU5LTguNTc1LTIyLjQzOC04LjMzNC0yMi40MzgtOC4zMzRsLTEuMTIyLDEuMjgyCgkJCQljMTMuNjIzLDQuMDg3LDE5Ljk1NCwxMC4wOTcsMTkuOTU0LDEwLjA5N2MtMTkuNDkxLTEwLjczMS00NC4zMTctMTAuNjU0LTY0LjU5LDBjMCwwLDYuNTcxLTYuMzMxLDIwLjk5Ni0xMC40MThsLTAuODAxLTAuOTYyCgkJCQljMCwwLTEwLjg5OS0wLjI0LTIyLjQzOCw4LjMzNGMwLDAtMTEuNTQsMjAuNzU1LTExLjU0LDQ2LjMxOWMwLDAsNi43MzIsMTEuNTQsMjQuNDQyLDEyLjEwMWMwLDAsMi45NjUtMy41MjYsNS4zNjktNi41NzEKCQkJCWMtMTAuMTc3LTMuMDQ1LTE0LjAyNC05LjM3Ni0xNC4wMjQtOS4zNzZjNi4zOTQsNC4wMDEsMTIuODU5LDYuNTA1LDIwLjkxNiw4LjA5NGMxMy4xMDgsMi42OTgsMjkuNDEzLTAuMDc2LDQxLjU5MS04LjA5NAoJCQkJYzAsMC00LjAwNyw2LjQ5MS0xNC41MDUsOS40NTZjMi40MDQsMi45NjUsNS4yODksNi40MTEsNS4yODksNi40MTFjMTcuNzEtMC41NjEsMjQuNDQxLTEyLjEwMSwyNC40NDEtMTIuMDIKCQkJCUM5Ni43NTksNDUuNzEzLDg1LjIyLDI0Ljk1OCw4NS4yMiwyNC45NTh6IE0zNS4wNTUsNjMuODI0Yy00LjQ4OCwwLTguMTc0LTMuOTI3LTguMTc0LTguODE1CgkJCQljMC4zMjgtMTEuNzA3LDE2LjEwMi0xMS42NzEsMTYuMzQ4LDBDNDMuMjI5LDU5Ljg5NywzOS42MjIsNjMuODI0LDM1LjA1NSw2My44MjR6IE02NC4zMDQsNjMuODI0CgkJCQljLTQuNDg4LDAtOC4xNzQtMy45MjctOC4xNzQtOC44MTVjMC4zNi0xMS42ODQsMTUuOTM3LTExLjY4OSwxNi4zNDgsMEM3Mi40NzgsNTkuODk3LDY4Ljg3Miw2My44MjQsNjQuMzA0LDYzLjgyNHoiPjwvcGF0aD48L3N2Zz4=";
22
+ export const microsoftIconUri =
23
+ "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciICB2aWV3Qm94PSIwIDAgNDggNDgiIHdpZHRoPSI0OHB4IiBoZWlnaHQ9IjQ4cHgiPjxwYXRoIGZpbGw9IiNmZjU3MjIiIGQ9Ik02IDZIMjJWMjJINnoiIHRyYW5zZm9ybT0icm90YXRlKC0xODAgMTQgMTQpIi8+PHBhdGggZmlsbD0iIzRjYWY1MCIgZD0iTTI2IDZINDJWMjJIMjZ6IiB0cmFuc2Zvcm09InJvdGF0ZSgtMTgwIDM0IDE0KSIvPjxwYXRoIGZpbGw9IiNmZmMxMDciIGQ9Ik0yNiAyNkg0MlY0MkgyNnoiIHRyYW5zZm9ybT0icm90YXRlKC0xODAgMzQgMzQpIi8+PHBhdGggZmlsbD0iIzAzYTlmNCIgZD0iTTYgMjZIMjJWNDJINnoiIHRyYW5zZm9ybT0icm90YXRlKC0xODAgMTQgMzQpIi8+PC9zdmc+";
24
+
1
25
  export const emailIcon =
2
26
  "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTEzLjMzMzUgMi42NjY1SDIuNjY2ODNDMS45MzA0NSAyLjY2NjUgMS4zMzM1IDMuMjYzNDYgMS4zMzM1IDMuOTk5ODRWMTEuOTk5OEMxLjMzMzUgMTIuNzM2MiAxLjkzMDQ1IDEzLjMzMzIgMi42NjY4MyAxMy4zMzMySDEzLjMzMzVDMTQuMDY5OSAxMy4zMzMyIDE0LjY2NjggMTIuNzM2MiAxNC42NjY4IDExLjk5OThWMy45OTk4NEMxNC42NjY4IDMuMjYzNDYgMTQuMDY5OSAyLjY2NjUgMTMuMzMzNSAyLjY2NjVaIiBzdHJva2U9IiMzMzg1RkYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTQuNjY2OCA0LjY2NjVMOC42ODY4MyA4LjQ2NjVDOC40ODEwMSA4LjU5NTQ1IDguMjQzMDQgOC42NjM4NCA4LjAwMDE2IDguNjYzODRDNy43NTcyOCA4LjY2Mzg0IDcuNTE5MzEgOC41OTU0NSA3LjMxMzUgOC40NjY1TDEuMzMzNSA0LjY2NjUiIHN0cm9rZT0iIzMzODVGRiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+Cjwvc3ZnPgo=";
3
27
 
@@ -18,3 +42,9 @@ export const genericWalletIcon =
18
42
 
19
43
  export const passkeyIcon =
20
44
  "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzU2MzlfMzIpIj4KPHBhdGggZD0iTTcuOTk5NTkgNi42NjY1QzcuNjQ1OTYgNi42NjY1IDcuMzA2ODMgNi44MDY5OCA3LjA1Njc4IDcuMDU3MDNDNi44MDY3MyA3LjMwNzA4IDYuNjY2MjUgNy42NDYyMiA2LjY2NjI1IDcuOTk5ODRDNi42NjYyNSA4LjY3OTg0IDYuNTk5NTkgOS42NzMxNyA2LjQ5MjkyIDEwLjY2NjUiIHN0cm9rZT0iIzMzODVGRiIgc3Ryb2tlLXdpZHRoPSIxLjI1NDkiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNOS4zMzI5MyA4Ljc0NjU4QzkuMzMyOTMgMTAuMzMzMiA5LjMzMjkzIDEyLjk5OTkgOC42NjYyNiAxNC42NjY2IiBzdHJva2U9IiMzMzg1RkYiIHN0cm9rZS13aWR0aD0iMS4yNTQ5IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHBhdGggZD0iTTExLjUyNzMgMTQuMDEzM0MxMS42MDczIDEzLjYxMzMgMTEuODE0IDEyLjQ4IDExLjg2MDcgMTIiIHN0cm9rZT0iIzMzODVGRiIgc3Ryb2tlLXdpZHRoPSIxLjI1NDkiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNMS4zMzM5OCA4LjAwMDE2QzEuMzMzOTggNi42MDA5NSAxLjc3NDIzIDUuMjM3MiAyLjU5MjM3IDQuMTAyMDlDMy40MTA1MSAyLjk2Njk5IDQuNTY1MDUgMi4xMTgwOCA1Ljg5MjQ3IDEuNjc1NjFDNy4yMTk4OCAxLjIzMzE0IDguNjUyODYgMS4yMTk1NCA5Ljk4ODQ0IDEuNjM2NzRDMTEuMzI0IDIuMDUzOTQgMTIuNDk0NSAyLjg4MDc5IDEzLjMzNCA0LjAwMDE2IiBzdHJva2U9IiMzMzg1RkYiIHN0cm9rZS13aWR0aD0iMS4yNTQ5IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHBhdGggZD0iTTEuMzMzOTggMTAuNjY2NUgxLjMzOTE0IiBzdHJva2U9IiMzMzg1RkYiIHN0cm9rZS13aWR0aD0iMS4yNTQ5IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHBhdGggZD0iTTE0LjUzMjcgMTAuNjY2NUMxNC42NjYgOS4zMzMxNyAxNC42MiA3LjA5NzE3IDE0LjUzMjcgNi42NjY1IiBzdHJva2U9IiMzMzg1RkYiIHN0cm9rZS13aWR0aD0iMS4yNTQ5IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHBhdGggZD0iTTMuMzMzOTggMTIuOTk5OEMzLjY2NzMyIDExLjk5OTggNC4wMDA2NSA5Ljk5OTg0IDQuMDAwNjUgNy45OTk4NEMzLjk5OTk4IDcuNTQ1NzUgNC4wNzY2MyA3LjA5NDg2IDQuMjI3MzIgNi42NjY1IiBzdHJva2U9IiMzMzg1RkYiIHN0cm9rZS13aWR0aD0iMS4yNTQ5IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPHBhdGggZD0iTTUuNzY3MDkgMTQuNjY2OEM1LjkwNzA5IDE0LjIyNjggNi4wNjcwOSAxMy43ODY4IDYuMTQ3MDkgMTMuMzMzNSIgc3Ryb2tlPSIjMzM4NUZGIiBzdHJva2Utd2lkdGg9IjEuMjU0OSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+CjxwYXRoIGQ9Ik02IDQuNTMzNDZDNi42MDgyNyA0LjE4MjI4IDcuMjk4MjggMy45OTc0NSA4LjAwMDY0IDMuOTk3NTZDOC43MDMwMSAzLjk5NzY3IDkuMzkyOTYgNC4xODI3MiAxMC4wMDExIDQuNTM0MUMxMC42MDkzIDQuODg1NDggMTEuMTE0MiA1LjM5MDc5IDExLjQ2NTEgNS45OTkyM0MxMS44MTYgNi42MDc2NiAxMi4wMDA1IDcuMjk3NzYgMTIgOC4wMDAxMlY5LjMzMzQ2IiBzdHJva2U9IiMzMzg1RkYiIHN0cm9rZS13aWR0aD0iMS4yNTQ5IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF81NjM5XzMyIj4KPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=";
45
+
46
+ export const socialIcons = {
47
+ google: googleIconUri,
48
+ apple: appleIconUri,
49
+ facebook: facebookIconUri,
50
+ };
@@ -1,5 +1,5 @@
1
- import type { AsyncStorage } from "../../../../utils/storage/AsyncStorage.js";
2
- import type { AuthArgsType } from "../../../../wallets/in-app/core/authentication/type.js";
1
+ import type { AsyncStorage } from "../../../utils/storage/AsyncStorage.js";
2
+ import type { AuthArgsType } from "../../../wallets/in-app/core/authentication/type.js";
3
3
 
4
4
  const LAST_AUTH_PROVIDER_STORAGE_KEY = "lastAuthProvider";
5
5
 
@@ -0,0 +1,101 @@
1
+ import { useQuery } from "@tanstack/react-query";
2
+ import { ethereum } from "../../../chains/chain-definitions/ethereum.js";
3
+ import type { Chain } from "../../../chains/types.js";
4
+ import type { ThirdwebClient } from "../../../client/client.js";
5
+ import { resolveAvatar } from "../../../extensions/ens/resolve-avatar.js";
6
+ import { resolveName } from "../../../extensions/ens/resolve-name.js";
7
+ import { getWalletInfo } from "../../../wallets/__generated__/getWalletInfo.js";
8
+ import type { Account } from "../../../wallets/interfaces/wallet.js";
9
+ import type { WalletInfo } from "../../../wallets/wallet-info.js";
10
+ import type { WalletId } from "../../../wallets/wallet-types.js";
11
+ import { useWalletBalance } from "../hooks/others/useWalletBalance.js";
12
+ import { shortenString } from "./addresses.js";
13
+
14
+ /**
15
+ * @internal
16
+ */
17
+ export function useConnectedWalletDetails(
18
+ client: ThirdwebClient,
19
+ walletChain: Chain | undefined,
20
+ activeAccount: Account | undefined,
21
+ displayBalanceToken?: Record<number, string>,
22
+ ) {
23
+ const tokenAddress =
24
+ walletChain && displayBalanceToken
25
+ ? displayBalanceToken[Number(walletChain.id)]
26
+ : undefined;
27
+
28
+ const ensNameQuery = useQuery({
29
+ queryKey: ["ens-name", activeAccount?.address],
30
+ enabled: !!activeAccount?.address,
31
+ queryFn: () =>
32
+ resolveName({
33
+ client,
34
+ address: activeAccount?.address || "",
35
+ resolverChain: ethereum,
36
+ }),
37
+ });
38
+
39
+ const ensAvatarQuery = useQuery({
40
+ queryKey: ["ens-avatar", ensNameQuery.data],
41
+ enabled: !!ensNameQuery.data,
42
+ queryFn: async () =>
43
+ resolveAvatar({
44
+ client,
45
+ name: ensNameQuery.data || "",
46
+ }),
47
+ });
48
+
49
+ const shortAddress = activeAccount?.address
50
+ ? shortenString(activeAccount.address, false)
51
+ : "";
52
+
53
+ const balanceQuery = useWalletBalance({
54
+ chain: walletChain ? walletChain : undefined,
55
+ tokenAddress,
56
+ address: activeAccount?.address,
57
+ client,
58
+ });
59
+
60
+ const addressOrENS = ensNameQuery.data || shortAddress;
61
+
62
+ return {
63
+ ensNameQuery,
64
+ ensAvatarQuery,
65
+ addressOrENS,
66
+ shortAddress,
67
+ balanceQuery,
68
+ };
69
+ }
70
+
71
+ /**
72
+ * Returns the wallet info for the provided wallet id.
73
+ * @wallet
74
+ */
75
+ export function useWalletInfo(id: WalletId) {
76
+ return useQuery<WalletInfo>({
77
+ queryKey: ["wallet-info", id],
78
+ queryFn: () => {
79
+ return getWalletInfo(id, false);
80
+ },
81
+ retry: false,
82
+ refetchOnWindowFocus: false,
83
+ refetchOnMount: false,
84
+ });
85
+ }
86
+
87
+ /**
88
+ * Returns the wallet image for the provided wallet id.
89
+ * @wallet
90
+ */
91
+ export function useWalletImage(id: WalletId) {
92
+ return useQuery({
93
+ queryKey: ["wallet-image", id],
94
+ queryFn: () => {
95
+ return getWalletInfo(id, true);
96
+ },
97
+ retry: false,
98
+ refetchOnWindowFocus: false,
99
+ refetchOnMount: false,
100
+ });
101
+ }
@@ -0,0 +1,31 @@
1
+ export const spacing = {
2
+ xxs: 2,
3
+ xs: 4,
4
+ sm: 8,
5
+ smd: 12,
6
+ md: 16,
7
+ lg: 24,
8
+ xl: 32,
9
+ xxl: 48,
10
+ "3xl": 64,
11
+ };
12
+
13
+ export const radius = {
14
+ none: 0,
15
+ sm: 4,
16
+ md: 8,
17
+ lg: 12,
18
+ xl: 24,
19
+ xxl: 32,
20
+ full: 9999,
21
+ };
22
+
23
+ export const fontSize = {
24
+ xxs: 10,
25
+ xs: 12,
26
+ sm: 14,
27
+ md: 16,
28
+ lg: 20,
29
+ xl: 24,
30
+ xxl: 32,
31
+ };
@@ -2,6 +2,7 @@ import { nativeLocalStorage } from "../../../../utils/storage/nativeStorage.js";
2
2
  import type { AutoConnectProps } from "../../../core/hooks/connection/types.js";
3
3
  import { useAutoConnectCore } from "../../../core/hooks/wallets/useAutoConnect.js";
4
4
  import { connectionManager } from "../../index.js";
5
+ import { getDefaultWallets } from "../../wallets/defaultWallets.js";
5
6
 
6
7
  /**
7
8
  * Autoconnect the last previously connected wallet.
@@ -23,5 +24,8 @@ import { connectionManager } from "../../index.js";
23
24
  * @returns whether the auto connect was successful.
24
25
  */
25
26
  export function useAutoConnect(props: AutoConnectProps) {
26
- return useAutoConnectCore(connectionManager, nativeLocalStorage, props);
27
+ return useAutoConnectCore(connectionManager, nativeLocalStorage, {
28
+ ...props,
29
+ wallets: props.wallets || getDefaultWallets(props),
30
+ });
27
31
  }
@@ -0,0 +1,29 @@
1
+ import type { ThirdwebClient } from "../../../../client/client.js";
2
+ import { useSendTokenCore } from "../../../core/hooks/wallets/useSendToken.js";
3
+ import { useActiveWallet } from "./useActiveWallet.js";
4
+
5
+ /**
6
+ * Send Native or ERC20 tokens from active wallet to given address.
7
+ * @example
8
+ * ```tsx
9
+ * const { mutate: sendToken } = useSendToken(client);
10
+ *
11
+ * // send native currency
12
+ * sendToken({
13
+ * receiverAddress: "0x...",
14
+ * amount: "0.1",
15
+ * });
16
+ *
17
+ * // send ERC20
18
+ * sendToken({
19
+ * tokenAddress,
20
+ * receiverAddress: "0x...",
21
+ * amount: "0.5",
22
+ * });
23
+ * ```
24
+ * @wallet
25
+ */
26
+ export function useSendToken(client: ThirdwebClient) {
27
+ const wallet = useActiveWallet();
28
+ return useSendTokenCore(client, wallet);
29
+ }
@@ -0,0 +1,52 @@
1
+ import Clipboard from "@react-native-clipboard/clipboard";
2
+ import { useState } from "react";
3
+ import { StyleSheet, TouchableOpacity } from "react-native";
4
+ import type { Account } from "../../../../wallets/interfaces/wallet.js";
5
+ import type { Theme } from "../../../core/design-system/index.js";
6
+ import { spacing } from "../../design-system/index.js";
7
+ import { CHECK, COPY_ICON } from "../icons/svgs.js";
8
+ import { RNImage } from "./RNImage.js";
9
+ import { ThemedText } from "./text.js";
10
+
11
+ export type AddressProps = {
12
+ account: Account;
13
+ theme: Theme;
14
+ addressOrENS: string;
15
+ };
16
+
17
+ export const Address = ({ account, theme, addressOrENS }: AddressProps) => {
18
+ const [copySuccess, setCopySuccess] = useState(false);
19
+ return (
20
+ <TouchableOpacity
21
+ style={styles.addressContainer}
22
+ onPress={() => {
23
+ // @ts-ignore - missing native types
24
+ Clipboard.setString(account.address);
25
+ setCopySuccess(true);
26
+ setTimeout(() => {
27
+ setCopySuccess(false);
28
+ }, 2500);
29
+ }}
30
+ >
31
+ <ThemedText theme={theme} type="defaultSemiBold">
32
+ {addressOrENS}
33
+ </ThemedText>
34
+ <RNImage
35
+ theme={theme}
36
+ data={copySuccess ? CHECK : COPY_ICON}
37
+ size={15}
38
+ color={
39
+ copySuccess ? theme.colors.success : theme.colors.secondaryIconColor
40
+ }
41
+ />
42
+ </TouchableOpacity>
43
+ );
44
+ };
45
+
46
+ const styles = StyleSheet.create({
47
+ addressContainer: {
48
+ flexDirection: "row",
49
+ gap: spacing.sm,
50
+ alignItems: "center",
51
+ },
52
+ });
@@ -0,0 +1,42 @@
1
+ import { useMemo } from "react";
2
+ import type { Chain } from "../../../../chains/types.js";
3
+ import type { ThirdwebClient } from "../../../../client/client.js";
4
+ import { resolveScheme } from "../../../../utils/ipfs.js";
5
+ import type { Theme } from "../../../core/design-system/index.js";
6
+ import { useChainQuery } from "../../../core/hooks/others/useChainQuery.js";
7
+ import { CHAIN_ICON } from "../icons/svgs.js";
8
+ import { RNImage } from "./RNImage.js";
9
+
10
+ export type ChainIconProps = {
11
+ theme: Theme;
12
+ size: number;
13
+ client: ThirdwebClient;
14
+ chain?: Chain;
15
+ };
16
+
17
+ export const ChainIcon = (props: ChainIconProps) => {
18
+ const chainQuery = useChainQuery(props.chain);
19
+ const data = useMemo(() => {
20
+ const url = chainQuery?.data?.icon?.url;
21
+ if (!url) {
22
+ return CHAIN_ICON;
23
+ }
24
+ try {
25
+ return resolveScheme({
26
+ uri: url,
27
+ client: props.client,
28
+ });
29
+ } catch {
30
+ return CHAIN_ICON;
31
+ }
32
+ }, [props, chainQuery?.data?.icon?.url]);
33
+ return (
34
+ <RNImage
35
+ theme={props.theme}
36
+ size={props.size}
37
+ data={data}
38
+ placeholder={CHAIN_ICON}
39
+ color={props.theme.colors.secondaryIconColor}
40
+ />
41
+ );
42
+ };
@@ -0,0 +1,84 @@
1
+ import { StyleSheet, TouchableOpacity, View } from "react-native";
2
+ import type { Theme } from "../../../core/design-system/index.js";
3
+ import { spacing } from "../../design-system/index.js";
4
+ import { BACK_ICON, CLOSE_ICON } from "../icons/svgs.js";
5
+ import { RNImage } from "./RNImage.js";
6
+ import { ThemedText } from "./text.js";
7
+
8
+ export type ContainerType = "modal" | "embed";
9
+
10
+ export function Header({
11
+ theme,
12
+ title,
13
+ onClose,
14
+ onBack,
15
+ containerType,
16
+ }: {
17
+ theme: Theme;
18
+ title?: string;
19
+ onClose?: () => void;
20
+ onBack?: () => void;
21
+ containerType: ContainerType;
22
+ }) {
23
+ if (containerType === "embed") {
24
+ return onBack ? (
25
+ <TouchableOpacity
26
+ onPress={onBack}
27
+ style={{
28
+ flexDirection: "row",
29
+ gap: spacing.sm,
30
+ alignItems: "center",
31
+ paddingTop: spacing.lg,
32
+ }}
33
+ >
34
+ <RNImage
35
+ theme={theme}
36
+ data={BACK_ICON}
37
+ size={14}
38
+ color={theme.colors.secondaryIconColor}
39
+ />
40
+ <ThemedText theme={theme} type="subtext">
41
+ Back
42
+ </ThemedText>
43
+ </TouchableOpacity>
44
+ ) : null;
45
+ }
46
+
47
+ return (
48
+ <View style={styles.headerModal}>
49
+ {onBack && (
50
+ <TouchableOpacity onPress={onBack}>
51
+ <RNImage
52
+ theme={theme}
53
+ data={BACK_ICON}
54
+ size={24}
55
+ color={theme.colors.secondaryIconColor}
56
+ />
57
+ </TouchableOpacity>
58
+ )}
59
+ <ThemedText theme={theme} type="title">
60
+ {title ? title : "Sign in"}
61
+ </ThemedText>
62
+ {onClose && (
63
+ <TouchableOpacity onPress={onClose}>
64
+ <RNImage
65
+ theme={theme}
66
+ data={CLOSE_ICON}
67
+ size={24}
68
+ color={theme.colors.secondaryIconColor}
69
+ />
70
+ </TouchableOpacity>
71
+ )}
72
+ </View>
73
+ );
74
+ }
75
+
76
+ const styles = StyleSheet.create({
77
+ headerModal: {
78
+ flexDirection: "row",
79
+ alignItems: "center",
80
+ justifyContent: "space-between",
81
+ paddingHorizontal: spacing.lg,
82
+ paddingTop: spacing.lg,
83
+ },
84
+ });
@@ -0,0 +1,71 @@
1
+ import { useMemo, useState } from "react";
2
+ import { Image } from "react-native";
3
+ import { SvgXml } from "react-native-svg";
4
+ import type { Theme } from "../../../core/design-system/index.js";
5
+ import { radius } from "../../design-system/index.js";
6
+ import { Skeleton } from "./Skeleton.js";
7
+
8
+ export type ImageInfo = {
9
+ size: number;
10
+ theme: Theme;
11
+ data?: string | null;
12
+ placeholder?: string;
13
+ color?: string;
14
+ };
15
+
16
+ function getImage(data: string): {
17
+ image: string;
18
+ type: "xml" | "image" | "url";
19
+ } {
20
+ if (data.startsWith("data:image/svg+xml;base64,")) {
21
+ const image = globalThis.atob(
22
+ data.replace("data:image/svg+xml;base64,", ""),
23
+ );
24
+ return { image, type: "xml" };
25
+ }
26
+ if (data.startsWith("data:image/")) {
27
+ return { image: data, type: "image" };
28
+ }
29
+ if (data.startsWith("<svg")) {
30
+ return { image: data, type: "xml" };
31
+ }
32
+ return { image: data, type: "url" };
33
+ }
34
+
35
+ export const RNImage = (props: ImageInfo) => {
36
+ const { data, size, color, placeholder } = props;
37
+ const [loading, setLoading] = useState(true);
38
+ if (!data) {
39
+ return null;
40
+ }
41
+ const { image, type } = useMemo(() => getImage(data), [data]);
42
+ switch (type) {
43
+ case "url":
44
+ case "image":
45
+ return (
46
+ <>
47
+ {loading && (
48
+ <Skeleton
49
+ theme={props.theme}
50
+ style={{ width: size, height: size }}
51
+ />
52
+ )}
53
+ <Image
54
+ source={{ uri: image }}
55
+ loadingIndicatorSource={{ uri: placeholder }}
56
+ width={size}
57
+ height={size}
58
+ onLoadStart={() => setLoading(true)}
59
+ onLoadEnd={() => setLoading(false)}
60
+ style={[
61
+ { borderRadius: radius.md, display: loading ? "none" : "flex" },
62
+ ]}
63
+ />
64
+ </>
65
+ );
66
+ case "xml":
67
+ return <SvgXml xml={image} width={size} height={size} color={color} />;
68
+ default:
69
+ return null;
70
+ }
71
+ };