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> = ({