@0xsequence/marketplace-sdk 0.5.2 → 0.5.3
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/builder-types-wOwfTJpd.d.ts +73 -0
- package/dist/{chunk-FCF57DZI.js → chunk-7FN62HOP.js} +5 -9
- package/dist/chunk-7FN62HOP.js.map +1 -0
- package/dist/{chunk-MSTTVFVQ.js → chunk-BVXIRVEC.js} +251 -241
- package/dist/chunk-BVXIRVEC.js.map +1 -0
- package/dist/{chunk-XP3WY5AX.js → chunk-BZD2LDJJ.js} +2 -2
- package/dist/{chunk-XP3WY5AX.js.map → chunk-BZD2LDJJ.js.map} +1 -1
- package/dist/chunk-DZKPDV63.js +27 -0
- package/dist/chunk-DZKPDV63.js.map +1 -0
- package/dist/{chunk-I37CRQ4S.js → chunk-H5YWG6WN.js} +128 -88
- package/dist/chunk-H5YWG6WN.js.map +1 -0
- package/dist/{chunk-ZUEQGPLO.js → chunk-J6F5QOW5.js} +2 -2
- package/dist/{chunk-ZUEQGPLO.js.map → chunk-J6F5QOW5.js.map} +1 -1
- package/dist/{chunk-LJAB3S6U.js → chunk-TFRAOS7F.js} +22 -13
- package/dist/chunk-TFRAOS7F.js.map +1 -0
- package/dist/{chunk-5NORRVPM.js → chunk-UZIAX32Y.js} +1 -1
- package/dist/{chunk-5NORRVPM.js.map → chunk-UZIAX32Y.js.map} +1 -1
- package/dist/{chunk-MKGSGTQC.js → chunk-Y7YTLAO2.js} +3 -3
- package/dist/{create-config-BXvwUh55.d.ts → create-config-Bltg8Enl.d.ts} +1 -1
- package/dist/index.css +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +10 -6
- package/dist/react/_internal/index.d.ts +3 -3
- package/dist/react/_internal/index.js +6 -6
- package/dist/react/_internal/wagmi/index.d.ts +2 -3
- package/dist/react/_internal/wagmi/index.js +1 -1
- package/dist/react/hooks/index.d.ts +72 -20
- package/dist/react/hooks/index.js +5 -7
- package/dist/react/index.css +1 -1
- package/dist/react/index.css.map +1 -1
- package/dist/react/index.d.ts +4 -4
- package/dist/react/index.js +10 -12
- package/dist/react/ssr/index.d.ts +54 -41
- package/dist/react/ssr/index.js +5 -9
- package/dist/react/ssr/index.js.map +1 -1
- package/dist/react/ui/components/collectible-card/index.css +1 -1
- package/dist/react/ui/components/collectible-card/index.css.map +1 -1
- package/dist/react/ui/components/collectible-card/index.d.ts +2 -2
- package/dist/react/ui/components/collectible-card/index.js +8 -8
- package/dist/react/ui/index.css +1 -1
- package/dist/react/ui/index.css.map +1 -1
- package/dist/react/ui/index.d.ts +2 -2
- package/dist/react/ui/index.js +8 -8
- package/dist/react/ui/modals/_internal/components/actionModal/index.d.ts +2 -2
- package/dist/react/ui/modals/_internal/components/actionModal/index.js +6 -6
- package/dist/react/ui/styles/index.d.ts +1 -1
- package/dist/styles/index.css +1 -1
- package/dist/styles/index.css.map +1 -1
- package/dist/styles/index.d.ts +1 -1
- package/dist/styles/index.js +1 -1
- package/dist/types/index.d.ts +1 -3
- package/dist/types/index.js +9 -5
- package/dist/{types-Yto6KrTN.d.ts → types-BY3husBh.d.ts} +1 -1
- package/dist/utils/index.d.ts +2 -2
- package/dist/utils/index.js +4 -4
- package/package.json +11 -10
- package/src/react/_internal/api/__mocks__/indexer.msw.ts +197 -0
- package/src/react/_internal/api/__mocks__/marketplace.msw.ts +140 -1
- package/src/react/_internal/api/__mocks__/metadata.msw.ts +162 -0
- package/src/react/_internal/test/mocks/publicClient.ts +39 -0
- package/src/react/_internal/test/mocks/wagmi.ts +61 -0
- package/src/react/_internal/test/mocks/wallet.ts +61 -0
- package/src/react/_internal/test/setup.ts +28 -0
- package/src/react/_internal/test-utils.tsx +31 -2
- package/src/react/_internal/wagmi/__tests__/create-config.test.ts +53 -20
- package/src/react/_internal/wagmi/create-config.ts +3 -4
- package/src/react/_internal/wagmi/embedded.ts +1 -4
- package/src/react/_internal/wagmi/universal.ts +1 -4
- package/src/react/_internal/wallet/wallet.ts +1 -0
- package/src/react/hooks/__tests__/useAutoSelectFeeOption.test.tsx +314 -0
- package/src/react/hooks/__tests__/useBalanceOfCollectible.test.tsx +148 -0
- package/src/react/hooks/__tests__/useCancelOrder.test.tsx +410 -0
- package/src/react/hooks/__tests__/useCancelTransactionSteps.test.tsx +269 -0
- package/src/react/hooks/__tests__/useCollectible.test.tsx +120 -0
- package/src/react/hooks/__tests__/useCollection.test.tsx +101 -0
- package/src/react/hooks/__tests__/useCollectionBalanceDetails.test.tsx +175 -0
- package/src/react/hooks/__tests__/useCollectionDetails.test.tsx +82 -0
- package/src/react/hooks/__tests__/useCollectionDetailsPolling.test.tsx +133 -0
- package/src/react/hooks/__tests__/useCountListingsForCollectible.test.tsx +108 -0
- package/src/react/hooks/__tests__/useCountOfCollectables.test.tsx +129 -0
- package/src/react/hooks/__tests__/useCountOffersForCollectible.test.tsx +108 -0
- package/src/react/hooks/__tests__/useCurrencies.test.tsx +176 -0
- package/src/react/hooks/__tests__/useCurrency.test.tsx +153 -0
- package/src/react/hooks/__tests__/useCurrencyBalance.test.tsx +111 -0
- package/src/react/hooks/__tests__/useFilters.test.tsx +127 -0
- package/src/react/hooks/__tests__/useFloorOrder.test.tsx +101 -0
- package/src/react/hooks/__tests__/useGenerateBuyTransaction.test.tsx +173 -0
- package/src/react/hooks/__tests__/useGenerateCancelTransaction.test.tsx +207 -0
- package/src/react/hooks/__tests__/useGenerateListingTransaction.test.tsx +207 -0
- package/src/react/hooks/__tests__/useGenerateOfferTransaction.test.tsx +205 -0
- package/src/react/hooks/__tests__/useGenerateSellTransaction.test.tsx +181 -0
- package/src/react/hooks/__tests__/useHighestOffer.test.tsx +118 -0
- package/src/react/hooks/__tests__/useListBalances.test.tsx +136 -0
- package/src/react/hooks/__tests__/useListCollectibleActivities.test.tsx +200 -0
- package/src/react/hooks/__tests__/useListCollectibles.test.tsx +232 -0
- package/src/react/hooks/__tests__/useListCollectionActivities.test.tsx +235 -0
- package/src/react/hooks/__tests__/useListCollections.test.tsx +296 -0
- package/src/react/hooks/__tests__/useListListingsForCollectible.test.tsx +140 -0
- package/src/react/hooks/__tests__/useListOffersForCollectible.test.tsx +140 -0
- package/src/react/hooks/__tests__/useLowestListing.test.tsx +148 -0
- package/src/react/hooks/__tests__/useMarketplaceConfig.test.tsx +106 -0
- package/src/react/hooks/__tests__/useRoyaltyPercentage.test.tsx +129 -0
- package/src/react/hooks/index.ts +0 -1
- package/src/react/hooks/options/__mocks__/marketplaceConfig.msw.ts +66 -10
- package/src/react/hooks/options/__tests__/marketplaceConfigOptions.test.tsx +2 -11
- package/src/react/hooks/options/marketplaceConfigOptions.ts +8 -3
- package/src/react/hooks/useAutoSelectFeeOption.tsx +4 -3
- package/src/react/hooks/useCancelTransactionSteps.tsx +17 -9
- package/src/react/hooks/useCollectionDetailsPolling.tsx +1 -1
- package/src/react/hooks/useCurrencies.tsx +29 -28
- package/src/react/hooks/useFilters.tsx +69 -2
- package/src/react/hooks/useGenerateBuyTransaction.tsx +13 -5
- package/src/react/hooks/useListCollectibleActivities.tsx +1 -0
- package/src/react/hooks/useListCollectibles.tsx +1 -0
- package/src/react/hooks/useListCollectionActivities.tsx +1 -0
- package/src/react/hooks/useListCollections.tsx +2 -2
- package/src/react/ui/components/_internals/custom-select/__tests__/CustomSelect.test.tsx +6 -2
- package/src/react/ui/components/collectible-card/CollectibleCard.tsx +1 -1
- package/src/react/ui/components/collectible-card/Footer.tsx +9 -5
- package/src/react/ui/modals/BuyModal/Modal.tsx +9 -4
- package/src/react/ui/modals/BuyModal/__tests__/Modal.test.tsx +0 -1
- package/src/react/ui/modals/BuyModal/__tests__/store.test.ts +4 -2
- package/src/react/ui/modals/BuyModal/hooks/__tests__/useBuyCollectable.test.tsx +1 -24
- package/src/react/ui/modals/BuyModal/hooks/__tests__/useCheckoutOptions.test.tsx +152 -210
- package/src/react/ui/modals/BuyModal/hooks/__tests__/useFees.test.tsx +19 -49
- package/src/react/ui/modals/BuyModal/hooks/useFees.ts +6 -6
- package/src/react/ui/modals/BuyModal/modals/Modal1155.tsx +4 -2
- package/src/react/ui/modals/BuyModal/modals/__tests__/Modal1155.test.tsx +161 -52
- package/src/react/ui/modals/BuyModal/store.ts +7 -0
- package/src/react/ui/modals/CreateListingModal/Modal.tsx +1 -3
- package/src/react/ui/modals/CreateListingModal/__tests__/Modal.test.tsx +59 -227
- package/src/react/ui/modals/CreateListingModal/hooks/useCreateListing.tsx +2 -1
- package/src/react/ui/modals/CreateListingModal/hooks/useTransactionSteps.tsx +9 -5
- package/src/react/ui/modals/MakeOfferModal/Modal.tsx +1 -8
- package/src/react/ui/modals/MakeOfferModal/__tests__/Modal.test.tsx +41 -118
- package/src/react/ui/modals/MakeOfferModal/hooks/useMakeOffer.tsx +2 -1
- package/src/react/ui/modals/MakeOfferModal/hooks/useTransactionSteps.tsx +9 -5
- package/src/react/ui/modals/SellModal/__tests__/Modal.test.tsx +4 -3
- package/src/react/ui/modals/SellModal/hooks/useGetTokenApproval.tsx +33 -31
- package/src/react/ui/modals/SellModal/hooks/useSell.tsx +1 -0
- package/src/react/ui/modals/SellModal/hooks/useTransactionSteps.tsx +9 -5
- package/src/react/ui/modals/SuccessfulPurchaseModal/__tests__/Modal.test.tsx +0 -1
- package/src/react/ui/modals/_internal/components/actionModal/ErrorModal.tsx +4 -2
- package/src/react/ui/modals/_internal/components/currencyOptionsSelect/__tests__/index.test.tsx +129 -57
- package/src/react/ui/modals/_internal/components/currencyOptionsSelect/index.tsx +1 -3
- package/src/react/ui/modals/_internal/components/priceInput/__tests__/index.test.tsx +1 -3
- package/src/react/ui/modals/_internal/components/transactionDetails/index.tsx +2 -2
- package/src/react/ui/modals/_internal/components/transactionStatusModal/__tests__/TransactionStatusModal.test.tsx +8 -8
- package/src/react/ui/modals/_internal/components/transactionStatusModal/hooks/useTransactionStatus.ts +1 -0
- package/src/types/builder-types.ts +79 -0
- package/src/types/index.ts +1 -1
- package/src/utils/__tests__/get-public-rpc-client.test.ts +2 -0
- package/src/utils/getMarketplaceDetails.ts +2 -2
- package/tsconfig.tsbuildinfo +1 -1
- package/vitest.config.js +2 -1
- package/dist/chunk-FCF57DZI.js.map +0 -1
- package/dist/chunk-I37CRQ4S.js.map +0 -1
- package/dist/chunk-LJAB3S6U.js.map +0 -1
- package/dist/chunk-MSTTVFVQ.js.map +0 -1
- package/dist/chunk-RK6KYMZM.js +0 -18
- package/dist/chunk-RK6KYMZM.js.map +0 -1
- package/dist/marketplace-config-znEu4L0K.d.ts +0 -60
- package/src/react/hooks/useCurrencyOptions.tsx +0 -16
- package/src/types/marketplace-config.ts +0 -67
- /package/dist/{chunk-MKGSGTQC.js.map → chunk-Y7YTLAO2.js.map} +0 -0
|
@@ -138,7 +138,7 @@ function getMarketplaceDetails({
|
|
|
138
138
|
originName,
|
|
139
139
|
kind
|
|
140
140
|
}) {
|
|
141
|
-
if (kind
|
|
141
|
+
if (kind === "sequence_marketplace_v1" /* sequence_marketplace_v1 */ || kind === "sequence_marketplace_v2" /* sequence_marketplace_v2 */) {
|
|
142
142
|
return MARKETPLACES.sequence;
|
|
143
143
|
}
|
|
144
144
|
let name = originName.toLowerCase();
|
|
@@ -171,4 +171,4 @@ export {
|
|
|
171
171
|
calculatePriceDifferencePercentage,
|
|
172
172
|
getMarketplaceDetails
|
|
173
173
|
};
|
|
174
|
-
//# sourceMappingURL=chunk-
|
|
174
|
+
//# sourceMappingURL=chunk-BZD2LDJJ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils/address.ts","../src/utils/get-public-rpc-client.ts","../src/utils/network.ts","../src/utils/price.ts","../src/utils/getMarketplaceDetails.ts"],"sourcesContent":["export const truncateMiddle = (\n\taddress: string,\n\tminPrefix = 20,\n\tminSuffix = 3,\n): string => {\n\tif (minPrefix + minSuffix >= 40) {\n\t\treturn address;\n\t}\n\treturn `${address.substring(0, 2 + minPrefix)}…${address.substring(address.length - minSuffix)}`;\n};\n\nexport const truncateEnd = (text: string | undefined, truncateAt: number) => {\n\tif (!text) return '';\n\n\tlet finalText = text;\n\n\tif (text.length >= truncateAt) {\n\t\tfinalText = `${text.slice(0, truncateAt)}...`;\n\t}\n\n\treturn finalText;\n};\n\nexport const compareAddress = (a = '', b = '') => {\n\treturn a.toLowerCase() === b.toLowerCase();\n};\n","import { allNetworks, findNetworkConfig } from '@0xsequence/network';\nimport { http, type PublicClient, createPublicClient } from 'viem';\nimport type { ChainId } from '../react/_internal';\nimport { MissingConfigError } from './_internal/error/transaction';\n\nexport const getPublicRpcClient = (chainId: ChainId): PublicClient => {\n\tif (chainId === undefined) {\n\t\tthrow new MissingConfigError(\n\t\t\t`Network configuration for chainId: ${chainId}`,\n\t\t);\n\t}\n\n\tconst network = findNetworkConfig(allNetworks, chainId);\n\n\tif (!network) {\n\t\tthrow new MissingConfigError(\n\t\t\t`Network configuration for chainId: ${chainId}`,\n\t\t);\n\t}\n\n\treturn createPublicClient({\n\t\tchain: {\n\t\t\t...network,\n\t\t\tid: Number(chainId),\n\t\t\tname: network.name,\n\t\t\tnativeCurrency: { ...network.nativeToken },\n\t\t\trpcUrls: {\n\t\t\t\tdefault: {\n\t\t\t\t\thttp: [network.rpcUrl],\n\t\t\t\t},\n\t\t\t\tpublic: {\n\t\t\t\t\thttp: [network.rpcUrl],\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tbatch: {\n\t\t\tmulticall: true,\n\t\t},\n\t\ttransport: http(),\n\t});\n};\n","import { networks, type ChainId as sequenceChainId } from '@0xsequence/network';\nimport type { ChainId } from '../react/_internal';\n\nexport const getPresentableChainName = (chainId: ChainId) => {\n\tconst id = Number(chainId) as sequenceChainId;\n\treturn networks[id]?.name;\n};\n","import { formatUnits } from 'viem';\n\ntype CalculatePriceDifferencePercentageArgs = {\n\tinputPriceRaw: bigint;\n\tbasePriceRaw: bigint;\n\tdecimals: number;\n};\n\nexport const calculatePriceDifferencePercentage = ({\n\tinputPriceRaw,\n\tbasePriceRaw,\n\tdecimals,\n}: CalculatePriceDifferencePercentageArgs) => {\n\tconst inputPrice = Number(formatUnits(inputPriceRaw, decimals));\n\tconst basePrice = Number(formatUnits(basePriceRaw, decimals));\n\tconst difference = inputPrice - basePrice;\n\tconst percentageDifference = (difference / basePrice) * 100;\n\n\treturn percentageDifference.toFixed(2);\n};\n","import { MarketplaceKind } from '../types';\nimport type { ComponentType } from 'react';\nimport type { Image } from '@0xsequence/design-system';\nimport {\n\tSequenceLogo,\n\tOpenSeaLogo,\n\tMagicEdenLogo,\n\tMintifyLogo,\n\tLooksRareLogo,\n\tX2y2Logo,\n\tBlurLogo,\n\tAlienSwapLogo,\n} from '../react/ui/components/marketplace-logos';\n\ninterface Marketplace {\n\tlogo: ComponentType<React.ComponentProps<typeof Image>>;\n\tdisplayName: string;\n}\n\nconst MARKETPLACES: Record<string, Marketplace> = {\n\tsequence: {\n\t\tlogo: SequenceLogo,\n\t\tdisplayName: 'Sequence',\n\t},\n\topensea: {\n\t\tlogo: OpenSeaLogo,\n\t\tdisplayName: 'OpenSea',\n\t},\n\tmagiceden: {\n\t\tlogo: MagicEdenLogo,\n\t\tdisplayName: 'Magic Eden',\n\t},\n\tmintify: {\n\t\tlogo: MintifyLogo,\n\t\tdisplayName: 'Mintify',\n\t},\n\tlooksrare: {\n\t\tlogo: LooksRareLogo,\n\t\tdisplayName: 'Looks Rare',\n\t},\n\tx2y2: {\n\t\tlogo: X2y2Logo,\n\t\tdisplayName: 'X2Y2',\n\t},\n\tblur: {\n\t\tlogo: BlurLogo,\n\t\tdisplayName: 'Blur',\n\t},\n\talienswap: {\n\t\tlogo: AlienSwapLogo,\n\t\tdisplayName: 'AlienSwap',\n\t},\n} as const;\n\nconst KIND_TO_MARKETPLACE: Partial<\n\tRecord<MarketplaceKind, keyof typeof MARKETPLACES>\n> = {\n\t[MarketplaceKind.sequence_marketplace_v1]: 'sequence',\n\t[MarketplaceKind.sequence_marketplace_v2]: 'sequence',\n\t[MarketplaceKind.opensea]: 'opensea',\n\t[MarketplaceKind.mintify]: 'mintify',\n\t[MarketplaceKind.looks_rare]: 'looksrare',\n\t[MarketplaceKind.x2y2]: 'x2y2',\n\t[MarketplaceKind.blur]: 'blur',\n};\n\ntype MarketplaceDetailsProp = {\n\toriginName: string;\n\tkind: MarketplaceKind;\n};\n\n// TODO: add suport for more marketplaces and improve detection of marketplace\nexport function getMarketplaceDetails({\n\toriginName,\n\tkind,\n}: MarketplaceDetailsProp) {\n\tif (\n\t\tkind
|
|
1
|
+
{"version":3,"sources":["../src/utils/address.ts","../src/utils/get-public-rpc-client.ts","../src/utils/network.ts","../src/utils/price.ts","../src/utils/getMarketplaceDetails.ts"],"sourcesContent":["export const truncateMiddle = (\n\taddress: string,\n\tminPrefix = 20,\n\tminSuffix = 3,\n): string => {\n\tif (minPrefix + minSuffix >= 40) {\n\t\treturn address;\n\t}\n\treturn `${address.substring(0, 2 + minPrefix)}…${address.substring(address.length - minSuffix)}`;\n};\n\nexport const truncateEnd = (text: string | undefined, truncateAt: number) => {\n\tif (!text) return '';\n\n\tlet finalText = text;\n\n\tif (text.length >= truncateAt) {\n\t\tfinalText = `${text.slice(0, truncateAt)}...`;\n\t}\n\n\treturn finalText;\n};\n\nexport const compareAddress = (a = '', b = '') => {\n\treturn a.toLowerCase() === b.toLowerCase();\n};\n","import { allNetworks, findNetworkConfig } from '@0xsequence/network';\nimport { http, type PublicClient, createPublicClient } from 'viem';\nimport type { ChainId } from '../react/_internal';\nimport { MissingConfigError } from './_internal/error/transaction';\n\nexport const getPublicRpcClient = (chainId: ChainId): PublicClient => {\n\tif (chainId === undefined) {\n\t\tthrow new MissingConfigError(\n\t\t\t`Network configuration for chainId: ${chainId}`,\n\t\t);\n\t}\n\n\tconst network = findNetworkConfig(allNetworks, chainId);\n\n\tif (!network) {\n\t\tthrow new MissingConfigError(\n\t\t\t`Network configuration for chainId: ${chainId}`,\n\t\t);\n\t}\n\n\treturn createPublicClient({\n\t\tchain: {\n\t\t\t...network,\n\t\t\tid: Number(chainId),\n\t\t\tname: network.name,\n\t\t\tnativeCurrency: { ...network.nativeToken },\n\t\t\trpcUrls: {\n\t\t\t\tdefault: {\n\t\t\t\t\thttp: [network.rpcUrl],\n\t\t\t\t},\n\t\t\t\tpublic: {\n\t\t\t\t\thttp: [network.rpcUrl],\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tbatch: {\n\t\t\tmulticall: true,\n\t\t},\n\t\ttransport: http(),\n\t});\n};\n","import { networks, type ChainId as sequenceChainId } from '@0xsequence/network';\nimport type { ChainId } from '../react/_internal';\n\nexport const getPresentableChainName = (chainId: ChainId) => {\n\tconst id = Number(chainId) as sequenceChainId;\n\treturn networks[id]?.name;\n};\n","import { formatUnits } from 'viem';\n\ntype CalculatePriceDifferencePercentageArgs = {\n\tinputPriceRaw: bigint;\n\tbasePriceRaw: bigint;\n\tdecimals: number;\n};\n\nexport const calculatePriceDifferencePercentage = ({\n\tinputPriceRaw,\n\tbasePriceRaw,\n\tdecimals,\n}: CalculatePriceDifferencePercentageArgs) => {\n\tconst inputPrice = Number(formatUnits(inputPriceRaw, decimals));\n\tconst basePrice = Number(formatUnits(basePriceRaw, decimals));\n\tconst difference = inputPrice - basePrice;\n\tconst percentageDifference = (difference / basePrice) * 100;\n\n\treturn percentageDifference.toFixed(2);\n};\n","import { MarketplaceKind } from '../types';\nimport type { ComponentType } from 'react';\nimport type { Image } from '@0xsequence/design-system';\nimport {\n\tSequenceLogo,\n\tOpenSeaLogo,\n\tMagicEdenLogo,\n\tMintifyLogo,\n\tLooksRareLogo,\n\tX2y2Logo,\n\tBlurLogo,\n\tAlienSwapLogo,\n} from '../react/ui/components/marketplace-logos';\n\ninterface Marketplace {\n\tlogo: ComponentType<React.ComponentProps<typeof Image>>;\n\tdisplayName: string;\n}\n\nconst MARKETPLACES: Record<string, Marketplace> = {\n\tsequence: {\n\t\tlogo: SequenceLogo,\n\t\tdisplayName: 'Sequence',\n\t},\n\topensea: {\n\t\tlogo: OpenSeaLogo,\n\t\tdisplayName: 'OpenSea',\n\t},\n\tmagiceden: {\n\t\tlogo: MagicEdenLogo,\n\t\tdisplayName: 'Magic Eden',\n\t},\n\tmintify: {\n\t\tlogo: MintifyLogo,\n\t\tdisplayName: 'Mintify',\n\t},\n\tlooksrare: {\n\t\tlogo: LooksRareLogo,\n\t\tdisplayName: 'Looks Rare',\n\t},\n\tx2y2: {\n\t\tlogo: X2y2Logo,\n\t\tdisplayName: 'X2Y2',\n\t},\n\tblur: {\n\t\tlogo: BlurLogo,\n\t\tdisplayName: 'Blur',\n\t},\n\talienswap: {\n\t\tlogo: AlienSwapLogo,\n\t\tdisplayName: 'AlienSwap',\n\t},\n} as const;\n\nconst KIND_TO_MARKETPLACE: Partial<\n\tRecord<MarketplaceKind, keyof typeof MARKETPLACES>\n> = {\n\t[MarketplaceKind.sequence_marketplace_v1]: 'sequence',\n\t[MarketplaceKind.sequence_marketplace_v2]: 'sequence',\n\t[MarketplaceKind.opensea]: 'opensea',\n\t[MarketplaceKind.mintify]: 'mintify',\n\t[MarketplaceKind.looks_rare]: 'looksrare',\n\t[MarketplaceKind.x2y2]: 'x2y2',\n\t[MarketplaceKind.blur]: 'blur',\n};\n\ntype MarketplaceDetailsProp = {\n\toriginName: string;\n\tkind: MarketplaceKind;\n};\n\n// TODO: add suport for more marketplaces and improve detection of marketplace\nexport function getMarketplaceDetails({\n\toriginName,\n\tkind,\n}: MarketplaceDetailsProp) {\n\tif (\n\t\tkind === MarketplaceKind.sequence_marketplace_v1 ||\n\t\tkind === MarketplaceKind.sequence_marketplace_v2\n\t) {\n\t\treturn MARKETPLACES.sequence;\n\t}\n\n\tlet name = originName.toLowerCase();\n\n\ttry {\n\t\t//Check if the name can be parsed as a url\n\t\tnew URL(name);\n\t\t// if it can we are naively trying to extract the root domain\n\t\tname = getRootDomain(name) || name;\n\t} catch {}\n\n\tname = name.replace(/ /g, '');\n\n\tconst details = MARKETPLACES[name];\n\n\tif (details) {\n\t\treturn details;\n\t}\n\n\tif (KIND_TO_MARKETPLACE[kind]) {\n\t\treturn MARKETPLACES[KIND_TO_MARKETPLACE[kind]];\n\t}\n}\n\nfunction getRootDomain(url: string) {\n\tconst domain = url.replace(/^(https?:\\/\\/)?(www\\.)?/, '');\n\tconst parts = domain.split('.');\n\treturn parts[parts.length - 2] || parts[0];\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
|
|
3
|
+
// src/types/builder-types.ts
|
|
4
|
+
var MarketplaceWallet = /* @__PURE__ */ ((MarketplaceWallet2) => {
|
|
5
|
+
MarketplaceWallet2["UNIVERSAL"] = "UNIVERSAL";
|
|
6
|
+
MarketplaceWallet2["EMBEDDED"] = "EMBEDDED";
|
|
7
|
+
return MarketplaceWallet2;
|
|
8
|
+
})(MarketplaceWallet || {});
|
|
9
|
+
var FilterCondition = /* @__PURE__ */ ((FilterCondition2) => {
|
|
10
|
+
FilterCondition2["ENTIRE_KEY"] = "ENTIRE_KEY";
|
|
11
|
+
FilterCondition2["SPECIFIC_VALUE"] = "SPECIFIC_VALUE";
|
|
12
|
+
return FilterCondition2;
|
|
13
|
+
})(FilterCondition || {});
|
|
14
|
+
var MarketplaceType = /* @__PURE__ */ ((MarketplaceType2) => {
|
|
15
|
+
MarketplaceType2["AMM"] = "AMM";
|
|
16
|
+
MarketplaceType2["P2P"] = "P2P";
|
|
17
|
+
MarketplaceType2["SEQUENCE"] = "SEQUENCE";
|
|
18
|
+
MarketplaceType2["ORDERBOOK"] = "ORDERBOOK";
|
|
19
|
+
return MarketplaceType2;
|
|
20
|
+
})(MarketplaceType || {});
|
|
21
|
+
|
|
22
|
+
export {
|
|
23
|
+
MarketplaceWallet,
|
|
24
|
+
FilterCondition,
|
|
25
|
+
MarketplaceType
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=chunk-DZKPDV63.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/types/builder-types.ts"],"sourcesContent":["import type { OrderbookKind } from '../react/_internal/api/marketplace.gen';\n\n// Manual copy of the types from builder\nexport enum MarketplaceWallet {\n\tUNIVERSAL = 'UNIVERSAL',\n\tEMBEDDED = 'EMBEDDED',\n}\n\nexport enum FilterCondition {\n\tENTIRE_KEY = 'ENTIRE_KEY',\n\tSPECIFIC_VALUE = 'SPECIFIC_VALUE',\n}\n\nexport enum MarketplaceType { // This is only used for marketplace v1\n\tAMM = 'AMM',\n\tP2P = 'P2P',\n\tSEQUENCE = 'SEQUENCE',\n\tORDERBOOK = 'ORDERBOOK',\n}\n\nexport interface MarketplaceWalletOptions {\n\twalletType: MarketplaceWallet;\n\toidcIssuers: { [key: string]: string };\n\tconnectors: Array<string>;\n\tincludeEIP6963Wallets: boolean;\n}\n\nexport interface MetadataFilterRule {\n\tkey: string;\n\tcondition: FilterCondition;\n\tvalue?: string;\n}\n\nexport interface CollectionFilterSettings {\n\tfilterOrder: Array<string>;\n\texclusions: Array<MetadataFilterRule>;\n}\n\nexport interface MarketplaceCollection {\n\tmarketplaceType: MarketplaceType;\n\tchainId: number;\n\taddress: string;\n\texchanges: Array<string>;\n\tbannerUrl: string;\n\tfeePercentage: number;\n\tcurrencyOptions: Array<string>;\n\tdestinationMarketplace: OrderbookKind;\n\tfilterSettings?: CollectionFilterSettings;\n}\n\nexport interface MarketplaceSocials {\n\ttwitter: string;\n\tdiscord: string;\n\twebsite: string;\n\ttiktok: string;\n\tinstagram: string;\n\tyoutube: string;\n}\n\nexport interface MarketplaceSettings {\n\tpublisherId: string;\n\ttitle: string;\n\tshortDescription: string;\n\tsocials: MarketplaceSocials;\n\tfaviconUrl: string;\n\tlandingBannerUrl: string;\n\tcollections: Array<MarketplaceCollection>;\n\twalletOptions: MarketplaceWalletOptions;\n\tlandingPageLayout: string;\n\tlogoUrl: string;\n\tbannerUrl: string;\n\tfontUrl?: string;\n\togImage?: string;\n}\n\nexport interface MarketplaceConfig extends MarketplaceSettings {\n\tcssString: string;\n\tmanifestUrl: string;\n}\n"],"mappings":";;;AAGO,IAAK,oBAAL,kBAAKA,uBAAL;AACN,EAAAA,mBAAA,eAAY;AACZ,EAAAA,mBAAA,cAAW;AAFA,SAAAA;AAAA,GAAA;AAKL,IAAK,kBAAL,kBAAKC,qBAAL;AACN,EAAAA,iBAAA,gBAAa;AACb,EAAAA,iBAAA,oBAAiB;AAFN,SAAAA;AAAA,GAAA;AAKL,IAAK,kBAAL,kBAAKC,qBAAL;AACN,EAAAA,iBAAA,SAAM;AACN,EAAAA,iBAAA,SAAM;AACN,EAAAA,iBAAA,cAAW;AACX,EAAAA,iBAAA,eAAY;AAJD,SAAAA;AAAA,GAAA;","names":["MarketplaceWallet","FilterCondition","MarketplaceType"]}
|
|
@@ -15,9 +15,10 @@ import {
|
|
|
15
15
|
switchChainModalContent
|
|
16
16
|
} from "./chunk-FI723DGL.js";
|
|
17
17
|
import {
|
|
18
|
+
compareAddress,
|
|
18
19
|
getPresentableChainName,
|
|
19
20
|
getPublicRpcClient
|
|
20
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-BZD2LDJJ.js";
|
|
21
22
|
import {
|
|
22
23
|
EIP2981_ABI
|
|
23
24
|
} from "./chunk-3OHM45R3.js";
|
|
@@ -78,9 +79,9 @@ import {
|
|
|
78
79
|
|
|
79
80
|
// src/react/hooks/useAutoSelectFeeOption.tsx
|
|
80
81
|
import { zeroAddress } from "viem";
|
|
81
|
-
import { useAccount } from "wagmi";
|
|
82
|
-
import { useCallback } from "react";
|
|
83
82
|
import { useChain } from "@0xsequence/kit";
|
|
83
|
+
import { useCallback } from "react";
|
|
84
|
+
import { useAccount } from "wagmi";
|
|
84
85
|
|
|
85
86
|
// src/react/hooks/useCollectionBalanceDetails.tsx
|
|
86
87
|
import { z } from "zod";
|
|
@@ -981,65 +982,18 @@ var useCollection = (args) => {
|
|
|
981
982
|
};
|
|
982
983
|
|
|
983
984
|
// src/react/hooks/useCurrencies.tsx
|
|
984
|
-
import { queryOptions as
|
|
985
|
+
import { queryOptions as queryOptions7, useQuery as useQuery7 } from "@tanstack/react-query";
|
|
985
986
|
import { zeroAddress as zeroAddress2 } from "viem";
|
|
986
987
|
import { z as z7 } from "zod";
|
|
987
|
-
var ChainIdCoerce = ChainIdSchema.transform((val) => val.toString());
|
|
988
|
-
var UseCurrenciesArgsSchema = z7.object({
|
|
989
|
-
chainId: ChainIdCoerce,
|
|
990
|
-
includeNativeCurrency: z7.boolean().optional().default(true),
|
|
991
|
-
currencyOptions: z7.array(AddressSchema).optional(),
|
|
992
|
-
query: QueryArgSchema
|
|
993
|
-
});
|
|
994
|
-
var fetchCurrencies = async (chainId, config) => {
|
|
995
|
-
const parsedChainId = ChainIdCoerce.parse(chainId);
|
|
996
|
-
const marketplaceClient = getMarketplaceClient(parsedChainId, config);
|
|
997
|
-
return marketplaceClient.listCurrencies().then(
|
|
998
|
-
(resp) => resp.currencies.map((currency) => ({
|
|
999
|
-
...currency,
|
|
1000
|
-
// TODO: remove this, when we are sure of the schema
|
|
1001
|
-
contractAddress: currency.contractAddress || zeroAddress2
|
|
1002
|
-
}))
|
|
1003
|
-
);
|
|
1004
|
-
};
|
|
1005
|
-
var selectCurrencies = (data, args) => {
|
|
1006
|
-
const argsParsed = UseCurrenciesArgsSchema.parse(args);
|
|
1007
|
-
let filteredData = data;
|
|
1008
|
-
if (!argsParsed.includeNativeCurrency) {
|
|
1009
|
-
filteredData = filteredData.filter((currency) => !currency.nativeCurrency);
|
|
1010
|
-
}
|
|
1011
|
-
if (argsParsed.currencyOptions) {
|
|
1012
|
-
const lowerCaseCurrencyOptions = argsParsed.currencyOptions.map(
|
|
1013
|
-
(option) => option.toLowerCase()
|
|
1014
|
-
);
|
|
1015
|
-
filteredData = filteredData.filter(
|
|
1016
|
-
(currency) => lowerCaseCurrencyOptions.includes(currency.contractAddress.toLowerCase())
|
|
1017
|
-
);
|
|
1018
|
-
}
|
|
1019
|
-
return filteredData;
|
|
1020
|
-
};
|
|
1021
|
-
var currenciesOptions = (args, config) => {
|
|
1022
|
-
return queryOptions6({
|
|
1023
|
-
...args.query,
|
|
1024
|
-
queryKey: [...currencyKeys.lists, args.chainId],
|
|
1025
|
-
queryFn: () => fetchCurrencies(args.chainId, config),
|
|
1026
|
-
select: (data) => selectCurrencies(data, args),
|
|
1027
|
-
enabled: args.query?.enabled
|
|
1028
|
-
});
|
|
1029
|
-
};
|
|
1030
|
-
var useCurrencies = (args) => {
|
|
1031
|
-
const config = useConfig();
|
|
1032
|
-
return useQuery6(currenciesOptions(args, config));
|
|
1033
|
-
};
|
|
1034
988
|
|
|
1035
989
|
// src/react/hooks/useMarketplaceConfig.tsx
|
|
1036
|
-
import { useQuery as
|
|
990
|
+
import { useQuery as useQuery6 } from "@tanstack/react-query";
|
|
1037
991
|
|
|
1038
992
|
// src/react/hooks/options/marketplaceConfigOptions.ts
|
|
1039
|
-
import { queryOptions as
|
|
993
|
+
import { queryOptions as queryOptions6 } from "@tanstack/react-query";
|
|
1040
994
|
var fetchBuilderConfig = async (projectId, env) => {
|
|
1041
995
|
const url = `${builderMarketplaceApi(projectId, env)}`;
|
|
1042
|
-
const response = await fetch(`${url}/
|
|
996
|
+
const response = await fetch(`${url}/settings.json`);
|
|
1043
997
|
const json = await response.json();
|
|
1044
998
|
if (!response.ok) {
|
|
1045
999
|
console.error("Failed to fetch marketplace config:", response.status, json);
|
|
@@ -1076,7 +1030,7 @@ var marketplaceConfigOptions = (config) => {
|
|
|
1076
1030
|
env = config._internal.builderEnv ?? env;
|
|
1077
1031
|
}
|
|
1078
1032
|
const projectId = config.projectId;
|
|
1079
|
-
return
|
|
1033
|
+
return queryOptions6({
|
|
1080
1034
|
queryKey: [...configKeys.marketplace, env, projectId],
|
|
1081
1035
|
queryFn: () => fetchMarketplaceConfig(env, projectId)
|
|
1082
1036
|
});
|
|
@@ -1085,19 +1039,56 @@ var marketplaceConfigOptions = (config) => {
|
|
|
1085
1039
|
// src/react/hooks/useMarketplaceConfig.tsx
|
|
1086
1040
|
var useMarketplaceConfig = () => {
|
|
1087
1041
|
const config = useConfig();
|
|
1088
|
-
return
|
|
1042
|
+
return useQuery6(marketplaceConfigOptions(config));
|
|
1089
1043
|
};
|
|
1090
1044
|
|
|
1091
|
-
// src/react/hooks/
|
|
1092
|
-
var
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1045
|
+
// src/react/hooks/useCurrencies.tsx
|
|
1046
|
+
var ChainIdCoerce = ChainIdSchema.transform((val) => val.toString());
|
|
1047
|
+
var UseCurrenciesArgsSchema = z7.object({
|
|
1048
|
+
chainId: ChainIdCoerce,
|
|
1049
|
+
includeNativeCurrency: z7.boolean().optional().default(true),
|
|
1050
|
+
collectionAddress: AddressSchema.optional(),
|
|
1051
|
+
query: QueryArgSchema
|
|
1052
|
+
});
|
|
1053
|
+
var fetchCurrencies = async (args, config) => {
|
|
1054
|
+
const parsedArgs = UseCurrenciesArgsSchema.parse(args);
|
|
1055
|
+
const marketplaceClient = getMarketplaceClient(parsedArgs.chainId, config);
|
|
1056
|
+
let currencies = await marketplaceClient.listCurrencies().then(
|
|
1057
|
+
(resp) => resp.currencies.map((currency) => ({
|
|
1058
|
+
...currency,
|
|
1059
|
+
contractAddress: currency.contractAddress || zeroAddress2
|
|
1060
|
+
}))
|
|
1061
|
+
);
|
|
1062
|
+
if (parsedArgs.collectionAddress) {
|
|
1063
|
+
const queryClient = getQueryClient();
|
|
1064
|
+
const marketplaceConfig = await queryClient.fetchQuery(
|
|
1065
|
+
marketplaceConfigOptions(config)
|
|
1066
|
+
);
|
|
1067
|
+
const currenciesOptions2 = marketplaceConfig.collections.find(
|
|
1068
|
+
(collection) => collection.address === args.collectionAddress
|
|
1069
|
+
)?.currencyOptions;
|
|
1070
|
+
if (currenciesOptions2) {
|
|
1071
|
+
currencies = currencies.filter(
|
|
1072
|
+
(currency) => currenciesOptions2.includes(currency.contractAddress)
|
|
1073
|
+
);
|
|
1074
|
+
}
|
|
1075
|
+
}
|
|
1076
|
+
if (!parsedArgs.includeNativeCurrency) {
|
|
1077
|
+
currencies = currencies.filter((currency) => !currency.nativeCurrency);
|
|
1078
|
+
}
|
|
1079
|
+
return currencies;
|
|
1080
|
+
};
|
|
1081
|
+
var currenciesOptions = (args, config) => {
|
|
1082
|
+
return queryOptions7({
|
|
1083
|
+
...args.query,
|
|
1084
|
+
queryKey: [...currencyKeys.lists, args],
|
|
1085
|
+
queryFn: () => fetchCurrencies(args, config),
|
|
1086
|
+
enabled: args.query?.enabled
|
|
1087
|
+
});
|
|
1088
|
+
};
|
|
1089
|
+
var useCurrencies = (args) => {
|
|
1090
|
+
const config = useConfig();
|
|
1091
|
+
return useQuery7(currenciesOptions(args, config));
|
|
1101
1092
|
};
|
|
1102
1093
|
|
|
1103
1094
|
// src/react/hooks/useCurrency.tsx
|
|
@@ -1146,15 +1137,52 @@ import { z as z9 } from "zod";
|
|
|
1146
1137
|
var UseFiltersSchema = z9.object({
|
|
1147
1138
|
chainId: ChainIdSchema.pipe(z9.coerce.string()),
|
|
1148
1139
|
collectionAddress: AddressSchema,
|
|
1140
|
+
showAllFilters: z9.boolean().default(false).optional(),
|
|
1149
1141
|
query: QueryArgSchema
|
|
1150
1142
|
});
|
|
1151
1143
|
var fetchFilters = async (args, config) => {
|
|
1152
1144
|
const parsedArgs = UseFiltersSchema.parse(args);
|
|
1153
1145
|
const metadataClient = getMetadataClient(config);
|
|
1154
|
-
|
|
1146
|
+
const filters = await metadataClient.tokenCollectionFilters({
|
|
1155
1147
|
chainID: parsedArgs.chainId,
|
|
1156
1148
|
contractAddress: parsedArgs.collectionAddress
|
|
1157
1149
|
}).then((resp) => resp.filters);
|
|
1150
|
+
if (args.showAllFilters) return filters;
|
|
1151
|
+
const queryClient = getQueryClient();
|
|
1152
|
+
const marketplaceConfig = await queryClient.fetchQuery(
|
|
1153
|
+
marketplaceConfigOptions(config)
|
|
1154
|
+
);
|
|
1155
|
+
const collectionFilters = marketplaceConfig.collections.find(
|
|
1156
|
+
(c) => compareAddress(c.address, parsedArgs.collectionAddress)
|
|
1157
|
+
)?.filterSettings;
|
|
1158
|
+
if (!collectionFilters) return filters;
|
|
1159
|
+
const { filterOrder, exclusions } = collectionFilters;
|
|
1160
|
+
const sortedFilters = filters.toSorted((a, b) => {
|
|
1161
|
+
const aIndex = filterOrder.indexOf(a.name) > -1 ? filterOrder.indexOf(a.name) : filterOrder.length;
|
|
1162
|
+
const bIndex = filterOrder.indexOf(b.name) > -1 ? filterOrder.indexOf(b.name) : filterOrder.length;
|
|
1163
|
+
return aIndex - bIndex;
|
|
1164
|
+
});
|
|
1165
|
+
const filteredResults = sortedFilters.reduce(
|
|
1166
|
+
(acc, filter) => {
|
|
1167
|
+
const exclusionRule = exclusions.find((rule) => rule.key === filter.name);
|
|
1168
|
+
if (!exclusionRule) {
|
|
1169
|
+
acc.push(filter);
|
|
1170
|
+
return acc;
|
|
1171
|
+
}
|
|
1172
|
+
if (exclusionRule.condition === "ENTIRE_KEY" /* ENTIRE_KEY */) {
|
|
1173
|
+
return acc;
|
|
1174
|
+
}
|
|
1175
|
+
if (exclusionRule.condition === "SPECIFIC_VALUE" /* SPECIFIC_VALUE */ && exclusionRule.value) {
|
|
1176
|
+
const filteredValues = filter.values?.filter((value) => value !== exclusionRule.value) || [];
|
|
1177
|
+
if (filteredValues.length > 0) {
|
|
1178
|
+
acc.push({ ...filter, values: filteredValues });
|
|
1179
|
+
}
|
|
1180
|
+
}
|
|
1181
|
+
return acc;
|
|
1182
|
+
},
|
|
1183
|
+
[]
|
|
1184
|
+
);
|
|
1185
|
+
return filteredResults;
|
|
1158
1186
|
};
|
|
1159
1187
|
var filtersOptions = (args, config) => {
|
|
1160
1188
|
return queryOptions9({
|
|
@@ -1298,7 +1326,8 @@ var fetchCollectibleActivities = async (args, config) => {
|
|
|
1298
1326
|
var listCollectibleActivitiesOptions = (args, config) => {
|
|
1299
1327
|
return queryOptions12({
|
|
1300
1328
|
queryKey: [...collectableKeys.collectibleActivities, args, config],
|
|
1301
|
-
queryFn: () => fetchCollectibleActivities(args, config)
|
|
1329
|
+
queryFn: () => fetchCollectibleActivities(args, config),
|
|
1330
|
+
enabled: args.query?.enabled ?? true
|
|
1302
1331
|
});
|
|
1303
1332
|
};
|
|
1304
1333
|
var useListCollectibleActivities = (args) => {
|
|
@@ -1331,7 +1360,8 @@ var listCollectiblesOptions = (args, config) => {
|
|
|
1331
1360
|
queryKey: [...collectableKeys.lists, args],
|
|
1332
1361
|
queryFn: ({ pageParam }) => fetchCollectibles(args, marketplaceClient, pageParam),
|
|
1333
1362
|
initialPageParam: { page: 1, pageSize: 30 },
|
|
1334
|
-
getNextPageParam: (lastPage) => lastPage.page?.more ? lastPage.page : void 0
|
|
1363
|
+
getNextPageParam: (lastPage) => lastPage.page?.more ? lastPage.page : void 0,
|
|
1364
|
+
enabled: args.query?.enabled ?? true
|
|
1335
1365
|
});
|
|
1336
1366
|
};
|
|
1337
1367
|
var useListCollectibles = (args) => {
|
|
@@ -1358,7 +1388,8 @@ var fetchListCollectionActivities = async (args, config) => {
|
|
|
1358
1388
|
var listCollectionActivitiesOptions = (args, config) => {
|
|
1359
1389
|
return queryOptions13({
|
|
1360
1390
|
queryKey: [...collectionKeys.collectionActivities, args, config],
|
|
1361
|
-
queryFn: () => fetchListCollectionActivities(args, config)
|
|
1391
|
+
queryFn: () => fetchListCollectionActivities(args, config),
|
|
1392
|
+
enabled: args.query?.enabled ?? true
|
|
1362
1393
|
});
|
|
1363
1394
|
};
|
|
1364
1395
|
var useListCollectionActivities = (args) => {
|
|
@@ -1771,11 +1802,11 @@ var fetchListCollections = async ({ marketplaceConfig }, config) => {
|
|
|
1771
1802
|
return [];
|
|
1772
1803
|
}
|
|
1773
1804
|
const collectionsByChain = marketplaceConfig.collections.reduce((acc, curr) => {
|
|
1774
|
-
const { chainId,
|
|
1805
|
+
const { chainId, address } = curr;
|
|
1775
1806
|
if (!acc[chainId]) {
|
|
1776
1807
|
acc[chainId] = [];
|
|
1777
1808
|
}
|
|
1778
|
-
acc[chainId].push(
|
|
1809
|
+
acc[chainId].push(address);
|
|
1779
1810
|
return acc;
|
|
1780
1811
|
}, {});
|
|
1781
1812
|
const promises = Object.entries(collectionsByChain).map(
|
|
@@ -1808,7 +1839,7 @@ var useListCollections = (args = {}) => {
|
|
|
1808
1839
|
};
|
|
1809
1840
|
|
|
1810
1841
|
// src/react/hooks/useGenerateBuyTransaction.tsx
|
|
1811
|
-
import { queryOptions as queryOptions22, useQuery as useQuery22 } from "@tanstack/react-query";
|
|
1842
|
+
import { queryOptions as queryOptions22, skipToken as skipToken2, useQuery as useQuery22 } from "@tanstack/react-query";
|
|
1812
1843
|
import { useAccount as useAccount4 } from "wagmi";
|
|
1813
1844
|
import { z as z24 } from "zod";
|
|
1814
1845
|
var UseGenerateBuyTransactionArgsSchema = z24.object({
|
|
@@ -1845,10 +1876,15 @@ var generateBuyTransactionOptions = (args, config) => {
|
|
|
1845
1876
|
var useGenerateBuyTransaction = (args) => {
|
|
1846
1877
|
const { address } = useAccount4();
|
|
1847
1878
|
const config = useConfig();
|
|
1848
|
-
return useQuery22(
|
|
1849
|
-
|
|
1850
|
-
|
|
1851
|
-
|
|
1879
|
+
return useQuery22({
|
|
1880
|
+
queryKey: ["generateBuyTransaction", args],
|
|
1881
|
+
queryFn: address ? () => {
|
|
1882
|
+
return fetchGenerateBuyTransaction(
|
|
1883
|
+
{ buyer: address, ...args },
|
|
1884
|
+
config
|
|
1885
|
+
);
|
|
1886
|
+
} : skipToken2
|
|
1887
|
+
});
|
|
1852
1888
|
};
|
|
1853
1889
|
|
|
1854
1890
|
// src/react/hooks/useCancelOrder.tsx
|
|
@@ -1978,6 +2014,7 @@ var wallet = ({
|
|
|
1978
2014
|
});
|
|
1979
2015
|
return await wallet2.signTypedData({
|
|
1980
2016
|
account: wallet2.account,
|
|
2017
|
+
// biome-ignore lint/style/noNonNullAssertion: <explanation>
|
|
1981
2018
|
domain: stepItem.signature.domain,
|
|
1982
2019
|
// biome-ignore lint/style/noNonNullAssertion: <explanation>
|
|
1983
2020
|
types: stepItem.signature.types,
|
|
@@ -2292,10 +2329,10 @@ var useCancelTransactionSteps = ({
|
|
|
2292
2329
|
chainId
|
|
2293
2330
|
});
|
|
2294
2331
|
const getWalletChainId = async () => {
|
|
2295
|
-
return await wallet2
|
|
2332
|
+
return await wallet2?.getChainId();
|
|
2296
2333
|
};
|
|
2297
2334
|
const switchChain = async () => {
|
|
2298
|
-
await wallet2
|
|
2335
|
+
await wallet2?.switchChain(Number(chainId));
|
|
2299
2336
|
};
|
|
2300
2337
|
const checkAndSwitchChain = async () => {
|
|
2301
2338
|
const walletChainId = await getWalletChainId();
|
|
@@ -2323,7 +2360,10 @@ var useCancelTransactionSteps = ({
|
|
|
2323
2360
|
marketplace
|
|
2324
2361
|
}) => {
|
|
2325
2362
|
try {
|
|
2326
|
-
const address = await wallet2
|
|
2363
|
+
const address = await wallet2?.address();
|
|
2364
|
+
if (!address) {
|
|
2365
|
+
throw new Error("Wallet address not found");
|
|
2366
|
+
}
|
|
2327
2367
|
const steps = await generateCancelTransactionAsync({
|
|
2328
2368
|
collectionAddress,
|
|
2329
2369
|
maker: address,
|
|
@@ -2368,7 +2408,8 @@ var useCancelTransactionSteps = ({
|
|
|
2368
2408
|
if (!transactionStep && !signatureStep) {
|
|
2369
2409
|
throw new Error("No transaction or signature step found");
|
|
2370
2410
|
}
|
|
2371
|
-
let hash
|
|
2411
|
+
let hash;
|
|
2412
|
+
let reservoirOrderId;
|
|
2372
2413
|
if (transactionStep && wallet2) {
|
|
2373
2414
|
hash = await executeTransaction({ transactionStep });
|
|
2374
2415
|
if (hash) {
|
|
@@ -2407,7 +2448,7 @@ var useCancelTransactionSteps = ({
|
|
|
2407
2448
|
const executeTransaction = async ({
|
|
2408
2449
|
transactionStep
|
|
2409
2450
|
}) => {
|
|
2410
|
-
const hash = await wallet2
|
|
2451
|
+
const hash = await wallet2?.handleSendTransactionStep(
|
|
2411
2452
|
Number(chainId),
|
|
2412
2453
|
transactionStep
|
|
2413
2454
|
);
|
|
@@ -2416,7 +2457,7 @@ var useCancelTransactionSteps = ({
|
|
|
2416
2457
|
const executeSignature = async ({
|
|
2417
2458
|
signatureStep
|
|
2418
2459
|
}) => {
|
|
2419
|
-
const signature = await wallet2
|
|
2460
|
+
const signature = await wallet2?.handleSignMessageStep(
|
|
2420
2461
|
signatureStep
|
|
2421
2462
|
);
|
|
2422
2463
|
const result = await marketplaceClient.execute({
|
|
@@ -2551,7 +2592,7 @@ var collectionDetailsPollingOptions = (args, config) => {
|
|
|
2551
2592
|
return false;
|
|
2552
2593
|
}
|
|
2553
2594
|
const interval = Math.min(
|
|
2554
|
-
INITIAL_POLLING_INTERVAL *
|
|
2595
|
+
INITIAL_POLLING_INTERVAL * 1.5 ** currentAttempt,
|
|
2555
2596
|
MAX_POLLING_INTERVAL
|
|
2556
2597
|
);
|
|
2557
2598
|
return interval;
|
|
@@ -2581,11 +2622,10 @@ export {
|
|
|
2581
2622
|
useCollectible,
|
|
2582
2623
|
collectionOptions,
|
|
2583
2624
|
useCollection,
|
|
2584
|
-
currenciesOptions,
|
|
2585
|
-
useCurrencies,
|
|
2586
2625
|
marketplaceConfigOptions,
|
|
2587
2626
|
useMarketplaceConfig,
|
|
2588
|
-
|
|
2627
|
+
currenciesOptions,
|
|
2628
|
+
useCurrencies,
|
|
2589
2629
|
currencyOptions,
|
|
2590
2630
|
useCurrency,
|
|
2591
2631
|
fetchFilters,
|
|
@@ -2644,4 +2684,4 @@ export {
|
|
|
2644
2684
|
collectionDetailsPollingOptions,
|
|
2645
2685
|
useCollectionDetailsPolling
|
|
2646
2686
|
};
|
|
2647
|
-
//# sourceMappingURL=chunk-
|
|
2687
|
+
//# sourceMappingURL=chunk-H5YWG6WN.js.map
|