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,148 @@
|
|
1
|
+
"use client";
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
3
|
+
import { useQuery } from "@tanstack/react-query";
|
4
|
+
import { Image } from "react-native";
|
5
|
+
import { resolveAvatar } from "../../../../../extensions/ens/resolve-avatar.js";
|
6
|
+
import { resolveName, } from "../../../../../extensions/ens/resolve-name.js";
|
7
|
+
import { getSocialProfiles } from "../../../../../social/profiles.js";
|
8
|
+
import { parseAvatarRecord } from "../../../../../utils/ens/avatar.js";
|
9
|
+
import { useAccountContext } from "../../../../core/account/provider.js";
|
10
|
+
/**
|
11
|
+
* The component for showing the avatar of the account.
|
12
|
+
* If fetches all the social profiles linked to your wallet, including: Farcaster, ENS, Lens (more to be added)
|
13
|
+
* You can choose which social profile you want to display. Defaults to the first item in the list.
|
14
|
+
*
|
15
|
+
* @example
|
16
|
+
* ### Basic usage
|
17
|
+
* ```tsx
|
18
|
+
* import { AccountProvider, AccountAvatar } from "thirdweb/react";
|
19
|
+
*
|
20
|
+
* <AccountProvider address="0x...">
|
21
|
+
* <AccountAvatar />
|
22
|
+
* </AccountProvider>
|
23
|
+
* ```
|
24
|
+
* Result: An <img /> component, if the avatar is resolved successfully
|
25
|
+
* ```html
|
26
|
+
* <img alt="" src="resolved-url-for-the-avatar" />
|
27
|
+
* ```
|
28
|
+
*
|
29
|
+
* ### Show a loading sign when the avatar is being resolved
|
30
|
+
* ```tsx
|
31
|
+
* import { AccountProvider, AccountAvatar } from "thirdweb/react";
|
32
|
+
*
|
33
|
+
* <AccountProvider address="0x...">
|
34
|
+
* <AccountAvatar
|
35
|
+
* loadingComponent={<YourLoadingComponent />}
|
36
|
+
* />
|
37
|
+
* </AccountProvider>
|
38
|
+
* ```
|
39
|
+
*
|
40
|
+
* ### Fallback to something when the avatar fails to resolve
|
41
|
+
* ```tsx
|
42
|
+
* import { AccountProvider, AccountAvatar } from "thirdweb/react";
|
43
|
+
*
|
44
|
+
* <AccountProvider address="0x...">
|
45
|
+
* <AccountAvatar
|
46
|
+
* fallbackComponent={<DummyImage />}
|
47
|
+
* />
|
48
|
+
* </AccountProvider>
|
49
|
+
* ```
|
50
|
+
*
|
51
|
+
* ### Select a social profile to display
|
52
|
+
* If you wallet associates with more than one social profiles (Lens, Farcaster, ENS, etc.)
|
53
|
+
* You can specify which service you want to prioritize using the `socialType` props
|
54
|
+
* ```tsx
|
55
|
+
* import { AccountProvider, AccountAvatar } from "thirdweb/react";
|
56
|
+
*
|
57
|
+
* <AccountProvider address="0x...">
|
58
|
+
* <AccountAvatar
|
59
|
+
* // Choose between: "farcaster" | "lens" | "ens"
|
60
|
+
* socialType={"ens"}
|
61
|
+
* />
|
62
|
+
* </AccountProvider>
|
63
|
+
* ```
|
64
|
+
*
|
65
|
+
* ### Custom ENS resolver chain
|
66
|
+
* This component shares the same props with the ENS extension `resolveAvatar`
|
67
|
+
* ```tsx
|
68
|
+
* import { AccountProvider, AccountAvatar } from "thirdweb/react";
|
69
|
+
* import { base } from "thirdweb/chains";
|
70
|
+
*
|
71
|
+
* <AccountProvider address="0x...">
|
72
|
+
* <AccountAvatar
|
73
|
+
* resolverAddress={"0x..."}
|
74
|
+
* resolverChain={base}
|
75
|
+
* />
|
76
|
+
* </AccountProvider>
|
77
|
+
* ```
|
78
|
+
*
|
79
|
+
* ### Custom query options for useQuery
|
80
|
+
* This component uses `@tanstack-query`'s useQuery internally.
|
81
|
+
* You can use the `queryOptions` prop for more fine-grained control
|
82
|
+
* ```tsx
|
83
|
+
* <AccountAvatar
|
84
|
+
* queryOptions={{
|
85
|
+
* enabled: isEnabled,
|
86
|
+
* retry: 3,
|
87
|
+
* }}
|
88
|
+
* />
|
89
|
+
* ```
|
90
|
+
* @returns An <img /> if the avatar is resolved successfully
|
91
|
+
* @component
|
92
|
+
* @wallet
|
93
|
+
* @beta
|
94
|
+
*/
|
95
|
+
export function AccountAvatar({ socialType, resolverAddress, resolverChain, loadingComponent, fallbackComponent, queryOptions, ...restProps }) {
|
96
|
+
const { address, client } = useAccountContext();
|
97
|
+
const avatarQuery = useQuery({
|
98
|
+
queryKey: [
|
99
|
+
"account-avatar",
|
100
|
+
address,
|
101
|
+
{ socialType },
|
102
|
+
{ resolverAddress, resolverChain },
|
103
|
+
],
|
104
|
+
queryFn: async () => {
|
105
|
+
const [socialData, ensName] = await Promise.all([
|
106
|
+
getSocialProfiles({ address, client }),
|
107
|
+
resolveName({
|
108
|
+
client,
|
109
|
+
address: address || "",
|
110
|
+
resolverAddress,
|
111
|
+
resolverChain,
|
112
|
+
}),
|
113
|
+
]);
|
114
|
+
const uri = socialData?.filter((p) => p.avatar && (socialType ? p.type === socialType : true))[0]?.avatar;
|
115
|
+
const [resolvedSocialAvatar, resolvedENSAvatar] = await Promise.all([
|
116
|
+
uri ? parseAvatarRecord({ client, uri }) : undefined,
|
117
|
+
ensName
|
118
|
+
? resolveAvatar({
|
119
|
+
client,
|
120
|
+
name: ensName,
|
121
|
+
})
|
122
|
+
: undefined,
|
123
|
+
]);
|
124
|
+
// If no social image + ens name found -> exit and show <Blobbie />
|
125
|
+
if (!resolvedSocialAvatar && !resolvedENSAvatar) {
|
126
|
+
throw new Error("Failed to resolve social + ens avatar");
|
127
|
+
}
|
128
|
+
// else, prioritize the social image first
|
129
|
+
if (resolvedSocialAvatar) {
|
130
|
+
return resolvedSocialAvatar;
|
131
|
+
}
|
132
|
+
if (resolvedENSAvatar) {
|
133
|
+
return resolvedENSAvatar;
|
134
|
+
}
|
135
|
+
throw new Error("Failed to resolve social + ens avatar");
|
136
|
+
},
|
137
|
+
retry: false,
|
138
|
+
...queryOptions,
|
139
|
+
});
|
140
|
+
if (avatarQuery.isLoading) {
|
141
|
+
return loadingComponent || null;
|
142
|
+
}
|
143
|
+
if (!avatarQuery.data) {
|
144
|
+
return fallbackComponent || null;
|
145
|
+
}
|
146
|
+
return _jsx(Image, { source: { uri: avatarQuery.data }, ...restProps });
|
147
|
+
}
|
148
|
+
//# sourceMappingURL=avatar.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"avatar.js","sourceRoot":"","sources":["../../../../../../../src/react/native/ui/prebuilt/Account/avatar.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAwB,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,KAAK,EAAmB,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,iDAAiD,CAAC;AAChF,OAAO,EAEL,WAAW,GACZ,MAAM,+CAA+C,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAwDzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoFG;AACH,MAAM,UAAU,aAAa,CAAC,EAC5B,UAAU,EACV,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,GAAG,SAAS,EACO;IACnB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,iBAAiB,EAAE,CAAC;IAChD,MAAM,WAAW,GAAG,QAAQ,CAAC;QAC3B,QAAQ,EAAE;YACR,gBAAgB;YAChB,OAAO;YACP,EAAE,UAAU,EAAE;YACd,EAAE,eAAe,EAAE,aAAa,EAAE;SACnC;QACD,OAAO,EAAE,KAAK,IAAqB,EAAE;YACnC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC9C,iBAAiB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;gBACtC,WAAW,CAAC;oBACV,MAAM;oBACN,OAAO,EAAE,OAAO,IAAI,EAAE;oBACtB,eAAe;oBACf,aAAa;iBACd,CAAC;aACH,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,UAAU,EAAE,MAAM,CAC5B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAC/D,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;YAEb,MAAM,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAClE,GAAG,CAAC,CAAC,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;gBACpD,OAAO;oBACL,CAAC,CAAC,aAAa,CAAC;wBACZ,MAAM;wBACN,IAAI,EAAE,OAAO;qBACd,CAAC;oBACJ,CAAC,CAAC,SAAS;aACd,CAAC,CAAC;YAEH,mEAAmE;YACnE,IAAI,CAAC,oBAAoB,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAChD,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YAC3D,CAAC;YAED,0CAA0C;YAC1C,IAAI,oBAAoB,EAAE,CAAC;gBACzB,OAAO,oBAAoB,CAAC;YAC9B,CAAC;YAED,IAAI,iBAAiB,EAAE,CAAC;gBACtB,OAAO,iBAAiB,CAAC;YAC3B,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;QACD,KAAK,EAAE,KAAK;QACZ,GAAG,YAAY;KAChB,CAAC,CAAC;IAEH,IAAI,WAAW,CAAC,SAAS,EAAE,CAAC;QAC1B,OAAO,gBAAgB,IAAI,IAAI,CAAC;IAClC,CAAC;IAED,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACtB,OAAO,iBAAiB,IAAI,IAAI,CAAC;IACnC,CAAC;IAED,OAAO,KAAC,KAAK,IAAC,MAAM,EAAE,EAAE,GAAG,EAAE,WAAW,CAAC,IAAI,EAAE,KAAM,SAAS,GAAI,CAAC;AACrE,CAAC"}
|
@@ -0,0 +1,127 @@
|
|
1
|
+
"use client";
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
3
|
+
import { useQuery } from "@tanstack/react-query";
|
4
|
+
import { Text } from "react-native";
|
5
|
+
import { useActiveWalletChain } from "../../../../../react/core/hooks/wallets/useActiveWalletChain.js";
|
6
|
+
import { getAddress } from "../../../../../utils/address.js";
|
7
|
+
import { useAccountContext } from "../../../../core/account/provider.js";
|
8
|
+
import { formatAccountFiatBalance, loadAccountBalance, } from "../../../../core/utils/account.js";
|
9
|
+
import { formatAccountTokenBalance } from "../../../../core/utils/account.js";
|
10
|
+
/**
|
11
|
+
* This component fetches and shows the balance of the wallet address on a given chain.
|
12
|
+
* It inherits all the attributes of a HTML <span> component, hence you can style it just like how you would style a normal <span>
|
13
|
+
*
|
14
|
+
*
|
15
|
+
* @example
|
16
|
+
* ### Basic usage
|
17
|
+
* ```tsx
|
18
|
+
* import { AccountProvider, AccountBalance } from "thirdweb/react";
|
19
|
+
* import { ethereum } from "thirdweb/chains";
|
20
|
+
*
|
21
|
+
* <AccountProvider address="0x...">
|
22
|
+
* <AccountBalance chain={ethereum} />
|
23
|
+
* </AccountProvider>
|
24
|
+
* ```
|
25
|
+
* Result:
|
26
|
+
* ```html
|
27
|
+
* <span>1.091435 ETH</span>
|
28
|
+
* ```
|
29
|
+
*
|
30
|
+
*
|
31
|
+
* ### Format the balance (round up, shorten etc.)
|
32
|
+
* The AccountBalance component accepts a `formatFn` which takes in an object of type `AccountBalanceInfo` and outputs a string
|
33
|
+
* The function is used to modify the display value of the wallet balance (either in crypto or fiat)
|
34
|
+
*
|
35
|
+
* ```tsx
|
36
|
+
* import type { AccountBalanceInfo } from "thirdweb/react";
|
37
|
+
* import { formatNumber } from "thirdweb/utils";
|
38
|
+
*
|
39
|
+
* const format = (props: AccountInfoBalance):string => `${formatNumber(props.balance, 1)} ${props.symbol.toLowerCase()}`
|
40
|
+
*
|
41
|
+
* <AccountBalance formatFn={format} />
|
42
|
+
* ```
|
43
|
+
*
|
44
|
+
* Result:
|
45
|
+
* ```html
|
46
|
+
* <span>1.1 eth</span> // the balance is rounded up to 1 decimal and the symbol is lowercased
|
47
|
+
* ```
|
48
|
+
*
|
49
|
+
* ### Show a loading sign when the balance is being fetched
|
50
|
+
* ```tsx
|
51
|
+
* import { AccountProvider, AccountBalance } from "thirdweb/react";
|
52
|
+
*
|
53
|
+
* <AccountProvider address="0x...">
|
54
|
+
* <AccountBalance
|
55
|
+
* chain={ethereum}
|
56
|
+
* loadingComponent={<Spinner />}
|
57
|
+
* />
|
58
|
+
* </AccountProvider>
|
59
|
+
* ```
|
60
|
+
*
|
61
|
+
* ### Fallback to something when the balance fails to resolve
|
62
|
+
* ```tsx
|
63
|
+
* <AccountProvider address="0x...">
|
64
|
+
* <AccountBalance
|
65
|
+
* chain={nonExistentChain}
|
66
|
+
* fallbackComponent={"Failed to load"}
|
67
|
+
* />
|
68
|
+
* </AccountProvider>
|
69
|
+
* ```
|
70
|
+
*
|
71
|
+
* ### Custom query options for useQuery
|
72
|
+
* This component uses `@tanstack-query`'s useQuery internally.
|
73
|
+
* You can use the `queryOptions` prop for more fine-grained control
|
74
|
+
* ```tsx
|
75
|
+
* <AccountBalance
|
76
|
+
* queryOptions={{
|
77
|
+
* enabled: isEnabled,
|
78
|
+
* retry: 4,
|
79
|
+
* }}
|
80
|
+
* />
|
81
|
+
* ```
|
82
|
+
*
|
83
|
+
* @component
|
84
|
+
* @wallet
|
85
|
+
* @beta
|
86
|
+
*/
|
87
|
+
export function AccountBalance({ chain, tokenAddress, loadingComponent, fallbackComponent, queryOptions, formatFn, showBalanceInFiat, ...restProps }) {
|
88
|
+
const { address, client } = useAccountContext();
|
89
|
+
const walletChain = useActiveWalletChain();
|
90
|
+
const chainToLoad = chain || walletChain;
|
91
|
+
const balanceQuery = useQuery({
|
92
|
+
queryKey: [
|
93
|
+
"internal_account_balance",
|
94
|
+
chainToLoad?.id || -1,
|
95
|
+
address,
|
96
|
+
{ tokenAddress },
|
97
|
+
showBalanceInFiat,
|
98
|
+
],
|
99
|
+
queryFn: async () => loadAccountBalance({
|
100
|
+
chain: chainToLoad,
|
101
|
+
client,
|
102
|
+
address: getAddress(address),
|
103
|
+
tokenAddress: tokenAddress ? getAddress(tokenAddress) : undefined,
|
104
|
+
showBalanceInFiat,
|
105
|
+
}),
|
106
|
+
retry: false,
|
107
|
+
...queryOptions,
|
108
|
+
});
|
109
|
+
if (balanceQuery.isLoading) {
|
110
|
+
return loadingComponent || null;
|
111
|
+
}
|
112
|
+
if (balanceQuery.data === undefined) {
|
113
|
+
return fallbackComponent || null;
|
114
|
+
}
|
115
|
+
// Prioritize using the formatFn from users
|
116
|
+
if (formatFn) {
|
117
|
+
return _jsx(Text, { ...restProps, children: formatFn(balanceQuery.data) });
|
118
|
+
}
|
119
|
+
if (showBalanceInFiat) {
|
120
|
+
return (_jsx(Text, { ...restProps, children: formatAccountFiatBalance({ ...balanceQuery.data, decimals: 2 }) }));
|
121
|
+
}
|
122
|
+
return (_jsx(Text, { ...restProps, children: formatAccountTokenBalance({
|
123
|
+
...balanceQuery.data,
|
124
|
+
decimals: balanceQuery.data.balance < 1 ? 3 : 2,
|
125
|
+
}) }));
|
126
|
+
}
|
127
|
+
//# sourceMappingURL=balance.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"balance.js","sourceRoot":"","sources":["../../../../../../../src/react/native/ui/prebuilt/Account/balance.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAwB,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,IAAI,EAAkB,MAAM,cAAc,CAAC;AAGpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iEAAiE,CAAC;AACvG,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAEL,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAmE9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4EG;AACH,MAAM,UAAU,cAAc,CAAC,EAC7B,KAAK,EACL,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,QAAQ,EACR,iBAAiB,EACjB,GAAG,SAAS,EACQ;IACpB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,iBAAiB,EAAE,CAAC;IAChD,MAAM,WAAW,GAAG,oBAAoB,EAAE,CAAC;IAC3C,MAAM,WAAW,GAAG,KAAK,IAAI,WAAW,CAAC;IACzC,MAAM,YAAY,GAAG,QAAQ,CAAC;QAC5B,QAAQ,EAAE;YACR,0BAA0B;YAC1B,WAAW,EAAE,EAAE,IAAI,CAAC,CAAC;YACrB,OAAO;YACP,EAAE,YAAY,EAAE;YAChB,iBAAiB;SACT;QACV,OAAO,EAAE,KAAK,IAAiC,EAAE,CAC/C,kBAAkB,CAAC;YACjB,KAAK,EAAE,WAAW;YAClB,MAAM;YACN,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC;YAC5B,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS;YACjE,iBAAiB;SAClB,CAAC;QACJ,KAAK,EAAE,KAAK;QACZ,GAAG,YAAY;KAChB,CAAC,CAAC;IAEH,IAAI,YAAY,CAAC,SAAS,EAAE,CAAC;QAC3B,OAAO,gBAAgB,IAAI,IAAI,CAAC;IAClC,CAAC;IAED,IAAI,YAAY,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACpC,OAAO,iBAAiB,IAAI,IAAI,CAAC;IACnC,CAAC;IAED,2CAA2C;IAC3C,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,KAAC,IAAI,OAAK,SAAS,YAAG,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,GAAQ,CAAC;IACnE,CAAC;IAED,IAAI,iBAAiB,EAAE,CAAC;QACtB,OAAO,CACL,KAAC,IAAI,OAAK,SAAS,YAChB,wBAAwB,CAAC,EAAE,GAAG,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,GAC3D,CACR,CAAC;IACJ,CAAC;IAED,OAAO,CACL,KAAC,IAAI,OAAK,SAAS,YAChB,yBAAyB,CAAC;YACzB,GAAG,YAAY,CAAC,IAAI;YACpB,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAChD,CAAC,GACG,CACR,CAAC;AACJ,CAAC"}
|
@@ -0,0 +1,54 @@
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
2
|
+
import { hexToNumber } from "@noble/curves/abstract/utils";
|
3
|
+
import { useMemo } from "react";
|
4
|
+
import { StyleSheet, View } from "react-native";
|
5
|
+
import { Defs, LinearGradient, Rect, Stop, Svg } from "react-native-svg";
|
6
|
+
import { useAccountContext } from "../../../../core/account/provider.js";
|
7
|
+
import { COLOR_OPTIONS } from "../../../../core/utils/account.js";
|
8
|
+
/**
|
9
|
+
* A wrapper for the Blobbie component
|
10
|
+
* @param props BlobbieProps
|
11
|
+
* @beta
|
12
|
+
* @wallet
|
13
|
+
*/
|
14
|
+
export function AccountBlobbie(props) {
|
15
|
+
const { address } = useAccountContext();
|
16
|
+
return _jsx(Blobbie, { ...props, address: address });
|
17
|
+
}
|
18
|
+
/**
|
19
|
+
* A unique gradient avatar based on the provided address.
|
20
|
+
* @param props The component props.
|
21
|
+
* @param props.address The address to generate the gradient with.
|
22
|
+
* @param props.style The style for the component
|
23
|
+
* @param props.size The size of each side of the square avatar (in pixels)
|
24
|
+
* @component
|
25
|
+
* @wallet
|
26
|
+
* @example
|
27
|
+
* ```tsx
|
28
|
+
* import { Blobbie } from "thirdweb/react";
|
29
|
+
*
|
30
|
+
* <Blobbie address="0x...." style={{ width: 40, height: 40 }} />
|
31
|
+
* ```
|
32
|
+
*/
|
33
|
+
export function Blobbie(props) {
|
34
|
+
const colors = useMemo(() => COLOR_OPTIONS[Number(hexToNumber(props.address.slice(2, 4))) % COLOR_OPTIONS.length], [props.address]);
|
35
|
+
const containerStyle = useMemo(() => {
|
36
|
+
const baseStyle = props.style || {};
|
37
|
+
if (props.size) {
|
38
|
+
return {
|
39
|
+
...baseStyle,
|
40
|
+
width: props.size,
|
41
|
+
height: props.size,
|
42
|
+
};
|
43
|
+
}
|
44
|
+
return baseStyle;
|
45
|
+
}, [props.style, props.size]);
|
46
|
+
const gradientUniqueId = `grad${colors[0]}+${colors[1]}`.replace(/[^a-zA-Z0-9 ]/g, "");
|
47
|
+
return (_jsx(View, { style: [styles.container, containerStyle], children: _jsxs(Svg, { height: "100%", width: "100%", style: StyleSheet.absoluteFillObject, children: [_jsx(Defs, { children: _jsxs(LinearGradient, { id: gradientUniqueId, x1: "0%", y1: "100%", x2: "100%", y2: "0%", children: [_jsx(Stop, { offset: "0", stopColor: colors[0] }), _jsx(Stop, { offset: "1", stopColor: colors[1] })] }) }), _jsx(Rect, { width: "100%", height: "100%", fill: `url(#${gradientUniqueId})` })] }) }));
|
48
|
+
}
|
49
|
+
const styles = StyleSheet.create({
|
50
|
+
container: {
|
51
|
+
overflow: "hidden",
|
52
|
+
},
|
53
|
+
});
|
54
|
+
//# sourceMappingURL=blobbie.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"blobbie.js","sourceRoot":"","sources":["../../../../../../../src/react/native/ui/prebuilt/Account/blobbie.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAkB,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAWlE;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,KAAoC;IACjE,MAAM,EAAE,OAAO,EAAE,GAAG,iBAAiB,EAAE,CAAC;IACxC,OAAO,KAAC,OAAO,OAAK,KAAK,EAAE,OAAO,EAAE,OAAO,GAAI,CAAC;AAClD,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,OAAO,CAAC,KAAmB;IACzC,MAAM,MAAM,GAAG,OAAO,CACpB,GAAG,EAAE,CACH,aAAa,CACX,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,MAAM,CAClD,EACvB,CAAC,KAAK,CAAC,OAAO,CAAC,CAChB,CAAC;IAEF,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,EAAE;QAClC,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;QACpC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,OAAO;gBACL,GAAG,SAAS;gBACZ,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,MAAM,EAAE,KAAK,CAAC,IAAI;aACnB,CAAC;QACJ,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAE9B,MAAM,gBAAgB,GAAG,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAC9D,gBAAgB,EAChB,EAAE,CACH,CAAC;IAEF,OAAO,CACL,KAAC,IAAI,IAAC,KAAK,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,YAC7C,MAAC,GAAG,IAAC,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAE,UAAU,CAAC,kBAAkB,aAClE,KAAC,IAAI,cACH,MAAC,cAAc,IACb,EAAE,EAAE,gBAAgB,EACpB,EAAE,EAAC,IAAI,EACP,EAAE,EAAC,MAAM,EACT,EAAE,EAAC,MAAM,EACT,EAAE,EAAC,IAAI,aAEP,KAAC,IAAI,IAAC,MAAM,EAAC,GAAG,EAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,GAAI,EACzC,KAAC,IAAI,IAAC,MAAM,EAAC,GAAG,EAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,GAAI,IAC1B,GACZ,EACP,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,IAAI,EAAE,QAAQ,gBAAgB,GAAG,GAAI,IAClE,GACD,CACR,CAAC;AACJ,CAAC;AAED,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;IAC/B,SAAS,EAAE;QACT,QAAQ,EAAE,QAAQ;KACnB;CACF,CAAC,CAAC"}
|
@@ -0,0 +1,110 @@
|
|
1
|
+
"use client";
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
3
|
+
import { useQuery } from "@tanstack/react-query";
|
4
|
+
import { Text } from "react-native";
|
5
|
+
import { resolveName, } from "../../../../../extensions/ens/resolve-name.js";
|
6
|
+
import { getSocialProfiles } from "../../../../../social/profiles.js";
|
7
|
+
import { useAccountContext } from "../../../../core/account/provider.js";
|
8
|
+
/**
|
9
|
+
* This component is used to display the name of the account.
|
10
|
+
* A "name" in this context is the username, or account of the social profiles that the wallet may have.
|
11
|
+
* 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.
|
12
|
+
*
|
13
|
+
* This component inherits all attribute of a native HTML <span> element, so you can style it just like how you would style a <span>.
|
14
|
+
*
|
15
|
+
* @param props
|
16
|
+
* @returns A `<span>` containing the name of the account
|
17
|
+
* ```html
|
18
|
+
* <span>{name}</span>
|
19
|
+
* ```
|
20
|
+
*
|
21
|
+
* @example
|
22
|
+
* ### Basic usage
|
23
|
+
* ```tsx
|
24
|
+
* import { AccountProvider, AccountName } from "thirdweb/react";
|
25
|
+
*
|
26
|
+
* <AccountProvider address="0x1234...3f3f" client={client}>
|
27
|
+
* <AccountName />
|
28
|
+
* </AccountProvider>
|
29
|
+
* ```
|
30
|
+
*
|
31
|
+
* ### Show wallet address while social name is being loaded
|
32
|
+
* ```tsx
|
33
|
+
* <AccountName
|
34
|
+
* loadingComponent={<AccountAddress />}
|
35
|
+
* />
|
36
|
+
* ```
|
37
|
+
*
|
38
|
+
*
|
39
|
+
* ### Fallback to showing wallet address if fail to resolve social name
|
40
|
+
* ```tsx
|
41
|
+
* <AccountName
|
42
|
+
* fallbackComponent={<AccountAddress />}
|
43
|
+
* />
|
44
|
+
* ```
|
45
|
+
*
|
46
|
+
* ### Transform the account name using `formatFn` prop
|
47
|
+
* ```tsx
|
48
|
+
* import { isAddress, shortenAddress } from "thirdweb/utils";
|
49
|
+
* import { AccountProvider, AccountName } from "thirdweb/react";
|
50
|
+
*
|
51
|
+
* // Let's say we want the name to be capitalized without using CSS
|
52
|
+
* const formatName = (name: string) => name.toUpperCase();
|
53
|
+
*
|
54
|
+
* return <AccountName formatFn={formatName} />
|
55
|
+
* ```
|
56
|
+
*
|
57
|
+
*
|
58
|
+
* ### Custom query options for useQuery
|
59
|
+
* This component uses `@tanstack-query`'s useQuery internally.
|
60
|
+
* You can use the `queryOptions` prop for more fine-grained control
|
61
|
+
* ```tsx
|
62
|
+
* <AccountName
|
63
|
+
* queryOptions={{
|
64
|
+
* enabled: isEnabled,
|
65
|
+
* retry: 3
|
66
|
+
* }}
|
67
|
+
* />
|
68
|
+
* ```
|
69
|
+
*
|
70
|
+
* @component
|
71
|
+
* @wallet
|
72
|
+
* @beta
|
73
|
+
*/
|
74
|
+
export function AccountName({ resolverAddress, resolverChain, socialType, formatFn, queryOptions, loadingComponent, fallbackComponent, ...restProps }) {
|
75
|
+
const { address, client } = useAccountContext();
|
76
|
+
const nameQuery = useQuery({
|
77
|
+
queryKey: [
|
78
|
+
"account-name",
|
79
|
+
address,
|
80
|
+
{ socialType },
|
81
|
+
{ resolverAddress, resolverChain },
|
82
|
+
],
|
83
|
+
queryFn: async () => {
|
84
|
+
const [socialData, ensName] = await Promise.all([
|
85
|
+
getSocialProfiles({ address, client }),
|
86
|
+
resolveName({
|
87
|
+
client,
|
88
|
+
address,
|
89
|
+
resolverAddress,
|
90
|
+
resolverChain,
|
91
|
+
}),
|
92
|
+
]);
|
93
|
+
const name = socialData?.filter((p) => p.name && (socialType ? p.type === socialType : true))[0]?.name || ensName;
|
94
|
+
if (!name) {
|
95
|
+
throw new Error("Failed to resolve account name");
|
96
|
+
}
|
97
|
+
return formatFn ? formatFn(name) : name;
|
98
|
+
},
|
99
|
+
retry: false,
|
100
|
+
...queryOptions,
|
101
|
+
});
|
102
|
+
if (nameQuery.isLoading) {
|
103
|
+
return loadingComponent || null;
|
104
|
+
}
|
105
|
+
if (!nameQuery.data) {
|
106
|
+
return fallbackComponent || null;
|
107
|
+
}
|
108
|
+
return _jsx(Text, { ...restProps, children: nameQuery.data });
|
109
|
+
}
|
110
|
+
//# sourceMappingURL=name.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"name.js","sourceRoot":"","sources":["../../../../../../../src/react/native/ui/prebuilt/Account/name.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAwB,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,IAAI,EAAkB,MAAM,cAAc,CAAC;AACpD,OAAO,EAEL,WAAW,GACZ,MAAM,+CAA+C,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAmDzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiEG;AACH,MAAM,UAAU,WAAW,CAAC,EAC1B,eAAe,EACf,aAAa,EACb,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,GAAG,SAAS,EACK;IACjB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,iBAAiB,EAAE,CAAC;IAChD,MAAM,SAAS,GAAG,QAAQ,CAAC;QACzB,QAAQ,EAAE;YACR,cAAc;YACd,OAAO;YACP,EAAE,UAAU,EAAE;YACd,EAAE,eAAe,EAAE,aAAa,EAAE;SACnC;QACD,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC9C,iBAAiB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;gBACtC,WAAW,CAAC;oBACV,MAAM;oBACN,OAAO;oBACP,eAAe;oBACf,aAAa;iBACd,CAAC;aACH,CAAC,CAAC;YAEH,MAAM,IAAI,GACR,UAAU,EAAE,MAAM,CAChB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAC7D,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,OAAO,CAAC;YAExB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YACpD,CAAC;YACD,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC1C,CAAC;QACD,KAAK,EAAE,KAAK;QACZ,GAAG,YAAY;KAChB,CAAC,CAAC;IAEH,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;QACxB,OAAO,gBAAgB,IAAI,IAAI,CAAC;IAClC,CAAC;IAED,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACpB,OAAO,iBAAiB,IAAI,IAAI,CAAC;IACnC,CAAC;IAED,OAAO,KAAC,IAAI,OAAK,SAAS,YAAG,SAAS,CAAC,IAAI,GAAQ,CAAC;AACtD,CAAC"}
|
@@ -0,0 +1,81 @@
|
|
1
|
+
"use client";
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
3
|
+
import { Image } from "react-native";
|
4
|
+
import { SvgXml } from "react-native-svg";
|
5
|
+
import { useWalletIcon } from "../../../../core/utils/walletIcon.js";
|
6
|
+
import { getAuthProviderImage } from "../../components/WalletImage.js";
|
7
|
+
/**
|
8
|
+
* This component tries to resolve the icon of a given wallet, then return an image.
|
9
|
+
* @returns an <img /> with the src of the wallet icon
|
10
|
+
*
|
11
|
+
* @example
|
12
|
+
* ### Basic usage
|
13
|
+
* ```tsx
|
14
|
+
* import { WalletProvider, WalletIcon } from "thirdweb/react";
|
15
|
+
*
|
16
|
+
* <WalletProvider id="io.metamask">
|
17
|
+
* <WalletIcon />
|
18
|
+
* </WalletProvider>
|
19
|
+
* ```
|
20
|
+
*
|
21
|
+
* Result: An <img /> component with the src of the icon
|
22
|
+
* ```html
|
23
|
+
* <img src="metamask-icon.png" />
|
24
|
+
* ```
|
25
|
+
*
|
26
|
+
* ### Show a loading sign while the icon is being loaded
|
27
|
+
* ```tsx
|
28
|
+
* <WalletIcon loadingComponent={<Spinner />} />
|
29
|
+
* ```
|
30
|
+
*
|
31
|
+
* ### Fallback to a dummy image if the wallet icon fails to resolve
|
32
|
+
* ```tsx
|
33
|
+
* <WalletIcon fallbackComponent={<img src="blank-image.png" />} />
|
34
|
+
* ```
|
35
|
+
*
|
36
|
+
* ### Usage with queryOptions
|
37
|
+
* WalletIcon uses useQuery() from tanstack query internally.
|
38
|
+
* It allows you to pass a custom queryOptions of your choice for more control of the internal fetching logic
|
39
|
+
* ```tsx
|
40
|
+
* <WalletIcon queryOptions={{ enabled: someLogic, retry: 3, }} />
|
41
|
+
* ```
|
42
|
+
*
|
43
|
+
* @component
|
44
|
+
* @wallet
|
45
|
+
* @beta
|
46
|
+
*/
|
47
|
+
export function WalletIcon({ loadingComponent, fallbackComponent, queryOptions, ...restProps }) {
|
48
|
+
const imageQuery = useWalletIcon({ queryOptions });
|
49
|
+
if (imageQuery.isLoading) {
|
50
|
+
return loadingComponent || null;
|
51
|
+
}
|
52
|
+
if (!imageQuery.data) {
|
53
|
+
return fallbackComponent || null;
|
54
|
+
}
|
55
|
+
return _jsx(Image, { source: { uri: imageQuery.data }, ...restProps });
|
56
|
+
}
|
57
|
+
/**
|
58
|
+
* Social auth provider icon
|
59
|
+
* @returns an <img /> component with the src set to the svg
|
60
|
+
*
|
61
|
+
* @example
|
62
|
+
* ```tsx
|
63
|
+
* import { SocialIcon } from "thirdweb/react";
|
64
|
+
*
|
65
|
+
* <SocialIcon provider="google" />
|
66
|
+
* ```
|
67
|
+
*
|
68
|
+
* Result: An <img /> component with the src of the icon
|
69
|
+
* ```html
|
70
|
+
* <img src="google-icon-svg" />
|
71
|
+
* ```
|
72
|
+
*
|
73
|
+
* @component
|
74
|
+
* @wallet
|
75
|
+
* @beta
|
76
|
+
*/
|
77
|
+
export function SocialIcon({ provider, ...restProps }) {
|
78
|
+
const src = getAuthProviderImage(provider);
|
79
|
+
return _jsx(SvgXml, { xml: src, ...restProps });
|
80
|
+
}
|
81
|
+
//# sourceMappingURL=icon.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"icon.js","sourceRoot":"","sources":["../../../../../../../src/react/native/ui/prebuilt/Wallet/icon.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,KAAK,EAAmB,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,MAAM,EAAiB,MAAM,kBAAkB,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAiCvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,UAAU,UAAU,CAAC,EACzB,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,GAAG,SAAS,EACI;IAChB,MAAM,UAAU,GAAG,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;IACnD,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;QACzB,OAAO,gBAAgB,IAAI,IAAI,CAAC;IAClC,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACrB,OAAO,iBAAiB,IAAI,IAAI,CAAC;IACnC,CAAC;IACD,OAAO,KAAC,KAAK,IAAC,MAAM,EAAE,EAAE,GAAG,EAAE,UAAU,CAAC,IAAI,EAAE,KAAM,SAAS,GAAI,CAAC;AACpE,CAAC;AAMD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,UAAU,CAAC,EAAE,QAAQ,EAAE,GAAG,SAAS,EAAmB;IACpE,MAAM,GAAG,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAC3C,OAAO,KAAC,MAAM,IAAC,GAAG,EAAE,GAAG,KAAM,SAAS,GAAI,CAAC;AAC7C,CAAC"}
|
@@ -0,0 +1,63 @@
|
|
1
|
+
"use client";
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
3
|
+
import { Text } from "react-native";
|
4
|
+
import { useWalletName } from "../../../../core/utils/walletname.js";
|
5
|
+
/**
|
6
|
+
* This component fetches then shows the name of a wallet.
|
7
|
+
* It inherits all the attributes of a HTML <span> component, hence you can style it just like how you would style a normal <span>
|
8
|
+
*
|
9
|
+
* @example
|
10
|
+
* ### Basic usage
|
11
|
+
* ```tsx
|
12
|
+
* import { WalletProvider, WalletName } from "thirdweb/react";
|
13
|
+
*
|
14
|
+
* <WalletProvider id="io.metamask">
|
15
|
+
* <WalletName />
|
16
|
+
* </WalletProvider>
|
17
|
+
* ```
|
18
|
+
* Result:
|
19
|
+
* ```html
|
20
|
+
* <span>MetaMask</span>
|
21
|
+
* ```
|
22
|
+
*
|
23
|
+
* ### Show a loading sign when the name is being fetched
|
24
|
+
* ```tsx
|
25
|
+
* import { WalletProvider, WalletName } from "thirdweb/react";
|
26
|
+
*
|
27
|
+
* <WalletProvider {...props}>
|
28
|
+
* <WalletName loadingComponent={<Spinner />} />
|
29
|
+
* </WalletProvider>
|
30
|
+
* ```
|
31
|
+
*
|
32
|
+
* ### Fallback to something when the name fails to resolve
|
33
|
+
* ```tsx
|
34
|
+
* <WalletProvider {...props}>
|
35
|
+
* <WalletName fallbackComponent={<span>Failed to load</span>} />
|
36
|
+
* </WalletProvider>
|
37
|
+
* ```
|
38
|
+
*
|
39
|
+
* ### Custom query options for useQuery
|
40
|
+
* This component uses `@tanstack-query`'s useQuery internally.
|
41
|
+
* You can use the `queryOptions` prop for more fine-grained control
|
42
|
+
* ```tsx
|
43
|
+
* <WalletName
|
44
|
+
* queryOptions={{
|
45
|
+
* enabled: isEnabled,
|
46
|
+
* retry: 4,
|
47
|
+
* }}
|
48
|
+
* />
|
49
|
+
* @component
|
50
|
+
* @beta
|
51
|
+
* @wallet
|
52
|
+
*/
|
53
|
+
export function WalletName({ loadingComponent, fallbackComponent, queryOptions, formatFn, ...restProps }) {
|
54
|
+
const nameQuery = useWalletName({ queryOptions, formatFn });
|
55
|
+
if (nameQuery.isLoading) {
|
56
|
+
return loadingComponent || null;
|
57
|
+
}
|
58
|
+
if (!nameQuery.data) {
|
59
|
+
return fallbackComponent || null;
|
60
|
+
}
|
61
|
+
return _jsx(Text, { ...restProps, children: nameQuery.data });
|
62
|
+
}
|
63
|
+
//# sourceMappingURL=name.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"name.js","sourceRoot":"","sources":["../../../../../../../src/react/native/ui/prebuilt/Wallet/name.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,IAAI,EAAkB,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AA4CrE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,MAAM,UAAU,UAAU,CAAC,EACzB,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,QAAQ,EACR,GAAG,SAAS,EACI;IAChB,MAAM,SAAS,GAAG,aAAa,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC5D,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;QACxB,OAAO,gBAAgB,IAAI,IAAI,CAAC;IAClC,CAAC;IACD,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACpB,OAAO,iBAAiB,IAAI,IAAI,CAAC;IACnC,CAAC;IACD,OAAO,KAAC,IAAI,OAAK,SAAS,YAAG,SAAS,CAAC,IAAI,GAAQ,CAAC;AACtD,CAAC"}
|
@@ -2,23 +2,7 @@
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
3
3
|
import { hexToNumber } from "@noble/curves/abstract/utils";
|
4
4
|
import { useId, useMemo } from "react";
|
5
|
-
|
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
|
-
];
|
5
|
+
import { COLOR_OPTIONS } from "../../../core/utils/account.js";
|
22
6
|
/**
|
23
7
|
* A unique gradient avatar based on the provided address.
|
24
8
|
* @param props The component props.
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Blobbie.js","sourceRoot":"","sources":["../../../../../../src/react/web/ui/ConnectWallet/Blobbie.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;
|
1
|
+
{"version":3,"file":"Blobbie.js","sourceRoot":"","sources":["../../../../../../src/react/web/ui/ConnectWallet/Blobbie.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAa/D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,OAAO,CAAC,KAAmB;IACzC,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,MAAM,MAAM,GAAG,OAAO,CACpB,GAAG,EAAE,CACH,aAAa,CACX,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,MAAM,CAClD,EACvB,CAAC,KAAK,CAAC,OAAO,CAAC,CAChB,CAAC;IAEF,OAAO,CACL,cACE,EAAE,EAAE,EAAE,EACN,KAAK,EAAE;YACL,GAAG,KAAK,CAAC,KAAK;YACd,eAAe,EAAE,2CAA2C,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG;YACtF,GAAG,CAAC,KAAK,CAAC,IAAI;gBACZ,CAAC,CAAC;oBACE,KAAK,EAAE,GAAG,KAAK,CAAC,IAAI,IAAI;oBACxB,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,IAAI;iBAC1B;gBACH,CAAC,CAAC,SAAS,CAAC;SACf,EACD,SAAS,EAAE,KAAK,CAAC,SAAS,GAC1B,CACH,CAAC;AACJ,CAAC"}
|
@@ -3,6 +3,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
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 { useActiveAccount } from "../../../core/hooks/wallets/useActiveAccount.js";
|
@@ -19,7 +20,6 @@ import { Spinner } from "../components/Spinner.js";
|
|
19
20
|
import { Container } from "../components/basic.js";
|
20
21
|
import { Button } from "../components/buttons.js";
|
21
22
|
import { fadeInAnimation } from "../design-system/animations.js";
|
22
|
-
import { AccountProvider } from "../prebuilt/Account/provider.js";
|
23
23
|
import { ConnectedWalletDetails } from "./Details.js";
|
24
24
|
import ConnectModal from "./Modal/ConnectModal.js";
|
25
25
|
import { LockIcon } from "./icons/LockIcon.js";
|