thirdweb 5.69.0 → 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/pack/createNewPack.js +2 -1
- package/dist/cjs/extensions/pack/createNewPack.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/ConnectWallet/screens/Buy/BuyScreen.js +9 -0
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.js +15 -2
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/main/useBuyTxStates.js +2 -2
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/main/useBuyTxStates.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/version.js.map +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/in-app/web/ecosystem.js +7 -17
- package/dist/cjs/wallets/in-app/web/ecosystem.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/in-app.js +2 -17
- package/dist/cjs/wallets/in-app/web/in-app.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/lib/auth/index.js +1 -0
- package/dist/cjs/wallets/in-app/web/lib/auth/index.js.map +1 -1
- package/dist/cjs/wallets/in-app/web/lib/auth/passkeys.js +17 -16
- package/dist/cjs/wallets/in-app/web/lib/auth/passkeys.js.map +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/pack/createNewPack.js +2 -1
- package/dist/esm/extensions/pack/createNewPack.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/ConnectWallet/screens/Buy/BuyScreen.js +9 -0
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/BuyScreen.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.js +15 -2
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/main/useBuyTxStates.js +2 -2
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/main/useBuyTxStates.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/version.js.map +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/in-app/web/ecosystem.js +7 -17
- package/dist/esm/wallets/in-app/web/ecosystem.js.map +1 -1
- package/dist/esm/wallets/in-app/web/in-app.js +2 -17
- package/dist/esm/wallets/in-app/web/in-app.js.map +1 -1
- package/dist/esm/wallets/in-app/web/lib/auth/index.js +1 -0
- package/dist/esm/wallets/in-app/web/lib/auth/index.js.map +1 -1
- package/dist/esm/wallets/in-app/web/lib/auth/passkeys.js +18 -17
- package/dist/esm/wallets/in-app/web/lib/auth/passkeys.js.map +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/pack/createNewPack.d.ts +2 -2
- package/dist/types/extensions/pack/createNewPack.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/ConnectWallet/screens/Buy/BuyScreen.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/main/useBuyTxStates.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/version.d.ts.map +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/in-app/web/ecosystem.d.ts +7 -17
- package/dist/types/wallets/in-app/web/ecosystem.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/in-app.d.ts +2 -17
- package/dist/types/wallets/in-app/web/in-app.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/lib/auth/index.d.ts +1 -0
- package/dist/types/wallets/in-app/web/lib/auth/index.d.ts.map +1 -1
- package/dist/types/wallets/in-app/web/lib/auth/passkeys.d.ts.map +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 +2 -2
- 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/pack/createNewPack.ts +8 -3
- 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/ConnectWallet/screens/Buy/BuyScreen.tsx +23 -0
- package/src/react/web/ui/ConnectWallet/screens/Buy/TransactionModeScreen.tsx +43 -2
- package/src/react/web/ui/ConnectWallet/screens/Buy/main/useBuyTxStates.ts +2 -3
- 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/in-app/web/ecosystem.ts +7 -17
- package/src/wallets/in-app/web/in-app.ts +2 -17
- package/src/wallets/in-app/web/lib/auth/index.ts +1 -0
- package/src/wallets/in-app/web/lib/auth/passkeys.ts +24 -23
- 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
@@ -7,30 +7,21 @@ import type {
|
|
7
7
|
import { createInAppWallet } from "../core/wallet/in-app-core.js";
|
8
8
|
|
9
9
|
/**
|
10
|
-
* Creates an [Ecosystem Wallet](https://portal.thirdweb.com/connect/ecosystems/overview) based on various authentication methods.
|
11
|
-
*
|
12
|
-
* Available authentication methods:
|
13
|
-
* - Email
|
14
|
-
* - Phone
|
15
|
-
* - Passkey
|
16
|
-
* - Google
|
17
|
-
* - Apple
|
18
|
-
* - Facebook
|
19
|
-
* - Discord
|
20
|
-
* - LINE
|
21
|
-
* - X
|
22
|
-
* - Farcaster
|
10
|
+
* Creates an [Ecosystem Wallet](https://portal.thirdweb.com/connect/ecosystems/overview) based on various authentication methods. Full list of available authentication methods [here](/connect/wallet/sign-in-methods/overview).
|
23
11
|
*
|
24
12
|
* Can also be configured to use Account Abstraction to directly connect to a ERC4337 smart account based on those authentication methods.
|
25
13
|
*
|
26
|
-
* Refer to [inAppWallet](
|
14
|
+
* Refer to [inAppWallet](/typescript/v5/inAppWallet) for detailed usage examples.
|
27
15
|
*
|
28
16
|
* @param createOptions - configuration options
|
29
17
|
* Refer to [EcosystemWalletCreationOptions](https://portal.thirdweb.com/references/typescript/v5/EcosystemWalletCreationOptions) for more details.
|
30
18
|
* @returns The created ecosystem wallet.
|
19
|
+
*
|
20
|
+
*
|
31
21
|
* @example
|
22
|
+
* ### Logging into an ecosystem wallet
|
32
23
|
*
|
33
|
-
*
|
24
|
+
* Below is the general code snippet needed to connect via a given auth strategy to an ecosystem wallet. For more variants on the various auth strategies, refer to [inAppWallet](/typescript/v5/inAppWallet).
|
34
25
|
*
|
35
26
|
* ```ts
|
36
27
|
* import { ecosystemWallet } from "thirdweb/wallets";
|
@@ -44,7 +35,7 @@ import { createInAppWallet } from "../core/wallet/in-app-core.js";
|
|
44
35
|
* });
|
45
36
|
* ```
|
46
37
|
*
|
47
|
-
* [View all connection options](https://portal.thirdweb.com/references/typescript/v5/EcosystemWalletConnectionOptions)
|
38
|
+
* [View all connection options](https://portal.thirdweb.com/references/typescript/v5/EcosystemWalletConnectionOptions).
|
48
39
|
*
|
49
40
|
* ### Connect to a restricted ecosystem wallet with your designated partner ID
|
50
41
|
*
|
@@ -57,7 +48,6 @@ import { createInAppWallet } from "../core/wallet/in-app-core.js";
|
|
57
48
|
* });
|
58
49
|
* ```
|
59
50
|
*
|
60
|
-
* Refer to [inAppWallet](https://portal.thirdweb.com/references/typescript/v5/inAppWallet) for more usage examples.
|
61
51
|
*
|
62
52
|
* @wallet
|
63
53
|
*/
|
@@ -4,22 +4,7 @@ import type { CreateWalletArgs } from "../../wallet-types.js";
|
|
4
4
|
import { createInAppWallet } from "../core/wallet/in-app-core.js";
|
5
5
|
|
6
6
|
/**
|
7
|
-
* Creates an app scoped wallet for users based on various authentication methods.
|
8
|
-
*
|
9
|
-
* Available authentication methods:
|
10
|
-
* - Email
|
11
|
-
* - Phone
|
12
|
-
* - Passkey
|
13
|
-
* - Guest
|
14
|
-
* - Google
|
15
|
-
* - Apple
|
16
|
-
* - Facebook
|
17
|
-
* - Discord
|
18
|
-
* - Coinbase
|
19
|
-
* - Telegram
|
20
|
-
* - LINE
|
21
|
-
* - X
|
22
|
-
* - Farcaster
|
7
|
+
* Creates an app scoped wallet for users based on various authentication methods. Full list of available authentication methods [here](https://portal.thirdweb.com/connect/wallet/sign-in-methods/overview).
|
23
8
|
*
|
24
9
|
* Can also be configured to use Account Abstraction to directly connect to a ERC4337 smart account based on those authentication methods.
|
25
10
|
*
|
@@ -42,7 +27,7 @@ import { createInAppWallet } from "../core/wallet/in-app-core.js";
|
|
42
27
|
* });
|
43
28
|
* ```
|
44
29
|
*
|
45
|
-
* [View all available social auth methods](https://portal.thirdweb.com/
|
30
|
+
* [View all available social auth methods](https://portal.thirdweb.com/connect/wallet/sign-in-methods/overview)
|
46
31
|
*
|
47
32
|
* ### Login with email
|
48
33
|
*
|
@@ -194,6 +194,7 @@ export async function authenticateWithRedirect(
|
|
194
194
|
* ```ts
|
195
195
|
* import { linkProfile } from "thirdweb/wallets";
|
196
196
|
*
|
197
|
+
* // optionally specify the ecosystem if you're linking an ecosystem wallet
|
197
198
|
* await linkProfile({ client, strategy: "discord" });
|
198
199
|
* ```
|
199
200
|
* @wallet
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { client } from "@passwordless-id/webauthn";
|
1
|
+
import { client, parsers } from "@passwordless-id/webauthn";
|
2
2
|
import type { ThirdwebClient } from "../../../../../client/client.js";
|
3
3
|
import { webLocalStorage } from "../../../../../utils/storage/webStorage.js";
|
4
4
|
import {
|
@@ -25,22 +25,26 @@ export class PasskeyWebClient implements PasskeyClient {
|
|
25
25
|
rp: RpInfo;
|
26
26
|
}): Promise<RegisterResult> {
|
27
27
|
const { name, challenge, rp } = args;
|
28
|
-
const registration = await client.register(
|
29
|
-
|
28
|
+
const registration = await client.register({
|
29
|
+
user: name,
|
30
|
+
challenge,
|
30
31
|
userVerification: "required",
|
31
32
|
domain: rp.id,
|
32
33
|
attestation: true,
|
33
|
-
debug: false,
|
34
34
|
});
|
35
|
-
const clientDataB64 = base64UrlToBase64(
|
35
|
+
const clientDataB64 = base64UrlToBase64(
|
36
|
+
registration.response.clientDataJSON,
|
37
|
+
);
|
36
38
|
const clientDataParsed = JSON.parse(base64ToString(clientDataB64));
|
37
39
|
return {
|
38
|
-
authenticatorData: registration.authenticatorData,
|
39
|
-
credentialId: registration.
|
40
|
-
clientData: registration.
|
40
|
+
authenticatorData: registration.response.authenticatorData,
|
41
|
+
credentialId: registration.id,
|
42
|
+
clientData: registration.response.clientDataJSON,
|
41
43
|
credential: {
|
42
|
-
publicKey: registration.
|
43
|
-
algorithm:
|
44
|
+
publicKey: registration.response.publicKey,
|
45
|
+
algorithm: parsers.getAlgoName(
|
46
|
+
registration.response.publicKeyAlgorithm,
|
47
|
+
),
|
44
48
|
},
|
45
49
|
origin: clientDataParsed.origin,
|
46
50
|
};
|
@@ -52,22 +56,19 @@ export class PasskeyWebClient implements PasskeyClient {
|
|
52
56
|
rp: RpInfo;
|
53
57
|
}): Promise<AuthenticateResult> {
|
54
58
|
const { credentialId, challenge, rp } = args;
|
55
|
-
const result = await client.authenticate(
|
56
|
-
credentialId ? [credentialId] : [],
|
59
|
+
const result = await client.authenticate({
|
60
|
+
allowCredentials: credentialId ? [credentialId] : [],
|
57
61
|
challenge,
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
},
|
63
|
-
);
|
64
|
-
const clientDataB64 = base64UrlToBase64(result.clientData);
|
62
|
+
userVerification: "required",
|
63
|
+
domain: rp.id,
|
64
|
+
});
|
65
|
+
const clientDataB64 = base64UrlToBase64(result.response.clientDataJSON);
|
65
66
|
const clientDataParsed = JSON.parse(base64ToString(clientDataB64));
|
66
67
|
return {
|
67
|
-
authenticatorData: result.authenticatorData,
|
68
|
-
credentialId: result.
|
69
|
-
clientData: result.
|
70
|
-
signature: result.signature,
|
68
|
+
authenticatorData: result.response.authenticatorData,
|
69
|
+
credentialId: result.id,
|
70
|
+
clientData: result.response.clientDataJSON,
|
71
|
+
signature: result.response.signature,
|
71
72
|
origin: clientDataParsed.origin,
|
72
73
|
};
|
73
74
|
}
|
@@ -1,217 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
"use client";
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
4
|
-
exports.NFTProviderContext = void 0;
|
5
|
-
exports.NFT = NFT;
|
6
|
-
exports.getNFTInfo = getNFTInfo;
|
7
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
8
|
-
const react_query_1 = require("@tanstack/react-query");
|
9
|
-
const react_1 = require("react");
|
10
|
-
const getNFT_js_1 = require("../../../../../extensions/erc721/read/getNFT.js");
|
11
|
-
const getNFT_js_2 = require("../../../../../extensions/erc1155/read/getNFT.js");
|
12
|
-
const MediaRenderer_js_1 = require("../../MediaRenderer/MediaRenderer.js");
|
13
|
-
/**
|
14
|
-
* @internal
|
15
|
-
*/
|
16
|
-
exports.NFTProviderContext = (0, react_1.createContext)(undefined);
|
17
|
-
/**
|
18
|
-
* A React context provider component that supplies NFT-related data to its child components.
|
19
|
-
*
|
20
|
-
* This component serves as a wrapper around the `NFTProviderContext.Provider` and passes
|
21
|
-
* the provided NFT data down to all of its child components through the context API.
|
22
|
-
*
|
23
|
-
*
|
24
|
-
* @component
|
25
|
-
* @param {React.PropsWithChildren<NFTProviderProps>} props - The props for the NFT provider
|
26
|
-
*
|
27
|
-
* @example
|
28
|
-
* ```tsx
|
29
|
-
* import { getContract } from "thirdweb";
|
30
|
-
* import { NFT } from "thirdweb/react";
|
31
|
-
*
|
32
|
-
* const contract = getContract({
|
33
|
-
* address: "0x...",
|
34
|
-
* chain: ethereum,
|
35
|
-
* client: yourThirdwebClient,
|
36
|
-
* });
|
37
|
-
*
|
38
|
-
* <NFT contract={contract} tokenId={0n}>
|
39
|
-
* <Suspense fallback={"Loading media..."}>
|
40
|
-
* <NFT.Media />
|
41
|
-
* <NFT.Description />
|
42
|
-
* </Suspense>
|
43
|
-
* </NFT>
|
44
|
-
* ```
|
45
|
-
*/
|
46
|
-
function NFT(props) {
|
47
|
-
return ((0, jsx_runtime_1.jsx)(exports.NFTProviderContext.Provider, { value: props, children: props.children }));
|
48
|
-
}
|
49
|
-
/**
|
50
|
-
* @internal
|
51
|
-
*/
|
52
|
-
function useNFTContext() {
|
53
|
-
const ctx = (0, react_1.useContext)(exports.NFTProviderContext);
|
54
|
-
if (!ctx) {
|
55
|
-
throw new Error("NFTProviderContext not found. Make sure you are using NFT.Media, NFT.Description, etc. inside a <NFT /> component");
|
56
|
-
}
|
57
|
-
return ctx;
|
58
|
-
}
|
59
|
-
/**
|
60
|
-
* This component fetches and displays an NFT's media. It uses thirdweb [`MediaRenderer`](https://portal.thirdweb.com/react/v5/components/MediaRenderer) under the hood
|
61
|
-
* so you can style it just like how you would style a MediaRenderer.
|
62
|
-
* @returns A MediaRenderer component
|
63
|
-
*
|
64
|
-
* Since this component has an internal loading state (for when the NFT media is being fetched),
|
65
|
-
* you must wrap it with React.Suspense to make it work.
|
66
|
-
*
|
67
|
-
* @component
|
68
|
-
* @example
|
69
|
-
* ### Basic usage
|
70
|
-
* ```tsx
|
71
|
-
* import { getContract } from "thirdweb";
|
72
|
-
* import { NFT } from "thirdweb/react";
|
73
|
-
*
|
74
|
-
* const nftContract = getContract({
|
75
|
-
* address: "0x...",
|
76
|
-
* chain: ethereum,
|
77
|
-
* client: yourThirdwebClient,
|
78
|
-
* });
|
79
|
-
*
|
80
|
-
* <NFT contract={nftContract} tokenId={0n}>
|
81
|
-
* This will show the media for tokenId #0 from the `nftContract` collection
|
82
|
-
* <Suspense fallback={"Loading media..."}>
|
83
|
-
* <NFT.Media />
|
84
|
-
* </Suspense>
|
85
|
-
* </NFT>
|
86
|
-
* ```
|
87
|
-
*
|
88
|
-
* ### Basic stylings
|
89
|
-
* You can style NFT.Media with the `style` and `className` props.
|
90
|
-
* ```tsx
|
91
|
-
* <NFT.Media style={{ borderRadius: "8px" }} className="mx-auto" />
|
92
|
-
* ```
|
93
|
-
*/
|
94
|
-
NFT.Media = (props) => {
|
95
|
-
const { contract, tokenId } = useNFTContext();
|
96
|
-
const nftQuery = (0, react_query_1.useSuspenseQuery)({
|
97
|
-
queryKey: [
|
98
|
-
"__nft_info_internal__",
|
99
|
-
contract.chain.id,
|
100
|
-
contract.address,
|
101
|
-
tokenId.toString(),
|
102
|
-
],
|
103
|
-
queryFn: () => getNFTInfo({ contract, tokenId }),
|
104
|
-
});
|
105
|
-
const animation_url = nftQuery.data?.metadata.animation_url;
|
106
|
-
const image = nftQuery.data?.metadata.image || nftQuery.data?.metadata.image_url;
|
107
|
-
return ((0, jsx_runtime_1.jsx)(MediaRenderer_js_1.MediaRenderer, { client: contract.client, src: animation_url || image, poster: image, ...props }));
|
108
|
-
};
|
109
|
-
/**
|
110
|
-
* This component fetches and displays an NFT's name. It takes in a `className` and `style` props
|
111
|
-
* so you can style it just like how you would style a <span> element.
|
112
|
-
* @returns A <span> element containing the name of the NFT
|
113
|
-
*
|
114
|
-
* Since this component has an internal loading state (for when the NFT media is being fetched),
|
115
|
-
* you must wrap it with React.Suspense to make it work.
|
116
|
-
*
|
117
|
-
* @component
|
118
|
-
* @example
|
119
|
-
* ### Basic usage
|
120
|
-
* ```tsx
|
121
|
-
* import { getContract } from "thirdweb";
|
122
|
-
* import { NFT } from "thirdweb/react";
|
123
|
-
*
|
124
|
-
* const nftContract = getContract({
|
125
|
-
* address: "0x...",
|
126
|
-
* chain: ethereum,
|
127
|
-
* client: yourThirdwebClient,
|
128
|
-
* });
|
129
|
-
*
|
130
|
-
* <NFT contract={nftContract} tokenId={0n}>
|
131
|
-
* This will show the name for tokenId #0 from the `nftContract` collection
|
132
|
-
* <Suspense fallback={"Loading nft name..."}>
|
133
|
-
* <NFT.Name className="mx-auto" style={{ color: "red" }} />
|
134
|
-
* </Suspense>
|
135
|
-
* </NFT>
|
136
|
-
* ```
|
137
|
-
*/
|
138
|
-
NFT.Name = (props) => {
|
139
|
-
const { contract, tokenId } = useNFTContext();
|
140
|
-
const nftQuery = (0, react_query_1.useSuspenseQuery)({
|
141
|
-
queryKey: [
|
142
|
-
"__nft_info_internal__",
|
143
|
-
contract.chain.id,
|
144
|
-
contract.address,
|
145
|
-
tokenId.toString(),
|
146
|
-
],
|
147
|
-
queryFn: () => getNFTInfo({ contract, tokenId }),
|
148
|
-
});
|
149
|
-
const name = nftQuery.data?.metadata.name || "";
|
150
|
-
return (0, jsx_runtime_1.jsx)("span", { ...props, children: name });
|
151
|
-
};
|
152
|
-
/**
|
153
|
-
* This component fetches and displays an NFT's description. It takes in a `className` and `style` props
|
154
|
-
* so you can style it just like how you would style a <span> element.
|
155
|
-
* @returns A <span> element containing the description of the NFT
|
156
|
-
*
|
157
|
-
* Since this component has an internal loading state (for when the NFT media is being fetched),
|
158
|
-
* you must wrap it with React.Suspense to make it work.
|
159
|
-
*
|
160
|
-
* @component
|
161
|
-
* @example
|
162
|
-
* ### Basic usage
|
163
|
-
* ```tsx
|
164
|
-
* import { getContract } from "thirdweb";
|
165
|
-
* import { NFT } from "thirdweb/react";
|
166
|
-
*
|
167
|
-
* const nftContract = getContract({
|
168
|
-
* address: "0x...",
|
169
|
-
* chain: ethereum,
|
170
|
-
* client: yourThirdwebClient,
|
171
|
-
* });
|
172
|
-
*
|
173
|
-
* <NFT contract={nftContract} tokenId={0n}>
|
174
|
-
* This will show the description for tokenId #0 from the `nftContract` collection
|
175
|
-
* <Suspense fallback={"Loading description..."}>
|
176
|
-
* <NFT.Description className="mx-auto" style={{ color: "red" }} />
|
177
|
-
* </Suspense>
|
178
|
-
* </NFT>
|
179
|
-
* ```
|
180
|
-
*/
|
181
|
-
NFT.Description = (props) => {
|
182
|
-
const { contract, tokenId } = useNFTContext();
|
183
|
-
const nftQuery = (0, react_query_1.useSuspenseQuery)({
|
184
|
-
queryKey: [
|
185
|
-
"__nft_info_internal__",
|
186
|
-
contract.chain.id,
|
187
|
-
contract.address,
|
188
|
-
tokenId.toString(),
|
189
|
-
],
|
190
|
-
queryFn: () => getNFTInfo({ contract, tokenId }),
|
191
|
-
});
|
192
|
-
const description = nftQuery.data?.metadata.description || "";
|
193
|
-
return (0, jsx_runtime_1.jsx)("span", { ...props, children: description });
|
194
|
-
};
|
195
|
-
/**
|
196
|
-
* @internal
|
197
|
-
*/
|
198
|
-
async function getNFTInfo(options) {
|
199
|
-
const nft = await Promise.allSettled([
|
200
|
-
(0, getNFT_js_1.getNFT)(options),
|
201
|
-
(0, getNFT_js_2.getNFT)(options),
|
202
|
-
]).then(([possibleNFT721, possibleNFT1155]) => {
|
203
|
-
// getNFT extension always return an NFT object
|
204
|
-
// so we need to check if the tokenURI exists
|
205
|
-
if (possibleNFT721.status === "fulfilled" &&
|
206
|
-
possibleNFT721.value.tokenURI) {
|
207
|
-
return possibleNFT721.value;
|
208
|
-
}
|
209
|
-
if (possibleNFT1155.status === "fulfilled" &&
|
210
|
-
possibleNFT1155.value.tokenURI) {
|
211
|
-
return possibleNFT1155.value;
|
212
|
-
}
|
213
|
-
throw new Error("Failed to load NFT metadata");
|
214
|
-
});
|
215
|
-
return nft;
|
216
|
-
}
|
217
|
-
//# sourceMappingURL=NFT.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"NFT.js","sourceRoot":"","sources":["../../../../../../../src/react/web/ui/prebuilt/NFT/NFT.tsx"],"names":[],"mappings":"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"}
|
@@ -1,212 +0,0 @@
|
|
1
|
-
"use client";
|
2
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
3
|
-
import { useSuspenseQuery } from "@tanstack/react-query";
|
4
|
-
import { createContext, useContext } from "react";
|
5
|
-
import { getNFT as getNFT721 } from "../../../../../extensions/erc721/read/getNFT.js";
|
6
|
-
import { getNFT as getNFT1155 } from "../../../../../extensions/erc1155/read/getNFT.js";
|
7
|
-
import { MediaRenderer } from "../../MediaRenderer/MediaRenderer.js";
|
8
|
-
/**
|
9
|
-
* @internal
|
10
|
-
*/
|
11
|
-
export const NFTProviderContext = /* @__PURE__ */ createContext(undefined);
|
12
|
-
/**
|
13
|
-
* A React context provider component that supplies NFT-related data to its child components.
|
14
|
-
*
|
15
|
-
* This component serves as a wrapper around the `NFTProviderContext.Provider` and passes
|
16
|
-
* the provided NFT data down to all of its child components through the context API.
|
17
|
-
*
|
18
|
-
*
|
19
|
-
* @component
|
20
|
-
* @param {React.PropsWithChildren<NFTProviderProps>} props - The props for the NFT provider
|
21
|
-
*
|
22
|
-
* @example
|
23
|
-
* ```tsx
|
24
|
-
* import { getContract } from "thirdweb";
|
25
|
-
* import { NFT } from "thirdweb/react";
|
26
|
-
*
|
27
|
-
* const contract = getContract({
|
28
|
-
* address: "0x...",
|
29
|
-
* chain: ethereum,
|
30
|
-
* client: yourThirdwebClient,
|
31
|
-
* });
|
32
|
-
*
|
33
|
-
* <NFT contract={contract} tokenId={0n}>
|
34
|
-
* <Suspense fallback={"Loading media..."}>
|
35
|
-
* <NFT.Media />
|
36
|
-
* <NFT.Description />
|
37
|
-
* </Suspense>
|
38
|
-
* </NFT>
|
39
|
-
* ```
|
40
|
-
*/
|
41
|
-
export function NFT(props) {
|
42
|
-
return (_jsx(NFTProviderContext.Provider, { value: props, children: props.children }));
|
43
|
-
}
|
44
|
-
/**
|
45
|
-
* @internal
|
46
|
-
*/
|
47
|
-
function useNFTContext() {
|
48
|
-
const ctx = useContext(NFTProviderContext);
|
49
|
-
if (!ctx) {
|
50
|
-
throw new Error("NFTProviderContext not found. Make sure you are using NFT.Media, NFT.Description, etc. inside a <NFT /> component");
|
51
|
-
}
|
52
|
-
return ctx;
|
53
|
-
}
|
54
|
-
/**
|
55
|
-
* This component fetches and displays an NFT's media. It uses thirdweb [`MediaRenderer`](https://portal.thirdweb.com/react/v5/components/MediaRenderer) under the hood
|
56
|
-
* so you can style it just like how you would style a MediaRenderer.
|
57
|
-
* @returns A MediaRenderer component
|
58
|
-
*
|
59
|
-
* Since this component has an internal loading state (for when the NFT media is being fetched),
|
60
|
-
* you must wrap it with React.Suspense to make it work.
|
61
|
-
*
|
62
|
-
* @component
|
63
|
-
* @example
|
64
|
-
* ### Basic usage
|
65
|
-
* ```tsx
|
66
|
-
* import { getContract } from "thirdweb";
|
67
|
-
* import { NFT } from "thirdweb/react";
|
68
|
-
*
|
69
|
-
* const nftContract = getContract({
|
70
|
-
* address: "0x...",
|
71
|
-
* chain: ethereum,
|
72
|
-
* client: yourThirdwebClient,
|
73
|
-
* });
|
74
|
-
*
|
75
|
-
* <NFT contract={nftContract} tokenId={0n}>
|
76
|
-
* This will show the media for tokenId #0 from the `nftContract` collection
|
77
|
-
* <Suspense fallback={"Loading media..."}>
|
78
|
-
* <NFT.Media />
|
79
|
-
* </Suspense>
|
80
|
-
* </NFT>
|
81
|
-
* ```
|
82
|
-
*
|
83
|
-
* ### Basic stylings
|
84
|
-
* You can style NFT.Media with the `style` and `className` props.
|
85
|
-
* ```tsx
|
86
|
-
* <NFT.Media style={{ borderRadius: "8px" }} className="mx-auto" />
|
87
|
-
* ```
|
88
|
-
*/
|
89
|
-
NFT.Media = (props) => {
|
90
|
-
const { contract, tokenId } = useNFTContext();
|
91
|
-
const nftQuery = useSuspenseQuery({
|
92
|
-
queryKey: [
|
93
|
-
"__nft_info_internal__",
|
94
|
-
contract.chain.id,
|
95
|
-
contract.address,
|
96
|
-
tokenId.toString(),
|
97
|
-
],
|
98
|
-
queryFn: () => getNFTInfo({ contract, tokenId }),
|
99
|
-
});
|
100
|
-
const animation_url = nftQuery.data?.metadata.animation_url;
|
101
|
-
const image = nftQuery.data?.metadata.image || nftQuery.data?.metadata.image_url;
|
102
|
-
return (_jsx(MediaRenderer, { client: contract.client, src: animation_url || image, poster: image, ...props }));
|
103
|
-
};
|
104
|
-
/**
|
105
|
-
* This component fetches and displays an NFT's name. It takes in a `className` and `style` props
|
106
|
-
* so you can style it just like how you would style a <span> element.
|
107
|
-
* @returns A <span> element containing the name of the NFT
|
108
|
-
*
|
109
|
-
* Since this component has an internal loading state (for when the NFT media is being fetched),
|
110
|
-
* you must wrap it with React.Suspense to make it work.
|
111
|
-
*
|
112
|
-
* @component
|
113
|
-
* @example
|
114
|
-
* ### Basic usage
|
115
|
-
* ```tsx
|
116
|
-
* import { getContract } from "thirdweb";
|
117
|
-
* import { NFT } from "thirdweb/react";
|
118
|
-
*
|
119
|
-
* const nftContract = getContract({
|
120
|
-
* address: "0x...",
|
121
|
-
* chain: ethereum,
|
122
|
-
* client: yourThirdwebClient,
|
123
|
-
* });
|
124
|
-
*
|
125
|
-
* <NFT contract={nftContract} tokenId={0n}>
|
126
|
-
* This will show the name for tokenId #0 from the `nftContract` collection
|
127
|
-
* <Suspense fallback={"Loading nft name..."}>
|
128
|
-
* <NFT.Name className="mx-auto" style={{ color: "red" }} />
|
129
|
-
* </Suspense>
|
130
|
-
* </NFT>
|
131
|
-
* ```
|
132
|
-
*/
|
133
|
-
NFT.Name = (props) => {
|
134
|
-
const { contract, tokenId } = useNFTContext();
|
135
|
-
const nftQuery = useSuspenseQuery({
|
136
|
-
queryKey: [
|
137
|
-
"__nft_info_internal__",
|
138
|
-
contract.chain.id,
|
139
|
-
contract.address,
|
140
|
-
tokenId.toString(),
|
141
|
-
],
|
142
|
-
queryFn: () => getNFTInfo({ contract, tokenId }),
|
143
|
-
});
|
144
|
-
const name = nftQuery.data?.metadata.name || "";
|
145
|
-
return _jsx("span", { ...props, children: name });
|
146
|
-
};
|
147
|
-
/**
|
148
|
-
* This component fetches and displays an NFT's description. It takes in a `className` and `style` props
|
149
|
-
* so you can style it just like how you would style a <span> element.
|
150
|
-
* @returns A <span> element containing the description of the NFT
|
151
|
-
*
|
152
|
-
* Since this component has an internal loading state (for when the NFT media is being fetched),
|
153
|
-
* you must wrap it with React.Suspense to make it work.
|
154
|
-
*
|
155
|
-
* @component
|
156
|
-
* @example
|
157
|
-
* ### Basic usage
|
158
|
-
* ```tsx
|
159
|
-
* import { getContract } from "thirdweb";
|
160
|
-
* import { NFT } from "thirdweb/react";
|
161
|
-
*
|
162
|
-
* const nftContract = getContract({
|
163
|
-
* address: "0x...",
|
164
|
-
* chain: ethereum,
|
165
|
-
* client: yourThirdwebClient,
|
166
|
-
* });
|
167
|
-
*
|
168
|
-
* <NFT contract={nftContract} tokenId={0n}>
|
169
|
-
* This will show the description for tokenId #0 from the `nftContract` collection
|
170
|
-
* <Suspense fallback={"Loading description..."}>
|
171
|
-
* <NFT.Description className="mx-auto" style={{ color: "red" }} />
|
172
|
-
* </Suspense>
|
173
|
-
* </NFT>
|
174
|
-
* ```
|
175
|
-
*/
|
176
|
-
NFT.Description = (props) => {
|
177
|
-
const { contract, tokenId } = useNFTContext();
|
178
|
-
const nftQuery = useSuspenseQuery({
|
179
|
-
queryKey: [
|
180
|
-
"__nft_info_internal__",
|
181
|
-
contract.chain.id,
|
182
|
-
contract.address,
|
183
|
-
tokenId.toString(),
|
184
|
-
],
|
185
|
-
queryFn: () => getNFTInfo({ contract, tokenId }),
|
186
|
-
});
|
187
|
-
const description = nftQuery.data?.metadata.description || "";
|
188
|
-
return _jsx("span", { ...props, children: description });
|
189
|
-
};
|
190
|
-
/**
|
191
|
-
* @internal
|
192
|
-
*/
|
193
|
-
export async function getNFTInfo(options) {
|
194
|
-
const nft = await Promise.allSettled([
|
195
|
-
getNFT721(options),
|
196
|
-
getNFT1155(options),
|
197
|
-
]).then(([possibleNFT721, possibleNFT1155]) => {
|
198
|
-
// getNFT extension always return an NFT object
|
199
|
-
// so we need to check if the tokenURI exists
|
200
|
-
if (possibleNFT721.status === "fulfilled" &&
|
201
|
-
possibleNFT721.value.tokenURI) {
|
202
|
-
return possibleNFT721.value;
|
203
|
-
}
|
204
|
-
if (possibleNFT1155.status === "fulfilled" &&
|
205
|
-
possibleNFT1155.value.tokenURI) {
|
206
|
-
return possibleNFT1155.value;
|
207
|
-
}
|
208
|
-
throw new Error("Failed to load NFT metadata");
|
209
|
-
});
|
210
|
-
return nft;
|
211
|
-
}
|
212
|
-
//# sourceMappingURL=NFT.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"NFT.js","sourceRoot":"","sources":["../../../../../../../src/react/web/ui/prebuilt/NFT/NFT.tsx"],"names":[],"mappings":"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"}
|