diff --git a/packages/thirdweb-react/docs/react.useactivelistings.md b/packages/thirdweb-react/docs/react.useactivelistings.md index 44e521b..d1cdff9 100644 --- a/packages/thirdweb-react/docs/react.useactivelistings.md +++ b/packages/thirdweb-react/docs/react.useactivelistings.md @@ -12,7 +12,7 @@ Use this to get a list active listings from your marketplace contract. Signature: ```typescript -export declare function useActiveListings(contract: RequiredParam, filter?: MarketplaceFilter): import("@tanstack/react-query").UseQueryResult<(import("@thirdweb-dev/sdk/dist/browser").AuctionListing | import("@thirdweb-dev/sdk/dist/browser").DirectListing)[], unknown>; +export declare function useActiveListings(contract: RequiredParam, filter?: MarketplaceFilter): import("@tanstack/react-query").UseQueryResult<(import("@thirdweb-dev/sdk").AuctionListing | import("@thirdweb-dev/sdk").DirectListing)[], unknown>; ``` ## Parameters @@ -24,7 +24,7 @@ export declare function useActiveListings(contract: RequiredParam, Returns: -import("@tanstack/react-query").UseQueryResult<(import("@thirdweb-dev/sdk/dist/browser").AuctionListing \| import("@thirdweb-dev/sdk/dist/browser").DirectListing)\[\], unknown> +import("@tanstack/react-query").UseQueryResult<(import("@thirdweb-dev/sdk").AuctionListing \| import("@thirdweb-dev/sdk").DirectListing)\[\], unknown> a response object that includes an array of listings diff --git a/packages/thirdweb-react/docs/react.usebatchestoreveal.md b/packages/thirdweb-react/docs/react.usebatchestoreveal.md index fd7d560..197d639 100644 --- a/packages/thirdweb-react/docs/react.usebatchestoreveal.md +++ b/packages/thirdweb-react/docs/react.usebatchestoreveal.md @@ -7,7 +7,7 @@ Signature: ```typescript -export declare function useBatchesToReveal(contract: RequiredParam): import("@tanstack/react-query").UseQueryResult; +export declare function useBatchesToReveal(contract: RequiredParam): import("@tanstack/react-query").UseQueryResult; ``` ## Parameters @@ -18,7 +18,7 @@ export declare function useBatchesToReveal(contra Returns: -import("@tanstack/react-query").UseQueryResult<import("@thirdweb-dev/sdk/dist/browser").BatchToReveal\[\], unknown> +import("@tanstack/react-query").UseQueryResult<import("@thirdweb-dev/sdk").BatchToReveal\[\], unknown> a response object that gets the batches to still be revealed diff --git a/packages/thirdweb-react/docs/react.useclaimineligibilityreasons.md b/packages/thirdweb-react/docs/react.useclaimineligibilityreasons.md index 2af9957..263d584 100644 --- a/packages/thirdweb-react/docs/react.useclaimineligibilityreasons.md +++ b/packages/thirdweb-react/docs/react.useclaimineligibilityreasons.md @@ -12,7 +12,7 @@ Use this to check for reasons that prevent claiming for either ERC20, ERC721 or Signature: ```typescript -export declare function useClaimIneligibilityReasons(...[contract, params, tokenId]: ClaimIneligibilityInputParams): import("@tanstack/react-query").UseQueryResult; +export declare function useClaimIneligibilityReasons(...[contract, params, tokenId]: ClaimIneligibilityInputParams): import("@tanstack/react-query").UseQueryResult; ``` ## Parameters @@ -23,7 +23,7 @@ export declare function useClaimIneligibilityReasonsReturns: -import("@tanstack/react-query").UseQueryResult<import("@thirdweb-dev/sdk/dist/browser").ClaimEligibility\[\], unknown> +import("@tanstack/react-query").UseQueryResult<import("@thirdweb-dev/sdk").ClaimEligibility\[\], unknown> a response object with the resons for the claim ineligibility diff --git a/packages/thirdweb-react/docs/react.usecontractmetadata.md b/packages/thirdweb-react/docs/react.usecontractmetadata.md index e744865..e8bdcf9 100644 --- a/packages/thirdweb-react/docs/react.usecontractmetadata.md +++ b/packages/thirdweb-react/docs/react.usecontractmetadata.md @@ -13,7 +13,7 @@ Use this to get the contract metadata for a (built-in or custom) contract. ```typescript export declare function useContractMetadata(contractAddress: RequiredParam): import("@tanstack/react-query").UseQueryResult<{ - [x: string]: import("@thirdweb-dev/sdk/dist/browser").Json; + [x: string]: import("@thirdweb-dev/sdk").Json; description?: string | undefined; image?: any; external_link?: string | undefined; @@ -29,7 +29,7 @@ export declare function useContractMetadata(contractAddress: RequiredParamReturns: -import("@tanstack/react-query").UseQueryResult<{ \[x: string\]: import("@thirdweb-dev/sdk/dist/browser").Json; description?: string \| undefined; image?: any; external\_link?: string \| undefined; name: string; }, unknown> +import("@tanstack/react-query").UseQueryResult<{ \[x: string\]: import("@thirdweb-dev/sdk").Json; description?: string \| undefined; image?: any; external\_link?: string \| undefined; name: string; }, unknown> a response object that includes the contract metadata of the deployed contract diff --git a/packages/thirdweb-react/docs/react.usecreateauctionlisting.md b/packages/thirdweb-react/docs/react.usecreateauctionlisting.md index 1054794..91f9e4f 100644 --- a/packages/thirdweb-react/docs/react.usecreateauctionlisting.md +++ b/packages/thirdweb-react/docs/react.usecreateauctionlisting.md @@ -12,7 +12,7 @@ Use this to create a new Auction Listing on your marketplace contract. Signature: ```typescript -export declare function useCreateAuctionListing(contract: RequiredParam): import("@tanstack/react-query").UseMutationResult, unknown, NewAuctionListing, unknown>; +export declare function useCreateAuctionListing(contract: RequiredParam): import("@tanstack/react-query").UseMutationResult, unknown, NewAuctionListing, unknown>; ``` ## Parameters @@ -23,7 +23,7 @@ export declare function useCreateAuctionListing(contract: RequiredParamReturns: -import("@tanstack/react-query").UseMutationResult<import("@thirdweb-dev/sdk/dist/browser").TransactionResultWithId<never>, unknown, NewAuctionListing, unknown> +import("@tanstack/react-query").UseMutationResult<import("@thirdweb-dev/sdk").TransactionResultWithId<never>, unknown, NewAuctionListing, unknown> a mutation object that can be used to create a new auction listing diff --git a/packages/thirdweb-react/docs/react.usecreatedirectlisting.md b/packages/thirdweb-react/docs/react.usecreatedirectlisting.md index c1766c5..0810e6c 100644 --- a/packages/thirdweb-react/docs/react.usecreatedirectlisting.md +++ b/packages/thirdweb-react/docs/react.usecreatedirectlisting.md @@ -12,7 +12,7 @@ Use this to create a new Direct Listing on your marketplace contract. Signature: ```typescript -export declare function useCreateDirectListing(contract: RequiredParam): import("@tanstack/react-query").UseMutationResult, unknown, NewDirectListing, unknown>; +export declare function useCreateDirectListing(contract: RequiredParam): import("@tanstack/react-query").UseMutationResult, unknown, NewDirectListing, unknown>; ``` ## Parameters @@ -23,7 +23,7 @@ export declare function useCreateDirectListing(contract: RequiredParamReturns: -import("@tanstack/react-query").UseMutationResult<import("@thirdweb-dev/sdk/dist/browser").TransactionResultWithId<never>, unknown, NewDirectListing, unknown> +import("@tanstack/react-query").UseMutationResult<import("@thirdweb-dev/sdk").TransactionResultWithId<never>, unknown, NewDirectListing, unknown> a mutation object that can be used to create a new direct listing diff --git a/packages/thirdweb-react/docs/react.usedelayedreveallazymint.md b/packages/thirdweb-react/docs/react.usedelayedreveallazymint.md index 9eedc41..c6a4b6b 100644 --- a/packages/thirdweb-react/docs/react.usedelayedreveallazymint.md +++ b/packages/thirdweb-react/docs/react.usedelayedreveallazymint.md @@ -12,7 +12,7 @@ Use this to lazy mint a batch of delayed reveal NFTs on your [DropContract](./re Signature: ```typescript -export declare function useDelayedRevealLazyMint(contract: RequiredParam, onProgress?: (progress: UploadProgressEvent) => void): import("@tanstack/react-query").UseMutationResult[], unknown, DelayedRevealLazyMintInput, unknown>; +export declare function useDelayedRevealLazyMint(contract: RequiredParam, onProgress?: (progress: UploadProgressEvent) => void): import("@tanstack/react-query").UseMutationResult[], unknown, DelayedRevealLazyMintInput, unknown>; ``` ## Parameters @@ -24,7 +24,7 @@ export declare function useDelayedRevealLazyMint( Returns: -import("@tanstack/react-query").UseMutationResult<import("@thirdweb-dev/sdk/dist/browser").TransactionResultWithId<never>\[\], unknown, [DelayedRevealLazyMintInput](./react.delayedreveallazymintinput.md), unknown> +import("@tanstack/react-query").UseMutationResult<import("@thirdweb-dev/sdk").TransactionResultWithId<never>\[\], unknown, [DelayedRevealLazyMintInput](./react.delayedreveallazymintinput.md), unknown> a mutation object that can be used to lazy mint a batch of NFTs diff --git a/packages/thirdweb-react/docs/react.uselazymint.md b/packages/thirdweb-react/docs/react.uselazymint.md index d9ecc9d..74f60f7 100644 --- a/packages/thirdweb-react/docs/react.uselazymint.md +++ b/packages/thirdweb-react/docs/react.uselazymint.md @@ -12,8 +12,8 @@ Use this to lazy mint a batch of NFTs on your [DropContract](./react.dropcontrac Signature: ```typescript -export declare function useLazyMint(contract: RequiredParam, onProgress?: (progress: UploadProgressEvent) => void): import("@tanstack/react-query").UseMutationResult(contract: RequiredParam, onProgress?: (progress: UploadProgressEvent) => void): import("@tanstack/react-query").UseMutationResult(contract: Req Returns: -import("@tanstack/react-query").UseMutationResult<import("@thirdweb-dev/sdk/dist/browser").TransactionResultWithId<{ \[x: string\]: import("@thirdweb-dev/sdk/dist/browser").Json; name?: string \| number \| undefined; description?: string \| null \| undefined; image?: string \| null \| undefined; external\_url?: string \| null \| undefined; animation\_url?: string \| null \| undefined; uri: string; id: import("ethers").BigNumber; }>\[\], unknown, { metadatas: NFTMetadataInput\[\]; }, unknown> +import("@tanstack/react-query").UseMutationResult<import("@thirdweb-dev/sdk").TransactionResultWithId<{ \[x: string\]: import("@thirdweb-dev/sdk").Json; name?: string \| number \| undefined; description?: string \| null \| undefined; image?: string \| null \| undefined; external\_url?: string \| null \| undefined; animation\_url?: string \| null \| undefined; uri: string; id: import("ethers").BigNumber; }>\[\], unknown, { metadatas: NFTMetadataInput\[\]; }, unknown> a mutation object that can be used to lazy mint a batch of NFTs diff --git a/packages/thirdweb-react/docs/react.uselisting.md b/packages/thirdweb-react/docs/react.uselisting.md index bc157b2..2af9e8f 100644 --- a/packages/thirdweb-react/docs/react.uselisting.md +++ b/packages/thirdweb-react/docs/react.uselisting.md @@ -12,7 +12,7 @@ Use this to get a specific listing from the marketplace. Signature: ```typescript -export declare function useListing(contract: RequiredParam, listingId: RequiredParam): import("@tanstack/react-query").UseQueryResult; +export declare function useListing(contract: RequiredParam, listingId: RequiredParam): import("@tanstack/react-query").UseQueryResult; ``` ## Parameters @@ -24,7 +24,7 @@ export declare function useListing(contract: RequiredParam, listing Returns: -import("@tanstack/react-query").UseQueryResult<import("@thirdweb-dev/sdk/dist/browser").AuctionListing \| import("@thirdweb-dev/sdk/dist/browser").DirectListing, unknown> +import("@tanstack/react-query").UseQueryResult<import("@thirdweb-dev/sdk").AuctionListing \| import("@thirdweb-dev/sdk").DirectListing, unknown> a response object that includes an array of listings diff --git a/packages/thirdweb-react/docs/react.uselistings.md b/packages/thirdweb-react/docs/react.uselistings.md index ef01cec..be42f6a 100644 --- a/packages/thirdweb-react/docs/react.uselistings.md +++ b/packages/thirdweb-react/docs/react.uselistings.md @@ -12,7 +12,7 @@ Use this to get a list all listings from your marketplace contract. Signature: ```typescript -export declare function useListings(contract: RequiredParam, filter?: MarketplaceFilter): import("@tanstack/react-query").UseQueryResult<(import("@thirdweb-dev/sdk/dist/browser").AuctionListing | import("@thirdweb-dev/sdk/dist/browser").DirectListing)[], unknown>; +export declare function useListings(contract: RequiredParam, filter?: MarketplaceFilter): import("@tanstack/react-query").UseQueryResult<(import("@thirdweb-dev/sdk").AuctionListing | import("@thirdweb-dev/sdk").DirectListing)[], unknown>; ``` ## Parameters @@ -24,7 +24,7 @@ export declare function useListings(contract: RequiredParam, filter Returns: -import("@tanstack/react-query").UseQueryResult<(import("@thirdweb-dev/sdk/dist/browser").AuctionListing \| import("@thirdweb-dev/sdk/dist/browser").DirectListing)\[\], unknown> +import("@tanstack/react-query").UseQueryResult<(import("@thirdweb-dev/sdk").AuctionListing \| import("@thirdweb-dev/sdk").DirectListing)\[\], unknown> a response object that includes an array of listings diff --git a/packages/thirdweb-react/docs/react.usemetadata.md b/packages/thirdweb-react/docs/react.usemetadata.md index 5210d78..fa78476 100644 --- a/packages/thirdweb-react/docs/react.usemetadata.md +++ b/packages/thirdweb-react/docs/react.usemetadata.md @@ -13,7 +13,7 @@ Use this to get the metadata of your ```typescript export declare function useMetadata(contract: RequiredParam): import("@tanstack/react-query").UseQueryResult<{ - [x: string]: import("@thirdweb-dev/sdk/dist/browser").Json; + [x: string]: import("@thirdweb-dev/sdk").Json; description?: string | undefined; image?: any; external_link?: string | undefined; @@ -29,7 +29,7 @@ export declare function useMetadata(contract: RequiredParamReturns: -import("@tanstack/react-query").UseQueryResult<{ \[x: string\]: import("@thirdweb-dev/sdk/dist/browser").Json; description?: string \| undefined; image?: any; external\_link?: string \| undefined; name: string; }, unknown> +import("@tanstack/react-query").UseQueryResult<{ \[x: string\]: import("@thirdweb-dev/sdk").Json; description?: string \| undefined; image?: any; external\_link?: string \| undefined; name: string; }, unknown> a object containing the metadata diff --git a/packages/thirdweb-react/docs/react.usemintnftsupply.md b/packages/thirdweb-react/docs/react.usemintnftsupply.md index 7c80ec4..88e5c64 100644 --- a/packages/thirdweb-react/docs/react.usemintnftsupply.md +++ b/packages/thirdweb-react/docs/react.usemintnftsupply.md @@ -12,9 +12,9 @@ Use this to mint a new NFT on your [NFTContract](./react.nftcontract.md) Signature: ```typescript -export declare function useMintNFTSupply(contract: Erc1155): import("@tanstack/react-query").UseMutationResultReturns: -import("@tanstack/react-query").UseMutationResult<import("@thirdweb-dev/sdk/dist/browser").TransactionResultWithId<{ metadata: { \[x: string\]: import("@thirdweb-dev/sdk/dist/browser").Json; name?: string \| number \| undefined; description?: string \| null \| undefined; image?: string \| null \| undefined; external\_url?: string \| null \| undefined; animation\_url?: string \| null \| undefined; uri: string; id: BigNumber; }; supply: BigNumber; }>, unknown, [MintNFTSupplyParams](./react.mintnftsupplyparams.md), unknown> +import("@tanstack/react-query").UseMutationResult<import("@thirdweb-dev/sdk").TransactionResultWithId<{ metadata: { \[x: string\]: import("@thirdweb-dev/sdk").Json; name?: string \| number \| undefined; description?: string \| null \| undefined; image?: string \| null \| undefined; external\_url?: string \| null \| undefined; animation\_url?: string \| null \| undefined; uri: string; id: BigNumber; }; supply: BigNumber; }>, unknown, [MintNFTSupplyParams](./react.mintnftsupplyparams.md), unknown> a mutation object that can be used to mint a more supply of a token id to the provided wallet diff --git a/packages/thirdweb-react/docs/react.useunclaimednfts.md b/packages/thirdweb-react/docs/react.useunclaimednfts.md index abff316..d4dc49f 100644 --- a/packages/thirdweb-react/docs/react.useunclaimednfts.md +++ b/packages/thirdweb-react/docs/react.useunclaimednfts.md @@ -13,7 +13,7 @@ Use this to get a list of \*unclaimed\* NFT tokens of your ERC721 Drop contract. ```typescript export declare function useUnclaimedNFTs(contract: RequiredParam, queryParams?: QueryAllParams): import("@tanstack/react-query").UseQueryResult<{ - [x: string]: import("@thirdweb-dev/sdk/dist/browser").Json; + [x: string]: import("@thirdweb-dev/sdk").Json; name?: string | number | undefined; description?: string | null | undefined; image?: string | null | undefined; @@ -33,7 +33,7 @@ export declare function useUnclaimedNFTs(contract: RequiredParam, query Returns: -import("@tanstack/react-query").UseQueryResult<{ \[x: string\]: import("@thirdweb-dev/sdk/dist/browser").Json; name?: string \| number \| undefined; description?: string \| null \| undefined; image?: string \| null \| undefined; external\_url?: string \| null \| undefined; animation\_url?: string \| null \| undefined; uri: string; id: import("ethers").BigNumber; }\[\], unknown> +import("@tanstack/react-query").UseQueryResult<{ \[x: string\]: import("@thirdweb-dev/sdk").Json; name?: string \| number \| undefined; description?: string \| null \| undefined; image?: string \| null \| undefined; external\_url?: string \| null \| undefined; animation\_url?: string \| null \| undefined; uri: string; id: import("ethers").BigNumber; }\[\], unknown> a response object that includes an array of NFTs that are unclaimed diff --git a/packages/thirdweb-react/docs/react.useupdatemetadata.md b/packages/thirdweb-react/docs/react.useupdatemetadata.md index fff8730..1849139 100644 --- a/packages/thirdweb-react/docs/react.useupdatemetadata.md +++ b/packages/thirdweb-react/docs/react.useupdatemetadata.md @@ -16,7 +16,7 @@ export declare function useUpdateMetadata(contract: RequiredParam Promise; }, unknown, { - [x: string]: import("@thirdweb-dev/sdk/dist/browser").Json; + [x: string]: import("@thirdweb-dev/sdk").Json; description?: string | undefined; image?: any; external_link?: string | undefined; @@ -32,7 +32,7 @@ export declare function useUpdateMetadata(contract: RequiredParamReturns: -import("@tanstack/react-query").UseMutationResult<{ receipt: import("@ethersproject/abstract-provider").TransactionReceipt; data: () => Promise<any>; }, unknown, { \[x: string\]: import("@thirdweb-dev/sdk/dist/browser").Json; description?: string \| undefined; image?: any; external\_link?: string \| undefined; name: string; }, unknown> +import("@tanstack/react-query").UseMutationResult<{ receipt: import("@ethersproject/abstract-provider").TransactionReceipt; data: () => Promise<any>; }, unknown, { \[x: string\]: import("@thirdweb-dev/sdk").Json; description?: string \| undefined; image?: any; external\_link?: string \| undefined; name: string; }, unknown> a mutation object that can be used to update the metadata diff --git a/packages/thirdweb-react/docs/react.usewinningbid.md b/packages/thirdweb-react/docs/react.usewinningbid.md index d6f43e0..e023941 100644 --- a/packages/thirdweb-react/docs/react.usewinningbid.md +++ b/packages/thirdweb-react/docs/react.usewinningbid.md @@ -12,7 +12,7 @@ Use this to get a the winning bid for an auction listing from your marketplace c Signature: ```typescript -export declare function useWinningBid(contract: RequiredParam, listingId: RequiredParam): import("@tanstack/react-query").UseQueryResult; +export declare function useWinningBid(contract: RequiredParam, listingId: RequiredParam): import("@tanstack/react-query").UseQueryResult; ``` ## Parameters @@ -24,7 +24,7 @@ export declare function useWinningBid(contract: RequiredParam, list Returns: -import("@tanstack/react-query").UseQueryResult<import("@thirdweb-dev/sdk/dist/browser").Offer \| undefined, unknown> +import("@tanstack/react-query").UseQueryResult<import("@thirdweb-dev/sdk").Offer \| undefined, unknown> a response object that includes the that is winning the auction diff --git a/packages/thirdweb-react/docs/react.web3button.md b/packages/thirdweb-react/docs/react.web3button.md index b7acd00..4426053 100644 --- a/packages/thirdweb-react/docs/react.web3button.md +++ b/packages/thirdweb-react/docs/react.web3button.md @@ -14,7 +14,7 @@ The button has to be wrapped in a `ThirdwebProvider` in order to function. Signature: ```typescript -Web3Button: React.FC> +Web3Button: ({ contractAddress, overrides, onSuccess, onError, onSubmit, isDisabled, children, functionName, params, callable, ...themeProps }: PropsWithChildren>) => JSX.Element ``` ## Example diff --git a/packages/thirdweb-react/etc/react.api.md b/packages/thirdweb-react/etc/react.api.md index 92056d3..83986ef 100644 --- a/packages/thirdweb-react/etc/react.api.md +++ b/packages/thirdweb-react/etc/react.api.md @@ -4,89 +4,90 @@ ```ts -import { AbiFunction } from '@thirdweb-dev/sdk/dist/browser'; -import type { AirdropInput } from '@thirdweb-dev/sdk/dist/browser'; -import type { Amount } from '@thirdweb-dev/sdk/dist/browser'; -import { AuctionListing } from '@thirdweb-dev/sdk/dist/browser'; +import { AbiFunction } from '@thirdweb-dev/sdk'; +import type { AirdropInput } from '@thirdweb-dev/sdk'; +import type { Amount } from '@thirdweb-dev/sdk'; +import { AuctionListing } from '@thirdweb-dev/sdk'; import { BaseContract } from 'ethers'; -import { BatchToReveal } from '@thirdweb-dev/sdk/dist/browser'; +import { BatchToReveal } from '@thirdweb-dev/sdk'; import { BigNumber } from 'ethers'; import { BigNumberish } from 'ethers'; import { CallOverrides } from 'ethers'; import { Chain } from './types'; -import { ChainId } from '@thirdweb-dev/sdk/dist/browser'; -import { ChainOrRpc } from '@thirdweb-dev/sdk/dist/browser'; -import { ClaimConditionInput } from '@thirdweb-dev/sdk/dist/browser'; -import { ClaimEligibility } from '@thirdweb-dev/sdk/dist/browser'; +import { ChainId } from '@thirdweb-dev/sdk'; +import { ChainOrRpc } from '@thirdweb-dev/sdk'; +import { ClaimConditionInput } from '@thirdweb-dev/sdk'; +import { ClaimEligibility } from '@thirdweb-dev/sdk'; import { CoinbaseWalletConnector } from 'wagmi/connectors/coinbaseWallet'; import { Connector } from './connectors'; import { ConnectorData } from './connectors'; -import type { ContractEvent } from '@thirdweb-dev/sdk/dist/browser'; -import { ContractForContractType } from '@thirdweb-dev/sdk/dist/browser'; -import { ContractType } from '@thirdweb-dev/sdk/dist/browser'; +import type { ContractEvent } from '@thirdweb-dev/sdk'; +import { ContractForContractType } from '@thirdweb-dev/sdk'; +import { ContractType } from '@thirdweb-dev/sdk'; import { defaultChains } from './constants'; import { defaultL2Chains } from './constants'; -import { DirectListing } from '@thirdweb-dev/sdk/dist/browser'; -import { Edition } from '@thirdweb-dev/sdk/dist/browser'; -import { EditionDrop } from '@thirdweb-dev/sdk/dist/browser'; -import { Erc1155 } from '@thirdweb-dev/sdk/dist/browser'; -import type { Erc1155Mintable } from '@thirdweb-dev/sdk/dist/browser'; -import { Erc20 } from '@thirdweb-dev/sdk/dist/browser'; -import type { Erc721 } from '@thirdweb-dev/sdk/dist/browser'; -import type { Erc721Mintable } from '@thirdweb-dev/sdk/dist/browser'; -import type { EventQueryFilter } from '@thirdweb-dev/sdk/dist/browser'; +import { DirectListing } from '@thirdweb-dev/sdk'; +import { Edition } from '@thirdweb-dev/sdk'; +import { EditionDrop } from '@thirdweb-dev/sdk'; +import { Erc1155 } from '@thirdweb-dev/sdk'; +import type { Erc1155Mintable } from '@thirdweb-dev/sdk'; +import { Erc20 } from '@thirdweb-dev/sdk'; +import type { Erc721 } from '@thirdweb-dev/sdk'; +import type { Erc721Mintable } from '@thirdweb-dev/sdk'; +import type { EventQueryFilter } from '@thirdweb-dev/sdk'; import { FetchStatus } from '@tanstack/react-query'; import { InjectedConnector } from 'wagmi/connectors/injected'; -import { IStorage } from '@thirdweb-dev/sdk/dist/browser'; -import { Json } from '@thirdweb-dev/sdk/dist/browser'; -import { ListingType } from '@thirdweb-dev/sdk/dist/browser'; +import type { IStorage } from '@thirdweb-dev/storage'; +import { IStorage as IStorage_2 } from '@thirdweb-dev/sdk'; +import { Json } from '@thirdweb-dev/sdk'; +import { ListingType } from '@thirdweb-dev/sdk'; import { LoginOptions } from '@thirdweb-dev/sdk/dist/src/schema'; import { LoginOptions as LoginOptions_2 } from '@thirdweb-dev/sdk'; import { LoginWithMagicLinkConfiguration } from 'magic-sdk'; import type { MagicSDKAdditionalConfiguration } from 'magic-sdk'; -import { Marketplace } from '@thirdweb-dev/sdk/dist/browser'; -import type { MarketplaceFilter } from '@thirdweb-dev/sdk/dist/browser'; -import { Multiwrap } from '@thirdweb-dev/sdk/dist/browser'; -import type { NewAuctionListing } from '@thirdweb-dev/sdk/dist/browser'; -import type { NewDirectListing } from '@thirdweb-dev/sdk/dist/browser'; -import { NFTCollection } from '@thirdweb-dev/sdk/dist/browser'; -import { NFTDrop } from '@thirdweb-dev/sdk/dist/browser'; -import { NFTMetadata } from '@thirdweb-dev/sdk/dist/browser'; -import { NFTMetadataInput } from '@thirdweb-dev/sdk/dist/browser'; +import { Marketplace } from '@thirdweb-dev/sdk'; +import type { MarketplaceFilter } from '@thirdweb-dev/sdk'; +import { Multiwrap } from '@thirdweb-dev/sdk'; +import type { NewAuctionListing } from '@thirdweb-dev/sdk'; +import type { NewDirectListing } from '@thirdweb-dev/sdk'; +import { NFTCollection } from '@thirdweb-dev/sdk'; +import { NFTDrop } from '@thirdweb-dev/sdk'; +import { NFTMetadata } from '@thirdweb-dev/sdk'; +import { NFTMetadataInput } from '@thirdweb-dev/sdk'; import type { NFTMetadataInput as NFTMetadataInput_2 } from '@thirdweb-dev/sdk/dist/src/schema'; import type { NFTMetadataOrUri } from '@thirdweb-dev/sdk/dist/src/schema'; -import { Offer } from '@thirdweb-dev/sdk/dist/browser'; -import { Pack } from '@thirdweb-dev/sdk/dist/browser'; -import type { Price } from '@thirdweb-dev/sdk/dist/browser'; +import { Offer } from '@thirdweb-dev/sdk'; +import { Pack } from '@thirdweb-dev/sdk'; +import type { Price } from '@thirdweb-dev/sdk'; import { PropsWithChildren } from 'react'; -import { QueryAllParams } from '@thirdweb-dev/sdk/dist/browser'; +import { QueryAllParams } from '@thirdweb-dev/sdk'; import { QueryClient } from '@tanstack/react-query'; import { QueryObserverResult } from '@tanstack/react-query'; import { default as React_2 } from 'react'; import { RefetchOptions } from '@tanstack/react-query'; import { RefetchQueryFilters } from '@tanstack/react-query'; -import type { Role } from '@thirdweb-dev/sdk/dist/browser'; -import { SDKOptions } from '@thirdweb-dev/sdk/dist/browser'; -import { SignatureDrop } from '@thirdweb-dev/sdk/dist/browser'; +import type { Role } from '@thirdweb-dev/sdk'; +import { SDKOptions } from '@thirdweb-dev/sdk'; +import { SignatureDrop } from '@thirdweb-dev/sdk'; import { Signer } from 'ethers'; -import { SignerOrProvider } from '@thirdweb-dev/sdk/dist/browser'; -import { SmartContract } from '@thirdweb-dev/sdk/dist/browser'; -import { Split } from '@thirdweb-dev/sdk/dist/browser'; -import { SUPPORTED_CHAIN_ID } from '@thirdweb-dev/sdk/dist/browser'; -import { ThirdwebSDK } from '@thirdweb-dev/sdk/dist/browser'; -import { Token } from '@thirdweb-dev/sdk/dist/browser'; -import { TokenDrop } from '@thirdweb-dev/sdk/dist/browser'; +import { SignerOrProvider } from '@thirdweb-dev/sdk'; +import { SmartContract } from '@thirdweb-dev/sdk'; +import { Split } from '@thirdweb-dev/sdk'; +import { SUPPORTED_CHAIN_ID } from '@thirdweb-dev/sdk'; +import { ThirdwebSDK } from '@thirdweb-dev/sdk'; +import { Token } from '@thirdweb-dev/sdk'; +import { TokenDrop } from '@thirdweb-dev/sdk'; import { TransactionError } from '@thirdweb-dev/sdk'; import { TransactionReceipt } from '@ethersproject/abstract-provider'; import { TransactionResult } from '@thirdweb-dev/sdk'; -import { TransactionResultWithId } from '@thirdweb-dev/sdk/dist/browser'; -import { UploadProgressEvent } from '@thirdweb-dev/sdk/dist/browser'; +import { TransactionResultWithId } from '@thirdweb-dev/sdk'; +import { UploadProgressEvent } from '@thirdweb-dev/sdk'; import { useAccount } from './hooks'; import { UseMutationResult } from '@tanstack/react-query'; import { useProvider } from './hooks'; import { UseQueryResult } from '@tanstack/react-query'; -import type { ValidContractInstance } from '@thirdweb-dev/sdk/dist/browser'; -import { Vote } from '@thirdweb-dev/sdk/dist/browser'; +import type { ValidContractInstance } from '@thirdweb-dev/sdk'; +import { Vote } from '@thirdweb-dev/sdk'; import { WalletConnectConnector } from 'wagmi/connectors/walletConnect'; // @beta @@ -1646,7 +1647,7 @@ export { useProvider } // Warning: (ae-internal-missing-underscore) The name "useReadonlySDK" should be prefixed with an underscore because the declaration is marked as @internal // // @internal (undocumented) -export function useReadonlySDK(readonlyRpcUrl: string, sdkOptions: SDKOptions, storageInterface?: IStorage): ThirdwebSDK; +export function useReadonlySDK(readonlyRpcUrl: string, sdkOptions: SDKOptions, storageInterface?: IStorage_2): ThirdwebSDK; // @beta export function useResetClaimConditions(...[contract, tokenId]: ClaimConditionsInputParams): UseMutationResult>; +export const Web3Button: ({ contractAddress, overrides, onSuccess, onError, onSubmit, isDisabled, children, functionName, params, callable, ...themeProps }: PropsWithChildren>) => JSX.Element; // Warnings were encountered during analysis: // -// dist/declarations/dist/Provider.d.ts:38:5 - (ae-forgotten-export) The symbol "MagicConnectorArguments" needs to be exported by the entry point thirdweb-dev-react.cjs.d.ts -// dist/declarations/dist/Provider.d.ts:45:5 - (ae-forgotten-export) The symbol "GnosisConnectorArguments" needs to be exported by the entry point thirdweb-dev-react.cjs.d.ts +// dist/declarations/dist/Provider.d.ts:39:5 - (ae-forgotten-export) The symbol "MagicConnectorArguments" needs to be exported by the entry point thirdweb-dev-react.cjs.d.ts +// dist/declarations/dist/Provider.d.ts:46:5 - (ae-forgotten-export) The symbol "GnosisConnectorArguments" needs to be exported by the entry point thirdweb-dev-react.cjs.d.ts // dist/declarations/dist/hooks/async/roles.d.ts:126:5 - (ae-incompatible-release-tags) The symbol "role" is marked as @beta, but its signature references "RolesForContract" which is marked as @internal // dist/declarations/dist/hooks/async/roles.d.ts:161:5 - (ae-incompatible-release-tags) The symbol "role" is marked as @beta, but its signature references "RolesForContract" which is marked as @internal // dist/declarations/dist/hooks/useNetwork.d.ts:48:5 - (ae-forgotten-export) The symbol "SwitchChainError" needs to be exported by the entry point thirdweb-dev-react.cjs.d.ts diff --git a/packages/thirdweb-react/package.json b/packages/thirdweb-react/package.json index 5b9e91b..854fb6e 100644 --- a/packages/thirdweb-react/package.json +++ b/packages/thirdweb-react/package.json @@ -1,6 +1,6 @@ { "name": "@thirdweb-dev/react", - "version": "2.7.2", + "version": "2.7.3-4", "repository": { "type": "git", "url": "git+https://github.com:thirdweb-dev/react.git" @@ -65,6 +65,7 @@ "@gnosis.pm/safe-ethers-lib": "1.1.0", "@reach/portal": "^0.17.0", "@tanstack/react-query": "^4.0.10", + "@thirdweb-dev/storage": "^0.1.0", "@zag-js/menu": "^0.1.11", "@zag-js/react": "^0.1.13", "color": "^4.2.3", diff --git a/packages/thirdweb-react/src/Provider.tsx b/packages/thirdweb-react/src/Provider.tsx index 27daae1..3204859 100644 --- a/packages/thirdweb-react/src/Provider.tsx +++ b/packages/thirdweb-react/src/Provider.tsx @@ -20,14 +20,14 @@ import { useSigner } from "./hooks/useSigner"; import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; import { ChainOrRpc, - IStorage, SDKOptions, SUPPORTED_CHAIN_ID, SignerOrProvider, ThirdwebSDK, getProviderForNetwork, -} from "@thirdweb-dev/sdk/dist/browser"; +} from "@thirdweb-dev/sdk"; import { SDKOptionsOutput } from "@thirdweb-dev/sdk/dist/src/schema"; +import type { IStorage } from "@thirdweb-dev/storage"; import { Signer } from "ethers"; import React, { createContext, useEffect, useMemo } from "react"; import invariant from "tiny-invariant"; diff --git a/packages/thirdweb-react/src/components/NftMedia.tsx b/packages/thirdweb-react/src/components/NftMedia.tsx index 65b8e59..84b3581 100644 --- a/packages/thirdweb-react/src/components/NftMedia.tsx +++ b/packages/thirdweb-react/src/components/NftMedia.tsx @@ -1,5 +1,5 @@ import { MediaRenderer, SharedMediaProps } from "./MediaRenderer"; -import { NFTMetadata } from "@thirdweb-dev/sdk/dist/browser"; +import { NFTMetadata } from "@thirdweb-dev/sdk"; import React from "react"; /** @@ -46,7 +46,7 @@ export const ThirdwebNftMedia = React.forwardRef< diff --git a/packages/thirdweb-react/src/components/Web3Button/index.tsx b/packages/thirdweb-react/src/components/Web3Button/index.tsx index 7f251b6..26441e7 100644 --- a/packages/thirdweb-react/src/components/Web3Button/index.tsx +++ b/packages/thirdweb-react/src/components/Web3Button/index.tsx @@ -1,19 +1,28 @@ import { useActiveChainId } from "../../Provider"; -import { useContract, useContractCall } from "../../hooks/async/contracts"; +import { useContract } from "../../hooks/async/contracts"; import { useAddress } from "../../hooks/useAddress"; import { useChainId } from "../../hooks/useChainId"; import { useNetwork } from "../../hooks/useNetwork"; +import { + createCacheKeyWithNetwork, + createContractCacheKey, +} from "../../utils/cache-keys"; import { ConnectWallet } from "../ConnectWallet"; import { Button } from "../shared/Button"; import { ThemeProvider, ThemeProviderProps } from "../shared/ThemeProvider"; -import { TransactionError, TransactionResult } from "@thirdweb-dev/sdk"; +import { useMutation, useQueryClient } from "@tanstack/react-query"; +import { + SmartContract, + TransactionError, + TransactionResult, +} from "@thirdweb-dev/sdk"; import type { CallOverrides } from "ethers"; import { PropsWithChildren, useMemo } from "react"; +import invariant from "tiny-invariant"; -interface Web3ButtonProps extends ThemeProviderProps { +interface SharedWeb3ButtonProps extends ThemeProviderProps { contractAddress: `0x${string}` | `${string}.eth`; - functionName: string; - params?: unknown[] | (() => Promise); + overrides?: CallOverrides; // called with the result onSuccess?: (result: TransactionResult) => void; @@ -25,6 +34,19 @@ interface Web3ButtonProps extends ThemeProviderProps { isDisabled?: boolean; } +type ExecutableFn = (contract: SmartContract) => any; + +type Web3ButtonPropsOptinalProps = + | { + functionName: string; + params?: unknown[] | (() => Promise); + callable?: never; + } + | { functionName?: never; params?: never; callable: TExecutableFn }; + +type Web3ButtonProps = + SharedWeb3ButtonProps & Web3ButtonPropsOptinalProps; + /** * A component that allows the user to call an on-chain function on a contract. * @@ -46,23 +68,26 @@ interface Web3ButtonProps extends ThemeProviderProps { * * @beta */ -export const Web3Button: React.FC> = ({ +export const Web3Button = ({ contractAddress, - functionName, - params, overrides, onSuccess, onError, onSubmit, isDisabled, children, + functionName, + params, + callable, ...themeProps -}) => { +}: PropsWithChildren>) => { const address = useAddress(); const walletChainId = useChainId(); const sdkChainId = useActiveChainId(); const [, switchNetwork] = useNetwork(); + const queryClient = useQueryClient(); + const switchToChainId = useMemo(() => { if (sdkChainId && walletChainId && sdkChainId !== walletChainId) { return sdkChainId; @@ -72,36 +97,55 @@ export const Web3Button: React.FC> = ({ const contractQuery = useContract(contractAddress); - const mutation = useContractCall(contractQuery.contract, functionName); - - const handleClick = async () => { - if (switchToChainId) { - if (switchNetwork) { - await switchNetwork(switchToChainId); - await new Promise((resolve) => setTimeout(resolve, 500)); - } else { - console.warn( - "need to switch chain but connected wallet does not support switching", - ); - return; + const mutation = useMutation( + async () => { + if (switchToChainId) { + if (switchNetwork) { + await switchNetwork(switchToChainId); + await new Promise((resolve) => setTimeout(resolve, 500)); + } else { + throw new Error( + "need to switch chain but connected wallet does not support switching", + ); + } } - } - const vars = typeof params === "function" ? await params() : params; - const withOverrides = - vars && overrides ? [...vars, overrides] : overrides ? [overrides] : vars; - try { - const result = await mutation.mutateAsync(withOverrides); - if (onSuccess) { - onSuccess(result); + if (!contractQuery.contract) { + throw new Error("contract not ready yet"); } - } catch (error) { - console.error("Error calling contract", error); - if (onError) { - onError(error as TransactionError); + if (callable) { + if (onSubmit) { + onSubmit(); + } + return await callable(contractQuery.contract); } - } - }; + const vars = typeof params === "function" ? await params() : params; + const withOverrides = + vars && overrides + ? [...vars, overrides] + : overrides + ? [overrides] + : vars; + + invariant(functionName, "functionName is required"); + + if (onSubmit) { + onSubmit(); + } + return await contractQuery.contract.call(functionName, ...withOverrides); + }, + { + onSuccess, + onError, + onSettled: () => + queryClient.invalidateQueries( + createCacheKeyWithNetwork( + createContractCacheKey(contractAddress), + sdkChainId, + ), + ), + }, + ); if (!address) { return ; } @@ -111,7 +155,7 @@ export const Web3Button: React.FC> = ({