thirdweb 5.86.6 → 5.87.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 (419) hide show
  1. package/dist/cjs/exports/react.js +4 -3
  2. package/dist/cjs/exports/react.js.map +1 -1
  3. package/dist/cjs/exports/react.native.js +27 -1
  4. package/dist/cjs/exports/react.native.js.map +1 -1
  5. package/dist/cjs/exports/wallets.js +4 -1
  6. package/dist/cjs/exports/wallets.js.map +1 -1
  7. package/dist/cjs/react/{web/ui/prebuilt/Account → core/account}/provider.js +5 -1
  8. package/dist/cjs/react/core/account/provider.js.map +1 -0
  9. package/dist/cjs/react/core/utils/account.js +105 -0
  10. package/dist/cjs/react/core/utils/account.js.map +1 -0
  11. package/dist/cjs/react/core/utils/walletIcon.js +23 -0
  12. package/dist/cjs/react/core/utils/walletIcon.js.map +1 -1
  13. package/dist/cjs/react/core/utils/walletname.js +43 -0
  14. package/dist/cjs/react/core/utils/walletname.js.map +1 -0
  15. package/dist/cjs/react/core/wallet/provider.js.map +1 -0
  16. package/dist/cjs/react/native/ui/prebuilt/Account/address.js +50 -0
  17. package/dist/cjs/react/native/ui/prebuilt/Account/address.js.map +1 -0
  18. package/dist/cjs/react/native/ui/prebuilt/Account/avatar.js +151 -0
  19. package/dist/cjs/react/native/ui/prebuilt/Account/avatar.js.map +1 -0
  20. package/dist/cjs/react/native/ui/prebuilt/Account/balance.js +130 -0
  21. package/dist/cjs/react/native/ui/prebuilt/Account/balance.js.map +1 -0
  22. package/dist/cjs/react/native/ui/prebuilt/Account/blobbie.js +58 -0
  23. package/dist/cjs/react/native/ui/prebuilt/Account/blobbie.js.map +1 -0
  24. package/dist/cjs/react/native/ui/prebuilt/Account/name.js +113 -0
  25. package/dist/cjs/react/native/ui/prebuilt/Account/name.js.map +1 -0
  26. package/dist/cjs/react/native/ui/prebuilt/Wallet/icon.js +85 -0
  27. package/dist/cjs/react/native/ui/prebuilt/Wallet/icon.js.map +1 -0
  28. package/dist/cjs/react/native/ui/prebuilt/Wallet/name.js +66 -0
  29. package/dist/cjs/react/native/ui/prebuilt/Wallet/name.js.map +1 -0
  30. package/dist/cjs/react/web/ui/ConnectWallet/Blobbie.js +2 -18
  31. package/dist/cjs/react/web/ui/ConnectWallet/Blobbie.js.map +1 -1
  32. package/dist/cjs/react/web/ui/ConnectWallet/ConnectButton.js +1 -1
  33. package/dist/cjs/react/web/ui/ConnectWallet/ConnectButton.js.map +1 -1
  34. package/dist/cjs/react/web/ui/ConnectWallet/Details.js +5 -4
  35. package/dist/cjs/react/web/ui/ConnectWallet/Details.js.map +1 -1
  36. package/dist/cjs/react/web/ui/ConnectWallet/screens/ManageWalletScreen.js +5 -4
  37. package/dist/cjs/react/web/ui/ConnectWallet/screens/ManageWalletScreen.js.map +1 -1
  38. package/dist/cjs/react/web/ui/prebuilt/Account/address.js +1 -1
  39. package/dist/cjs/react/web/ui/prebuilt/Account/address.js.map +1 -1
  40. package/dist/cjs/react/web/ui/prebuilt/Account/avatar.js +1 -1
  41. package/dist/cjs/react/web/ui/prebuilt/Account/avatar.js.map +1 -1
  42. package/dist/cjs/react/web/ui/prebuilt/Account/balance.js +8 -90
  43. package/dist/cjs/react/web/ui/prebuilt/Account/balance.js.map +1 -1
  44. package/dist/cjs/react/web/ui/prebuilt/Account/blobbie.js +1 -1
  45. package/dist/cjs/react/web/ui/prebuilt/Account/blobbie.js.map +1 -1
  46. package/dist/cjs/react/web/ui/prebuilt/Account/name.js +1 -1
  47. package/dist/cjs/react/web/ui/prebuilt/Account/name.js.map +1 -1
  48. package/dist/cjs/react/web/ui/prebuilt/NFT/utils.js.map +1 -1
  49. package/dist/cjs/react/web/ui/prebuilt/Wallet/icon.js +1 -23
  50. package/dist/cjs/react/web/ui/prebuilt/Wallet/icon.js.map +1 -1
  51. package/dist/cjs/react/web/ui/prebuilt/Wallet/name.js +2 -42
  52. package/dist/cjs/react/web/ui/prebuilt/Wallet/name.js.map +1 -1
  53. package/dist/cjs/utils/shortenLargeNumber.js +3 -0
  54. package/dist/cjs/utils/shortenLargeNumber.js.map +1 -1
  55. package/dist/cjs/version.js +1 -1
  56. package/dist/cjs/wallets/connection/autoConnectCore.js +12 -12
  57. package/dist/cjs/wallets/connection/autoConnectCore.js.map +1 -1
  58. package/dist/cjs/wallets/in-app/web/lib/get-url-token.js +3 -3
  59. package/dist/cjs/wallets/in-app/web/lib/get-url-token.js.map +1 -1
  60. package/dist/esm/exports/react.js +3 -3
  61. package/dist/esm/exports/react.js.map +1 -1
  62. package/dist/esm/exports/react.native.js +15 -0
  63. package/dist/esm/exports/react.native.js.map +1 -1
  64. package/dist/esm/exports/wallets.js +2 -0
  65. package/dist/esm/exports/wallets.js.map +1 -1
  66. package/dist/esm/react/{web/ui/prebuilt/Account → core/account}/provider.js +5 -1
  67. package/dist/esm/react/core/account/provider.js.map +1 -0
  68. package/dist/esm/react/core/utils/account.js +99 -0
  69. package/dist/esm/react/core/utils/account.js.map +1 -0
  70. package/dist/esm/react/core/utils/walletIcon.js +21 -0
  71. package/dist/esm/react/core/utils/walletIcon.js.map +1 -1
  72. package/dist/esm/react/core/utils/walletname.js +40 -0
  73. package/dist/esm/react/core/utils/walletname.js.map +1 -0
  74. package/dist/esm/react/core/wallet/provider.js.map +1 -0
  75. package/dist/esm/react/native/ui/prebuilt/Account/address.js +47 -0
  76. package/dist/esm/react/native/ui/prebuilt/Account/address.js.map +1 -0
  77. package/dist/esm/react/native/ui/prebuilt/Account/avatar.js +148 -0
  78. package/dist/esm/react/native/ui/prebuilt/Account/avatar.js.map +1 -0
  79. package/dist/esm/react/native/ui/prebuilt/Account/balance.js +127 -0
  80. package/dist/esm/react/native/ui/prebuilt/Account/balance.js.map +1 -0
  81. package/dist/esm/react/native/ui/prebuilt/Account/blobbie.js +54 -0
  82. package/dist/esm/react/native/ui/prebuilt/Account/blobbie.js.map +1 -0
  83. package/dist/esm/react/native/ui/prebuilt/Account/name.js +110 -0
  84. package/dist/esm/react/native/ui/prebuilt/Account/name.js.map +1 -0
  85. package/dist/esm/react/native/ui/prebuilt/Wallet/icon.js +81 -0
  86. package/dist/esm/react/native/ui/prebuilt/Wallet/icon.js.map +1 -0
  87. package/dist/esm/react/native/ui/prebuilt/Wallet/name.js +63 -0
  88. package/dist/esm/react/native/ui/prebuilt/Wallet/name.js.map +1 -0
  89. package/dist/esm/react/web/ui/ConnectWallet/Blobbie.js +1 -17
  90. package/dist/esm/react/web/ui/ConnectWallet/Blobbie.js.map +1 -1
  91. package/dist/esm/react/web/ui/ConnectWallet/ConnectButton.js +1 -1
  92. package/dist/esm/react/web/ui/ConnectWallet/ConnectButton.js.map +1 -1
  93. package/dist/esm/react/web/ui/ConnectWallet/Details.js +3 -2
  94. package/dist/esm/react/web/ui/ConnectWallet/Details.js.map +1 -1
  95. package/dist/esm/react/web/ui/ConnectWallet/screens/ManageWalletScreen.js +5 -4
  96. package/dist/esm/react/web/ui/ConnectWallet/screens/ManageWalletScreen.js.map +1 -1
  97. package/dist/esm/react/web/ui/prebuilt/Account/address.js +1 -1
  98. package/dist/esm/react/web/ui/prebuilt/Account/address.js.map +1 -1
  99. package/dist/esm/react/web/ui/prebuilt/Account/avatar.js +1 -1
  100. package/dist/esm/react/web/ui/prebuilt/Account/avatar.js.map +1 -1
  101. package/dist/esm/react/web/ui/prebuilt/Account/balance.js +6 -85
  102. package/dist/esm/react/web/ui/prebuilt/Account/balance.js.map +1 -1
  103. package/dist/esm/react/web/ui/prebuilt/Account/blobbie.js +1 -1
  104. package/dist/esm/react/web/ui/prebuilt/Account/blobbie.js.map +1 -1
  105. package/dist/esm/react/web/ui/prebuilt/Account/name.js +1 -1
  106. package/dist/esm/react/web/ui/prebuilt/Account/name.js.map +1 -1
  107. package/dist/esm/react/web/ui/prebuilt/NFT/utils.js +0 -1
  108. package/dist/esm/react/web/ui/prebuilt/NFT/utils.js.map +1 -1
  109. package/dist/esm/react/web/ui/prebuilt/Wallet/icon.js +1 -22
  110. package/dist/esm/react/web/ui/prebuilt/Wallet/icon.js.map +1 -1
  111. package/dist/esm/react/web/ui/prebuilt/Wallet/name.js +1 -39
  112. package/dist/esm/react/web/ui/prebuilt/Wallet/name.js.map +1 -1
  113. package/dist/esm/utils/shortenLargeNumber.js +3 -0
  114. package/dist/esm/utils/shortenLargeNumber.js.map +1 -1
  115. package/dist/esm/version.js +1 -1
  116. package/dist/esm/wallets/connection/autoConnectCore.js +12 -12
  117. package/dist/esm/wallets/connection/autoConnectCore.js.map +1 -1
  118. package/dist/esm/wallets/in-app/web/lib/get-url-token.js +3 -3
  119. package/dist/esm/wallets/in-app/web/lib/get-url-token.js.map +1 -1
  120. package/dist/types/exports/react.d.ts +5 -4
  121. package/dist/types/exports/react.d.ts.map +1 -1
  122. package/dist/types/exports/react.native.d.ts +15 -0
  123. package/dist/types/exports/react.native.d.ts.map +1 -1
  124. package/dist/types/exports/wallets.d.ts +1 -0
  125. package/dist/types/exports/wallets.d.ts.map +1 -1
  126. package/dist/types/extensions/airdrop/__generated__/Airdrop/read/eip712Domain.d.ts +1 -1
  127. package/dist/types/extensions/airdrop/__generated__/Airdrop/read/eip712Domain.d.ts.map +1 -1
  128. package/dist/types/extensions/airdrop/__generated__/Airdrop/read/owner.d.ts +1 -1
  129. package/dist/types/extensions/airdrop/__generated__/Airdrop/read/owner.d.ts.map +1 -1
  130. package/dist/types/extensions/common/__generated__/IOwnable/read/owner.d.ts +1 -1
  131. package/dist/types/extensions/common/__generated__/IOwnable/read/owner.d.ts.map +1 -1
  132. package/dist/types/extensions/common/__generated__/IPlatformFee/read/getPlatformFeeInfo.d.ts +1 -1
  133. package/dist/types/extensions/common/__generated__/IPlatformFee/read/getPlatformFeeInfo.d.ts.map +1 -1
  134. package/dist/types/extensions/common/__generated__/IPrimarySale/read/primarySaleRecipient.d.ts +1 -1
  135. package/dist/types/extensions/common/__generated__/IPrimarySale/read/primarySaleRecipient.d.ts.map +1 -1
  136. package/dist/types/extensions/common/__generated__/IRoyalty/read/getDefaultRoyaltyInfo.d.ts +1 -1
  137. package/dist/types/extensions/common/__generated__/IRoyalty/read/getDefaultRoyaltyInfo.d.ts.map +1 -1
  138. package/dist/types/extensions/common/__generated__/IRoyalty/read/getRoyaltyInfoForToken.d.ts +1 -1
  139. package/dist/types/extensions/common/__generated__/IRoyalty/read/getRoyaltyInfoForToken.d.ts.map +1 -1
  140. package/dist/types/extensions/common/__generated__/IRoyalty/read/royaltyInfo.d.ts +1 -1
  141. package/dist/types/extensions/common/__generated__/IRoyalty/read/royaltyInfo.d.ts.map +1 -1
  142. package/dist/types/extensions/ens/__generated__/AddressResolver/read/addr.d.ts +1 -1
  143. package/dist/types/extensions/ens/__generated__/AddressResolver/read/addr.d.ts.map +1 -1
  144. package/dist/types/extensions/ens/__generated__/UniversalResolver/read/resolve.d.ts +1 -1
  145. package/dist/types/extensions/ens/__generated__/UniversalResolver/read/resolve.d.ts.map +1 -1
  146. package/dist/types/extensions/ens/__generated__/UniversalResolver/read/reverse.d.ts +1 -1
  147. package/dist/types/extensions/ens/__generated__/UniversalResolver/read/reverse.d.ts.map +1 -1
  148. package/dist/types/extensions/erc1155/__generated__/IDrop1155/read/getClaimConditionById.d.ts +1 -1
  149. package/dist/types/extensions/erc1155/__generated__/IDropSinglePhase1155/read/claimCondition.d.ts +1 -1
  150. package/dist/types/extensions/erc1155/__generated__/ISignatureMintERC1155/read/verify.d.ts +1 -1
  151. package/dist/types/extensions/erc1155/__generated__/ISignatureMintERC1155/read/verify.d.ts.map +1 -1
  152. package/dist/types/extensions/erc1155/drops/write/resetClaimEligibility.d.ts +1 -1
  153. package/dist/types/extensions/erc1155/drops/write/resetClaimEligibility.d.ts.map +1 -1
  154. package/dist/types/extensions/erc20/__generated__/IDropERC20/read/getClaimConditionById.d.ts +1 -1
  155. package/dist/types/extensions/erc20/__generated__/ISignatureMintERC20/read/verify.d.ts +1 -1
  156. package/dist/types/extensions/erc20/__generated__/ISignatureMintERC20/read/verify.d.ts.map +1 -1
  157. package/dist/types/extensions/erc20/__generated__/IVotes/read/delegates.d.ts +1 -1
  158. package/dist/types/extensions/erc20/__generated__/IVotes/read/delegates.d.ts.map +1 -1
  159. package/dist/types/extensions/erc20/drops/write/resetClaimEligibility.d.ts +1 -1
  160. package/dist/types/extensions/erc20/drops/write/resetClaimEligibility.d.ts.map +1 -1
  161. package/dist/types/extensions/erc2981/__generated__/IERC2981/read/royaltyInfo.d.ts +1 -1
  162. package/dist/types/extensions/erc2981/__generated__/IERC2981/read/royaltyInfo.d.ts.map +1 -1
  163. package/dist/types/extensions/erc4337/__generated__/IAccountFactory/read/accountImplementation.d.ts +1 -1
  164. package/dist/types/extensions/erc4337/__generated__/IAccountFactory/read/accountImplementation.d.ts.map +1 -1
  165. package/dist/types/extensions/erc4337/__generated__/IAccountFactory/read/getAccounts.d.ts +1 -1
  166. package/dist/types/extensions/erc4337/__generated__/IAccountFactory/read/getAccounts.d.ts.map +1 -1
  167. package/dist/types/extensions/erc4337/__generated__/IAccountFactory/read/getAccountsOfSigner.d.ts +1 -1
  168. package/dist/types/extensions/erc4337/__generated__/IAccountFactory/read/getAccountsOfSigner.d.ts.map +1 -1
  169. package/dist/types/extensions/erc4337/__generated__/IAccountFactory/read/getAddress.d.ts +1 -1
  170. package/dist/types/extensions/erc4337/__generated__/IAccountFactory/read/getAddress.d.ts.map +1 -1
  171. package/dist/types/extensions/erc4337/__generated__/IAccountFactory/read/getAllAccounts.d.ts +1 -1
  172. package/dist/types/extensions/erc4337/__generated__/IAccountFactory/read/getAllAccounts.d.ts.map +1 -1
  173. package/dist/types/extensions/erc4337/__generated__/IAccountPermissions/read/getAllActiveSigners.d.ts +2 -2
  174. package/dist/types/extensions/erc4337/__generated__/IAccountPermissions/read/getAllAdmins.d.ts +1 -1
  175. package/dist/types/extensions/erc4337/__generated__/IAccountPermissions/read/getAllAdmins.d.ts.map +1 -1
  176. package/dist/types/extensions/erc4337/__generated__/IAccountPermissions/read/getAllSigners.d.ts +2 -2
  177. package/dist/types/extensions/erc4337/__generated__/IAccountPermissions/read/getPermissionsForSigner.d.ts +2 -2
  178. package/dist/types/extensions/erc4337/__generated__/IAccountPermissions/read/verifySignerPermissionRequest.d.ts +1 -1
  179. package/dist/types/extensions/erc4337/__generated__/IAccountPermissions/read/verifySignerPermissionRequest.d.ts.map +1 -1
  180. package/dist/types/extensions/erc4626/__generated__/IERC4626/read/asset.d.ts +1 -1
  181. package/dist/types/extensions/erc4626/__generated__/IERC4626/read/asset.d.ts.map +1 -1
  182. package/dist/types/extensions/erc6551/__generated__/IERC6551Account/read/token.d.ts +1 -1
  183. package/dist/types/extensions/erc6551/__generated__/IERC6551Account/read/token.d.ts.map +1 -1
  184. package/dist/types/extensions/erc721/__generated__/IDrop/read/getClaimConditionById.d.ts +1 -1
  185. package/dist/types/extensions/erc721/__generated__/IDropSinglePhase/read/claimCondition.d.ts +1 -1
  186. package/dist/types/extensions/erc721/__generated__/IERC721A/read/getApproved.d.ts +1 -1
  187. package/dist/types/extensions/erc721/__generated__/IERC721A/read/getApproved.d.ts.map +1 -1
  188. package/dist/types/extensions/erc721/__generated__/IERC721A/read/ownerOf.d.ts +1 -1
  189. package/dist/types/extensions/erc721/__generated__/IERC721A/read/ownerOf.d.ts.map +1 -1
  190. package/dist/types/extensions/erc721/__generated__/ISignatureMintERC721/read/verify.d.ts +1 -1
  191. package/dist/types/extensions/erc721/__generated__/ISignatureMintERC721/read/verify.d.ts.map +1 -1
  192. package/dist/types/extensions/erc721/__generated__/ISignatureMintERC721_v2/read/verify.d.ts +1 -1
  193. package/dist/types/extensions/erc721/__generated__/ISignatureMintERC721_v2/read/verify.d.ts.map +1 -1
  194. package/dist/types/extensions/erc721/__generated__/Multiwrap/read/getWrappedContents.d.ts +1 -1
  195. package/dist/types/extensions/erc721/drops/write/resetClaimEligibility.d.ts +1 -1
  196. package/dist/types/extensions/erc721/drops/write/resetClaimEligibility.d.ts.map +1 -1
  197. package/dist/types/extensions/erc7504/__generated__/IRouterState/read/getAllExtensions.d.ts +1 -1
  198. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/accountImplementation.d.ts +1 -1
  199. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/accountImplementation.d.ts.map +1 -1
  200. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/entrypoint.d.ts +1 -1
  201. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/entrypoint.d.ts.map +1 -1
  202. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/getAddress.d.ts +1 -1
  203. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/getAddress.d.ts.map +1 -1
  204. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/implementation.d.ts +1 -1
  205. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/implementation.d.ts.map +1 -1
  206. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/owner.d.ts +1 -1
  207. package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/owner.d.ts.map +1 -1
  208. package/dist/types/extensions/farcaster/__generated__/IBundler/read/idGateway.d.ts +1 -1
  209. package/dist/types/extensions/farcaster/__generated__/IBundler/read/idGateway.d.ts.map +1 -1
  210. package/dist/types/extensions/farcaster/__generated__/IBundler/read/keyGateway.d.ts +1 -1
  211. package/dist/types/extensions/farcaster/__generated__/IBundler/read/keyGateway.d.ts.map +1 -1
  212. package/dist/types/extensions/farcaster/__generated__/IIdGateway/read/idRegistry.d.ts +1 -1
  213. package/dist/types/extensions/farcaster/__generated__/IIdGateway/read/idRegistry.d.ts.map +1 -1
  214. package/dist/types/extensions/farcaster/__generated__/IIdGateway/read/storageRegistry.d.ts +1 -1
  215. package/dist/types/extensions/farcaster/__generated__/IIdGateway/read/storageRegistry.d.ts.map +1 -1
  216. package/dist/types/extensions/farcaster/__generated__/IIdRegistry/read/custodyOf.d.ts +1 -1
  217. package/dist/types/extensions/farcaster/__generated__/IIdRegistry/read/custodyOf.d.ts.map +1 -1
  218. package/dist/types/extensions/farcaster/__generated__/IIdRegistry/read/idGateway.d.ts +1 -1
  219. package/dist/types/extensions/farcaster/__generated__/IIdRegistry/read/idGateway.d.ts.map +1 -1
  220. package/dist/types/extensions/farcaster/__generated__/IIdRegistry/read/recoveryOf.d.ts +1 -1
  221. package/dist/types/extensions/farcaster/__generated__/IIdRegistry/read/recoveryOf.d.ts.map +1 -1
  222. package/dist/types/extensions/farcaster/__generated__/IKeyGateway/read/keyRegistry.d.ts +1 -1
  223. package/dist/types/extensions/farcaster/__generated__/IKeyGateway/read/keyRegistry.d.ts.map +1 -1
  224. package/dist/types/extensions/farcaster/__generated__/IKeyRegistry/read/idRegistry.d.ts +1 -1
  225. package/dist/types/extensions/farcaster/__generated__/IKeyRegistry/read/idRegistry.d.ts.map +1 -1
  226. package/dist/types/extensions/farcaster/__generated__/IKeyRegistry/read/keyDataOf.d.ts +1 -1
  227. package/dist/types/extensions/farcaster/__generated__/IKeyRegistry/read/keyDataOf.d.ts.map +1 -1
  228. package/dist/types/extensions/farcaster/__generated__/IKeyRegistry/read/keyGateway.d.ts +1 -1
  229. package/dist/types/extensions/farcaster/__generated__/IKeyRegistry/read/keyGateway.d.ts.map +1 -1
  230. package/dist/types/extensions/lens/__generated__/LensHandle/read/getHandleTokenURIContract.d.ts +1 -1
  231. package/dist/types/extensions/lens/__generated__/LensHandle/read/getHandleTokenURIContract.d.ts.map +1 -1
  232. package/dist/types/extensions/lens/__generated__/LensHub/read/getProfile.d.ts +2 -2
  233. package/dist/types/extensions/lens/__generated__/LensHub/read/getPublication.d.ts +3 -3
  234. package/dist/types/extensions/lens/__generated__/LensHub/read/tokenDataOf.d.ts +1 -1
  235. package/dist/types/extensions/marketplace/__generated__/IDirectListings/read/getAllListings.d.ts +3 -3
  236. package/dist/types/extensions/marketplace/__generated__/IDirectListings/read/getAllValidListings.d.ts +3 -3
  237. package/dist/types/extensions/marketplace/__generated__/IDirectListings/read/getListing.d.ts +3 -3
  238. package/dist/types/extensions/marketplace/__generated__/IEnglishAuctions/read/getAllAuctions.d.ts +3 -3
  239. package/dist/types/extensions/marketplace/__generated__/IEnglishAuctions/read/getAllValidAuctions.d.ts +3 -3
  240. package/dist/types/extensions/marketplace/__generated__/IEnglishAuctions/read/getAuction.d.ts +3 -3
  241. package/dist/types/extensions/marketplace/__generated__/IEnglishAuctions/read/getWinningBid.d.ts +1 -1
  242. package/dist/types/extensions/marketplace/__generated__/IEnglishAuctions/read/getWinningBid.d.ts.map +1 -1
  243. package/dist/types/extensions/marketplace/__generated__/IMarketplace/read/getPlatformFeeInfo.d.ts +1 -1
  244. package/dist/types/extensions/marketplace/__generated__/IMarketplace/read/getPlatformFeeInfo.d.ts.map +1 -1
  245. package/dist/types/extensions/marketplace/__generated__/IOffers/read/getAllOffers.d.ts +3 -3
  246. package/dist/types/extensions/marketplace/__generated__/IOffers/read/getAllValidOffers.d.ts +3 -3
  247. package/dist/types/extensions/marketplace/__generated__/IOffers/read/getOffer.d.ts +3 -3
  248. package/dist/types/extensions/modules/ClaimableERC1155/mint.d.ts +1 -1
  249. package/dist/types/extensions/modules/ClaimableERC1155/mint.d.ts.map +1 -1
  250. package/dist/types/extensions/modules/ClaimableERC1155/setClaimConditions.d.ts +1 -1
  251. package/dist/types/extensions/modules/ClaimableERC1155/setClaimConditions.d.ts.map +1 -1
  252. package/dist/types/extensions/modules/ClaimableERC20/mint.d.ts +1 -1
  253. package/dist/types/extensions/modules/ClaimableERC20/mint.d.ts.map +1 -1
  254. package/dist/types/extensions/modules/ClaimableERC20/setClaimConditions.d.ts +1 -1
  255. package/dist/types/extensions/modules/ClaimableERC20/setClaimConditions.d.ts.map +1 -1
  256. package/dist/types/extensions/modules/ClaimableERC721/mint.d.ts +1 -1
  257. package/dist/types/extensions/modules/ClaimableERC721/mint.d.ts.map +1 -1
  258. package/dist/types/extensions/modules/ClaimableERC721/setClaimConditions.d.ts +1 -1
  259. package/dist/types/extensions/modules/ClaimableERC721/setClaimConditions.d.ts.map +1 -1
  260. package/dist/types/extensions/modules/__generated__/ClaimableERC1155/read/getClaimConditionByTokenId.d.ts +1 -1
  261. package/dist/types/extensions/modules/__generated__/ClaimableERC1155/read/getSaleConfig.d.ts +1 -1
  262. package/dist/types/extensions/modules/__generated__/ClaimableERC1155/read/getSaleConfig.d.ts.map +1 -1
  263. package/dist/types/extensions/modules/__generated__/ClaimableERC20/read/getClaimCondition.d.ts +1 -1
  264. package/dist/types/extensions/modules/__generated__/ClaimableERC20/read/getSaleConfig.d.ts +1 -1
  265. package/dist/types/extensions/modules/__generated__/ClaimableERC20/read/getSaleConfig.d.ts.map +1 -1
  266. package/dist/types/extensions/modules/__generated__/ClaimableERC721/read/getClaimCondition.d.ts +1 -1
  267. package/dist/types/extensions/modules/__generated__/ClaimableERC721/read/getSaleConfig.d.ts +1 -1
  268. package/dist/types/extensions/modules/__generated__/ClaimableERC721/read/getSaleConfig.d.ts.map +1 -1
  269. package/dist/types/extensions/modules/__generated__/IModularCore/read/getInstalledModules.d.ts +1 -1
  270. package/dist/types/extensions/modules/__generated__/MintableERC1155/read/getSaleConfig.d.ts +1 -1
  271. package/dist/types/extensions/modules/__generated__/MintableERC1155/read/getSaleConfig.d.ts.map +1 -1
  272. package/dist/types/extensions/modules/__generated__/MintableERC20/read/getSaleConfig.d.ts +1 -1
  273. package/dist/types/extensions/modules/__generated__/MintableERC20/read/getSaleConfig.d.ts.map +1 -1
  274. package/dist/types/extensions/modules/__generated__/MintableERC721/read/getSaleConfig.d.ts +1 -1
  275. package/dist/types/extensions/modules/__generated__/MintableERC721/read/getSaleConfig.d.ts.map +1 -1
  276. package/dist/types/extensions/modules/__generated__/OwnableRoles/read/owner.d.ts +1 -1
  277. package/dist/types/extensions/modules/__generated__/OwnableRoles/read/owner.d.ts.map +1 -1
  278. package/dist/types/extensions/modules/__generated__/RoyaltyERC1155/read/getDefaultRoyaltyInfo.d.ts +1 -1
  279. package/dist/types/extensions/modules/__generated__/RoyaltyERC1155/read/getDefaultRoyaltyInfo.d.ts.map +1 -1
  280. package/dist/types/extensions/modules/__generated__/RoyaltyERC1155/read/getRoyaltyInfoForToken.d.ts +1 -1
  281. package/dist/types/extensions/modules/__generated__/RoyaltyERC1155/read/getRoyaltyInfoForToken.d.ts.map +1 -1
  282. package/dist/types/extensions/modules/__generated__/RoyaltyERC1155/read/getTransferValidator.d.ts +1 -1
  283. package/dist/types/extensions/modules/__generated__/RoyaltyERC1155/read/getTransferValidator.d.ts.map +1 -1
  284. package/dist/types/extensions/modules/__generated__/RoyaltyERC1155/read/royaltyInfo.d.ts +1 -1
  285. package/dist/types/extensions/modules/__generated__/RoyaltyERC1155/read/royaltyInfo.d.ts.map +1 -1
  286. package/dist/types/extensions/modules/__generated__/RoyaltyERC721/read/getDefaultRoyaltyInfo.d.ts +1 -1
  287. package/dist/types/extensions/modules/__generated__/RoyaltyERC721/read/getDefaultRoyaltyInfo.d.ts.map +1 -1
  288. package/dist/types/extensions/modules/__generated__/RoyaltyERC721/read/getRoyaltyInfoForToken.d.ts +1 -1
  289. package/dist/types/extensions/modules/__generated__/RoyaltyERC721/read/getRoyaltyInfoForToken.d.ts.map +1 -1
  290. package/dist/types/extensions/modules/__generated__/RoyaltyERC721/read/getTransferValidator.d.ts +1 -1
  291. package/dist/types/extensions/modules/__generated__/RoyaltyERC721/read/getTransferValidator.d.ts.map +1 -1
  292. package/dist/types/extensions/modules/__generated__/RoyaltyERC721/read/royaltyInfo.d.ts +1 -1
  293. package/dist/types/extensions/modules/__generated__/RoyaltyERC721/read/royaltyInfo.d.ts.map +1 -1
  294. package/dist/types/extensions/multicall3/__generated__/IMulticall3/read/getCurrentBlockCoinbase.d.ts +1 -1
  295. package/dist/types/extensions/multicall3/__generated__/IMulticall3/read/getCurrentBlockCoinbase.d.ts.map +1 -1
  296. package/dist/types/extensions/pack/__generated__/IPack/read/getPackContents.d.ts +1 -1
  297. package/dist/types/extensions/pack/__generated__/IPack/read/getTokenOfBundle.d.ts +1 -1
  298. package/dist/types/extensions/permissions/__generated__/IPermissionsEnumerable/read/getRoleMember.d.ts +1 -1
  299. package/dist/types/extensions/permissions/__generated__/IPermissionsEnumerable/read/getRoleMember.d.ts.map +1 -1
  300. package/dist/types/extensions/split/__generated__/Split/read/payee.d.ts +1 -1
  301. package/dist/types/extensions/split/__generated__/Split/read/payee.d.ts.map +1 -1
  302. package/dist/types/extensions/thirdweb/__generated__/IContractPublisher/read/getAllPublishedContracts.d.ts +1 -1
  303. package/dist/types/extensions/thirdweb/__generated__/IContractPublisher/read/getPublishedContract.d.ts +1 -1
  304. package/dist/types/extensions/thirdweb/__generated__/IContractPublisher/read/getPublishedContractVersions.d.ts +1 -1
  305. package/dist/types/extensions/thirdweb/__generated__/IRulesEngine/read/getAllRules.d.ts +1 -1
  306. package/dist/types/extensions/thirdweb/__generated__/IRulesEngine/read/getRulesEngineOverride.d.ts +1 -1
  307. package/dist/types/extensions/thirdweb/__generated__/IRulesEngine/read/getRulesEngineOverride.d.ts.map +1 -1
  308. package/dist/types/extensions/thirdweb/__generated__/ISignatureAction/read/verify.d.ts +1 -1
  309. package/dist/types/extensions/thirdweb/__generated__/ISignatureAction/read/verify.d.ts.map +1 -1
  310. package/dist/types/extensions/thirdweb/__generated__/ITWFee/read/getFeeInfo.d.ts +1 -1
  311. package/dist/types/extensions/thirdweb/__generated__/ITWFee/read/getFeeInfo.d.ts.map +1 -1
  312. package/dist/types/extensions/thirdweb/__generated__/ITWMultichainRegistry/read/getAll.d.ts +1 -1
  313. package/dist/types/extensions/uniswap/__generated__/IUniswapV3Factory/read/getPool.d.ts +1 -1
  314. package/dist/types/extensions/uniswap/__generated__/IUniswapV3Factory/read/getPool.d.ts.map +1 -1
  315. package/dist/types/extensions/uniswap/__generated__/IUniswapV3Factory/read/owner.d.ts +1 -1
  316. package/dist/types/extensions/uniswap/__generated__/IUniswapV3Factory/read/owner.d.ts.map +1 -1
  317. package/dist/types/extensions/vote/__generated__/Vote/read/getAllProposals.d.ts +2 -2
  318. package/dist/types/extensions/vote/__generated__/Vote/read/proposals.d.ts +1 -1
  319. package/dist/types/extensions/vote/__generated__/Vote/read/proposals.d.ts.map +1 -1
  320. package/dist/types/extensions/vote/__generated__/Vote/read/token.d.ts +1 -1
  321. package/dist/types/extensions/vote/__generated__/Vote/read/token.d.ts.map +1 -1
  322. package/dist/types/react/{web/ui/prebuilt/Account → core/account}/provider.d.ts +3 -4
  323. package/dist/types/react/core/account/provider.d.ts.map +1 -0
  324. package/dist/types/react/core/utils/account.d.ts +46 -0
  325. package/dist/types/react/core/utils/account.d.ts.map +1 -0
  326. package/dist/types/react/core/utils/walletIcon.d.ts +14 -0
  327. package/dist/types/react/core/utils/walletIcon.d.ts.map +1 -1
  328. package/dist/types/react/core/utils/walletname.d.ts +9 -0
  329. package/dist/types/react/core/utils/walletname.d.ts.map +1 -0
  330. package/dist/types/react/{web/ui/prebuilt/Wallet → core/wallet}/provider.d.ts +1 -1
  331. package/dist/types/react/core/wallet/provider.d.ts.map +1 -0
  332. package/dist/types/react/native/ui/prebuilt/Account/address.d.ts +54 -0
  333. package/dist/types/react/native/ui/prebuilt/Account/address.d.ts.map +1 -0
  334. package/dist/types/react/native/ui/prebuilt/Account/avatar.d.ts +141 -0
  335. package/dist/types/react/native/ui/prebuilt/Account/avatar.d.ts.map +1 -0
  336. package/dist/types/react/native/ui/prebuilt/Account/balance.d.ts +144 -0
  337. package/dist/types/react/native/ui/prebuilt/Account/balance.d.ts.map +1 -0
  338. package/dist/types/react/native/ui/prebuilt/Account/blobbie.d.ts +34 -0
  339. package/dist/types/react/native/ui/prebuilt/Account/blobbie.d.ts.map +1 -0
  340. package/dist/types/react/native/ui/prebuilt/Account/name.d.ts +118 -0
  341. package/dist/types/react/native/ui/prebuilt/Account/name.d.ts.map +1 -0
  342. package/dist/types/react/native/ui/prebuilt/Wallet/icon.d.ts +100 -0
  343. package/dist/types/react/native/ui/prebuilt/Wallet/icon.d.ts.map +1 -0
  344. package/dist/types/react/native/ui/prebuilt/Wallet/name.d.ts +94 -0
  345. package/dist/types/react/native/ui/prebuilt/Wallet/name.d.ts.map +1 -0
  346. package/dist/types/react/web/ui/ConnectWallet/Blobbie.d.ts +1 -1
  347. package/dist/types/react/web/ui/ConnectWallet/Blobbie.d.ts.map +1 -1
  348. package/dist/types/react/web/ui/ConnectWallet/ConnectButton.d.ts.map +1 -1
  349. package/dist/types/react/web/ui/ConnectWallet/Details.d.ts +1 -1
  350. package/dist/types/react/web/ui/ConnectWallet/Details.d.ts.map +1 -1
  351. package/dist/types/react/web/ui/ConnectWallet/screens/ManageWalletScreen.d.ts.map +1 -1
  352. package/dist/types/react/web/ui/prebuilt/Account/avatar.d.ts.map +1 -1
  353. package/dist/types/react/web/ui/prebuilt/Account/balance.d.ts +1 -42
  354. package/dist/types/react/web/ui/prebuilt/Account/balance.d.ts.map +1 -1
  355. package/dist/types/react/web/ui/prebuilt/Account/blobbie.d.ts.map +1 -1
  356. package/dist/types/react/web/ui/prebuilt/NFT/utils.d.ts.map +1 -1
  357. package/dist/types/react/web/ui/prebuilt/Wallet/icon.d.ts +2 -10
  358. package/dist/types/react/web/ui/prebuilt/Wallet/icon.d.ts.map +1 -1
  359. package/dist/types/react/web/ui/prebuilt/Wallet/name.d.ts +1 -18
  360. package/dist/types/react/web/ui/prebuilt/Wallet/name.d.ts.map +1 -1
  361. package/dist/types/utils/any-evm/keyless-transaction.d.ts +1 -1
  362. package/dist/types/utils/shortenLargeNumber.d.ts.map +1 -1
  363. package/dist/types/version.d.ts +1 -1
  364. package/dist/types/wallets/in-app/web/lib/get-url-token.d.ts +1 -1
  365. package/dist/types/wallets/in-app/web/lib/get-url-token.d.ts.map +1 -1
  366. package/package.json +30 -30
  367. package/src/exports/react.native.ts +47 -0
  368. package/src/exports/react.ts +5 -3
  369. package/src/exports/wallets.ts +2 -0
  370. package/src/react/{web/ui/prebuilt/Account → core/account}/provider.test.tsx +1 -1
  371. package/src/react/{web/ui/prebuilt/Account → core/account}/provider.tsx +7 -5
  372. package/src/react/core/utils/account.ts +146 -0
  373. package/src/react/core/utils/walletIcon.ts +28 -0
  374. package/src/react/core/utils/walletname.ts +53 -0
  375. package/src/react/{web/ui/prebuilt/Wallet → core/wallet}/provider.tsx +1 -1
  376. package/src/react/native/ui/prebuilt/Account/address.tsx +65 -0
  377. package/src/react/native/ui/prebuilt/Account/avatar.tsx +225 -0
  378. package/src/react/native/ui/prebuilt/Account/balance.tsx +221 -0
  379. package/src/react/native/ui/prebuilt/Account/blobbie.tsx +94 -0
  380. package/src/react/native/ui/prebuilt/Account/name.tsx +180 -0
  381. package/src/react/native/ui/prebuilt/Wallet/icon.tsx +124 -0
  382. package/src/react/native/ui/prebuilt/Wallet/name.tsx +112 -0
  383. package/src/react/web/ui/ConnectWallet/Blobbie.tsx +1 -18
  384. package/src/react/web/ui/ConnectWallet/ConnectButton.tsx +1 -1
  385. package/src/react/web/ui/ConnectWallet/Details.test.tsx +1 -1
  386. package/src/react/web/ui/ConnectWallet/Details.tsx +7 -7
  387. package/src/react/web/ui/ConnectWallet/screens/ManageWalletScreen.test.tsx +3 -3
  388. package/src/react/web/ui/ConnectWallet/screens/ManageWalletScreen.tsx +5 -4
  389. package/src/react/web/ui/prebuilt/Account/address.test.tsx +1 -1
  390. package/src/react/web/ui/prebuilt/Account/address.tsx +1 -1
  391. package/src/react/web/ui/prebuilt/Account/avatar.test.tsx +1 -1
  392. package/src/react/web/ui/prebuilt/Account/avatar.tsx +1 -2
  393. package/src/react/web/ui/prebuilt/Account/balance.test.tsx +7 -5
  394. package/src/react/web/ui/prebuilt/Account/balance.tsx +10 -130
  395. package/src/react/web/ui/prebuilt/Account/blobbie.tsx +1 -1
  396. package/src/react/web/ui/prebuilt/Account/name.test.tsx +1 -1
  397. package/src/react/web/ui/prebuilt/Account/name.tsx +1 -1
  398. package/src/react/web/ui/prebuilt/NFT/utils.ts +0 -1
  399. package/src/react/web/ui/prebuilt/Token/name.test.tsx +0 -1
  400. package/src/react/web/ui/prebuilt/Token/symbol.test.tsx +0 -1
  401. package/src/react/web/ui/prebuilt/Wallet/icon.test.tsx +3 -2
  402. package/src/react/web/ui/prebuilt/Wallet/icon.tsx +6 -30
  403. package/src/react/web/ui/prebuilt/Wallet/name.test.tsx +6 -2
  404. package/src/react/web/ui/prebuilt/Wallet/name.tsx +2 -52
  405. package/src/utils/shortenLargeNumber.ts +3 -0
  406. package/src/version.ts +1 -1
  407. package/src/wallets/connection/autoConnectCore.ts +13 -13
  408. package/src/wallets/in-app/web/lib/get-url-token.test.tsx +6 -6
  409. package/src/wallets/in-app/web/lib/get-url-token.ts +11 -9
  410. package/src/wallets/smart/smart-wallet-modular.test.ts +0 -1
  411. package/dist/cjs/react/web/ui/prebuilt/Account/provider.js.map +0 -1
  412. package/dist/cjs/react/web/ui/prebuilt/Wallet/provider.js.map +0 -1
  413. package/dist/esm/react/web/ui/prebuilt/Account/provider.js.map +0 -1
  414. package/dist/esm/react/web/ui/prebuilt/Wallet/provider.js.map +0 -1
  415. package/dist/types/react/web/ui/prebuilt/Account/provider.d.ts.map +0 -1
  416. package/dist/types/react/web/ui/prebuilt/Wallet/provider.d.ts.map +0 -1
  417. /package/dist/cjs/react/{web/ui/prebuilt/Wallet → core/wallet}/provider.js +0 -0
  418. /package/dist/esm/react/{web/ui/prebuilt/Wallet → core/wallet}/provider.js +0 -0
  419. /package/src/react/{web/ui/prebuilt/Wallet → core/wallet}/provider.test.tsx +0 -0
