diff --git a/packages/checkout/src/hooks/useERC1155SaleContractCheckout.ts b/packages/checkout/src/hooks/useERC1155SaleContractCheckout.ts index 3a404b05d..67181cc9d 100644 --- a/packages/checkout/src/hooks/useERC1155SaleContractCheckout.ts +++ b/packages/checkout/src/hooks/useERC1155SaleContractCheckout.ts @@ -1,8 +1,8 @@ -import { useFindVersion } from '@0xsequence/hooks' +import { useDetectContractVersion } from '@0xsequence/hooks' import { type CheckoutOptionsSalesContractArgs } from '@0xsequence/marketplace' import { findSupportedNetwork } from '@0xsequence/network' -import { encodeFunctionData, sha256, toHex, zeroAddress, type Hex } from 'viem' -import { useBytecode, useReadContract, useReadContracts } from 'wagmi' +import { encodeFunctionData, toHex, zeroAddress, type Hex } from 'viem' +import { useReadContract, useReadContracts } from 'wagmi' import { ERC_1155_SALE_CONTRACT } from '../constants/abi.js' import type { SelectPaymentSettings } from '../contexts/SelectPaymentModal.js' @@ -235,32 +235,18 @@ export const useSaleContractConfig = ({ contractAddress, tokenIds }: UseSaleContractConfigArgs): UseSaleContractConfigReturn => { - const { - data: bytecode, - isLoading: isLoadingBytecode, - isError: isErrorBytecode - } = useBytecode({ - address: contractAddress as Hex, - chainId - }) - const { data: versionData, isLoading: isLoadingVersion, isError: isErrorVersion - } = useFindVersion( - { uid: 'erc-1155-sale', hash: bytecode ? sha256(bytecode) : '' }, - { - disabled: !bytecode - } - ) + } = useDetectContractVersion({ contractAddress, chainId }) const getAbi = () => { if (isErrorVersion) { return ERC_1155_SALE_CONTRACT } - const versionAbi = versionData?.itemVersion?.sourceData?.abi + const versionAbi = versionData?.version?.sourceData?.abi if (!versionAbi) { return ERC_1155_SALE_CONTRACT } @@ -335,13 +321,9 @@ export const useSaleContractConfig = ({ }) const isLoadingERC1155 = - isLoadingPaymentTokenERC1155 || - isLoadingGlobalSaleDetailsERC1155 || - isLoadingTokenSaleDetailsERC1155 || - isLoadingVersion || - isLoadingBytecode - const isErrorERC1155 = - isErrorPaymentTokenERC1155 || isErrorGlobalSaleDetailsERC1155 || isErrorTokenSaleDetailsERC1155 || isErrorBytecode + isLoadingPaymentTokenERC1155 || isLoadingGlobalSaleDetailsERC1155 || isLoadingTokenSaleDetailsERC1155 || isLoadingVersion + + const isErrorERC1155 = isErrorPaymentTokenERC1155 || isErrorGlobalSaleDetailsERC1155 || isErrorTokenSaleDetailsERC1155 if (isLoadingERC1155 || isErrorERC1155) { return { @@ -354,7 +336,7 @@ export const useSaleContractConfig = ({ const getSaleConfigs = (): SaleConfig[] => { let saleInfos: SaleConfig[] = [] - if (isLoadingERC1155 || isErrorERC1155 || isLoadingVersion || isLoadingBytecode) { + if (isLoadingERC1155 || isErrorERC1155 || isLoadingVersion) { return saleInfos } diff --git a/packages/hooks/src/constants.ts b/packages/hooks/src/constants.ts index 473998009..3d6ed452e 100644 --- a/packages/hooks/src/constants.ts +++ b/packages/hooks/src/constants.ts @@ -14,7 +14,7 @@ export const QUERY_KEYS = { useGetCollectiblePrices: 'useGetCollectiblePrices', useGetSwapQuote: 'useGetSwapQuote', useGetSwapRoutes: 'useGetSwapRoutes', - useFindVersion: 'useFindVersion' + useDetectContractVersion: 'useDetectContractVersion' } export const time = { diff --git a/packages/hooks/src/hooks/Builder/useFindVersion.ts b/packages/hooks/src/hooks/Builder/useDetectContractVersion.ts similarity index 69% rename from packages/hooks/src/hooks/Builder/useFindVersion.ts rename to packages/hooks/src/hooks/Builder/useDetectContractVersion.ts index f64f2a771..1fa4fcf9a 100644 --- a/packages/hooks/src/hooks/Builder/useFindVersion.ts +++ b/packages/hooks/src/hooks/Builder/useDetectContractVersion.ts @@ -11,8 +11,8 @@ import { useConfig } from '../useConfig.js' * * * @param args - The arguments for the hook: - * - uid: The UID of the contract - * - hash: The hash of the contract + * - address: The address of the contract + * - chainId: The chain id of the contract * * @param options - Optional configuration options: * - retry: Whether to retry failed requests (defaults to false) @@ -27,27 +27,27 @@ import { useConfig } from '../useConfig.js' * */ -interface FindVersionArgs { - uid: string - hash: string +interface DetectContractVersionArgs { + contractAddress: string + chainId: number } -export const useFindVersion = (args: FindVersionArgs, options?: HooksOptions) => { +export const useDetectContractVersion = (args: DetectContractVersionArgs, options?: HooksOptions) => { const { projectAccessKey, env } = useConfig() return useQuery({ - queryKey: [QUERY_KEYS.useFindVersion, args.uid, args.hash, options], + queryKey: [QUERY_KEYS.useDetectContractVersion, args.contractAddress, args.chainId, options], queryFn: async () => { - const res = await fetch(`${env.builderUrl}/rpc/ContractLibrary/FindVersion`, { + const res = await fetch(`${env.builderUrl}/rpc/ContractLibrary/DetectContractVersion`, { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-Access-Key': projectAccessKey }, - body: JSON.stringify({ uid: args.uid, hash: args.hash }) + body: JSON.stringify({ address: args.contractAddress, chainId: args.chainId }) }) const data = await res.json() return data }, retry: options?.retry ?? false, staleTime: time.oneMinute * 60, - enabled: !!args.uid && !!args.hash && !options?.disabled + enabled: !!args.contractAddress && !!args.chainId && !options?.disabled }) } diff --git a/packages/hooks/src/index.ts b/packages/hooks/src/index.ts index f22929881..85fd8a654 100644 --- a/packages/hooks/src/index.ts +++ b/packages/hooks/src/index.ts @@ -18,7 +18,7 @@ export { useGetExchangeRate } from './hooks/API/useGetExchangeRate.js' export { useGetWaasStatus } from './hooks/API/useGetWaasStatus.js' // Builder -export { useFindVersion } from './hooks/Builder/useFindVersion.js' +export { useDetectContractVersion } from './hooks/Builder/useDetectContractVersion.js' // Indexer export { useIndexerClient, useIndexerClients } from './hooks/Indexer/useIndexerClient.js'