diff --git a/apps/dashboard/src/app/(dashboard)/(chain)/[chain_id]/[contractAddress]/_components/claim-conditions/claim-conditions-form/hooks.ts b/apps/dashboard/src/app/(dashboard)/(chain)/[chain_id]/[contractAddress]/_components/claim-conditions/claim-conditions-form/hooks.ts index 0b65d512fe0..ae3d9c2e81b 100644 --- a/apps/dashboard/src/app/(dashboard)/(chain)/[chain_id]/[contractAddress]/_components/claim-conditions/claim-conditions-form/hooks.ts +++ b/apps/dashboard/src/app/(dashboard)/(chain)/[chain_id]/[contractAddress]/_components/claim-conditions/claim-conditions-form/hooks.ts @@ -55,7 +55,7 @@ type Options = }; export async function getClaimPhasesInLegacyFormat( - options: BaseTransactionOptions, + options: BaseTransactionOptions & { isMultiPhase: boolean }, ): Promise { const conditions = await (async () => { switch (options.type) { @@ -64,7 +64,10 @@ export async function getClaimPhasesInLegacyFormat( case "erc721": return ERC721Ext.getClaimConditions(options); case "erc1155": - return ERC1155Ext.getClaimConditions(options); + return ERC1155Ext.getClaimConditions({ + ...options, + singlePhaseDrop: !options.isMultiPhase, + }); } })(); diff --git a/apps/dashboard/src/app/(dashboard)/(chain)/[chain_id]/[contractAddress]/_components/claim-conditions/claim-conditions-form/index.tsx b/apps/dashboard/src/app/(dashboard)/(chain)/[chain_id]/[contractAddress]/_components/claim-conditions/claim-conditions-form/index.tsx index 0f1236353ca..b6e752d9c00 100644 --- a/apps/dashboard/src/app/(dashboard)/(chain)/[chain_id]/[contractAddress]/_components/claim-conditions/claim-conditions-form/index.tsx +++ b/apps/dashboard/src/app/(dashboard)/(chain)/[chain_id]/[contractAddress]/_components/claim-conditions/claim-conditions-form/index.tsx @@ -222,6 +222,7 @@ export const ClaimConditionsForm: React.FC = ({ const claimConditionsQuery = useReadContract(getClaimPhasesInLegacyFormat, { contract, + isMultiPhase, ...(isErc20 ? { type: "erc20", decimals: tokenDecimals.data } : isErc721 diff --git a/packages/thirdweb/src/extensions/erc1155/drops/read/getClaimConditions.ts b/packages/thirdweb/src/extensions/erc1155/drops/read/getClaimConditions.ts index 5dd54645ff4..2f27f971241 100644 --- a/packages/thirdweb/src/extensions/erc1155/drops/read/getClaimConditions.ts +++ b/packages/thirdweb/src/extensions/erc1155/drops/read/getClaimConditions.ts @@ -20,10 +20,36 @@ export type GetClaimConditionsParams = { * ``` */ export async function getClaimConditions( - options: BaseTransactionOptions, + options: BaseTransactionOptions & { + singlePhaseDrop?: boolean; + }, ): Promise { - const [multi, single] = await Promise.allSettled([ - (async () => { + try { + if (options.singlePhaseDrop) { + return SinglePhase.claimCondition(options).then( + ([ + startTimestamp, + maxClaimableSupply, + supplyClaimed, + quantityLimitPerWallet, + merkleRoot, + pricePerToken, + currency, + metadata, + ]) => [ + { + startTimestamp, + maxClaimableSupply, + supplyClaimed, + quantityLimitPerWallet, + merkleRoot, + pricePerToken, + currency, + metadata, + }, + ], + ); + } else { const [startId, count] = await MultiPhase.claimCondition(options); const conditionPromises: Array< @@ -38,37 +64,10 @@ export async function getClaimConditions( ); } return Promise.all(conditionPromises); - })(), - SinglePhase.claimCondition(options).then( - ([ - startTimestamp, - maxClaimableSupply, - supplyClaimed, - quantityLimitPerWallet, - merkleRoot, - pricePerToken, - currency, - metadata, - ]) => ({ - startTimestamp, - maxClaimableSupply, - supplyClaimed, - quantityLimitPerWallet, - merkleRoot, - pricePerToken, - currency, - metadata, - }), - ), - ]); - if (multi.status === "fulfilled") { - return multi.value; + } + } catch { + throw new Error("Claim condition not found"); } - if (single.status === "fulfilled") { - return [single.value]; - } - - throw new Error("Claim condition not found"); } /**