@@ -0,0 +1,180 @@
1
+ "use client";
2
+
3
+ import { type UseQueryOptions, useQuery } from "@tanstack/react-query";
4
+ import { Text, type TextProps } from "react-native";
5
+ import {
6
+ type ResolveNameOptions,
7
+ resolveName,
8
+ } from "../../../../../extensions/ens/resolve-name.js";
9
+ import { getSocialProfiles } from "../../../../../social/profiles.js";
10
+ import type { SocialProfile } from "../../../../../social/types.js";
11
+ import { useAccountContext } from "../../../../core/account/provider.js";
12
+
13
+ /**
14
+ * Props for the AccountName component
15
+ * @component
16
+ * @wallet
17
+ */
18
+ export interface AccountNameProps
19
+ extends Omit<TextProps, "children">,
20
+ Omit<ResolveNameOptions, "client" | "address"> {
21
+ /**
22
+ * A function used to transform (format) the name of the account.
23
+ * it should take in a string and output a string.
24
+ *
25
+ * This function is particularly useful
26
+ */
27
+ formatFn?: (str: string) => string;
28
+ /**
29
+ * Use this prop to prioritize the social profile that you want to display
30
+ * This is useful for a wallet containing multiple social profiles
31
+ */
32
+ socialType?: SocialProfile["type"];
33
+ /**
34
+ * This component will be shown while the name of the account is being fetched
35
+ * If not passed, the component will return `null`.
36
+ *
37
+ * You can pass a loading sign or spinner to this prop.
38
+ * @example
39
+ * ```tsx
40
+ * <AccountName loadingComponent={<Spinner />} />
41
+ * ```
42
+ */
43
+ loadingComponent?: React.ComponentType;
44
+ /**
45
+ * This component will be shown if the request for fetching the name is done but could not retreive any result.
46
+ * You can pass the wallet address as the fallback option if that's the case.
47
+ *
48
+ * If not passed, the component will return `null`
49
+ *
50
+ * @example
51
+ * ```tsx
52
+ * <AccountName fallbackComponent={"0x1234....3f3f"} />
53
+ * ```
54
+ */
55
+ fallbackComponent?: React.ComponentType;
56
+ /**
57
+ * Optional `useQuery` params
58
+ */
59
+ queryOptions?: Omit<UseQueryOptions<string>, "queryFn" | "queryKey">;
60
+ }
61
+
62
+ /**
63
+ * This component is used to display the name of the account.
64
+ * A "name" in this context is the username, or account of the social profiles that the wallet may have.
65
+ * In case a name is not found or failed to resolve, you can always fallback to displaying the wallet address instead by using the `fallbackComponent` prop.
66
+ *
67
+ * This component inherits all attribute of a native HTML <span> element, so you can style it just like how you would style a <span>.
68
+ *
69
+ * @param props
70
+ * @returns A `<span>` containing the name of the account
71
+ * ```html
72
+ * <span>{name}</span>
73
+ * ```
74
+ *
75
+ * @example
76
+ * ### Basic usage
77
+ * ```tsx
78
+ * import { AccountProvider, AccountName } from "thirdweb/react";
79
+ *
80
+ * <AccountProvider address="0x1234...3f3f" client={client}>
81
+ * <AccountName />
82
+ * </AccountProvider>
83
+ * ```
84
+ *
85
+ * ### Show wallet address while social name is being loaded
86
+ * ```tsx
87
+ * <AccountName
88
+ * loadingComponent={<AccountAddress />}
89
+ * />
90
+ * ```
91
+ *
92
+ *
93
+ * ### Fallback to showing wallet address if fail to resolve social name
94
+ * ```tsx
95
+ * <AccountName
96
+ * fallbackComponent={<AccountAddress />}
97
+ * />
98
+ * ```
99
+ *
100
+ * ### Transform the account name using `formatFn` prop
101
+ * ```tsx
102
+ * import { isAddress, shortenAddress } from "thirdweb/utils";
103
+ * import { AccountProvider, AccountName } from "thirdweb/react";
104
+ *
105
+ * // Let's say we want the name to be capitalized without using CSS
106
+ * const formatName = (name: string) => name.toUpperCase();
107
+ *
108
+ * return <AccountName formatFn={formatName} />
109
+ * ```
110
+ *
111
+ *
112
+ * ### Custom query options for useQuery
113
+ * This component uses `@tanstack-query`'s useQuery internally.
114
+ * You can use the `queryOptions` prop for more fine-grained control
115
+ * ```tsx
116
+ * <AccountName
117
+ * queryOptions={{
118
+ * enabled: isEnabled,
119
+ * retry: 3
120
+ * }}
121
+ * />
122
+ * ```
123
+ *
124
+ * @component
125
+ * @wallet
126
+ * @beta
127
+ */
128
+ export function AccountName({
129
+ resolverAddress,
130
+ resolverChain,
131
+ socialType,
132
+ formatFn,
133
+ queryOptions,
134
+ loadingComponent,
135
+ fallbackComponent,
136
+ ...restProps
137
+ }: AccountNameProps) {
138
+ const { address, client } = useAccountContext();
139
+ const nameQuery = useQuery({
140
+ queryKey: [
141
+ "account-name",
142
+ address,
143
+ { socialType },
144
+ { resolverAddress, resolverChain },
145
+ ],
146
+ queryFn: async () => {
147
+ const [socialData, ensName] = await Promise.all([
148
+ getSocialProfiles({ address, client }),
149
+ resolveName({
150
+ client,
151
+ address,
152
+ resolverAddress,
153
+ resolverChain,
154
+ }),
155
+ ]);
156
+
157
+ const name =
158
+ socialData?.filter(
159
+ (p) => p.name && (socialType ? p.type === socialType : true),
160
+ )[0]?.name || ensName;
161
+
162
+ if (!name) {
163
+ throw new Error("Failed to resolve account name");
164
+ }
165
+ return formatFn ? formatFn(name) : name;
166
+ },
167
+ retry: false,
168
+ ...queryOptions,
169
+ });
170
+
171
+ if (nameQuery.isLoading) {
172
+ return loadingComponent || null;
173
+ }
174
+
175
+ if (!nameQuery.data) {
176
+ return fallbackComponent || null;
177
+ }
178
+
179
+ return <Text {...restProps}>{nameQuery.data}</Text>;
180
+ }
@@ -0,0 +1,124 @@
1
+ "use client";
2
+
3
+ import type { UseQueryOptions } from "@tanstack/react-query";
4
+ import { Image, type ImageProps } from "react-native";
5
+ import { SvgXml, type XmlProps } from "react-native-svg";
6
+ import type { AuthOption } from "../../../../../wallets/types.js";
7
+ import { useWalletIcon } from "../../../../core/utils/walletIcon.js";
8
+ import { getAuthProviderImage } from "../../components/WalletImage.js";
9
+
10
+ export interface WalletIconProps extends Omit<ImageProps, "uri"> {
11
+ /**
12
+ * This component will be shown while the icon of the wallet is being fetched
13
+ * If not passed, the component will return `null`.
14
+ *
15
+ * You can/should pass a loading sign or spinner to this prop.
16
+ * @example
17
+ * ```tsx
18
+ * <WalletIcon loadingComponent={<Spinner />} />
19
+ * ```
20
+ */
21
+ loadingComponent?: React.ComponentType;
22
+ /**
23
+ * This component will be shown if the icon fails to be retrieved
24
+ * If not passed, the component will return `null`.
25
+ *
26
+ * You can/should pass a descriptive text/component to this prop, indicating that the
27
+ * icon was not fetched successfully
28
+ * @example
29
+ * ```tsx
30
+ * <WalletIcon fallbackComponent={<span>Failed to load</span>}
31
+ * />
32
+ * ```
33
+ */
34
+ fallbackComponent?: React.ComponentType;
35
+ /**
36
+ * Optional `useQuery` params
37
+ */
38
+ queryOptions?: Omit<UseQueryOptions<string>, "queryFn" | "queryKey">;
39
+ }
40
+
41
+ /**
42
+ * This component tries to resolve the icon of a given wallet, then return an image.
43
+ * @returns an <img /> with the src of the wallet icon
44
+ *
45
+ * @example
46
+ * ### Basic usage
47
+ * ```tsx
48
+ * import { WalletProvider, WalletIcon } from "thirdweb/react";
49
+ *
50
+ * <WalletProvider id="io.metamask">
51
+ * <WalletIcon />
52
+ * </WalletProvider>
53
+ * ```
54
+ *
55
+ * Result: An <img /> component with the src of the icon
56
+ * ```html
57
+ * <img src="metamask-icon.png" />
58
+ * ```
59
+ *
60
+ * ### Show a loading sign while the icon is being loaded
61
+ * ```tsx
62
+ * <WalletIcon loadingComponent={<Spinner />} />
63
+ * ```
64
+ *
65
+ * ### Fallback to a dummy image if the wallet icon fails to resolve
66
+ * ```tsx
67
+ * <WalletIcon fallbackComponent={<img src="blank-image.png" />} />
68
+ * ```
69
+ *
70
+ * ### Usage with queryOptions
71
+ * WalletIcon uses useQuery() from tanstack query internally.
72
+ * It allows you to pass a custom queryOptions of your choice for more control of the internal fetching logic
73
+ * ```tsx
74
+ * <WalletIcon queryOptions={{ enabled: someLogic, retry: 3, }} />
75
+ * ```
76
+ *
77
+ * @component
78
+ * @wallet
79
+ * @beta
80
+ */
81
+ export function WalletIcon({
82
+ loadingComponent,
83
+ fallbackComponent,
84
+ queryOptions,
85
+ ...restProps
86
+ }: WalletIconProps) {
87
+ const imageQuery = useWalletIcon({ queryOptions });
88
+ if (imageQuery.isLoading) {
89
+ return loadingComponent || null;
90
+ }
91
+ if (!imageQuery.data) {
92
+ return fallbackComponent || null;
93
+ }
94
+ return <Image source={{ uri: imageQuery.data }} {...restProps} />;
95
+ }
96
+
97
+ export interface SocialIconProps extends Omit<XmlProps, "xml"> {
98
+ provider: AuthOption | (string & {});
99
+ }
100
+
101
+ /**
102
+ * Social auth provider icon
103
+ * @returns an <img /> component with the src set to the svg
104
+ *
105
+ * @example
106
+ * ```tsx
107
+ * import { SocialIcon } from "thirdweb/react";
108
+ *
109
+ * <SocialIcon provider="google" />
110
+ * ```
111
+ *
112
+ * Result: An <img /> component with the src of the icon
113
+ * ```html
114
+ * <img src="google-icon-svg" />
115
+ * ```
116
+ *
117
+ * @component
118
+ * @wallet
119
+ * @beta
120
+ */
121
+ export function SocialIcon({ provider, ...restProps }: SocialIconProps) {
122
+ const src = getAuthProviderImage(provider);
123
+ return <SvgXml xml={src} {...restProps} />;
124
+ }
@@ -0,0 +1,112 @@
1
+ "use client";
2
+
3
+ import type { UseQueryOptions } from "@tanstack/react-query";
4
+ import { Text, type TextProps } from "react-native";
5
+ import { useWalletName } from "../../../../core/utils/walletname.js";
6
+ /**
7
+ * Props for the WalletName component
8
+ * @component
9
+ * @wallet
10
+ */
11
+ export interface WalletNameProps extends Omit<TextProps, "children"> {
12
+ /**
13
+ * This component will be shown while the name of the wallet name is being fetched
14
+ * If not passed, the component will return `null`.
15
+ *
16
+ * You can/should pass a loading sign or spinner to this prop.
17
+ * @example
18
+ * ```tsx
19
+ * <WalletName loadingComponent={<Spinner />} />
20
+ * ```
21
+ */
22
+ loadingComponent?: React.ComponentType;
23
+ /**
24
+ * This component will be shown if the name fails to be retreived
25
+ * If not passed, the component will return `null`.
26
+ *
27
+ * You can/should pass a descriptive text/component to this prop, indicating that the
28
+ * name was not fetched succesfully
29
+ * @example
30
+ * ```tsx
31
+ * <WalletName fallbackComponent={<span>Failed to load</span>}
32
+ * />
33
+ * ```
34
+ */
35
+ fallbackComponent?: React.ComponentType;
36
+ /**
37
+ * Optional `useQuery` params
38
+ */
39
+ queryOptions?: Omit<UseQueryOptions<string>, "queryFn" | "queryKey">;
40
+ /**
41
+ * A function to format the name's display value
42
+ * ```tsx
43
+ * <WalletName formatFn={(str: string) => doSomething()} />
44
+ * ```
45
+ */
46
+ formatFn?: (str: string) => string;
47
+ }
48
+
49
+ /**
50
+ * This component fetches then shows the name of a wallet.
51
+ * It inherits all the attributes of a HTML <span> component, hence you can style it just like how you would style a normal <span>
52
+ *
53
+ * @example
54
+ * ### Basic usage
55
+ * ```tsx
56
+ * import { WalletProvider, WalletName } from "thirdweb/react";
57
+ *
58
+ * <WalletProvider id="io.metamask">
59
+ * <WalletName />
60
+ * </WalletProvider>
61
+ * ```
62
+ * Result:
63
+ * ```html
64
+ * <span>MetaMask</span>
65
+ * ```
66
+ *
67
+ * ### Show a loading sign when the name is being fetched
68
+ * ```tsx
69
+ * import { WalletProvider, WalletName } from "thirdweb/react";
70
+ *
71
+ * <WalletProvider {...props}>
72
+ * <WalletName loadingComponent={<Spinner />} />
73
+ * </WalletProvider>
74
+ * ```
75
+ *
76
+ * ### Fallback to something when the name fails to resolve
77
+ * ```tsx
78
+ * <WalletProvider {...props}>
79
+ * <WalletName fallbackComponent={<span>Failed to load</span>} />
80
+ * </WalletProvider>
81
+ * ```
82
+ *
83
+ * ### Custom query options for useQuery
84
+ * This component uses `@tanstack-query`'s useQuery internally.
85
+ * You can use the `queryOptions` prop for more fine-grained control
86
+ * ```tsx
87
+ * <WalletName
88
+ * queryOptions={{
89
+ * enabled: isEnabled,
90
+ * retry: 4,
91
+ * }}
92
+ * />
93
+ * @component
94
+ * @beta
95
+ * @wallet
96
+ */
97
+ export function WalletName({
98
+ loadingComponent,
99
+ fallbackComponent,
100
+ queryOptions,
101
+ formatFn,
102
+ ...restProps
103
+ }: WalletNameProps) {
104
+ const nameQuery = useWalletName({ queryOptions, formatFn });
105
+ if (nameQuery.isLoading) {
106
+ return loadingComponent || null;
107
+ }
108
+ if (!nameQuery.data) {
109
+ return fallbackComponent || null;
110
+ }
111
+ return <Text {...restProps}>{nameQuery.data}</Text>;
112
+ }
@@ -1,24 +1,7 @@
1
1
  "use client";
