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.
- package/dist/cjs/exports/react.js +4 -3
- package/dist/cjs/exports/react.js.map +1 -1
- package/dist/cjs/exports/react.native.js +27 -1
- package/dist/cjs/exports/react.native.js.map +1 -1
- package/dist/cjs/exports/wallets.js +4 -1
- package/dist/cjs/exports/wallets.js.map +1 -1
- package/dist/cjs/react/{web/ui/prebuilt/Account → core/account}/provider.js +5 -1
- package/dist/cjs/react/core/account/provider.js.map +1 -0
- package/dist/cjs/react/core/utils/account.js +105 -0
- package/dist/cjs/react/core/utils/account.js.map +1 -0
- package/dist/cjs/react/core/utils/walletIcon.js +23 -0
- package/dist/cjs/react/core/utils/walletIcon.js.map +1 -1
- package/dist/cjs/react/core/utils/walletname.js +43 -0
- package/dist/cjs/react/core/utils/walletname.js.map +1 -0
- package/dist/cjs/react/core/wallet/provider.js.map +1 -0
- package/dist/cjs/react/native/ui/prebuilt/Account/address.js +50 -0
- package/dist/cjs/react/native/ui/prebuilt/Account/address.js.map +1 -0
- package/dist/cjs/react/native/ui/prebuilt/Account/avatar.js +151 -0
- package/dist/cjs/react/native/ui/prebuilt/Account/avatar.js.map +1 -0
- package/dist/cjs/react/native/ui/prebuilt/Account/balance.js +130 -0
- package/dist/cjs/react/native/ui/prebuilt/Account/balance.js.map +1 -0
- package/dist/cjs/react/native/ui/prebuilt/Account/blobbie.js +58 -0
- package/dist/cjs/react/native/ui/prebuilt/Account/blobbie.js.map +1 -0
- package/dist/cjs/react/native/ui/prebuilt/Account/name.js +113 -0
- package/dist/cjs/react/native/ui/prebuilt/Account/name.js.map +1 -0
- package/dist/cjs/react/native/ui/prebuilt/Wallet/icon.js +85 -0
- package/dist/cjs/react/native/ui/prebuilt/Wallet/icon.js.map +1 -0
- package/dist/cjs/react/native/ui/prebuilt/Wallet/name.js +66 -0
- package/dist/cjs/react/native/ui/prebuilt/Wallet/name.js.map +1 -0
- package/dist/cjs/react/web/ui/ConnectWallet/Blobbie.js +2 -18
- package/dist/cjs/react/web/ui/ConnectWallet/Blobbie.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/ConnectButton.js +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/ConnectButton.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/Details.js +5 -4
- package/dist/cjs/react/web/ui/ConnectWallet/Details.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/ManageWalletScreen.js +5 -4
- package/dist/cjs/react/web/ui/ConnectWallet/screens/ManageWalletScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/prebuilt/Account/address.js +1 -1
- package/dist/cjs/react/web/ui/prebuilt/Account/address.js.map +1 -1
- package/dist/cjs/react/web/ui/prebuilt/Account/avatar.js +1 -1
- package/dist/cjs/react/web/ui/prebuilt/Account/avatar.js.map +1 -1
- package/dist/cjs/react/web/ui/prebuilt/Account/balance.js +8 -90
- package/dist/cjs/react/web/ui/prebuilt/Account/balance.js.map +1 -1
- package/dist/cjs/react/web/ui/prebuilt/Account/blobbie.js +1 -1
- package/dist/cjs/react/web/ui/prebuilt/Account/blobbie.js.map +1 -1
- package/dist/cjs/react/web/ui/prebuilt/Account/name.js +1 -1
- package/dist/cjs/react/web/ui/prebuilt/Account/name.js.map +1 -1
- package/dist/cjs/react/web/ui/prebuilt/NFT/utils.js.map +1 -1
- package/dist/cjs/react/web/ui/prebuilt/Wallet/icon.js +1 -23
- package/dist/cjs/react/web/ui/prebuilt/Wallet/icon.js.map +1 -1
- package/dist/cjs/react/web/ui/prebuilt/Wallet/name.js +2 -42
- package/dist/cjs/react/web/ui/prebuilt/Wallet/name.js.map +1 -1
- package/dist/cjs/utils/shortenLargeNumber.js +3 -0
- package/dist/cjs/utils/shortenLargeNumber.js.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/wallets/connection/autoConnectCore.js +12 -12
- package/dist/cjs/wallets/connection/autoConnectCore.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/lib/get-url-token.js +3 -3
- package/dist/cjs/wallets/in-app/web/lib/get-url-token.js.map +1 -1
- package/dist/esm/exports/react.js +3 -3
- package/dist/esm/exports/react.js.map +1 -1
- package/dist/esm/exports/react.native.js +15 -0
- package/dist/esm/exports/react.native.js.map +1 -1
- package/dist/esm/exports/wallets.js +2 -0
- package/dist/esm/exports/wallets.js.map +1 -1
- package/dist/esm/react/{web/ui/prebuilt/Account → core/account}/provider.js +5 -1
- package/dist/esm/react/core/account/provider.js.map +1 -0
- package/dist/esm/react/core/utils/account.js +99 -0
- package/dist/esm/react/core/utils/account.js.map +1 -0
- package/dist/esm/react/core/utils/walletIcon.js +21 -0
- package/dist/esm/react/core/utils/walletIcon.js.map +1 -1
- package/dist/esm/react/core/utils/walletname.js +40 -0
- package/dist/esm/react/core/utils/walletname.js.map +1 -0
- package/dist/esm/react/core/wallet/provider.js.map +1 -0
- package/dist/esm/react/native/ui/prebuilt/Account/address.js +47 -0
- package/dist/esm/react/native/ui/prebuilt/Account/address.js.map +1 -0
- package/dist/esm/react/native/ui/prebuilt/Account/avatar.js +148 -0
- package/dist/esm/react/native/ui/prebuilt/Account/avatar.js.map +1 -0
- package/dist/esm/react/native/ui/prebuilt/Account/balance.js +127 -0
- package/dist/esm/react/native/ui/prebuilt/Account/balance.js.map +1 -0
- package/dist/esm/react/native/ui/prebuilt/Account/blobbie.js +54 -0
- package/dist/esm/react/native/ui/prebuilt/Account/blobbie.js.map +1 -0
- package/dist/esm/react/native/ui/prebuilt/Account/name.js +110 -0
- package/dist/esm/react/native/ui/prebuilt/Account/name.js.map +1 -0
- package/dist/esm/react/native/ui/prebuilt/Wallet/icon.js +81 -0
- package/dist/esm/react/native/ui/prebuilt/Wallet/icon.js.map +1 -0
- package/dist/esm/react/native/ui/prebuilt/Wallet/name.js +63 -0
- package/dist/esm/react/native/ui/prebuilt/Wallet/name.js.map +1 -0
- package/dist/esm/react/web/ui/ConnectWallet/Blobbie.js +1 -17
- package/dist/esm/react/web/ui/ConnectWallet/Blobbie.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/ConnectButton.js +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/ConnectButton.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/Details.js +3 -2
- package/dist/esm/react/web/ui/ConnectWallet/Details.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/ManageWalletScreen.js +5 -4
- package/dist/esm/react/web/ui/ConnectWallet/screens/ManageWalletScreen.js.map +1 -1
- package/dist/esm/react/web/ui/prebuilt/Account/address.js +1 -1
- package/dist/esm/react/web/ui/prebuilt/Account/address.js.map +1 -1
- package/dist/esm/react/web/ui/prebuilt/Account/avatar.js +1 -1
- package/dist/esm/react/web/ui/prebuilt/Account/avatar.js.map +1 -1
- package/dist/esm/react/web/ui/prebuilt/Account/balance.js +6 -85
- package/dist/esm/react/web/ui/prebuilt/Account/balance.js.map +1 -1
- package/dist/esm/react/web/ui/prebuilt/Account/blobbie.js +1 -1
- package/dist/esm/react/web/ui/prebuilt/Account/blobbie.js.map +1 -1
- package/dist/esm/react/web/ui/prebuilt/Account/name.js +1 -1
- package/dist/esm/react/web/ui/prebuilt/Account/name.js.map +1 -1
- package/dist/esm/react/web/ui/prebuilt/NFT/utils.js +0 -1
- package/dist/esm/react/web/ui/prebuilt/NFT/utils.js.map +1 -1
- package/dist/esm/react/web/ui/prebuilt/Wallet/icon.js +1 -22
- package/dist/esm/react/web/ui/prebuilt/Wallet/icon.js.map +1 -1
- package/dist/esm/react/web/ui/prebuilt/Wallet/name.js +1 -39
- package/dist/esm/react/web/ui/prebuilt/Wallet/name.js.map +1 -1
- package/dist/esm/utils/shortenLargeNumber.js +3 -0
- package/dist/esm/utils/shortenLargeNumber.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/wallets/connection/autoConnectCore.js +12 -12
- package/dist/esm/wallets/connection/autoConnectCore.js.map +1 -1
- package/dist/esm/wallets/in-app/web/lib/get-url-token.js +3 -3
- package/dist/esm/wallets/in-app/web/lib/get-url-token.js.map +1 -1
- package/dist/types/exports/react.d.ts +5 -4
- package/dist/types/exports/react.d.ts.map +1 -1
- package/dist/types/exports/react.native.d.ts +15 -0
- package/dist/types/exports/react.native.d.ts.map +1 -1
- package/dist/types/exports/wallets.d.ts +1 -0
- package/dist/types/exports/wallets.d.ts.map +1 -1
- package/dist/types/extensions/airdrop/__generated__/Airdrop/read/eip712Domain.d.ts +1 -1
- package/dist/types/extensions/airdrop/__generated__/Airdrop/read/eip712Domain.d.ts.map +1 -1
- package/dist/types/extensions/airdrop/__generated__/Airdrop/read/owner.d.ts +1 -1
- package/dist/types/extensions/airdrop/__generated__/Airdrop/read/owner.d.ts.map +1 -1
- package/dist/types/extensions/common/__generated__/IOwnable/read/owner.d.ts +1 -1
- package/dist/types/extensions/common/__generated__/IOwnable/read/owner.d.ts.map +1 -1
- package/dist/types/extensions/common/__generated__/IPlatformFee/read/getPlatformFeeInfo.d.ts +1 -1
- package/dist/types/extensions/common/__generated__/IPlatformFee/read/getPlatformFeeInfo.d.ts.map +1 -1
- package/dist/types/extensions/common/__generated__/IPrimarySale/read/primarySaleRecipient.d.ts +1 -1
- package/dist/types/extensions/common/__generated__/IPrimarySale/read/primarySaleRecipient.d.ts.map +1 -1
- package/dist/types/extensions/common/__generated__/IRoyalty/read/getDefaultRoyaltyInfo.d.ts +1 -1
- package/dist/types/extensions/common/__generated__/IRoyalty/read/getDefaultRoyaltyInfo.d.ts.map +1 -1
- package/dist/types/extensions/common/__generated__/IRoyalty/read/getRoyaltyInfoForToken.d.ts +1 -1
- package/dist/types/extensions/common/__generated__/IRoyalty/read/getRoyaltyInfoForToken.d.ts.map +1 -1
- package/dist/types/extensions/common/__generated__/IRoyalty/read/royaltyInfo.d.ts +1 -1
- package/dist/types/extensions/common/__generated__/IRoyalty/read/royaltyInfo.d.ts.map +1 -1
- package/dist/types/extensions/ens/__generated__/AddressResolver/read/addr.d.ts +1 -1
- package/dist/types/extensions/ens/__generated__/AddressResolver/read/addr.d.ts.map +1 -1
- package/dist/types/extensions/ens/__generated__/UniversalResolver/read/resolve.d.ts +1 -1
- package/dist/types/extensions/ens/__generated__/UniversalResolver/read/resolve.d.ts.map +1 -1
- package/dist/types/extensions/ens/__generated__/UniversalResolver/read/reverse.d.ts +1 -1
- package/dist/types/extensions/ens/__generated__/UniversalResolver/read/reverse.d.ts.map +1 -1
- package/dist/types/extensions/erc1155/__generated__/IDrop1155/read/getClaimConditionById.d.ts +1 -1
- package/dist/types/extensions/erc1155/__generated__/IDropSinglePhase1155/read/claimCondition.d.ts +1 -1
- package/dist/types/extensions/erc1155/__generated__/ISignatureMintERC1155/read/verify.d.ts +1 -1
- package/dist/types/extensions/erc1155/__generated__/ISignatureMintERC1155/read/verify.d.ts.map +1 -1
- package/dist/types/extensions/erc1155/drops/write/resetClaimEligibility.d.ts +1 -1
- package/dist/types/extensions/erc1155/drops/write/resetClaimEligibility.d.ts.map +1 -1
- package/dist/types/extensions/erc20/__generated__/IDropERC20/read/getClaimConditionById.d.ts +1 -1
- package/dist/types/extensions/erc20/__generated__/ISignatureMintERC20/read/verify.d.ts +1 -1
- package/dist/types/extensions/erc20/__generated__/ISignatureMintERC20/read/verify.d.ts.map +1 -1
- package/dist/types/extensions/erc20/__generated__/IVotes/read/delegates.d.ts +1 -1
- package/dist/types/extensions/erc20/__generated__/IVotes/read/delegates.d.ts.map +1 -1
- package/dist/types/extensions/erc20/drops/write/resetClaimEligibility.d.ts +1 -1
- package/dist/types/extensions/erc20/drops/write/resetClaimEligibility.d.ts.map +1 -1
- package/dist/types/extensions/erc2981/__generated__/IERC2981/read/royaltyInfo.d.ts +1 -1
- package/dist/types/extensions/erc2981/__generated__/IERC2981/read/royaltyInfo.d.ts.map +1 -1
- package/dist/types/extensions/erc4337/__generated__/IAccountFactory/read/accountImplementation.d.ts +1 -1
- package/dist/types/extensions/erc4337/__generated__/IAccountFactory/read/accountImplementation.d.ts.map +1 -1
- package/dist/types/extensions/erc4337/__generated__/IAccountFactory/read/getAccounts.d.ts +1 -1
- package/dist/types/extensions/erc4337/__generated__/IAccountFactory/read/getAccounts.d.ts.map +1 -1
- package/dist/types/extensions/erc4337/__generated__/IAccountFactory/read/getAccountsOfSigner.d.ts +1 -1
- package/dist/types/extensions/erc4337/__generated__/IAccountFactory/read/getAccountsOfSigner.d.ts.map +1 -1
- package/dist/types/extensions/erc4337/__generated__/IAccountFactory/read/getAddress.d.ts +1 -1
- package/dist/types/extensions/erc4337/__generated__/IAccountFactory/read/getAddress.d.ts.map +1 -1
- package/dist/types/extensions/erc4337/__generated__/IAccountFactory/read/getAllAccounts.d.ts +1 -1
- package/dist/types/extensions/erc4337/__generated__/IAccountFactory/read/getAllAccounts.d.ts.map +1 -1
- package/dist/types/extensions/erc4337/__generated__/IAccountPermissions/read/getAllActiveSigners.d.ts +2 -2
- package/dist/types/extensions/erc4337/__generated__/IAccountPermissions/read/getAllAdmins.d.ts +1 -1
- package/dist/types/extensions/erc4337/__generated__/IAccountPermissions/read/getAllAdmins.d.ts.map +1 -1
- package/dist/types/extensions/erc4337/__generated__/IAccountPermissions/read/getAllSigners.d.ts +2 -2
- package/dist/types/extensions/erc4337/__generated__/IAccountPermissions/read/getPermissionsForSigner.d.ts +2 -2
- package/dist/types/extensions/erc4337/__generated__/IAccountPermissions/read/verifySignerPermissionRequest.d.ts +1 -1
- package/dist/types/extensions/erc4337/__generated__/IAccountPermissions/read/verifySignerPermissionRequest.d.ts.map +1 -1
- package/dist/types/extensions/erc4626/__generated__/IERC4626/read/asset.d.ts +1 -1
- package/dist/types/extensions/erc4626/__generated__/IERC4626/read/asset.d.ts.map +1 -1
- package/dist/types/extensions/erc6551/__generated__/IERC6551Account/read/token.d.ts +1 -1
- package/dist/types/extensions/erc6551/__generated__/IERC6551Account/read/token.d.ts.map +1 -1
- package/dist/types/extensions/erc721/__generated__/IDrop/read/getClaimConditionById.d.ts +1 -1
- package/dist/types/extensions/erc721/__generated__/IDropSinglePhase/read/claimCondition.d.ts +1 -1
- package/dist/types/extensions/erc721/__generated__/IERC721A/read/getApproved.d.ts +1 -1
- package/dist/types/extensions/erc721/__generated__/IERC721A/read/getApproved.d.ts.map +1 -1
- package/dist/types/extensions/erc721/__generated__/IERC721A/read/ownerOf.d.ts +1 -1
- package/dist/types/extensions/erc721/__generated__/IERC721A/read/ownerOf.d.ts.map +1 -1
- package/dist/types/extensions/erc721/__generated__/ISignatureMintERC721/read/verify.d.ts +1 -1
- package/dist/types/extensions/erc721/__generated__/ISignatureMintERC721/read/verify.d.ts.map +1 -1
- package/dist/types/extensions/erc721/__generated__/ISignatureMintERC721_v2/read/verify.d.ts +1 -1
- package/dist/types/extensions/erc721/__generated__/ISignatureMintERC721_v2/read/verify.d.ts.map +1 -1
- package/dist/types/extensions/erc721/__generated__/Multiwrap/read/getWrappedContents.d.ts +1 -1
- package/dist/types/extensions/erc721/drops/write/resetClaimEligibility.d.ts +1 -1
- package/dist/types/extensions/erc721/drops/write/resetClaimEligibility.d.ts.map +1 -1
- package/dist/types/extensions/erc7504/__generated__/IRouterState/read/getAllExtensions.d.ts +1 -1
- package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/accountImplementation.d.ts +1 -1
- package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/accountImplementation.d.ts.map +1 -1
- package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/entrypoint.d.ts +1 -1
- package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/entrypoint.d.ts.map +1 -1
- package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/getAddress.d.ts +1 -1
- package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/getAddress.d.ts.map +1 -1
- package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/implementation.d.ts +1 -1
- package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/implementation.d.ts.map +1 -1
- package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/owner.d.ts +1 -1
- package/dist/types/extensions/erc7579/__generated__/ModularAccountFactory/read/owner.d.ts.map +1 -1
- package/dist/types/extensions/farcaster/__generated__/IBundler/read/idGateway.d.ts +1 -1
- package/dist/types/extensions/farcaster/__generated__/IBundler/read/idGateway.d.ts.map +1 -1
- package/dist/types/extensions/farcaster/__generated__/IBundler/read/keyGateway.d.ts +1 -1
- package/dist/types/extensions/farcaster/__generated__/IBundler/read/keyGateway.d.ts.map +1 -1
- package/dist/types/extensions/farcaster/__generated__/IIdGateway/read/idRegistry.d.ts +1 -1
- package/dist/types/extensions/farcaster/__generated__/IIdGateway/read/idRegistry.d.ts.map +1 -1
- package/dist/types/extensions/farcaster/__generated__/IIdGateway/read/storageRegistry.d.ts +1 -1
- package/dist/types/extensions/farcaster/__generated__/IIdGateway/read/storageRegistry.d.ts.map +1 -1
- package/dist/types/extensions/farcaster/__generated__/IIdRegistry/read/custodyOf.d.ts +1 -1
- package/dist/types/extensions/farcaster/__generated__/IIdRegistry/read/custodyOf.d.ts.map +1 -1
- package/dist/types/extensions/farcaster/__generated__/IIdRegistry/read/idGateway.d.ts +1 -1
- package/dist/types/extensions/farcaster/__generated__/IIdRegistry/read/idGateway.d.ts.map +1 -1
- package/dist/types/extensions/farcaster/__generated__/IIdRegistry/read/recoveryOf.d.ts +1 -1
- package/dist/types/extensions/farcaster/__generated__/IIdRegistry/read/recoveryOf.d.ts.map +1 -1
- package/dist/types/extensions/farcaster/__generated__/IKeyGateway/read/keyRegistry.d.ts +1 -1
- package/dist/types/extensions/farcaster/__generated__/IKeyGateway/read/keyRegistry.d.ts.map +1 -1
- package/dist/types/extensions/farcaster/__generated__/IKeyRegistry/read/idRegistry.d.ts +1 -1
- package/dist/types/extensions/farcaster/__generated__/IKeyRegistry/read/idRegistry.d.ts.map +1 -1
- package/dist/types/extensions/farcaster/__generated__/IKeyRegistry/read/keyDataOf.d.ts +1 -1
- package/dist/types/extensions/farcaster/__generated__/IKeyRegistry/read/keyDataOf.d.ts.map +1 -1
- package/dist/types/extensions/farcaster/__generated__/IKeyRegistry/read/keyGateway.d.ts +1 -1
- package/dist/types/extensions/farcaster/__generated__/IKeyRegistry/read/keyGateway.d.ts.map +1 -1
- package/dist/types/extensions/lens/__generated__/LensHandle/read/getHandleTokenURIContract.d.ts +1 -1
- package/dist/types/extensions/lens/__generated__/LensHandle/read/getHandleTokenURIContract.d.ts.map +1 -1
- package/dist/types/extensions/lens/__generated__/LensHub/read/getProfile.d.ts +2 -2
- package/dist/types/extensions/lens/__generated__/LensHub/read/getPublication.d.ts +3 -3
- package/dist/types/extensions/lens/__generated__/LensHub/read/tokenDataOf.d.ts +1 -1
- package/dist/types/extensions/marketplace/__generated__/IDirectListings/read/getAllListings.d.ts +3 -3
- package/dist/types/extensions/marketplace/__generated__/IDirectListings/read/getAllValidListings.d.ts +3 -3
- package/dist/types/extensions/marketplace/__generated__/IDirectListings/read/getListing.d.ts +3 -3
- package/dist/types/extensions/marketplace/__generated__/IEnglishAuctions/read/getAllAuctions.d.ts +3 -3
- package/dist/types/extensions/marketplace/__generated__/IEnglishAuctions/read/getAllValidAuctions.d.ts +3 -3
- package/dist/types/extensions/marketplace/__generated__/IEnglishAuctions/read/getAuction.d.ts +3 -3
- package/dist/types/extensions/marketplace/__generated__/IEnglishAuctions/read/getWinningBid.d.ts +1 -1
- package/dist/types/extensions/marketplace/__generated__/IEnglishAuctions/read/getWinningBid.d.ts.map +1 -1
- package/dist/types/extensions/marketplace/__generated__/IMarketplace/read/getPlatformFeeInfo.d.ts +1 -1
- package/dist/types/extensions/marketplace/__generated__/IMarketplace/read/getPlatformFeeInfo.d.ts.map +1 -1
- package/dist/types/extensions/marketplace/__generated__/IOffers/read/getAllOffers.d.ts +3 -3
- package/dist/types/extensions/marketplace/__generated__/IOffers/read/getAllValidOffers.d.ts +3 -3
- package/dist/types/extensions/marketplace/__generated__/IOffers/read/getOffer.d.ts +3 -3
- package/dist/types/extensions/modules/ClaimableERC1155/mint.d.ts +1 -1
- package/dist/types/extensions/modules/ClaimableERC1155/mint.d.ts.map +1 -1
- package/dist/types/extensions/modules/ClaimableERC1155/setClaimConditions.d.ts +1 -1
- package/dist/types/extensions/modules/ClaimableERC1155/setClaimConditions.d.ts.map +1 -1
- package/dist/types/extensions/modules/ClaimableERC20/mint.d.ts +1 -1
- package/dist/types/extensions/modules/ClaimableERC20/mint.d.ts.map +1 -1
- package/dist/types/extensions/modules/ClaimableERC20/setClaimConditions.d.ts +1 -1
- package/dist/types/extensions/modules/ClaimableERC20/setClaimConditions.d.ts.map +1 -1
- package/dist/types/extensions/modules/ClaimableERC721/mint.d.ts +1 -1
- package/dist/types/extensions/modules/ClaimableERC721/mint.d.ts.map +1 -1
- package/dist/types/extensions/modules/ClaimableERC721/setClaimConditions.d.ts +1 -1
- package/dist/types/extensions/modules/ClaimableERC721/setClaimConditions.d.ts.map +1 -1
- package/dist/types/extensions/modules/__generated__/ClaimableERC1155/read/getClaimConditionByTokenId.d.ts +1 -1
- package/dist/types/extensions/modules/__generated__/ClaimableERC1155/read/getSaleConfig.d.ts +1 -1
- package/dist/types/extensions/modules/__generated__/ClaimableERC1155/read/getSaleConfig.d.ts.map +1 -1
- package/dist/types/extensions/modules/__generated__/ClaimableERC20/read/getClaimCondition.d.ts +1 -1
- package/dist/types/extensions/modules/__generated__/ClaimableERC20/read/getSaleConfig.d.ts +1 -1
- package/dist/types/extensions/modules/__generated__/ClaimableERC20/read/getSaleConfig.d.ts.map +1 -1
- package/dist/types/extensions/modules/__generated__/ClaimableERC721/read/getClaimCondition.d.ts +1 -1
- package/dist/types/extensions/modules/__generated__/ClaimableERC721/read/getSaleConfig.d.ts +1 -1
- package/dist/types/extensions/modules/__generated__/ClaimableERC721/read/getSaleConfig.d.ts.map +1 -1
- package/dist/types/extensions/modules/__generated__/IModularCore/read/getInstalledModules.d.ts +1 -1
- package/dist/types/extensions/modules/__generated__/MintableERC1155/read/getSaleConfig.d.ts +1 -1
- package/dist/types/extensions/modules/__generated__/MintableERC1155/read/getSaleConfig.d.ts.map +1 -1
- package/dist/types/extensions/modules/__generated__/MintableERC20/read/getSaleConfig.d.ts +1 -1
- package/dist/types/extensions/modules/__generated__/MintableERC20/read/getSaleConfig.d.ts.map +1 -1
- package/dist/types/extensions/modules/__generated__/MintableERC721/read/getSaleConfig.d.ts +1 -1
- package/dist/types/extensions/modules/__generated__/MintableERC721/read/getSaleConfig.d.ts.map +1 -1
- package/dist/types/extensions/modules/__generated__/OwnableRoles/read/owner.d.ts +1 -1
- package/dist/types/extensions/modules/__generated__/OwnableRoles/read/owner.d.ts.map +1 -1
- package/dist/types/extensions/modules/__generated__/RoyaltyERC1155/read/getDefaultRoyaltyInfo.d.ts +1 -1
- package/dist/types/extensions/modules/__generated__/RoyaltyERC1155/read/getDefaultRoyaltyInfo.d.ts.map +1 -1
- package/dist/types/extensions/modules/__generated__/RoyaltyERC1155/read/getRoyaltyInfoForToken.d.ts +1 -1
- package/dist/types/extensions/modules/__generated__/RoyaltyERC1155/read/getRoyaltyInfoForToken.d.ts.map +1 -1
- package/dist/types/extensions/modules/__generated__/RoyaltyERC1155/read/getTransferValidator.d.ts +1 -1
- package/dist/types/extensions/modules/__generated__/RoyaltyERC1155/read/getTransferValidator.d.ts.map +1 -1
- package/dist/types/extensions/modules/__generated__/RoyaltyERC1155/read/royaltyInfo.d.ts +1 -1
- package/dist/types/extensions/modules/__generated__/RoyaltyERC1155/read/royaltyInfo.d.ts.map +1 -1
- package/dist/types/extensions/modules/__generated__/RoyaltyERC721/read/getDefaultRoyaltyInfo.d.ts +1 -1
- package/dist/types/extensions/modules/__generated__/RoyaltyERC721/read/getDefaultRoyaltyInfo.d.ts.map +1 -1
- package/dist/types/extensions/modules/__generated__/RoyaltyERC721/read/getRoyaltyInfoForToken.d.ts +1 -1
- package/dist/types/extensions/modules/__generated__/RoyaltyERC721/read/getRoyaltyInfoForToken.d.ts.map +1 -1
- package/dist/types/extensions/modules/__generated__/RoyaltyERC721/read/getTransferValidator.d.ts +1 -1
- package/dist/types/extensions/modules/__generated__/RoyaltyERC721/read/getTransferValidator.d.ts.map +1 -1
- package/dist/types/extensions/modules/__generated__/RoyaltyERC721/read/royaltyInfo.d.ts +1 -1
- package/dist/types/extensions/modules/__generated__/RoyaltyERC721/read/royaltyInfo.d.ts.map +1 -1
- package/dist/types/extensions/multicall3/__generated__/IMulticall3/read/getCurrentBlockCoinbase.d.ts +1 -1
- package/dist/types/extensions/multicall3/__generated__/IMulticall3/read/getCurrentBlockCoinbase.d.ts.map +1 -1
- package/dist/types/extensions/pack/__generated__/IPack/read/getPackContents.d.ts +1 -1
- package/dist/types/extensions/pack/__generated__/IPack/read/getTokenOfBundle.d.ts +1 -1
- package/dist/types/extensions/permissions/__generated__/IPermissionsEnumerable/read/getRoleMember.d.ts +1 -1
- package/dist/types/extensions/permissions/__generated__/IPermissionsEnumerable/read/getRoleMember.d.ts.map +1 -1
- package/dist/types/extensions/split/__generated__/Split/read/payee.d.ts +1 -1
- package/dist/types/extensions/split/__generated__/Split/read/payee.d.ts.map +1 -1
- package/dist/types/extensions/thirdweb/__generated__/IContractPublisher/read/getAllPublishedContracts.d.ts +1 -1
- package/dist/types/extensions/thirdweb/__generated__/IContractPublisher/read/getPublishedContract.d.ts +1 -1
- package/dist/types/extensions/thirdweb/__generated__/IContractPublisher/read/getPublishedContractVersions.d.ts +1 -1
- package/dist/types/extensions/thirdweb/__generated__/IRulesEngine/read/getAllRules.d.ts +1 -1
- package/dist/types/extensions/thirdweb/__generated__/IRulesEngine/read/getRulesEngineOverride.d.ts +1 -1
- package/dist/types/extensions/thirdweb/__generated__/IRulesEngine/read/getRulesEngineOverride.d.ts.map +1 -1
- package/dist/types/extensions/thirdweb/__generated__/ISignatureAction/read/verify.d.ts +1 -1
- package/dist/types/extensions/thirdweb/__generated__/ISignatureAction/read/verify.d.ts.map +1 -1
- package/dist/types/extensions/thirdweb/__generated__/ITWFee/read/getFeeInfo.d.ts +1 -1
- package/dist/types/extensions/thirdweb/__generated__/ITWFee/read/getFeeInfo.d.ts.map +1 -1
- package/dist/types/extensions/thirdweb/__generated__/ITWMultichainRegistry/read/getAll.d.ts +1 -1
- package/dist/types/extensions/uniswap/__generated__/IUniswapV3Factory/read/getPool.d.ts +1 -1
- package/dist/types/extensions/uniswap/__generated__/IUniswapV3Factory/read/getPool.d.ts.map +1 -1
- package/dist/types/extensions/uniswap/__generated__/IUniswapV3Factory/read/owner.d.ts +1 -1
- package/dist/types/extensions/uniswap/__generated__/IUniswapV3Factory/read/owner.d.ts.map +1 -1
- package/dist/types/extensions/vote/__generated__/Vote/read/getAllProposals.d.ts +2 -2
- package/dist/types/extensions/vote/__generated__/Vote/read/proposals.d.ts +1 -1
- package/dist/types/extensions/vote/__generated__/Vote/read/proposals.d.ts.map +1 -1
- package/dist/types/extensions/vote/__generated__/Vote/read/token.d.ts +1 -1
- package/dist/types/extensions/vote/__generated__/Vote/read/token.d.ts.map +1 -1
- package/dist/types/react/{web/ui/prebuilt/Account → core/account}/provider.d.ts +3 -4
- package/dist/types/react/core/account/provider.d.ts.map +1 -0
- package/dist/types/react/core/utils/account.d.ts +46 -0
- package/dist/types/react/core/utils/account.d.ts.map +1 -0
- package/dist/types/react/core/utils/walletIcon.d.ts +14 -0
- package/dist/types/react/core/utils/walletIcon.d.ts.map +1 -1
- package/dist/types/react/core/utils/walletname.d.ts +9 -0
- package/dist/types/react/core/utils/walletname.d.ts.map +1 -0
- package/dist/types/react/{web/ui/prebuilt/Wallet → core/wallet}/provider.d.ts +1 -1
- package/dist/types/react/core/wallet/provider.d.ts.map +1 -0
- package/dist/types/react/native/ui/prebuilt/Account/address.d.ts +54 -0
- package/dist/types/react/native/ui/prebuilt/Account/address.d.ts.map +1 -0
- package/dist/types/react/native/ui/prebuilt/Account/avatar.d.ts +141 -0
- package/dist/types/react/native/ui/prebuilt/Account/avatar.d.ts.map +1 -0
- package/dist/types/react/native/ui/prebuilt/Account/balance.d.ts +144 -0
- package/dist/types/react/native/ui/prebuilt/Account/balance.d.ts.map +1 -0
- package/dist/types/react/native/ui/prebuilt/Account/blobbie.d.ts +34 -0
- package/dist/types/react/native/ui/prebuilt/Account/blobbie.d.ts.map +1 -0
- package/dist/types/react/native/ui/prebuilt/Account/name.d.ts +118 -0
- package/dist/types/react/native/ui/prebuilt/Account/name.d.ts.map +1 -0
- package/dist/types/react/native/ui/prebuilt/Wallet/icon.d.ts +100 -0
- package/dist/types/react/native/ui/prebuilt/Wallet/icon.d.ts.map +1 -0
- package/dist/types/react/native/ui/prebuilt/Wallet/name.d.ts +94 -0
- package/dist/types/react/native/ui/prebuilt/Wallet/name.d.ts.map +1 -0
- package/dist/types/react/web/ui/ConnectWallet/Blobbie.d.ts +1 -1
- package/dist/types/react/web/ui/ConnectWallet/Blobbie.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/ConnectButton.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/Details.d.ts +1 -1
- package/dist/types/react/web/ui/ConnectWallet/Details.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/ManageWalletScreen.d.ts.map +1 -1
- package/dist/types/react/web/ui/prebuilt/Account/avatar.d.ts.map +1 -1
- package/dist/types/react/web/ui/prebuilt/Account/balance.d.ts +1 -42
- package/dist/types/react/web/ui/prebuilt/Account/balance.d.ts.map +1 -1
- package/dist/types/react/web/ui/prebuilt/Account/blobbie.d.ts.map +1 -1
- package/dist/types/react/web/ui/prebuilt/NFT/utils.d.ts.map +1 -1
- package/dist/types/react/web/ui/prebuilt/Wallet/icon.d.ts +2 -10
- package/dist/types/react/web/ui/prebuilt/Wallet/icon.d.ts.map +1 -1
- package/dist/types/react/web/ui/prebuilt/Wallet/name.d.ts +1 -18
- package/dist/types/react/web/ui/prebuilt/Wallet/name.d.ts.map +1 -1
- package/dist/types/utils/any-evm/keyless-transaction.d.ts +1 -1
- package/dist/types/utils/shortenLargeNumber.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/types/wallets/in-app/web/lib/get-url-token.d.ts +1 -1
- package/dist/types/wallets/in-app/web/lib/get-url-token.d.ts.map +1 -1
- package/package.json +30 -30
- package/src/exports/react.native.ts +47 -0
- package/src/exports/react.ts +5 -3
- package/src/exports/wallets.ts +2 -0
- package/src/react/{web/ui/prebuilt/Account → core/account}/provider.test.tsx +1 -1
- package/src/react/{web/ui/prebuilt/Account → core/account}/provider.tsx +7 -5
- package/src/react/core/utils/account.ts +146 -0
- package/src/react/core/utils/walletIcon.ts +28 -0
- package/src/react/core/utils/walletname.ts +53 -0
- package/src/react/{web/ui/prebuilt/Wallet → core/wallet}/provider.tsx +1 -1
- package/src/react/native/ui/prebuilt/Account/address.tsx +65 -0
- package/src/react/native/ui/prebuilt/Account/avatar.tsx +225 -0
- package/src/react/native/ui/prebuilt/Account/balance.tsx +221 -0
- package/src/react/native/ui/prebuilt/Account/blobbie.tsx +94 -0
- package/src/react/native/ui/prebuilt/Account/name.tsx +180 -0
- package/src/react/native/ui/prebuilt/Wallet/icon.tsx +124 -0
- package/src/react/native/ui/prebuilt/Wallet/name.tsx +112 -0
- package/src/react/web/ui/ConnectWallet/Blobbie.tsx +1 -18
- package/src/react/web/ui/ConnectWallet/ConnectButton.tsx +1 -1
- package/src/react/web/ui/ConnectWallet/Details.test.tsx +1 -1
- package/src/react/web/ui/ConnectWallet/Details.tsx +7 -7
- package/src/react/web/ui/ConnectWallet/screens/ManageWalletScreen.test.tsx +3 -3
- package/src/react/web/ui/ConnectWallet/screens/ManageWalletScreen.tsx +5 -4
- package/src/react/web/ui/prebuilt/Account/address.test.tsx +1 -1
- package/src/react/web/ui/prebuilt/Account/address.tsx +1 -1
- package/src/react/web/ui/prebuilt/Account/avatar.test.tsx +1 -1
- package/src/react/web/ui/prebuilt/Account/avatar.tsx +1 -2
- package/src/react/web/ui/prebuilt/Account/balance.test.tsx +7 -5
- package/src/react/web/ui/prebuilt/Account/balance.tsx +10 -130
- package/src/react/web/ui/prebuilt/Account/blobbie.tsx +1 -1
- package/src/react/web/ui/prebuilt/Account/name.test.tsx +1 -1
- package/src/react/web/ui/prebuilt/Account/name.tsx +1 -1
- package/src/react/web/ui/prebuilt/NFT/utils.ts +0 -1
- package/src/react/web/ui/prebuilt/Token/name.test.tsx +0 -1
- package/src/react/web/ui/prebuilt/Token/symbol.test.tsx +0 -1
- package/src/react/web/ui/prebuilt/Wallet/icon.test.tsx +3 -2
- package/src/react/web/ui/prebuilt/Wallet/icon.tsx +6 -30
- package/src/react/web/ui/prebuilt/Wallet/name.test.tsx +6 -2
- package/src/react/web/ui/prebuilt/Wallet/name.tsx +2 -52
- package/src/utils/shortenLargeNumber.ts +3 -0
- package/src/version.ts +1 -1
- package/src/wallets/connection/autoConnectCore.ts +13 -13
- package/src/wallets/in-app/web/lib/get-url-token.test.tsx +6 -6
- package/src/wallets/in-app/web/lib/get-url-token.ts +11 -9
- package/src/wallets/smart/smart-wallet-modular.test.ts +0 -1
- package/dist/cjs/react/web/ui/prebuilt/Account/provider.js.map +0 -1
- package/dist/cjs/react/web/ui/prebuilt/Wallet/provider.js.map +0 -1
- package/dist/esm/react/web/ui/prebuilt/Account/provider.js.map +0 -1
- package/dist/esm/react/web/ui/prebuilt/Wallet/provider.js.map +0 -1
- package/dist/types/react/web/ui/prebuilt/Account/provider.d.ts.map +0 -1
- package/dist/types/react/web/ui/prebuilt/Wallet/provider.d.ts.map +0 -1
- /package/dist/cjs/react/{web/ui/prebuilt/Wallet → core/wallet}/provider.js +0 -0
- /package/dist/esm/react/{web/ui/prebuilt/Wallet → core/wallet}/provider.js +0 -0
- /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
|
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
|
-
{
|
97
|
-
isInAppWallet(
|
98
|
-
!
|
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", () => {
|
@@ -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 "
|
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 "
|
16
|
-
import {
|
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
|
-
|
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
|
-
|
110
|
+
// biome-ignore lint/suspicious/noExplicitAny: for the test
|
111
|
+
tokenAddress: "haha" as any,
|
110
112
|
chain: ethereum,
|
111
113
|
}),
|
112
114
|
).rejects.toThrowError(
|