thirdweb 5.69.1-nightly-f368793375d099eec53569330af7a083e558e483-20241120000334 → 5.70.0-nightly-ecaa304a812188da3c81888bb52ca6064093c139-20241121000332
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/client/client.js +1 -0
- package/dist/cjs/client/client.js.map +1 -1
- package/dist/cjs/exports/react.js +32 -3
- package/dist/cjs/exports/react.js.map +1 -1
- package/dist/cjs/extensions/erc721/lazyMinting/read/getBatchesToReveal.js +1 -1
- package/dist/cjs/extensions/modules/common/checkModulesCompatibility.js +5 -0
- package/dist/cjs/extensions/modules/common/checkModulesCompatibility.js.map +1 -1
- package/dist/cjs/extensions/prebuilts/deploy-pack.js +1 -0
- package/dist/cjs/extensions/prebuilts/deploy-pack.js.map +1 -1
- package/dist/cjs/extensions/thirdweb/write/publish.js +4 -0
- package/dist/cjs/extensions/thirdweb/write/publish.js.map +1 -1
- package/dist/cjs/react/core/hooks/others/useChainQuery.js +3 -3
- package/dist/cjs/react/core/hooks/rpc/useBlockNumber.js +1 -1
- package/dist/cjs/react/core/hooks/wallets/useCapabilities.js +1 -1
- package/dist/cjs/react/core/hooks/wallets/useSendCalls.js +3 -3
- package/dist/cjs/react/core/providers/connection-manager.js +3 -0
- package/dist/cjs/react/core/providers/connection-manager.js.map +1 -1
- package/dist/cjs/react/core/utils/wallet.js +2 -1
- package/dist/cjs/react/core/utils/wallet.js.map +1 -1
- package/dist/cjs/react/core/utils/walletIcon.js +2 -0
- package/dist/cjs/react/core/utils/walletIcon.js.map +1 -1
- package/dist/cjs/react/native/hooks/wallets/useProfiles.js +1 -1
- package/dist/cjs/react/native/providers/thirdweb-provider.js +1 -0
- package/dist/cjs/react/native/providers/thirdweb-provider.js.map +1 -1
- package/dist/cjs/react/native/ui/AutoConnect/AutoConnect.js +1 -0
- package/dist/cjs/react/native/ui/AutoConnect/AutoConnect.js.map +1 -1
- package/dist/cjs/react/native/ui/connect/ConnectModal.js +1 -0
- package/dist/cjs/react/native/ui/connect/ConnectModal.js.map +1 -1
- package/dist/cjs/react/native/ui/transaction/TransactionButton.js +1 -0
- package/dist/cjs/react/native/ui/transaction/TransactionButton.js.map +1 -1
- package/dist/cjs/react/web/hooks/wallets/useProfiles.js +1 -1
- package/dist/cjs/react/web/providers/thirdweb-provider.js +1 -0
- package/dist/cjs/react/web/providers/thirdweb-provider.js.map +1 -1
- package/dist/cjs/react/web/ui/AutoConnect/AutoConnect.js +1 -0
- package/dist/cjs/react/web/ui/AutoConnect/AutoConnect.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/Blobbie.js +19 -4
- package/dist/cjs/react/web/ui/ConnectWallet/Blobbie.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/ConnectButton.js +21 -19
- package/dist/cjs/react/web/ui/ConnectWallet/ConnectButton.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/Details.js +18 -13
- package/dist/cjs/react/web/ui/ConnectWallet/Details.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/Modal/ConnectEmbed.js +1 -0
- package/dist/cjs/react/web/ui/ConnectWallet/Modal/ConnectEmbed.js.map +1 -1
- package/dist/cjs/react/web/ui/PayEmbed.js +1 -0
- package/dist/cjs/react/web/ui/PayEmbed.js.map +1 -1
- package/dist/cjs/react/web/ui/SiteEmbed.js +3 -2
- package/dist/cjs/react/web/ui/SiteEmbed.js.map +1 -1
- package/dist/cjs/react/web/ui/SiteLink.js +2 -1
- package/dist/cjs/react/web/ui/SiteLink.js.map +1 -1
- package/dist/cjs/react/web/ui/TransactionButton/index.js +1 -0
- package/dist/cjs/react/web/ui/TransactionButton/index.js.map +1 -1
- package/dist/cjs/react/web/ui/prebuilt/Account/address.js +49 -0
- package/dist/cjs/react/web/ui/prebuilt/Account/address.js.map +1 -0
- package/dist/cjs/react/web/ui/prebuilt/Account/avatar.js +144 -0
- package/dist/cjs/react/web/ui/prebuilt/Account/avatar.js.map +1 -0
- package/dist/cjs/react/web/ui/prebuilt/Account/balance.js +122 -0
- package/dist/cjs/react/web/ui/prebuilt/Account/balance.js.map +1 -0
- package/dist/cjs/react/web/ui/prebuilt/Account/blobbie.js +16 -0
- package/dist/cjs/react/web/ui/prebuilt/Account/blobbie.js.map +1 -0
- package/dist/cjs/react/web/ui/prebuilt/Account/name.js +106 -0
- package/dist/cjs/react/web/ui/prebuilt/Account/name.js.map +1 -0
- package/dist/cjs/react/web/ui/prebuilt/Account/provider.js +43 -0
- package/dist/cjs/react/web/ui/prebuilt/Account/provider.js.map +1 -0
- package/dist/cjs/react/web/ui/prebuilt/NFT/description.js +69 -0
- package/dist/cjs/react/web/ui/prebuilt/NFT/description.js.map +1 -0
- package/dist/cjs/react/web/ui/prebuilt/NFT/hooks.js +45 -0
- package/dist/cjs/react/web/ui/prebuilt/NFT/hooks.js.map +1 -0
- package/dist/cjs/react/web/ui/prebuilt/NFT/media.js +82 -0
- package/dist/cjs/react/web/ui/prebuilt/NFT/media.js.map +1 -0
- package/dist/cjs/react/web/ui/prebuilt/NFT/name.js +68 -0
- package/dist/cjs/react/web/ui/prebuilt/NFT/name.js.map +1 -0
- package/dist/cjs/react/web/ui/prebuilt/NFT/provider.js +55 -0
- package/dist/cjs/react/web/ui/prebuilt/NFT/provider.js.map +1 -0
- package/dist/cjs/react/web/ui/prebuilt/Token/icon.js +113 -0
- package/dist/cjs/react/web/ui/prebuilt/Token/icon.js.map +1 -0
- package/dist/cjs/react/web/ui/prebuilt/Token/name.js +137 -0
- package/dist/cjs/react/web/ui/prebuilt/Token/name.js.map +1 -0
- package/dist/cjs/react/web/ui/prebuilt/Token/provider.js +54 -0
- package/dist/cjs/react/web/ui/prebuilt/Token/provider.js.map +1 -0
- package/dist/cjs/react/web/ui/prebuilt/Token/symbol.js +134 -0
- package/dist/cjs/react/web/ui/prebuilt/Token/symbol.js.map +1 -0
- package/dist/cjs/react/web/ui/prebuilt/thirdweb/BuyDirectListingButton/index.js +1 -0
- package/dist/cjs/react/web/ui/prebuilt/thirdweb/BuyDirectListingButton/index.js.map +1 -1
- package/dist/cjs/react/web/ui/prebuilt/thirdweb/ClaimButton/index.js +1 -0
- package/dist/cjs/react/web/ui/prebuilt/thirdweb/ClaimButton/index.js.map +1 -1
- package/dist/cjs/react/web/ui/prebuilt/thirdweb/CreateDirectListingButton/index.js +1 -0
- package/dist/cjs/react/web/ui/prebuilt/thirdweb/CreateDirectListingButton/index.js.map +1 -1
- package/dist/cjs/storage/unpin.js +1 -1
- package/dist/cjs/storage/upload.js +1 -0
- package/dist/cjs/storage/upload.js.map +1 -1
- package/dist/cjs/transaction/actions/to-serializable-transaction.js +1 -1
- package/dist/cjs/transaction/actions/zksync/send-eip712-transaction.js +5 -0
- package/dist/cjs/transaction/actions/zksync/send-eip712-transaction.js.map +1 -1
- package/dist/cjs/utils/any-evm/zksync/isZkSyncChain.js +5 -0
- package/dist/cjs/utils/any-evm/zksync/isZkSyncChain.js.map +1 -1
- package/dist/cjs/utils/config.js +9 -0
- package/dist/cjs/utils/config.js.map +1 -1
- package/dist/cjs/utils/json.js +7 -4
- package/dist/cjs/utils/json.js.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/wallets/eip5792/get-calls-status.js +1 -1
- package/dist/cjs/wallets/eip5792/get-capabilities.js +1 -1
- package/dist/cjs/wallets/eip5792/send-calls.js +2 -2
- package/dist/cjs/wallets/eip5792/wait-for-bundle.js +1 -1
- package/dist/cjs/wallets/in-app/core/users/getUser.js +1 -1
- package/dist/cjs/wallets/smart/smart-wallet.js +1 -0
- package/dist/cjs/wallets/smart/smart-wallet.js.map +1 -1
- package/dist/esm/client/client.js +1 -0
- package/dist/esm/client/client.js.map +1 -1
- package/dist/esm/exports/react.js +17 -1
- package/dist/esm/exports/react.js.map +1 -1
- package/dist/esm/extensions/erc721/lazyMinting/read/getBatchesToReveal.js +1 -1
- package/dist/esm/extensions/modules/common/checkModulesCompatibility.js +5 -0
- package/dist/esm/extensions/modules/common/checkModulesCompatibility.js.map +1 -1
- package/dist/esm/extensions/prebuilts/deploy-pack.js +1 -0
- package/dist/esm/extensions/prebuilts/deploy-pack.js.map +1 -1
- package/dist/esm/extensions/thirdweb/write/publish.js +4 -0
- package/dist/esm/extensions/thirdweb/write/publish.js.map +1 -1
- package/dist/esm/react/core/hooks/others/useChainQuery.js +3 -3
- package/dist/esm/react/core/hooks/rpc/useBlockNumber.js +1 -1
- package/dist/esm/react/core/hooks/wallets/useCapabilities.js +1 -1
- package/dist/esm/react/core/hooks/wallets/useSendCalls.js +3 -3
- package/dist/esm/react/core/providers/connection-manager.js +3 -0
- package/dist/esm/react/core/providers/connection-manager.js.map +1 -1
- package/dist/esm/react/core/utils/wallet.js +2 -1
- package/dist/esm/react/core/utils/wallet.js.map +1 -1
- package/dist/esm/react/core/utils/walletIcon.js +2 -0
- package/dist/esm/react/core/utils/walletIcon.js.map +1 -1
- package/dist/esm/react/native/hooks/wallets/useProfiles.js +1 -1
- package/dist/esm/react/native/providers/thirdweb-provider.js +1 -0
- package/dist/esm/react/native/providers/thirdweb-provider.js.map +1 -1
- package/dist/esm/react/native/ui/AutoConnect/AutoConnect.js +1 -0
- package/dist/esm/react/native/ui/AutoConnect/AutoConnect.js.map +1 -1
- package/dist/esm/react/native/ui/connect/ConnectModal.js +1 -0
- package/dist/esm/react/native/ui/connect/ConnectModal.js.map +1 -1
- package/dist/esm/react/native/ui/transaction/TransactionButton.js +1 -0
- package/dist/esm/react/native/ui/transaction/TransactionButton.js.map +1 -1
- package/dist/esm/react/web/hooks/wallets/useProfiles.js +1 -1
- package/dist/esm/react/web/providers/thirdweb-provider.js +1 -0
- package/dist/esm/react/web/providers/thirdweb-provider.js.map +1 -1
- package/dist/esm/react/web/ui/AutoConnect/AutoConnect.js +1 -0
- package/dist/esm/react/web/ui/AutoConnect/AutoConnect.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/Blobbie.js +19 -4
- package/dist/esm/react/web/ui/ConnectWallet/Blobbie.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/ConnectButton.js +21 -19
- package/dist/esm/react/web/ui/ConnectWallet/ConnectButton.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/Details.js +19 -14
- package/dist/esm/react/web/ui/ConnectWallet/Details.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/Modal/ConnectEmbed.js +1 -0
- package/dist/esm/react/web/ui/ConnectWallet/Modal/ConnectEmbed.js.map +1 -1
- package/dist/esm/react/web/ui/PayEmbed.js +1 -0
- package/dist/esm/react/web/ui/PayEmbed.js.map +1 -1
- package/dist/esm/react/web/ui/SiteEmbed.js +3 -2
- package/dist/esm/react/web/ui/SiteEmbed.js.map +1 -1
- package/dist/esm/react/web/ui/SiteLink.js +2 -1
- package/dist/esm/react/web/ui/SiteLink.js.map +1 -1
- package/dist/esm/react/web/ui/TransactionButton/index.js +1 -0
- package/dist/esm/react/web/ui/TransactionButton/index.js.map +1 -1
- package/dist/esm/react/web/ui/prebuilt/Account/address.js +46 -0
- package/dist/esm/react/web/ui/prebuilt/Account/address.js.map +1 -0
- package/dist/esm/react/web/ui/prebuilt/Account/avatar.js +141 -0
- package/dist/esm/react/web/ui/prebuilt/Account/avatar.js.map +1 -0
- package/dist/esm/react/web/ui/prebuilt/Account/balance.js +119 -0
- package/dist/esm/react/web/ui/prebuilt/Account/balance.js.map +1 -0
- package/dist/esm/react/web/ui/prebuilt/Account/blobbie.js +13 -0
- package/dist/esm/react/web/ui/prebuilt/Account/blobbie.js.map +1 -0
- package/dist/esm/react/web/ui/prebuilt/Account/name.js +103 -0
- package/dist/esm/react/web/ui/prebuilt/Account/name.js.map +1 -0
- package/dist/esm/react/web/ui/prebuilt/Account/provider.js +39 -0
- package/dist/esm/react/web/ui/prebuilt/Account/provider.js.map +1 -0
- package/dist/esm/react/web/ui/prebuilt/NFT/description.js +66 -0
- package/dist/esm/react/web/ui/prebuilt/NFT/description.js.map +1 -0
- package/dist/esm/react/web/ui/prebuilt/NFT/hooks.js +41 -0
- package/dist/esm/react/web/ui/prebuilt/NFT/hooks.js.map +1 -0
- package/dist/esm/react/web/ui/prebuilt/NFT/media.js +79 -0
- package/dist/esm/react/web/ui/prebuilt/NFT/media.js.map +1 -0
- package/dist/esm/react/web/ui/prebuilt/NFT/name.js +65 -0
- package/dist/esm/react/web/ui/prebuilt/NFT/name.js.map +1 -0
- package/dist/esm/react/web/ui/prebuilt/NFT/provider.js +50 -0
- package/dist/esm/react/web/ui/prebuilt/NFT/provider.js.map +1 -0
- package/dist/esm/react/web/ui/prebuilt/Token/icon.js +110 -0
- package/dist/esm/react/web/ui/prebuilt/Token/icon.js.map +1 -0
- package/dist/esm/react/web/ui/prebuilt/Token/name.js +134 -0
- package/dist/esm/react/web/ui/prebuilt/Token/name.js.map +1 -0
- package/dist/esm/react/web/ui/prebuilt/Token/provider.js +50 -0
- package/dist/esm/react/web/ui/prebuilt/Token/provider.js.map +1 -0
- package/dist/esm/react/web/ui/prebuilt/Token/symbol.js +131 -0
- package/dist/esm/react/web/ui/prebuilt/Token/symbol.js.map +1 -0
- package/dist/esm/react/web/ui/prebuilt/thirdweb/BuyDirectListingButton/index.js +1 -0
- package/dist/esm/react/web/ui/prebuilt/thirdweb/BuyDirectListingButton/index.js.map +1 -1
- package/dist/esm/react/web/ui/prebuilt/thirdweb/ClaimButton/index.js +1 -0
- package/dist/esm/react/web/ui/prebuilt/thirdweb/ClaimButton/index.js.map +1 -1
- package/dist/esm/react/web/ui/prebuilt/thirdweb/CreateDirectListingButton/index.js +1 -0
- package/dist/esm/react/web/ui/prebuilt/thirdweb/CreateDirectListingButton/index.js.map +1 -1
- package/dist/esm/storage/unpin.js +1 -1
- package/dist/esm/storage/upload.js +1 -0
- package/dist/esm/storage/upload.js.map +1 -1
- package/dist/esm/transaction/actions/to-serializable-transaction.js +1 -1
- package/dist/esm/transaction/actions/zksync/send-eip712-transaction.js +5 -0
- package/dist/esm/transaction/actions/zksync/send-eip712-transaction.js.map +1 -1
- package/dist/esm/utils/any-evm/zksync/isZkSyncChain.js +5 -0
- package/dist/esm/utils/any-evm/zksync/isZkSyncChain.js.map +1 -1
- package/dist/esm/utils/config.js +9 -0
- package/dist/esm/utils/config.js.map +1 -1
- package/dist/esm/utils/json.js +6 -2
- package/dist/esm/utils/json.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/wallets/eip5792/get-calls-status.js +1 -1
- package/dist/esm/wallets/eip5792/get-capabilities.js +1 -1
- package/dist/esm/wallets/eip5792/send-calls.js +2 -2
- package/dist/esm/wallets/eip5792/wait-for-bundle.js +1 -1
- package/dist/esm/wallets/in-app/core/users/getUser.js +1 -1
- package/dist/esm/wallets/smart/smart-wallet.js +1 -0
- package/dist/esm/wallets/smart/smart-wallet.js.map +1 -1
- package/dist/types/client/client.d.ts +1 -0
- package/dist/types/client/client.d.ts.map +1 -1
- package/dist/types/exports/react.d.ts +14 -1
- package/dist/types/exports/react.d.ts.map +1 -1
- package/dist/types/extensions/erc721/lazyMinting/read/getBatchesToReveal.d.ts +1 -1
- package/dist/types/extensions/modules/common/checkModulesCompatibility.d.ts +5 -0
- package/dist/types/extensions/modules/common/checkModulesCompatibility.d.ts.map +1 -1
- package/dist/types/extensions/prebuilts/deploy-pack.d.ts +1 -0
- package/dist/types/extensions/prebuilts/deploy-pack.d.ts.map +1 -1
- package/dist/types/extensions/thirdweb/write/publish.d.ts +4 -0
- package/dist/types/extensions/thirdweb/write/publish.d.ts.map +1 -1
- package/dist/types/react/core/hooks/others/useChainQuery.d.ts +3 -3
- package/dist/types/react/core/hooks/rpc/useBlockNumber.d.ts +1 -1
- package/dist/types/react/core/hooks/wallets/useCapabilities.d.ts +1 -1
- package/dist/types/react/core/hooks/wallets/useSendCalls.d.ts +3 -3
- package/dist/types/react/core/providers/connection-manager.d.ts +3 -0
- package/dist/types/react/core/providers/connection-manager.d.ts.map +1 -1
- package/dist/types/react/core/utils/wallet.d.ts +2 -1
- package/dist/types/react/core/utils/wallet.d.ts.map +1 -1
- package/dist/types/react/core/utils/walletIcon.d.ts +2 -0
- package/dist/types/react/core/utils/walletIcon.d.ts.map +1 -1
- package/dist/types/react/native/hooks/wallets/useProfiles.d.ts +1 -1
- package/dist/types/react/native/providers/thirdweb-provider.d.ts +1 -0
- package/dist/types/react/native/providers/thirdweb-provider.d.ts.map +1 -1
- package/dist/types/react/native/ui/AutoConnect/AutoConnect.d.ts +1 -0
- package/dist/types/react/native/ui/AutoConnect/AutoConnect.d.ts.map +1 -1
- package/dist/types/react/native/ui/connect/ConnectModal.d.ts +1 -0
- package/dist/types/react/native/ui/connect/ConnectModal.d.ts.map +1 -1
- package/dist/types/react/native/ui/transaction/TransactionButton.d.ts +1 -0
- package/dist/types/react/native/ui/transaction/TransactionButton.d.ts.map +1 -1
- package/dist/types/react/web/hooks/wallets/useProfiles.d.ts +1 -1
- package/dist/types/react/web/providers/thirdweb-provider.d.ts +1 -0
- package/dist/types/react/web/providers/thirdweb-provider.d.ts.map +1 -1
- package/dist/types/react/web/ui/AutoConnect/AutoConnect.d.ts +1 -0
- package/dist/types/react/web/ui/AutoConnect/AutoConnect.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/Blobbie.d.ts +22 -5
- package/dist/types/react/web/ui/ConnectWallet/Blobbie.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/ConnectButton.d.ts +2 -1
- package/dist/types/react/web/ui/ConnectWallet/ConnectButton.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/Details.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/Modal/ConnectEmbed.d.ts +1 -0
- package/dist/types/react/web/ui/ConnectWallet/Modal/ConnectEmbed.d.ts.map +1 -1
- package/dist/types/react/web/ui/PayEmbed.d.ts +2 -2
- package/dist/types/react/web/ui/PayEmbed.d.ts.map +1 -1
- package/dist/types/react/web/ui/SiteEmbed.d.ts +3 -2
- package/dist/types/react/web/ui/SiteEmbed.d.ts.map +1 -1
- package/dist/types/react/web/ui/SiteLink.d.ts +2 -1
- package/dist/types/react/web/ui/SiteLink.d.ts.map +1 -1
- package/dist/types/react/web/ui/TransactionButton/index.d.ts +1 -0
- package/dist/types/react/web/ui/TransactionButton/index.d.ts.map +1 -1
- package/dist/types/react/web/ui/prebuilt/Account/address.d.ts +52 -0
- package/dist/types/react/web/ui/prebuilt/Account/address.d.ts.map +1 -0
- package/dist/types/react/web/ui/prebuilt/Account/avatar.d.ts +142 -0
- package/dist/types/react/web/ui/prebuilt/Account/avatar.d.ts.map +1 -0
- package/dist/types/react/web/ui/prebuilt/Account/balance.d.ts +137 -0
- package/dist/types/react/web/ui/prebuilt/Account/balance.d.ts.map +1 -0
- package/dist/types/react/web/ui/prebuilt/Account/blobbie.d.ts +8 -0
- package/dist/types/react/web/ui/prebuilt/Account/blobbie.d.ts.map +1 -0
- package/dist/types/react/web/ui/prebuilt/Account/name.d.ts +119 -0
- package/dist/types/react/web/ui/prebuilt/Account/name.d.ts.map +1 -0
- package/dist/types/react/web/ui/prebuilt/Account/provider.d.ts +45 -0
- package/dist/types/react/web/ui/prebuilt/Account/provider.d.ts.map +1 -0
- package/dist/types/react/web/ui/prebuilt/NFT/description.d.ts +59 -0
- package/dist/types/react/web/ui/prebuilt/NFT/description.d.ts.map +1 -0
- package/dist/types/react/web/ui/prebuilt/NFT/hooks.d.ts +14 -0
- package/dist/types/react/web/ui/prebuilt/NFT/hooks.d.ts.map +1 -0
- package/dist/types/react/web/ui/prebuilt/NFT/media.d.ts +75 -0
- package/dist/types/react/web/ui/prebuilt/NFT/media.d.ts.map +1 -0
- package/dist/types/react/web/ui/prebuilt/NFT/name.d.ts +59 -0
- package/dist/types/react/web/ui/prebuilt/NFT/name.d.ts.map +1 -0
- package/dist/types/react/web/ui/prebuilt/NFT/provider.d.ts +55 -0
- package/dist/types/react/web/ui/prebuilt/NFT/provider.d.ts.map +1 -0
- package/dist/types/react/web/ui/prebuilt/Token/icon.d.ts +95 -0
- package/dist/types/react/web/ui/prebuilt/Token/icon.d.ts.map +1 -0
- package/dist/types/react/web/ui/prebuilt/Token/name.d.ts +140 -0
- package/dist/types/react/web/ui/prebuilt/Token/name.d.ts.map +1 -0
- package/dist/types/react/web/ui/prebuilt/Token/provider.d.ts +61 -0
- package/dist/types/react/web/ui/prebuilt/Token/provider.d.ts.map +1 -0
- package/dist/types/react/web/ui/prebuilt/Token/symbol.d.ts +137 -0
- package/dist/types/react/web/ui/prebuilt/Token/symbol.d.ts.map +1 -0
- package/dist/types/react/web/ui/prebuilt/thirdweb/BuyDirectListingButton/index.d.ts +1 -0
- package/dist/types/react/web/ui/prebuilt/thirdweb/BuyDirectListingButton/index.d.ts.map +1 -1
- package/dist/types/react/web/ui/prebuilt/thirdweb/ClaimButton/index.d.ts +1 -0
- package/dist/types/react/web/ui/prebuilt/thirdweb/ClaimButton/index.d.ts.map +1 -1
- package/dist/types/react/web/ui/prebuilt/thirdweb/CreateDirectListingButton/index.d.ts +1 -0
- package/dist/types/react/web/ui/prebuilt/thirdweb/CreateDirectListingButton/index.d.ts.map +1 -1
- package/dist/types/storage/unpin.d.ts +1 -1
- package/dist/types/storage/upload.d.ts +1 -0
- package/dist/types/storage/upload.d.ts.map +1 -1
- package/dist/types/transaction/actions/to-serializable-transaction.d.ts +1 -1
- package/dist/types/transaction/actions/zksync/send-eip712-transaction.d.ts +5 -0
- package/dist/types/transaction/actions/zksync/send-eip712-transaction.d.ts.map +1 -1
- package/dist/types/utils/any-evm/zksync/isZkSyncChain.d.ts +5 -0
- package/dist/types/utils/any-evm/zksync/isZkSyncChain.d.ts.map +1 -1
- package/dist/types/utils/config.d.ts +9 -0
- package/dist/types/utils/config.d.ts.map +1 -1
- package/dist/types/utils/json.d.ts +1 -1
- package/dist/types/utils/json.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/types/wallets/eip5792/get-calls-status.d.ts +1 -1
- package/dist/types/wallets/eip5792/get-capabilities.d.ts +1 -1
- package/dist/types/wallets/eip5792/send-calls.d.ts +2 -2
- package/dist/types/wallets/eip5792/wait-for-bundle.d.ts +1 -1
- package/dist/types/wallets/in-app/core/users/getUser.d.ts +1 -1
- package/dist/types/wallets/smart/smart-wallet.d.ts +1 -0
- package/dist/types/wallets/smart/smart-wallet.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/client/client.ts +1 -0
- package/src/exports/react.ts +56 -2
- package/src/extensions/erc721/lazyMinting/read/getBatchesToReveal.ts +1 -1
- package/src/extensions/modules/common/checkModulesCompatibility.ts +5 -0
- package/src/extensions/prebuilts/deploy-pack.ts +1 -0
- package/src/extensions/thirdweb/write/publish.ts +4 -0
- package/src/react/core/hooks/others/useChainQuery.ts +3 -3
- package/src/react/core/hooks/rpc/useBlockNumber.ts +1 -1
- package/src/react/core/hooks/wallets/useCapabilities.ts +1 -1
- package/src/react/core/hooks/wallets/useSendCalls.ts +3 -3
- package/src/react/core/providers/connection-manager.tsx +3 -0
- package/src/react/core/utils/wallet.ts +2 -1
- package/src/react/core/utils/walletIcon.ts +2 -0
- package/src/react/native/hooks/wallets/useProfiles.ts +1 -1
- package/src/react/native/providers/thirdweb-provider.tsx +1 -0
- package/src/react/native/ui/AutoConnect/AutoConnect.tsx +1 -0
- package/src/react/native/ui/connect/ConnectModal.tsx +1 -0
- package/src/react/native/ui/transaction/TransactionButton.tsx +1 -0
- package/src/react/web/hooks/wallets/useProfiles.ts +1 -1
- package/src/react/web/providers/thirdweb-provider.tsx +1 -0
- package/src/react/web/ui/AutoConnect/AutoConnect.tsx +1 -0
- package/src/react/web/ui/ConnectWallet/Blobbie.tsx +31 -4
- package/src/react/web/ui/ConnectWallet/ConnectButton.tsx +36 -32
- package/src/react/web/ui/ConnectWallet/Details.tsx +91 -58
- package/src/react/web/ui/ConnectWallet/Modal/ConnectEmbed.tsx +1 -0
- package/src/react/web/ui/PayEmbed.tsx +2 -2
- package/src/react/web/ui/SiteEmbed.tsx +3 -2
- package/src/react/web/ui/SiteLink.tsx +2 -1
- package/src/react/web/ui/TransactionButton/index.tsx +1 -0
- package/src/react/web/ui/prebuilt/Account/address.test.tsx +28 -0
- package/src/react/web/ui/prebuilt/Account/address.tsx +64 -0
- package/src/react/web/ui/prebuilt/Account/avatar.test.tsx +48 -0
- package/src/react/web/ui/prebuilt/Account/avatar.tsx +221 -0
- package/src/react/web/ui/prebuilt/Account/balance.test.tsx +54 -0
- package/src/react/web/ui/prebuilt/Account/balance.tsx +202 -0
- package/src/react/web/ui/prebuilt/Account/blobbie.tsx +12 -0
- package/src/react/web/ui/prebuilt/Account/name.test.tsx +62 -0
- package/src/react/web/ui/prebuilt/Account/name.tsx +175 -0
- package/src/react/web/ui/prebuilt/Account/provider.test.tsx +38 -0
- package/src/react/web/ui/prebuilt/Account/provider.tsx +69 -0
- package/src/react/web/ui/prebuilt/NFT/NFT.test.tsx +17 -14
- package/src/react/web/ui/prebuilt/NFT/description.tsx +87 -0
- package/src/react/web/ui/prebuilt/NFT/hooks.tsx +53 -0
- package/src/react/web/ui/prebuilt/NFT/media.tsx +119 -0
- package/src/react/web/ui/prebuilt/NFT/name.tsx +85 -0
- package/src/react/web/ui/prebuilt/NFT/provider.tsx +75 -0
- package/src/react/web/ui/prebuilt/Token/icon.tsx +164 -0
- package/src/react/web/ui/prebuilt/Token/name.tsx +201 -0
- package/src/react/web/ui/prebuilt/Token/provider.tsx +86 -0
- package/src/react/web/ui/prebuilt/Token/symbol.tsx +201 -0
- package/src/react/web/ui/prebuilt/thirdweb/BuyDirectListingButton/index.tsx +1 -0
- package/src/react/web/ui/prebuilt/thirdweb/ClaimButton/index.tsx +1 -0
- package/src/react/web/ui/prebuilt/thirdweb/CreateDirectListingButton/index.tsx +1 -0
- package/src/storage/unpin.ts +1 -1
- package/src/storage/upload.ts +1 -0
- package/src/transaction/actions/to-serializable-transaction.ts +1 -1
- package/src/transaction/actions/zksync/send-eip712-transaction.ts +5 -0
- package/src/utils/any-evm/zksync/isZkSyncChain.ts +5 -0
- package/src/utils/config.ts +9 -0
- package/src/utils/json.ts +8 -2
- package/src/version.ts +1 -1
- package/src/wallets/eip5792/get-calls-status.ts +1 -1
- package/src/wallets/eip5792/get-capabilities.ts +1 -1
- package/src/wallets/eip5792/send-calls.ts +2 -2
- package/src/wallets/eip5792/wait-for-bundle.ts +1 -1
- package/src/wallets/in-app/core/users/getUser.ts +1 -1
- package/src/wallets/smart/smart-wallet.ts +1 -0
- package/dist/cjs/react/web/ui/prebuilt/NFT/NFT.js +0 -217
- package/dist/cjs/react/web/ui/prebuilt/NFT/NFT.js.map +0 -1
- package/dist/esm/react/web/ui/prebuilt/NFT/NFT.js +0 -212
- package/dist/esm/react/web/ui/prebuilt/NFT/NFT.js.map +0 -1
- package/dist/types/react/web/ui/prebuilt/NFT/NFT.d.ts +0 -76
- package/dist/types/react/web/ui/prebuilt/NFT/NFT.d.ts.map +0 -1
- package/src/extensions/prebuilts/deploy-published.test.ts +0 -132
- package/src/react/web/ui/prebuilt/NFT/NFT.tsx +0 -272
- package/src/wallets/smart/smart-wallet-integration-v07.test.ts +0 -270
- package/src/wallets/smart/smart-wallet-integration.test.ts +0 -375
@@ -0,0 +1,144 @@
|
|
1
|
+
"use strict";
|
2
|
+
"use client";
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
4
|
+
exports.AccountAvatar = AccountAvatar;
|
5
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
6
|
+
const react_query_1 = require("@tanstack/react-query");
|
7
|
+
const resolve_avatar_js_1 = require("../../../../../extensions/ens/resolve-avatar.js");
|
8
|
+
const resolve_name_js_1 = require("../../../../../extensions/ens/resolve-name.js");
|
9
|
+
const profiles_js_1 = require("../../../../../social/profiles.js");
|
10
|
+
const avatar_js_1 = require("../../../../../utils/ens/avatar.js");
|
11
|
+
const provider_js_1 = require("./provider.js");
|
12
|
+
/**
|
13
|
+
* The component for showing the avatar of the account.
|
14
|
+
* If fetches all the social profiles linked to your wallet, including: Farcaster, ENS, Lens (more to be added)
|
15
|
+
* You can choose which social profile you want to display. Defaults to the first item in the list.
|
16
|
+
*
|
17
|
+
* @example
|
18
|
+
* ### Basic usage
|
19
|
+
* ```tsx
|
20
|
+
* import { AccountProvider, AccountAvatar } from "thirdweb/react";
|
21
|
+
*
|
22
|
+
* <AccountProvider address="0x...">
|
23
|
+
* <AccountAvatar />
|
24
|
+
* </AccountProvider>
|
25
|
+
* ```
|
26
|
+
* Result: An <img /> component, if the avatar is resolved successfully
|
27
|
+
* ```html
|
28
|
+
* <img alt="" src="resolved-url-for-the-avatar" />
|
29
|
+
* ```
|
30
|
+
*
|
31
|
+
* ### Show a loading sign when the avatar is being resolved
|
32
|
+
* ```tsx
|
33
|
+
* import { AccountProvider, AccountAvatar } from "thirdweb/react";
|
34
|
+
*
|
35
|
+
* <AccountProvider address="0x...">
|
36
|
+
* <AccountAvatar
|
37
|
+
* loadingComponent={<YourLoadingComponent />}
|
38
|
+
* />
|
39
|
+
* </AccountProvider>
|
40
|
+
* ```
|
41
|
+
*
|
42
|
+
* ### Fallback to something when the avatar fails to resolve
|
43
|
+
* ```tsx
|
44
|
+
* import { AccountProvider, AccountAvatar } from "thirdweb/react";
|
45
|
+
*
|
46
|
+
* <AccountProvider address="0x...">
|
47
|
+
* <AccountAvatar
|
48
|
+
* fallbackComponent={<DummyImage />}
|
49
|
+
* />
|
50
|
+
* </AccountProvider>
|
51
|
+
* ```
|
52
|
+
*
|
53
|
+
* ### Select a social profile to display
|
54
|
+
* If you wallet associates with more than one social profiles (Lens, Farcaster, ENS, etc.)
|
55
|
+
* You can specify which service you want to prioritize using the `socialType` props
|
56
|
+
* ```tsx
|
57
|
+
* import { AccountProvider, AccountAvatar } from "thirdweb/react";
|
58
|
+
*
|
59
|
+
* <AccountProvider address="0x...">
|
60
|
+
* <AccountAvatar
|
61
|
+
* // Choose between: "farcaster" | "lens" | "ens"
|
62
|
+
* socialType={"ens"}
|
63
|
+
* />
|
64
|
+
* </AccountProvider>
|
65
|
+
* ```
|
66
|
+
*
|
67
|
+
* ### Custom ENS resolver chain
|
68
|
+
* This component shares the same props with the ENS extension `resolveAvatar`
|
69
|
+
* ```tsx
|
70
|
+
* import { AccountProvider, AccountAvatar } from "thirdweb/react";
|
71
|
+
* import { base } from "thirdweb/chains";
|
72
|
+
*
|
73
|
+
* <AccountProvider address="0x...">
|
74
|
+
* <AccountAvatar
|
75
|
+
* resolverAddress={"0x..."}
|
76
|
+
* resolverChain={base}
|
77
|
+
* />
|
78
|
+
* </AccountProvider>
|
79
|
+
* ```
|
80
|
+
*
|
81
|
+
* ### Custom query options for useQuery
|
82
|
+
* This component uses `@tanstack-query`'s useQuery internally.
|
83
|
+
* You can use the `queryOptions` prop for more fine-grained control
|
84
|
+
* ```tsx
|
85
|
+
* <AccountAvatar
|
86
|
+
* queryOptions={{
|
87
|
+
* enabled: isEnabled,
|
88
|
+
* retry: 3,
|
89
|
+
* }}
|
90
|
+
* />
|
91
|
+
* ```
|
92
|
+
* @returns An <img /> if the avatar is resolved successfully
|
93
|
+
* @component
|
94
|
+
* @account
|
95
|
+
* @beta
|
96
|
+
*/
|
97
|
+
function AccountAvatar({ socialType, resolverAddress, resolverChain, loadingComponent, fallbackComponent, queryOptions, ...restProps }) {
|
98
|
+
const { address, client } = (0, provider_js_1.useAccountContext)();
|
99
|
+
const avatarQuery = (0, react_query_1.useQuery)({
|
100
|
+
queryKey: ["account-avatar", address],
|
101
|
+
queryFn: async () => {
|
102
|
+
const [socialData, ensName] = await Promise.all([
|
103
|
+
(0, profiles_js_1.getSocialProfiles)({ address, client }),
|
104
|
+
(0, resolve_name_js_1.resolveName)({
|
105
|
+
client,
|
106
|
+
address: address || "",
|
107
|
+
resolverAddress,
|
108
|
+
resolverChain,
|
109
|
+
}),
|
110
|
+
]);
|
111
|
+
const uri = socialData?.filter((p) => p.avatar && (socialType ? p.type === socialType : true))[0]?.avatar;
|
112
|
+
const [resolvedSocialAvatar, resolvedENSAvatar] = await Promise.all([
|
113
|
+
uri ? (0, avatar_js_1.parseAvatarRecord)({ client, uri }) : undefined,
|
114
|
+
ensName
|
115
|
+
? (0, resolve_avatar_js_1.resolveAvatar)({
|
116
|
+
client,
|
117
|
+
name: ensName,
|
118
|
+
})
|
119
|
+
: undefined,
|
120
|
+
]);
|
121
|
+
// If no social image + ens name found -> exit and show <Blobbie />
|
122
|
+
if (!resolvedSocialAvatar && !resolvedENSAvatar) {
|
123
|
+
throw new Error("Failed to resolve social + ens avatar");
|
124
|
+
}
|
125
|
+
// else, prioritize the social image first
|
126
|
+
if (resolvedSocialAvatar) {
|
127
|
+
return resolvedSocialAvatar;
|
128
|
+
}
|
129
|
+
if (resolvedENSAvatar) {
|
130
|
+
return resolvedENSAvatar;
|
131
|
+
}
|
132
|
+
throw new Error("Failed to resolve social + ens avatar");
|
133
|
+
},
|
134
|
+
...queryOptions,
|
135
|
+
});
|
136
|
+
if (avatarQuery.isLoading) {
|
137
|
+
return loadingComponent || null;
|
138
|
+
}
|
139
|
+
if (!avatarQuery.data) {
|
140
|
+
return fallbackComponent || null;
|
141
|
+
}
|
142
|
+
return (0, jsx_runtime_1.jsx)("img", { src: avatarQuery.data, ...restProps, alt: restProps.alt });
|
143
|
+
}
|
144
|
+
//# sourceMappingURL=avatar.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"avatar.js","sourceRoot":"","sources":["../../../../../../../src/react/web/ui/prebuilt/Account/avatar.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;AA2Jb,sCAiEC;;AA1ND,uDAAuE;AAGvE,uFAAgF;AAChF,mFAGuD;AACvD,mEAAsE;AAEtE,kEAAuE;AACvE,+CAAkD;AAyDlD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoFG;AACH,SAAgB,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,IAAA,+BAAiB,GAAE,CAAC;IAChD,MAAM,WAAW,GAAG,IAAA,sBAAQ,EAAC;QAC3B,QAAQ,EAAE,CAAC,gBAAgB,EAAE,OAAO,CAAC;QACrC,OAAO,EAAE,KAAK,IAAqB,EAAE;YACnC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC9C,IAAA,+BAAiB,EAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;gBACtC,IAAA,6BAAW,EAAC;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,IAAA,6BAAiB,EAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;gBACpD,OAAO;oBACL,CAAC,CAAC,IAAA,iCAAa,EAAC;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,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,gCAAK,GAAG,EAAE,WAAW,CAAC,IAAI,KAAM,SAAS,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,GAAI,CAAC;AAC3E,CAAC"}
|
@@ -0,0 +1,122 @@
|
|
1
|
+
"use strict";
|
2
|
+
"use client";
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
4
|
+
exports.AccountBalance = AccountBalance;
|
5
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
6
|
+
const react_query_1 = require("@tanstack/react-query");
|
7
|
+
const useActiveWalletChain_js_1 = require("../../../../../react/core/hooks/wallets/useActiveWalletChain.js");
|
8
|
+
const getWalletBalance_js_1 = require("../../../../../wallets/utils/getWalletBalance.js");
|
9
|
+
const provider_js_1 = require("./provider.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 a number and outputs a number
|
33
|
+
* The function is used to modify the display value of the wallet balance
|
34
|
+
*
|
35
|
+
* ```tsx
|
36
|
+
* const roundTo1Decimal = (num: number):number => Math.round(num * 10) / 10;
|
37
|
+
*
|
38
|
+
* <AccountBalance formatFn={roundTo1Decimal} />
|
39
|
+
* ```
|
40
|
+
*
|
41
|
+
* Result:
|
42
|
+
* ```html
|
43
|
+
* <span>1.1 ETH</span>
|
44
|
+
* ```
|
45
|
+
*
|
46
|
+
* ### Show a loading sign when the balance is being fetched
|
47
|
+
* ```tsx
|
48
|
+
* import { AccountProvider, AccountBalance } from "thirdweb/react";
|
49
|
+
*
|
50
|
+
* <AccountProvider address="0x...">
|
51
|
+
* <AccountBalance
|
52
|
+
* chain={ethereum}
|
53
|
+
* loadingComponent={<Spinner />}
|
54
|
+
* />
|
55
|
+
* </AccountProvider>
|
56
|
+
* ```
|
57
|
+
*
|
58
|
+
* ### Fallback to something when the balance fails to resolve
|
59
|
+
* ```tsx
|
60
|
+
* <AccountProvider address="0x...">
|
61
|
+
* <AccountBalance
|
62
|
+
* chain={nonExistentChain}
|
63
|
+
* fallbackComponent={"Failed to load"}
|
64
|
+
* />
|
65
|
+
* </AccountProvider>
|
66
|
+
* ```
|
67
|
+
*
|
68
|
+
* ### Custom query options for useQuery
|
69
|
+
* This component uses `@tanstack-query`'s useQuery internally.
|
70
|
+
* You can use the `queryOptions` prop for more fine-grained control
|
71
|
+
* ```tsx
|
72
|
+
* <AccountBalance
|
73
|
+
* queryOptions={{
|
74
|
+
* enabled: isEnabled,
|
75
|
+
* retry: 4,
|
76
|
+
* }}
|
77
|
+
* />
|
78
|
+
* ```
|
79
|
+
*
|
80
|
+
* @component
|
81
|
+
* @account
|
82
|
+
* @beta
|
83
|
+
*/
|
84
|
+
function AccountBalance({ chain, tokenAddress, formatFn, loadingComponent, fallbackComponent, queryOptions, ...restProps }) {
|
85
|
+
const { address, client } = (0, provider_js_1.useAccountContext)();
|
86
|
+
const walletChain = (0, useActiveWalletChain_js_1.useActiveWalletChain)();
|
87
|
+
const chainToLoad = chain || walletChain;
|
88
|
+
const balanceQuery = (0, react_query_1.useQuery)({
|
89
|
+
queryKey: [
|
90
|
+
"walletBalance",
|
91
|
+
chainToLoad?.id || -1,
|
92
|
+
address || "0x0",
|
93
|
+
{ tokenAddress },
|
94
|
+
],
|
95
|
+
queryFn: async () => {
|
96
|
+
if (!chainToLoad) {
|
97
|
+
throw new Error("chain is required");
|
98
|
+
}
|
99
|
+
if (!client) {
|
100
|
+
throw new Error("client is required");
|
101
|
+
}
|
102
|
+
return (0, getWalletBalance_js_1.getWalletBalance)({
|
103
|
+
chain: chainToLoad,
|
104
|
+
client,
|
105
|
+
address,
|
106
|
+
tokenAddress,
|
107
|
+
});
|
108
|
+
},
|
109
|
+
...queryOptions,
|
110
|
+
});
|
111
|
+
if (balanceQuery.isLoading) {
|
112
|
+
return loadingComponent || null;
|
113
|
+
}
|
114
|
+
if (!balanceQuery.data) {
|
115
|
+
return fallbackComponent || null;
|
116
|
+
}
|
117
|
+
const displayValue = formatFn
|
118
|
+
? formatFn(Number(balanceQuery.data.displayValue))
|
119
|
+
: balanceQuery.data.displayValue;
|
120
|
+
return ((0, jsx_runtime_1.jsxs)("span", { ...restProps, children: [displayValue, " ", balanceQuery.data.symbol] }));
|
121
|
+
}
|
122
|
+
//# sourceMappingURL=balance.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"balance.js","sourceRoot":"","sources":["../../../../../../../src/react/web/ui/prebuilt/Account/balance.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;AAoJb,wCAqDC;;AAvMD,uDAAuE;AAIvE,6GAAuG;AACvG,0FAG0D;AAC1D,+CAAkD;AA+DlD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyEG;AACH,SAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,GAAG,SAAS,EACQ;IACpB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAA,+BAAiB,GAAE,CAAC;IAChD,MAAM,WAAW,GAAG,IAAA,8CAAoB,GAAE,CAAC;IAC3C,MAAM,WAAW,GAAG,KAAK,IAAI,WAAW,CAAC;IACzC,MAAM,YAAY,GAAG,IAAA,sBAAQ,EAAC;QAC5B,QAAQ,EAAE;YACR,eAAe;YACf,WAAW,EAAE,EAAE,IAAI,CAAC,CAAC;YACrB,OAAO,IAAI,KAAK;YAChB,EAAE,YAAY,EAAE;SACR;QACV,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;YACvC,CAAC;YACD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACxC,CAAC;YACD,OAAO,IAAA,sCAAgB,EAAC;gBACtB,KAAK,EAAE,WAAW;gBAClB,MAAM;gBACN,OAAO;gBACP,YAAY;aACb,CAAC,CAAC;QACL,CAAC;QACD,GAAG,YAAY;KAChB,CAAC,CAAC;IAEH,IAAI,YAAY,CAAC,SAAS,EAAE,CAAC;QAC3B,OAAO,gBAAgB,IAAI,IAAI,CAAC;IAClC,CAAC;IAED,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QACvB,OAAO,iBAAiB,IAAI,IAAI,CAAC;IACnC,CAAC;IAED,MAAM,YAAY,GAAG,QAAQ;QAC3B,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAClD,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC;IAEnC,OAAO,CACL,qCAAU,SAAS,aAChB,YAAY,OAAG,YAAY,CAAC,IAAI,CAAC,MAAM,IACnC,CACR,CAAC;AACJ,CAAC"}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.AccountBlobbie = AccountBlobbie;
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
5
|
+
const Blobbie_js_1 = require("../../ConnectWallet/Blobbie.js");
|
6
|
+
const provider_js_1 = require("./provider.js");
|
7
|
+
/**
|
8
|
+
* A wrapper for the Blobbie component
|
9
|
+
* @param props BlobbieProps
|
10
|
+
* @beta
|
11
|
+
*/
|
12
|
+
function AccountBlobbie(props) {
|
13
|
+
const { address } = (0, provider_js_1.useAccountContext)();
|
14
|
+
return (0, jsx_runtime_1.jsx)(Blobbie_js_1.Blobbie, { ...props, address: address });
|
15
|
+
}
|
16
|
+
//# sourceMappingURL=blobbie.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"blobbie.js","sourceRoot":"","sources":["../../../../../../../src/react/web/ui/prebuilt/Account/blobbie.tsx"],"names":[],"mappings":";;AAQA,wCAGC;;AAXD,+DAA4E;AAC5E,+CAAkD;AAElD;;;;GAIG;AACH,SAAgB,cAAc,CAAC,KAAoC;IACjE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,+BAAiB,GAAE,CAAC;IACxC,OAAO,uBAAC,oBAAO,OAAK,KAAK,EAAE,OAAO,EAAE,OAAO,GAAI,CAAC;AAClD,CAAC"}
|
@@ -0,0 +1,106 @@
|
|
1
|
+
"use strict";
|
2
|
+
"use client";
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
4
|
+
exports.AccountName = AccountName;
|
5
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
6
|
+
const react_query_1 = require("@tanstack/react-query");
|
7
|
+
const resolve_name_js_1 = require("../../../../../extensions/ens/resolve-name.js");
|
8
|
+
const profiles_js_1 = require("../../../../../social/profiles.js");
|
9
|
+
const provider_js_1 = require("./provider.js");
|
10
|
+
/**
|
11
|
+
* This component is used to display the name of the account.
|
12
|
+
* A "name" in this context is the username, or account of the social profiles that the wallet may have.
|
13
|
+
* 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.
|
14
|
+
*
|
15
|
+
* This component inherits all attribute of a native HTML <span> element, so you can style it just like how you would style a <span>.
|
16
|
+
*
|
17
|
+
* @param props
|
18
|
+
* @returns A `<span>` containing the name of the account
|
19
|
+
* ```html
|
20
|
+
* <span>{name}</span>
|
21
|
+
* ```
|
22
|
+
*
|
23
|
+
* @example
|
24
|
+
* ### Basic usage
|
25
|
+
* ```tsx
|
26
|
+
* import { AccountProvider, AccountName } from "thirdweb/react";
|
27
|
+
*
|
28
|
+
* <AccountProvider address="0x1234...3f3f" client={client}>
|
29
|
+
* <AccountName />
|
30
|
+
* </AccountProvider>
|
31
|
+
* ```
|
32
|
+
*
|
33
|
+
* ### Show wallet address while social name is being loaded
|
34
|
+
* ```tsx
|
35
|
+
* <AccountName
|
36
|
+
* loadingComponent={<AccountAddress />}
|
37
|
+
* />
|
38
|
+
* ```
|
39
|
+
*
|
40
|
+
*
|
41
|
+
* ### Fallback to showing wallet address if fail to resolve social name
|
42
|
+
* ```tsx
|
43
|
+
* <AccountName
|
44
|
+
* fallbackComponent={<AccountAddress />}
|
45
|
+
* />
|
46
|
+
* ```
|
47
|
+
*
|
48
|
+
* ### Transform the account name using `formatFn` prop
|
49
|
+
* ```tsx
|
50
|
+
* import { isAddress, shortenAddress } from "thirdweb/utils";
|
51
|
+
* import { AccountProvider, AccountName } from "thirdweb/react";
|
52
|
+
*
|
53
|
+
* // Let's say we want the name to be capitalized without using CSS
|
54
|
+
* const formatName = (name: string) => name.toUpperCase();
|
55
|
+
*
|
56
|
+
* return <AccountName formatFn={formatName} />
|
57
|
+
* ```
|
58
|
+
*
|
59
|
+
*
|
60
|
+
* ### Custom query options for useQuery
|
61
|
+
* This component uses `@tanstack-query`'s useQuery internally.
|
62
|
+
* You can use the `queryOptions` prop for more fine-grained control
|
63
|
+
* ```tsx
|
64
|
+
* <AccountName
|
65
|
+
* queryOptions={{
|
66
|
+
* enabled: isEnabled,
|
67
|
+
* retry: 3
|
68
|
+
* }}
|
69
|
+
* />
|
70
|
+
* ```
|
71
|
+
*
|
72
|
+
* @component
|
73
|
+
* @account
|
74
|
+
* @beta
|
75
|
+
*/
|
76
|
+
function AccountName({ resolverAddress, resolverChain, socialType, formatFn, queryOptions, loadingComponent, fallbackComponent, ...restProps }) {
|
77
|
+
const { address, client } = (0, provider_js_1.useAccountContext)();
|
78
|
+
const nameQuery = (0, react_query_1.useQuery)({
|
79
|
+
queryKey: ["account-name", address],
|
80
|
+
queryFn: async () => {
|
81
|
+
const [socialData, ensName] = await Promise.all([
|
82
|
+
(0, profiles_js_1.getSocialProfiles)({ address, client }),
|
83
|
+
(0, resolve_name_js_1.resolveName)({
|
84
|
+
client,
|
85
|
+
address,
|
86
|
+
resolverAddress,
|
87
|
+
resolverChain,
|
88
|
+
}),
|
89
|
+
]);
|
90
|
+
const name = socialData?.filter((p) => p.name && (socialType ? p.type === socialType : true))[0]?.name || ensName;
|
91
|
+
if (!name) {
|
92
|
+
throw new Error("Failed to resolve account name");
|
93
|
+
}
|
94
|
+
return formatFn ? formatFn(name) : name;
|
95
|
+
},
|
96
|
+
...queryOptions,
|
97
|
+
});
|
98
|
+
if (nameQuery.isLoading) {
|
99
|
+
return loadingComponent || null;
|
100
|
+
}
|
101
|
+
if (!nameQuery.data) {
|
102
|
+
return fallbackComponent || null;
|
103
|
+
}
|
104
|
+
return (0, jsx_runtime_1.jsx)("span", { ...restProps, children: nameQuery.data });
|
105
|
+
}
|
106
|
+
//# sourceMappingURL=name.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"name.js","sourceRoot":"","sources":["../../../../../../../src/react/web/ui/prebuilt/Account/name.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;AAgIb,kCA8CC;;AA5KD,uDAAuE;AAGvE,mFAGuD;AACvD,mEAAsE;AAEtE,+CAAkD;AAmDlD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiEG;AACH,SAAgB,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,IAAA,+BAAiB,GAAE,CAAC;IAChD,MAAM,SAAS,GAAG,IAAA,sBAAQ,EAAC;QACzB,QAAQ,EAAE,CAAC,cAAc,EAAE,OAAO,CAAC;QACnC,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC9C,IAAA,+BAAiB,EAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;gBACtC,IAAA,6BAAW,EAAC;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,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,oCAAU,SAAS,YAAG,SAAS,CAAC,IAAI,GAAQ,CAAC;AACtD,CAAC"}
|
@@ -0,0 +1,43 @@
|
|
1
|
+
"use strict";
|
2
|
+
"use client";
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
4
|
+
exports.AccountProvider = AccountProvider;
|
5
|
+
exports.useAccountContext = useAccountContext;
|
6
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
7
|
+
const react_1 = require("react");
|
8
|
+
const AccountProviderContext = /* @__PURE__ */ (0, react_1.createContext)(undefined);
|
9
|
+
/**
|
10
|
+
* A React context provider component that supplies Account-related data to its child components.
|
11
|
+
*
|
12
|
+
* This component serves as a wrapper around the `AccountProviderContext.Provider` and passes
|
13
|
+
* the provided account data down to all of its child components through the context API.
|
14
|
+
*
|
15
|
+
* @example
|
16
|
+
* ```tsx
|
17
|
+
* import { AccountProvider, AccountAvatar, AccountName, AccountAddress } from "thirdweb/react";
|
18
|
+
*
|
19
|
+
* <AccountProvider>
|
20
|
+
* <AccountAvatar />
|
21
|
+
* <AccountName />
|
22
|
+
* <AccountAddress />
|
23
|
+
* </AccountProvider>
|
24
|
+
* ```
|
25
|
+
*
|
26
|
+
* @component
|
27
|
+
* @account
|
28
|
+
* @beta
|
29
|
+
*/
|
30
|
+
function AccountProvider(props) {
|
31
|
+
return ((0, jsx_runtime_1.jsx)(AccountProviderContext.Provider, { value: props, children: props.children }));
|
32
|
+
}
|
33
|
+
/**
|
34
|
+
* @internal
|
35
|
+
*/
|
36
|
+
function useAccountContext() {
|
37
|
+
const ctx = (0, react_1.useContext)(AccountProviderContext);
|
38
|
+
if (!ctx) {
|
39
|
+
throw new Error("AccountProviderContext not found. Make sure you are using AccountName, AccountAvatar, etc. inside an <AccountProvider /> component");
|
40
|
+
}
|
41
|
+
return ctx;
|
42
|
+
}
|
43
|
+
//# sourceMappingURL=provider.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../../../../../src/react/web/ui/prebuilt/Account/provider.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;AA+Cb,0CAQC;AAKD,8CAQC;;AAjED,iCAAkD;AAmBlD,MAAM,sBAAsB,GAAG,eAAe,CAAC,IAAA,qBAAa,EAE1D,SAAS,CAAC,CAAC;AAEb;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,SAAgB,eAAe,CAC7B,KAAoD;IAEpD,OAAO,CACL,uBAAC,sBAAsB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAC1C,KAAK,CAAC,QAAQ,GACiB,CACnC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB;IAC/B,MAAM,GAAG,GAAG,IAAA,kBAAU,EAAC,sBAAsB,CAAC,CAAC;IAC/C,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CACb,oIAAoI,CACrI,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
@@ -0,0 +1,69 @@
|
|
1
|
+
"use strict";
|
2
|
+
"use client";
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
4
|
+
exports.NFTDescription = NFTDescription;
|
5
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
6
|
+
const hooks_js_1 = require("./hooks.js");
|
7
|
+
const provider_js_1 = require("./provider.js");
|
8
|
+
/**
|
9
|
+
* This component fetches and displays an NFT's description. It inherits all the attributes of a <span>
|
10
|
+
* so you can style it just like how you would style a <span> element.
|
11
|
+
* @returns A <span> element containing the description of the NFT
|
12
|
+
*
|
13
|
+
* @example
|
14
|
+
* ### Basic usage
|
15
|
+
* ```tsx
|
16
|
+
* import { NFTProvider, NFTDescription } from "thirdweb/react";
|
17
|
+
*
|
18
|
+
* <NFTProvider>
|
19
|
+
* <NFTDescription />
|
20
|
+
* </NFTProvider>
|
21
|
+
* ```
|
22
|
+
*
|
23
|
+
* ### Show a loading sign while the description is being fetched
|
24
|
+
* ```tsx
|
25
|
+
* import { NFTProvider, NFTDescription } from "thirdweb/react";
|
26
|
+
*
|
27
|
+
* <NFTProvider>
|
28
|
+
* <NFTDescription loadingComponent={<YourLoadingSign />} />
|
29
|
+
* </NFTProvider>
|
30
|
+
* ```
|
31
|
+
*
|
32
|
+
* ### Show something in case the description failed to resolve
|
33
|
+
* ```tsx
|
34
|
+
* import { NFTProvider, NFTDescription } from "thirdweb/react";
|
35
|
+
*
|
36
|
+
* <NFTProvider>
|
37
|
+
* <NFTDescription fallbackComponent={<span>Failed to load description</span>} />
|
38
|
+
* </NFTProvider>
|
39
|
+
* ```
|
40
|
+
*
|
41
|
+
* ### Custom query options for useQuery (tanstack-query)
|
42
|
+
* ```tsx
|
43
|
+
* import { NFTProvider, NFTDescription } from "thirdweb/react";
|
44
|
+
*
|
45
|
+
* <NFTProvider>
|
46
|
+
* <NFTDescription queryOptions={{ retry: 3, enabled: false, }} />
|
47
|
+
* </NFTProvider>
|
48
|
+
* ```
|
49
|
+
*
|
50
|
+
* @component
|
51
|
+
* @nft
|
52
|
+
* @beta
|
53
|
+
*/
|
54
|
+
function NFTDescription({ loadingComponent, fallbackComponent, queryOptions, ...restProps }) {
|
55
|
+
const { contract, tokenId } = (0, provider_js_1.useNFTContext)();
|
56
|
+
const nftQuery = (0, hooks_js_1.useNftInfo)({
|
57
|
+
contract,
|
58
|
+
tokenId,
|
59
|
+
queryOptions,
|
60
|
+
});
|
61
|
+
if (nftQuery.isLoading) {
|
62
|
+
return loadingComponent || null;
|
63
|
+
}
|
64
|
+
if (!nftQuery.data?.metadata?.description) {
|
65
|
+
return fallbackComponent || null;
|
66
|
+
}
|
67
|
+
return (0, jsx_runtime_1.jsx)("span", { ...restProps, children: nftQuery.data.metadata.description });
|
68
|
+
}
|
69
|
+
//# sourceMappingURL=description.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"description.js","sourceRoot":"","sources":["../../../../../../../src/react/web/ui/prebuilt/NFT/description.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;AAgEb,wCAsBC;;AAjFD,yCAAwC;AACxC,+CAA8C;AAY9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,SAAgB,cAAc,CAAC,EAC7B,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,GAAG,SAAS,EACQ;IACpB,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAA,2BAAa,GAAE,CAAC;IAC9C,MAAM,QAAQ,GAAG,IAAA,qBAAU,EAAC;QAC1B,QAAQ;QACR,OAAO;QACP,YAAY;KACb,CAAC,CAAC;IAEH,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;QACvB,OAAO,gBAAgB,IAAI,IAAI,CAAC;IAClC,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;QAC1C,OAAO,iBAAiB,IAAI,IAAI,CAAC;IACnC,CAAC;IAED,OAAO,oCAAU,SAAS,YAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAQ,CAAC;AAC1E,CAAC"}
|
@@ -0,0 +1,45 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.useNftInfo = useNftInfo;
|
4
|
+
exports.getNFTInfo = getNFTInfo;
|
5
|
+
const react_query_1 = require("@tanstack/react-query");
|
6
|
+
const getNFT_js_1 = require("../../../../../extensions/erc721/read/getNFT.js");
|
7
|
+
const getNFT_js_2 = require("../../../../../extensions/erc1155/read/getNFT.js");
|
8
|
+
/**
|
9
|
+
* @internal Only used for the NFT prebuilt components
|
10
|
+
*/
|
11
|
+
function useNftInfo(props) {
|
12
|
+
return (0, react_query_1.useQuery)({
|
13
|
+
queryKey: [
|
14
|
+
"__nft_component_internal__",
|
15
|
+
props.contract.chain.id,
|
16
|
+
props.contract.address,
|
17
|
+
props.tokenId.toString(),
|
18
|
+
],
|
19
|
+
queryFn: () => getNFTInfo({ contract: props.contract, tokenId: props.tokenId }),
|
20
|
+
...props.queryOptions,
|
21
|
+
});
|
22
|
+
}
|
23
|
+
/**
|
24
|
+
* @internal
|
25
|
+
*/
|
26
|
+
async function getNFTInfo(options) {
|
27
|
+
const nft = await Promise.allSettled([
|
28
|
+
(0, getNFT_js_1.getNFT)(options),
|
29
|
+
(0, getNFT_js_2.getNFT)(options),
|
30
|
+
]).then(([possibleNFT721, possibleNFT1155]) => {
|
31
|
+
// getNFT extension always return an NFT object
|
32
|
+
// so we need to check if the tokenURI exists
|
33
|
+
if (possibleNFT721.status === "fulfilled" &&
|
34
|
+
possibleNFT721.value.tokenURI) {
|
35
|
+
return possibleNFT721.value;
|
36
|
+
}
|
37
|
+
if (possibleNFT1155.status === "fulfilled" &&
|
38
|
+
possibleNFT1155.value.tokenURI) {
|
39
|
+
return possibleNFT1155.value;
|
40
|
+
}
|
41
|
+
throw new Error("Failed to load NFT metadata");
|
42
|
+
});
|
43
|
+
return nft;
|
44
|
+
}
|
45
|
+
//# sourceMappingURL=hooks.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../../../../../src/react/web/ui/prebuilt/NFT/hooks.tsx"],"names":[],"mappings":";;AASA,gCAgBC;AAKD,gCAsBC;AApDD,uDAAuE;AACvE,+EAAsF;AACtF,gFAAwF;AAIxF;;GAEG;AACH,SAAgB,UAAU,CACxB,KAEC;IAED,OAAO,IAAA,sBAAQ,EAAC;QACd,QAAQ,EAAE;YACR,4BAA4B;YAC5B,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YACvB,KAAK,CAAC,QAAQ,CAAC,OAAO;YACtB,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE;SACzB;QACD,OAAO,EAAE,GAAG,EAAE,CACZ,UAAU,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;QAClE,GAAG,KAAK,CAAC,YAAY;KACtB,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,UAAU,CAAC,OAAyB;IACxD,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC;QACnC,IAAA,kBAAS,EAAC,OAAO,CAAC;QAClB,IAAA,kBAAU,EAAC,OAAO,CAAC;KACpB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,EAAE,eAAe,CAAC,EAAE,EAAE;QAC5C,+CAA+C;QAC/C,6CAA6C;QAC7C,IACE,cAAc,CAAC,MAAM,KAAK,WAAW;YACrC,cAAc,CAAC,KAAK,CAAC,QAAQ,EAC7B,CAAC;YACD,OAAO,cAAc,CAAC,KAAK,CAAC;QAC9B,CAAC;QACD,IACE,eAAe,CAAC,MAAM,KAAK,WAAW;YACtC,eAAe,CAAC,KAAK,CAAC,QAAQ,EAC9B,CAAC;YACD,OAAO,eAAe,CAAC,KAAK,CAAC;QAC/B,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC"}
|
@@ -0,0 +1,82 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.NFTMedia = NFTMedia;
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
5
|
+
const MediaRenderer_js_1 = require("../../MediaRenderer/MediaRenderer.js");
|
6
|
+
const hooks_js_1 = require("./hooks.js");
|
7
|
+
const provider_js_1 = require("./provider.js");
|
8
|
+
/**
|
9
|
+
* This component fetches and displays an NFT's media. It uses thirdweb [`MediaRenderer`](https://portal.thirdweb.com/refernces/typescript/v5/MediaRenderer) under the hood
|
10
|
+
* so you can style it just like how you would style a MediaRenderer.
|
11
|
+
* @returns A MediaRenderer component
|
12
|
+
*
|
13
|
+
* @component
|
14
|
+
*
|
15
|
+
* @example
|
16
|
+
* ### Basic usage
|
17
|
+
* ```tsx
|
18
|
+
* import { NFTProvider, NFTMedia } from "thirdweb/react";
|
19
|
+
*
|
20
|
+
* <NFTProvider>
|
21
|
+
* <NFTMedia />
|
22
|
+
* </NFTProvider>
|
23
|
+
* ```
|
24
|
+
*
|
25
|
+
* ### Show a loading sign while the media is being fetched
|
26
|
+
* ```tsx
|
27
|
+
* import { NFTProvider, NFTMedia } from "thirdweb/react";
|
28
|
+
*
|
29
|
+
* <NFTProvider>
|
30
|
+
* <NFTMedia loadingComponent={<YourLoadingSign />} />
|
31
|
+
* </NFTProvider>
|
32
|
+
* ```
|
33
|
+
*
|
34
|
+
* ### Show something in case the media failed to resolve
|
35
|
+
* ```tsx
|
36
|
+
* import { NFTProvider, NFTMedia } from "thirdweb/react";
|
37
|
+
*
|
38
|
+
* <NFTProvider>
|
39
|
+
* <NFTMedia fallbackComponent={<span>Failed to load media</span>} />
|
40
|
+
* </NFTProvider>
|
41
|
+
* ```
|
42
|
+
*
|
43
|
+
* ### Custom query options for useQuery (tanstack-query)
|
44
|
+
* ```tsx
|
45
|
+
* import { NFTProvider, NFTMedia } from "thirdweb/react";
|
46
|
+
*
|
47
|
+
* <NFTProvider>
|
48
|
+
* <NFTMedia queryOptions={{ retry: 3, enabled: false, }} />
|
49
|
+
* </NFTProvider>
|
50
|
+
* ```
|
51
|
+
*
|
52
|
+
* ### Basic stylings
|
53
|
+
*
|
54
|
+
* You can style NFTMedia with the `style` and `className` props.
|
55
|
+
*
|
56
|
+
* ```tsx
|
57
|
+
* <NFTMedia style={{ borderRadius: "8px" }} className="mx-auto" />
|
58
|
+
* ```
|
59
|
+
* @nft
|
60
|
+
* @beta
|
61
|
+
*/
|
62
|
+
function NFTMedia({ loadingComponent, fallbackComponent, queryOptions, ...mediaRendererProps }) {
|
63
|
+
const { contract, tokenId } = (0, provider_js_1.useNFTContext)();
|
64
|
+
const nftQuery = (0, hooks_js_1.useNftInfo)({
|
65
|
+
contract,
|
66
|
+
tokenId,
|
67
|
+
queryOptions,
|
68
|
+
});
|
69
|
+
if (nftQuery.isLoading) {
|
70
|
+
return loadingComponent || null;
|
71
|
+
}
|
72
|
+
if (!nftQuery.data) {
|
73
|
+
return fallbackComponent || null;
|
74
|
+
}
|
75
|
+
const animation_url = nftQuery.data.metadata.animation_url;
|
76
|
+
const image = nftQuery.data.metadata.image || nftQuery.data.metadata.image_url;
|
77
|
+
if (!animation_url && !image) {
|
78
|
+
return fallbackComponent || null;
|
79
|
+
}
|
80
|
+
return ((0, jsx_runtime_1.jsx)(MediaRenderer_js_1.MediaRenderer, { client: contract.client, src: animation_url || image, poster: image, ...mediaRendererProps }));
|
81
|
+
}
|
82
|
+
//# sourceMappingURL=media.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"media.js","sourceRoot":"","sources":["../../../../../../../src/react/web/ui/prebuilt/NFT/media.tsx"],"names":[],"mappings":";;AAiFA,4BAqCC;;AAnHD,2EAAqE;AAErE,yCAAwC;AACxC,+CAA8C;AAqB9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,SAAgB,QAAQ,CAAC,EACvB,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,GAAG,kBAAkB,EACP;IACd,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAA,2BAAa,GAAE,CAAC;IAC9C,MAAM,QAAQ,GAAG,IAAA,qBAAU,EAAC;QAC1B,QAAQ;QACR,OAAO;QACP,YAAY;KACb,CAAC,CAAC;IAEH,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;QACvB,OAAO,gBAAgB,IAAI,IAAI,CAAC;IAClC,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnB,OAAO,iBAAiB,IAAI,IAAI,CAAC;IACnC,CAAC;IAED,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;IAC3D,MAAM,KAAK,GACT,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;IAEnE,IAAI,CAAC,aAAa,IAAI,CAAC,KAAK,EAAE,CAAC;QAC7B,OAAO,iBAAiB,IAAI,IAAI,CAAC;IACnC,CAAC;IAED,OAAO,CACL,uBAAC,gCAAa,IACZ,MAAM,EAAE,QAAQ,CAAC,MAAM,EACvB,GAAG,EAAE,aAAa,IAAI,KAAK,EAC3B,MAAM,EAAE,KAAK,KACT,kBAAkB,GACtB,CACH,CAAC;AACJ,CAAC"}
|