2
2
  import { hexToNumber } from "@noble/curves/abstract/utils";
3
3
  import { useId, useMemo } from "react";
4
-
5
- const COLOR_OPTIONS = [
6
- ["#fca5a5", "#b91c1c"],
7
- ["#fdba74", "#c2410c"],
8
- ["#fcd34d", "#b45309"],
9
- ["#fde047", "#a16207"],
10
- ["#a3e635", "#4d7c0f"],
11
- ["#86efac", "#15803d"],
12
- ["#67e8f9", "#0e7490"],
13
- ["#7dd3fc", "#0369a1"],
14
- ["#93c5fd", "#1d4ed8"],
15
- ["#a5b4fc", "#4338ca"],
16
- ["#c4b5fd", "#6d28d9"],
17
- ["#d8b4fe", "#7e22ce"],
18
- ["#f0abfc", "#a21caf"],
19
- ["#f9a8d4", "#be185d"],
20
- ["#fda4af", "#be123c"],
21
- ];
4
+ import { COLOR_OPTIONS } from "../../../core/utils/account.js";
22
5
 
23
6
  /**
24
7
  * Props for the Blobbie component
@@ -3,6 +3,7 @@
3
3
  import styled from "@emotion/styled";
4
4
  import { useEffect, useMemo, useState } from "react";
5
5
  import { getDefaultWallets } from "../../../../wallets/defaultWallets.js";
6
+ import { AccountProvider } from "../../../core/account/provider.js";
6
7
  import { iconSize } from "../../../core/design-system/index.js";
7
8
  import { useSiweAuth } from "../../../core/hooks/auth/useSiweAuth.js";
8
9
  import type { ConnectButtonProps } from "../../../core/hooks/connection/ConnectButtonProps.js";
@@ -23,7 +24,6 @@ import { Spinner } from "../components/Spinner.js";
23
24
  import { Container } from "../components/basic.js";
24
25
  import { Button } from "../components/buttons.js";
25
26
  import { fadeInAnimation } from "../design-system/animations.js";
26
- import { AccountProvider } from "../prebuilt/Account/provider.js";
27
27
  import { ConnectedWalletDetails } from "./Details.js";
28
28
  import ConnectModal from "./Modal/ConnectModal.js";
29
29
  import { LockIcon } from "./icons/LockIcon.js";
@@ -14,8 +14,8 @@ import { base } from "../../../../chains/chain-definitions/base.js";
14
14
  import { ethereum } from "../../../../chains/chain-definitions/ethereum.js";
15
15
  import { useActiveAccount } from "../../../../react/core/hooks/wallets/useActiveAccount.js";
16
16
  import { useActiveWalletChain } from "../../../../react/core/hooks/wallets/useActiveWalletChain.js";
17
+ import { AccountProvider } from "../../../core/account/provider.js";
17
18
  import { ThirdwebProvider } from "../../providers/thirdweb-provider.js";
18
- import { AccountProvider } from "../prebuilt/Account/provider.js";
19
19
  import {
20
20
  ConnectedToSmartWallet,
21
21
  ConnectedWalletDetails,
@@ -40,6 +40,7 @@ import type {
40
40
  EcosystemWalletId,
41
41
  WalletId,
42
42
  } from "../../../../wallets/wallet-types.js";
43
+ import { AccountProvider } from "../../../core/account/provider.js";
43
44
  import {
44
45
  CustomThemeProvider,
45
46
  parseTheme,
@@ -67,6 +68,11 @@ import { useAdminWallet } from "../../../core/hooks/wallets/useAdminWallet.js";
67
68
  import { useDisconnect } from "../../../core/hooks/wallets/useDisconnect.js";
68
69
  import { useSwitchActiveWalletChain } from "../../../core/hooks/wallets/useSwitchActiveWalletChain.js";
69
70
  import { SetRootElementContext } from "../../../core/providers/RootElementContext.js";
71
+ import {
72
+ type AccountBalanceInfo,
73
+ formatAccountFiatBalance,
74
+ formatAccountTokenBalance,
75
+ } from "../../../core/utils/account.js";
70
76
  import type {
71
77
  SupportedNFTs,
72
78
  SupportedTokens,
@@ -91,15 +97,9 @@ import { fadeInAnimation } from "../design-system/animations.js";
91
97
  import { StyledButton } from "../design-system/elements.js";
92
98
  import { AccountAddress } from "../prebuilt/Account/address.js";
93
99
  import { AccountAvatar } from "../prebuilt/Account/avatar.js";
94
- import {
95
- AccountBalance,
96
- type AccountBalanceInfo,
97
- formatAccountFiatBalance,
98
- formatAccountTokenBalance,
99
- } from "../prebuilt/Account/balance.js";
100
+ import { AccountBalance } from "../prebuilt/Account/balance.js";
100
101
  import { AccountBlobbie } from "../prebuilt/Account/blobbie.js";
101
102
  import { AccountName } from "../prebuilt/Account/name.js";
102
- import { AccountProvider } from "../prebuilt/Account/provider.js";
103
103
  import { ChainIcon } from "../prebuilt/Chain/icon.js";
104
104
  import { ChainName } from "../prebuilt/Chain/name.js";
105
105
  import { ChainProvider } from "../prebuilt/Chain/provider.js";
@@ -26,7 +26,7 @@ describe("ManageWalletScreen", () => {
26
26
  expect(screen.getByText(en.manageWallet.title)).toBeInTheDocument();
27
27
  });
28
28
 
29
- it("should render the linked profiles button if allowLinkingProfiles is true", () => {
29
+ it.skip("should render the linked profiles button if allowLinkingProfiles is true", () => {
30
30
  render(
31
31
  <ManageWalletScreen
32
32
  {...mockProps}
@@ -38,7 +38,7 @@ describe("ManageWalletScreen", () => {
38
38
  ).toBeInTheDocument();
39
39
  });
40
40
 
41
- it("should not render the linked profiles button if allowLinkingProfiles is false", () => {
41
+ it.skip("should not render the linked profiles button if allowLinkingProfiles is false", () => {
42
42
  render(
43
43
  <ManageWalletScreen
44
44
  {...mockProps}
@@ -50,7 +50,7 @@ describe("ManageWalletScreen", () => {
50
50
  ).not.toBeInTheDocument();
51
51
  });
52
52
 
53
- it("should default to showing linked profiles button", () => {
53
+ it.skip("should default to showing linked profiles button", () => {
54
54
  render(<ManageWalletScreen {...mockProps} />);
55
55
  expect(
56
56
  screen.getByText(en.manageWallet.linkedProfiles),
@@ -30,6 +30,7 @@ export function ManageWalletScreen(props: {
30
30
  }) {
31
31
  const adminWallet = useAdminWallet();
32
32
  const activeWallet = useActiveWallet();
33
+ const wallet = adminWallet || activeWallet;
33
34
 
34
35
  return (
35
36
  <Container
@@ -60,7 +61,7 @@ export function ManageWalletScreen(props: {
60
61
  />
61
62
 
62
63
  {/* Unified Identity */}
63
- {typeof activeWallet !== "undefined" &&
64
+ {typeof wallet !== "undefined" &&
64
65
  props.manageWallet?.allowLinkingProfiles !== false && (
65
66
  <MenuButton
66
67
  onClick={() => {
@@ -93,9 +94,9 @@ export function ManageWalletScreen(props: {
93
94
  </MenuButton>
94
95
 
95
96
  {/* Private Key Export (if enabled) */}
96
- {adminWallet &&
97
- isInAppWallet(adminWallet) &&
98
- !adminWallet.getConfig()?.hidePrivateKeyExport && (
97
+ {wallet &&
98
+ isInAppWallet(wallet) &&
99
+ !wallet.getConfig()?.hidePrivateKeyExport && (
99
100
  <MenuButton
100
101
  onClick={() => {
101
102
  props.setScreen("private-key");
@@ -2,8 +2,8 @@ import { describe, expect, it } from "vitest";
2
2
  import { render, screen, waitFor } from "~test/react-render.js";
3
3
  import { TEST_CLIENT } from "~test/test-clients.js";
4
4
  import { shortenAddress } from "../../../../../utils/address.js";
5
+ import { AccountProvider } from "../../../../core/account/provider.js";
5
6
  import { AccountAddress } from "./address.js";
6
- import { AccountProvider } from "./provider.js";
7
7
 
8
8
  describe.runIf(process.env.TW_SECRET_KEY)("AccountAddress component", () => {
9
9
  it("should format the address properly", () => {
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
 
3
- import { useAccountContext } from "./provider.js";
3
+ import { useAccountContext } from "../../../../core/account/provider.js";
4
4
 
5
5
  /**
6
6
  * @component
@@ -2,8 +2,8 @@ import { describe, expect, it } from "vitest";
2
2
  import { render, screen, waitFor } from "~test/react-render.js";
3
3
  import { TEST_CLIENT } from "~test/test-clients.js";
4
4
  import { TEST_ACCOUNT_A } from "~test/test-wallets.js";
5
+ import { AccountProvider } from "../../../../core/account/provider.js";
5
6
  import { AccountAvatar } from "./avatar.js";
6
- import { AccountProvider } from "./provider.js";
7
7
 
8
8
  describe.runIf(process.env.TW_SECRET_KEY)("AccountAvatar component", () => {
9
9
  it("should render an image", () => {
@@ -11,8 +11,7 @@ import {
11
11
  import { getSocialProfiles } from "../../../../../social/profiles.js";
12
12
  import type { SocialProfile } from "../../../../../social/types.js";
13
13
  import { parseAvatarRecord } from "../../../../../utils/ens/avatar.js";
14
- import { useAccountContext } from "./provider.js";
15
-
14
+ import { useAccountContext } from "../../../../core/account/provider.js";
16
15
  /**
17
16
  * Props for the AccountAvatar component
18
17
  * @component
@@ -7,13 +7,13 @@ import { ethereum } from "../../../../../chains/chain-definitions/ethereum.js";
7
7
  import { sepolia } from "../../../../../chains/chain-definitions/sepolia.js";
8
8
  import { defineChain } from "../../../../../chains/utils.js";
9
9
  import { NATIVE_TOKEN_ADDRESS } from "../../../../../constants/addresses.js";
10
+ import { AccountProvider } from "../../../../core/account/provider.js";
10
11
  import {
11
- AccountBalance,
12
12
  formatAccountFiatBalance,
13
13
  formatAccountTokenBalance,
14
14
  loadAccountBalance,
15
- } from "./balance.js";
16
- import { AccountProvider } from "./provider.js";
15
+ } from "../../../../core/utils/account.js";
16
+ import { AccountBalance } from "./balance.js";
17
17
 
18
18
  const queryClient = new QueryClient();
19
19
 
@@ -95,7 +95,8 @@ describe.runIf(process.env.TW_SECRET_KEY)("AccountBalance component", () => {
95
95
  await expect(() =>
96
96
  loadAccountBalance({
97
97
  client: TEST_CLIENT,
98
- address: "haha",
98
+ // biome-ignore lint/suspicious/noExplicitAny: for the test
99
+ address: "haha" as any,
99
100
  chain: ethereum,
100
101
  }),
101
102
  ).rejects.toThrowError("Invalid wallet address. Expected an EVM address");
@@ -106,7 +107,8 @@ describe.runIf(process.env.TW_SECRET_KEY)("AccountBalance component", () => {
106
107
  loadAccountBalance({
107
108
  client: TEST_CLIENT,
108
109
  address: VITALIK_WALLET,
109
- tokenAddress: "haha",
110
+ // biome-ignore lint/suspicious/noExplicitAny: for the test
111
+ tokenAddress: "haha" as any,
110
112
  chain: ethereum,
111
113
  }),
112
114
  ).rejects.toThrowError(