@0xsequence/marketplace-sdk 0.8.12 → 0.10.0
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/.storybook/main.ts +63 -0
- package/.storybook/preview.ts +24 -0
- package/.storybook/vitest.setup.ts +6 -0
- package/CHANGELOG.md +158 -21
- package/dist/{CartIcon-Bll1rbxv.js → CalendarIcon-CqsuAuCm.js} +30 -77
- package/dist/CalendarIcon-CqsuAuCm.js.map +1 -0
- package/dist/{types-BIJOaL4j.d.ts → CollectibleCard-Dd-CG6dE.d.ts} +11 -7
- package/dist/InfoIcon-v0w_Lu7t.js +53 -0
- package/dist/InfoIcon-v0w_Lu7t.js.map +1 -0
- package/dist/_internal-C75gOSNo.js +14 -0
- package/dist/_internal-C75gOSNo.js.map +1 -0
- package/dist/actionModal-CMUeVsFX.js +116 -0
- package/dist/actionModal-CMUeVsFX.js.map +1 -0
- package/dist/{alien_swap-B_76IMma.js → alien_swap-CYv6YlOF.js} +1 -1
- package/dist/{alien_swap-B_76IMma.js.map → alien_swap-CYv6YlOF.js.map} +1 -1
- package/dist/{api-1KFxYh7o.js → api-BiMGqWdz.js} +79 -87
- package/dist/api-BiMGqWdz.js.map +1 -0
- package/dist/{aqua-xyz-CMN_TFY5.js → aqua-xyz-Bzn5baeH.js} +1 -1
- package/dist/{aqua-xyz-CMN_TFY5.js.map → aqua-xyz-Bzn5baeH.js.map} +1 -1
- package/dist/{aura-Cye_TuHj.js → aura-DzIWh8WT.js} +1 -1
- package/dist/{aura-Cye_TuHj.js.map → aura-DzIWh8WT.js.map} +1 -1
- package/dist/base-DqaJPvfN.js +22 -0
- package/dist/base-DqaJPvfN.js.map +1 -0
- package/dist/{blur-DWDMyMpK.js → blur-DSH-Cbpj.js} +1 -1
- package/dist/{blur-DWDMyMpK.js.map → blur-DSH-Cbpj.js.map} +1 -1
- package/dist/{builder-api-BQvzykoU.js → builder-api-BFuZNOaN.js} +2 -2
- package/dist/{builder-api-BQvzykoU.js.map → builder-api-BFuZNOaN.js.map} +1 -1
- package/dist/{builder.gen-CxP9NT1p.js → builder.gen-B9wR2nvF.js} +1 -1
- package/dist/builder.gen-B9wR2nvF.js.map +1 -0
- package/dist/{coinbase-ByA_XRB0.js → coinbase-Df8URNxq.js} +1 -1
- package/dist/{coinbase-ByA_XRB0.js.map → coinbase-Df8URNxq.js.map} +1 -1
- package/dist/{sdk-config-DJzxVPld.d.ts → create-config-DKJ-F0jc.d.ts} +458 -86
- package/dist/{wagmi-DRctYEk6.js → create-config-fQ-jbJD1.js} +33 -16
- package/dist/create-config-fQ-jbJD1.js.map +1 -0
- package/dist/{element-b77CyXIZ.js → element-Cx6uJu5N.js} +1 -1
- package/dist/{element-b77CyXIZ.js.map → element-Cx6uJu5N.js.map} +1 -1
- package/dist/{foundation-DbOrKP9Y.js → foundation-D6U4aRLN.js} +1 -1
- package/dist/{foundation-DbOrKP9Y.js.map → foundation-D6U4aRLN.js.map} +1 -1
- package/dist/get-provider-CYYHfrlg.js +10 -0
- package/dist/get-provider-CYYHfrlg.js.map +1 -0
- package/dist/get-query-client-D19vvfJo.js +23 -0
- package/dist/get-query-client-D19vvfJo.js.map +1 -0
- package/dist/hooks-4pxIbLbM.js +4044 -0
- package/dist/hooks-4pxIbLbM.js.map +1 -0
- package/dist/{index-1bezgsFq.d.ts → index-136YrWDH.d.ts} +929 -255
- package/dist/{index-D5v5iluA.d.ts → index-BAhaEfqY.d.ts} +1 -1
- package/dist/index-BKBin-rq.d.ts +979 -0
- package/dist/index-BUWB_RXp.d.ts +3144 -0
- package/dist/{index-Cl7PQOGu.d.ts → index-BhVFc2rX.d.ts} +28 -25
- package/dist/{index-DXMfTZ1F.d.ts → index-C5aqo8xu.d.ts} +1 -1
- package/dist/{index-BIMIpDiI.d.ts → index-CKrYP7ot.d.ts} +74 -103
- package/dist/{index-BEYefG1G.d.ts → index-CUwMH7Ht.d.ts} +5 -5
- package/dist/{index-BjIwVzc4.d.ts → index-Cu70Lw-w.d.ts} +238 -238
- package/dist/index.css +427 -1
- package/dist/index.d.ts +8 -10
- package/dist/index.js +15 -11
- package/dist/{looks-rare-C1VqNcSM.js → looks-rare-ChBRBY-p.js} +1 -1
- package/dist/{looks-rare-C1VqNcSM.js.map → looks-rare-ChBRBY-p.js.map} +1 -1
- package/dist/{magic-eden-ea_AGCZr.js → magic-eden-D5U7N1xL.js} +1 -1
- package/dist/{magic-eden-ea_AGCZr.js.map → magic-eden-D5U7N1xL.js.map} +1 -1
- package/dist/{manifold-8y8J2sjT.js → manifold-CtLF52zU.js} +1 -1
- package/dist/{manifold-8y8J2sjT.js.map → manifold-CtLF52zU.js.map} +1 -1
- package/dist/{marketplace-nwnZv9Cb.js → marketplace-DmFiyBoS.js} +1 -1
- package/dist/{marketplace-nwnZv9Cb.js.map → marketplace-DmFiyBoS.js.map} +1 -1
- package/dist/{marketplace-logos-CSeGcPW4.js → marketplace-logos-Cd6W-qOq.js} +21 -21
- package/dist/{marketplace-logos-CSeGcPW4.js.map → marketplace-logos-Cd6W-qOq.js.map} +1 -1
- package/dist/{marketplace.gen-Dqk8vRmD.js → marketplace.gen-HpnpL5xU.js} +12 -3
- package/dist/marketplace.gen-HpnpL5xU.js.map +1 -0
- package/dist/{marketplaceConfig-D2MYFqll.js → marketplaceConfig-GQTTmihy.js} +3 -3
- package/dist/marketplaceConfig-GQTTmihy.js.map +1 -0
- package/dist/{mintify-LA68TzWg.js → mintify-Bi3Bce68.js} +1 -1
- package/dist/{mintify-LA68TzWg.js.map → mintify-Bi3Bce68.js.map} +1 -1
- package/dist/network-CGD0oKtS.js +15 -0
- package/dist/network-CGD0oKtS.js.map +1 -0
- package/dist/{nftx-D3Tc8nzd.js → nftx-BDQZjtkX.js} +1 -1
- package/dist/{nftx-D3Tc8nzd.js.map → nftx-BDQZjtkX.js.map} +1 -1
- package/dist/{okx-hbqg6oIJ.js → okx-D4meadLe.js} +1 -1
- package/dist/{okx-hbqg6oIJ.js.map → okx-D4meadLe.js.map} +1 -1
- package/dist/{open-sea-BccuK8-t.js → open-sea-DN0hgfVw.js} +1 -1
- package/dist/{open-sea-BccuK8-t.js.map → open-sea-DN0hgfVw.js.map} +1 -1
- package/dist/options-BBBR8u_4.js +0 -0
- package/dist/{primary-sale-Cw95phYC.js → primary-sale-CmWxSfFQ.js} +279 -279
- package/dist/primary-sale-CmWxSfFQ.js.map +1 -0
- package/dist/provider-DPGUA10G.js +125 -0
- package/dist/provider-DPGUA10G.js.map +1 -0
- package/dist/queries-Ce_2othB.js +757 -0
- package/dist/queries-Ce_2othB.js.map +1 -0
- package/dist/{rarible-BgTwwj9g.js → rarible-B0xlD88A.js} +1 -1
- package/dist/{rarible-BgTwwj9g.js.map → rarible-B0xlD88A.js.map} +1 -1
- package/dist/react/_internal/api/index.d.ts +2 -4
- package/dist/react/_internal/api/index.js +9 -6
- package/dist/react/_internal/databeat/index.d.ts +2 -73
- package/dist/react/_internal/databeat/index.js +4 -21
- package/dist/react/_internal/index.d.ts +2 -7
- package/dist/react/_internal/index.js +13 -8
- package/dist/react/_internal/wagmi/index.d.ts +2 -4
- package/dist/react/_internal/wagmi/index.js +6 -4
- package/dist/react/hooks/index.d.ts +13 -17
- package/dist/react/hooks/index.js +25 -21
- package/dist/react/hooks/options/index.d.ts +3 -5
- package/dist/react/hooks/options/index.js +15 -10
- package/dist/react/index.d.ts +13 -40
- package/dist/react/index.js +30 -21
- package/dist/react/queries/index.d.ts +9 -8
- package/dist/react/queries/index.js +22 -17
- package/dist/react/ssr/index.d.ts +7 -9
- package/dist/react/ssr/index.js +13 -8
- package/dist/react/ssr/index.js.map +1 -1
- package/dist/react/ui/components/marketplace-collectible-card/index.d.ts +3 -9
- package/dist/react/ui/components/marketplace-collectible-card/index.js +29 -20
- package/dist/react/ui/components/marketplace-collectible-card/utils/index.d.ts +2 -7
- package/dist/react/ui/components/marketplace-collectible-card/utils/index.js +13 -8
- package/dist/react/ui/components/marketplace-logos/index.d.ts +21 -21
- package/dist/react/ui/components/marketplace-logos/index.js +1 -1
- package/dist/react/ui/icons/index.js +14 -10
- package/dist/react/ui/index.d.ts +3 -9
- package/dist/react/ui/index.js +29 -20
- package/dist/react/ui/modals/_internal/components/actionModal/index.d.ts +5 -5
- package/dist/react/ui/modals/_internal/components/actionModal/index.js +25 -20
- package/dist/{react-BG7o4PId.js → react-DP0M2Wfm.js} +4919 -7839
- package/dist/react-DP0M2Wfm.js.map +1 -0
- package/dist/{react-BbHBl6gg.css → react-DeDyTgo7.css} +1 -1
- package/dist/{react-BbHBl6gg.css.map → react-DeDyTgo7.css.map} +1 -1
- package/dist/{sequence-Do3kzb4J.js → sequence-BIrOVRXO.js} +1 -1
- package/dist/{sequence-Do3kzb4J.js.map → sequence-BIrOVRXO.js.map} +1 -1
- package/dist/{sudo-swap-B6vPKxBz.js → sudo-swap-BPMon-M5.js} +1 -1
- package/dist/{sudo-swap-B6vPKxBz.js.map → sudo-swap-BPMon-M5.js.map} +1 -1
- package/dist/{super-rare-eCm1SE6O.js → super-rare-kPN6Ua8i.js} +1 -1
- package/dist/{super-rare-eCm1SE6O.js.map → super-rare-kPN6Ua8i.js.map} +1 -1
- package/dist/{token-CO5llIla.js → token-CHSBPYVG.js} +1540 -761
- package/dist/token-CHSBPYVG.js.map +1 -0
- package/dist/{transaction-CcVViHEL.js → transaction-CnctdNzS.js} +3 -21
- package/dist/transaction-CnctdNzS.js.map +1 -0
- package/dist/types/index.d.ts +2 -3
- package/dist/types/index.js +3 -3
- package/dist/{types-DwWE6xOF.js → types-Yw2ywj6j.js} +1 -1
- package/dist/types-Yw2ywj6j.js.map +1 -0
- package/dist/utils/abi/index.d.ts +5 -5
- package/dist/utils/abi/index.js +5 -5
- package/dist/utils/abi/marketplace/index.d.ts +1 -1
- package/dist/utils/abi/marketplace/index.js +1 -1
- package/dist/utils/abi/primary-sale/index.d.ts +1 -1
- package/dist/utils/abi/primary-sale/index.js +1 -1
- package/dist/utils/abi/token/index.d.ts +2 -2
- package/dist/utils/abi/token/index.js +2 -2
- package/dist/utils/index.d.ts +7 -8
- package/dist/utils/index.js +13 -10
- package/dist/{utils-BFdxaToy.js → utils-9RXDgcBl.js} +86 -93
- package/dist/utils-9RXDgcBl.js.map +1 -0
- package/dist/{utils-Cat9_pef.js → utils-DjVJ9tov.js} +5 -6
- package/dist/utils-DjVJ9tov.js.map +1 -0
- package/dist/wagmi-Do_KW5ke.js +0 -0
- package/dist/{x2y2-DD17tT91.js → x2y2-BLz-_Q2O.js} +1 -1
- package/dist/{x2y2-DD17tT91.js.map → x2y2-BLz-_Q2O.js.map} +1 -1
- package/dist/{zora-BpSG9UzS.js → zora-UGhKs-aL.js} +1 -1
- package/dist/{zora-BpSG9UzS.js.map → zora-UGhKs-aL.js.map} +1 -1
- package/eslint/use-client.js +0 -6
- package/eslint.config.mjs +4 -0
- package/package.json +47 -35
- package/postcss.config.mjs +6 -0
- package/src/index.css +5 -4
- package/src/index.ts +2 -1
- package/src/react/__tests__/provider.test.tsx +4 -3
- package/src/react/_internal/api/__mocks__/builder.msw.ts +5 -3
- package/src/react/_internal/api/__mocks__/indexer.msw.ts +24 -8
- package/src/react/_internal/api/__mocks__/laos.msw.ts +387 -0
- package/src/react/_internal/api/__mocks__/marketplace.msw.ts +6 -6
- package/src/react/_internal/api/__mocks__/metadata.msw.ts +1 -1
- package/src/react/_internal/api/__tests__/laos-api.test.ts +756 -0
- package/src/react/_internal/api/builder.gen.ts +6 -6
- package/src/react/_internal/api/get-query-client.ts +2 -2
- package/src/react/_internal/api/index.ts +2 -2
- package/src/react/_internal/api/laos-api.ts +3 -0
- package/src/react/_internal/api/marketplace.gen.ts +43 -3
- package/src/react/_internal/api/query-keys.ts +21 -6
- package/src/react/_internal/api/services.ts +30 -45
- package/src/react/_internal/databeat/index.ts +15 -14
- package/src/react/_internal/databeat/types.ts +22 -0
- package/src/react/_internal/databeat/utils.ts +26 -0
- package/src/react/_internal/index.ts +1 -1
- package/src/react/_internal/types.ts +10 -23
- package/src/react/_internal/utils.ts +4 -5
- package/src/react/_internal/wagmi/create-config.ts +43 -19
- package/src/react/_internal/wagmi/get-connectors.ts +9 -7
- package/src/react/_internal/wallet/__tests__/wallet.test.ts +1 -1
- package/src/react/_internal/wallet/wallet.ts +22 -22
- package/src/react/hooks/__tests__/__snapshots__/useListCollections.test.tsx.snap +20 -0
- package/src/react/hooks/__tests__/__snapshots__/useMarketplaceConfig.test.tsx.snap +12 -2
- package/src/react/hooks/__tests__/useAutoSelectFeeOption.test.tsx +1 -1
- package/src/react/hooks/__tests__/useBalanceOfCollectible.laos.test.tsx +367 -0
- package/src/react/hooks/__tests__/useBalanceOfCollectible.test.tsx +1 -1
- package/src/react/hooks/__tests__/useCancelOrder.test.tsx +4 -4
- package/src/react/hooks/__tests__/useCancelTransactionSteps.test.tsx +1 -1
- package/src/react/hooks/__tests__/useCheckoutOptions.test.tsx +158 -0
- package/src/react/hooks/__tests__/useCheckoutOptionsSalesContract.test.tsx +42 -65
- package/src/react/hooks/__tests__/useCollectible.test.tsx +14 -16
- package/src/react/hooks/__tests__/useCollection.test.tsx +4 -4
- package/src/react/hooks/__tests__/useCollectionBalanceDetails.test.tsx +16 -25
- package/src/react/hooks/__tests__/useCollectionDetails.test.tsx +1 -1
- package/src/react/hooks/__tests__/useCollectionDetailsPolling.test.tsx +12 -4
- package/src/react/hooks/__tests__/useComparePrices.test.tsx +7 -6
- package/src/react/hooks/__tests__/useConvertPriceToUSD.test.tsx +4 -4
- package/src/react/hooks/__tests__/useCountListingsForCollectible.test.tsx +2 -2
- package/src/react/hooks/__tests__/useCountOfCollectables.test.tsx +5 -5
- package/src/react/hooks/__tests__/useCountOffersForCollectible.test.tsx +2 -2
- package/src/react/hooks/__tests__/useCurrency.test.tsx +5 -3
- package/src/react/hooks/__tests__/useCurrencyBalance.test.tsx +7 -3
- package/src/react/hooks/__tests__/useFilters.test.tsx +3 -3
- package/src/react/hooks/__tests__/useFloorOrder.test.tsx +4 -4
- package/src/react/hooks/__tests__/useGenerateCancelTransaction.test.tsx +3 -3
- package/src/react/hooks/__tests__/useGenerateListingTransaction.test.tsx +1 -1
- package/src/react/hooks/__tests__/useGenerateOfferTransaction.test.tsx +1 -1
- package/src/react/hooks/__tests__/useGenerateSellTransaction.test.tsx +1 -1
- package/src/react/hooks/__tests__/useGetTokenRanges.test.tsx +111 -0
- package/src/react/hooks/__tests__/useHighestOffer.test.tsx +4 -4
- package/src/react/hooks/__tests__/useInventory.test.tsx +1 -1
- package/src/react/hooks/__tests__/useListCollectibleActivities.test.tsx +11 -13
- package/src/react/hooks/__tests__/useListCollectibles.test.tsx +5 -5
- package/src/react/hooks/__tests__/useListCollectiblesPaginated.test.tsx +10 -15
- package/src/react/hooks/__tests__/useListCollectionActivities.test.tsx +13 -15
- package/src/react/hooks/__tests__/useListCollections.test.tsx +3 -3
- package/src/react/hooks/__tests__/useListListingsForCollectible.test.tsx +3 -2
- package/src/react/hooks/__tests__/useListMarketCardData.test.tsx +301 -0
- package/src/react/hooks/__tests__/useListOffersForCollectible.test.tsx +1 -1
- package/src/react/hooks/__tests__/useListTokenMetadata.test.tsx +137 -0
- package/src/react/hooks/__tests__/useLowestListing.test.tsx +1 -1
- package/src/react/hooks/__tests__/useMarketCurrencies.test.tsx +1 -1
- package/src/react/hooks/__tests__/useRoyalty.test.tsx +0 -23
- package/src/react/hooks/__tests__/useTransferTokens.test.tsx +469 -0
- package/src/react/hooks/index.ts +29 -24
- package/src/react/hooks/options/index.ts +0 -1
- package/src/react/hooks/useAutoSelectFeeOption.tsx +1 -1
- package/src/react/hooks/useBalanceOfCollectible.tsx +1 -1
- package/src/react/hooks/useCancelTransactionSteps.tsx +2 -2
- package/src/react/hooks/useCheckoutOptions.tsx +84 -54
- package/src/react/hooks/useCheckoutOptionsSalesContract.tsx +98 -57
- package/src/react/hooks/useCollectible.tsx +64 -49
- package/src/react/hooks/useCollection.tsx +60 -11
- package/src/react/hooks/useCollectionBalanceDetails.tsx +93 -73
- package/src/react/hooks/useCollectionDetails.ts +69 -0
- package/src/react/hooks/useCollectionDetailsPolling.tsx +7 -3
- package/src/react/hooks/useComparePrices.tsx +91 -86
- package/src/react/hooks/useConvertPriceToUSD.tsx +83 -86
- package/src/react/hooks/useCountListingsForCollectible.tsx +64 -53
- package/src/react/hooks/useCountOfCollectables.tsx +60 -69
- package/src/react/hooks/useCountOfPrimarySaleItems.tsx +13 -0
- package/src/react/hooks/useCountOffersForCollectible.tsx +64 -53
- package/src/react/hooks/useCurrency.tsx +56 -64
- package/src/react/hooks/useCurrencyBalance.tsx +132 -46
- package/src/react/hooks/useERC721SaleMintedTokens.tsx +8 -5
- package/src/react/hooks/useFilterState.tsx +1 -2
- package/src/react/hooks/useFilters.tsx +154 -111
- package/src/react/hooks/useFloorOrder.tsx +65 -40
- package/src/react/hooks/useGenerateCancelTransaction.tsx +5 -10
- package/src/react/hooks/useGenerateListingTransaction.tsx +1 -1
- package/src/react/hooks/useGenerateOfferTransaction.tsx +1 -1
- package/src/react/hooks/useGenerateSellTransaction.tsx +5 -10
- package/src/react/hooks/useGetCountOfPrimarySaleItems.tsx +48 -0
- package/src/react/hooks/useGetReceiptFromHash.tsx +32 -3
- package/src/react/hooks/useGetTokenRanges.tsx +92 -0
- package/src/react/hooks/useHighestOffer.tsx +68 -4
- package/src/react/hooks/useInventory.tsx +1 -1
- package/src/react/hooks/useList1155ShopCardData.tsx +57 -82
- package/src/react/hooks/useList721ShopCardData.tsx +98 -63
- package/src/react/hooks/useListBalances.tsx +1 -1
- package/src/react/hooks/useListCollectibleActivities.tsx +89 -50
- package/src/react/hooks/useListCollectibles.tsx +81 -16
- package/src/react/hooks/useListCollectiblesPaginated.tsx +96 -66
- package/src/react/hooks/useListCollectionActivities.tsx +84 -50
- package/src/react/hooks/useListCollections.tsx +71 -17
- package/src/react/hooks/useListListingsForCollectible.tsx +90 -50
- package/src/react/hooks/useListMarketCardData.tsx +3 -2
- package/src/react/hooks/useListOffersForCollectible.tsx +9 -14
- package/src/react/hooks/useListPrimarySaleItems.tsx +66 -0
- package/src/react/hooks/useListShopCardData.tsx +70 -0
- package/src/react/hooks/useListTokenMetadata.ts +64 -12
- package/src/react/hooks/useListTokenMetadata.tsx +73 -0
- package/src/react/hooks/useLowestListing.tsx +68 -4
- package/src/react/hooks/useMarketCurrencies.tsx +62 -5
- package/src/react/hooks/useOpenConnectModal.tsx +9 -0
- package/src/react/hooks/useRoyalty.tsx +57 -13
- package/src/react/hooks/useShopCollectibleSaleData.tsx +349 -0
- package/src/react/hooks/useTokenSaleDetailsBatch.tsx +3 -7
- package/src/react/hooks/useTokenSupplies.ts +81 -0
- package/src/react/hooks/useTransferTokens.tsx +2 -2
- package/src/react/hooks/util/optimisticCancelUpdates.ts +5 -7
- package/src/react/index.ts +5 -3
- package/src/react/provider.tsx +73 -9
- package/src/react/queries/__tests__/balanceOfCollectible.laos.test.ts +123 -0
- package/src/react/queries/__tests__/inventory.laos.test.ts +496 -0
- package/src/react/queries/balanceOfCollectible.ts +8 -5
- package/src/react/queries/checkoutOptions.ts +85 -0
- package/src/react/queries/checkoutOptionsSalesContract.ts +89 -0
- package/src/react/queries/collectible.ts +66 -0
- package/src/react/queries/collection.ts +55 -0
- package/src/react/queries/collectionBalanceDetails.ts +92 -0
- package/src/react/queries/collectionDetails.ts +64 -0
- package/src/react/queries/comparePrices.ts +108 -0
- package/src/react/queries/convertPriceToUSD.ts +92 -0
- package/src/react/queries/countListingsForCollectible.ts +73 -0
- package/src/react/queries/countOfCollectables.ts +83 -0
- package/src/react/queries/countOfPrimarySaleItems.ts +48 -0
- package/src/react/queries/countOffersForCollectible.ts +73 -0
- package/src/react/queries/currency.ts +83 -0
- package/src/react/queries/filters.ts +138 -0
- package/src/react/queries/floorOrder.ts +63 -0
- package/src/react/queries/getTokenRanges.ts +62 -0
- package/src/react/queries/highestOffer.ts +46 -40
- package/src/react/queries/index.ts +10 -4
- package/src/react/queries/inventory.ts +10 -4
- package/src/react/queries/listBalances.ts +5 -4
- package/src/react/queries/listCollectibleActivities.ts +97 -0
- package/src/react/queries/listCollectibles.ts +67 -50
- package/src/react/queries/listCollectiblesPaginated.ts +87 -0
- package/src/react/queries/listCollectionActivities.ts +95 -0
- package/src/react/queries/listCollections.ts +53 -10
- package/src/react/queries/listListingsForCollectible.ts +82 -0
- package/src/react/queries/listTokenMetadata.ts +47 -23
- package/src/react/queries/lowestListing.ts +46 -31
- package/src/react/queries/marketCurrencies.ts +42 -29
- package/src/react/queries/marketplaceConfig.ts +4 -4
- package/src/react/queries/primarySaleItems.ts +85 -0
- package/src/react/queries/primarySaleItemsCount.ts +64 -0
- package/src/react/queries/tokenSupplies.ts +93 -0
- package/src/react/ssr/__tests__/__snapshots__/create-ssr-client.test.ts.snap +12 -2
- package/src/react/ssr/create-ssr-client.ts +1 -1
- package/src/react/types/query.ts +34 -0
- package/src/react/ui/components/ModelViewer.tsx +1 -1
- package/src/react/ui/components/_internals/action-button/ActionButton.tsx +66 -66
- package/src/react/ui/components/_internals/action-button/__tests__/ActionButtonBody.test.tsx +22 -4
- package/src/react/ui/components/_internals/action-button/__tests__/useActionButtonLogic.test.tsx +14 -8
- package/src/react/ui/components/_internals/action-button/components/ActionButtonBody.tsx +5 -4
- package/src/react/ui/components/_internals/action-button/components/NonOwnerActions.tsx +3 -0
- package/src/react/ui/components/_internals/action-button/components/OwnerActions.tsx +4 -4
- package/src/react/ui/components/_internals/action-button/hooks/useActionButtonLogic.ts +20 -18
- package/src/react/ui/components/_internals/action-button/store.ts +72 -34
- package/src/react/ui/components/_internals/custom-select/CustomSelect.stories.tsx +582 -0
- package/src/react/ui/components/_internals/pill/Pill.stories.tsx +83 -0
- package/src/react/ui/components/marketplace-collectible-card/CollectibleCard.tsx +1 -1
- package/src/react/ui/components/marketplace-collectible-card/Footer.tsx +12 -5
- package/src/react/ui/components/marketplace-collectible-card/components/ActionButtonWrapper.tsx +7 -4
- package/src/react/ui/components/marketplace-collectible-card/components/BaseCard.tsx +3 -0
- package/src/react/ui/components/marketplace-collectible-card/index.ts +1 -1
- package/src/react/ui/components/marketplace-collectible-card/types.ts +11 -7
- package/src/react/ui/components/marketplace-collectible-card/utils/supplyStatus.ts +4 -7
- package/src/react/ui/components/marketplace-collectible-card/variants/MarketCard.tsx +3 -2
- package/src/react/ui/components/marketplace-collectible-card/variants/ShopCard.tsx +7 -6
- package/src/react/ui/components/marketplace-logos/marketplace-logos.stories.tsx +199 -0
- package/src/react/ui/components/marketplace-logos/marketplace-logos.tsx +1 -1
- package/src/react/ui/components/media/Media.stories.tsx +642 -0
- package/src/react/ui/components/media/Media.tsx +29 -20
- package/src/react/ui/components/media/types.ts +6 -0
- package/src/react/ui/index.ts +8 -10
- package/src/react/ui/modals/BuyModal/__tests__/BuyModalRouter.test.tsx +15 -0
- package/src/react/ui/modals/BuyModal/__tests__/ERC1155ShopModal.test.tsx +100 -87
- package/src/react/ui/modals/BuyModal/__tests__/Modal1155.test.tsx +11 -5
- package/src/react/ui/modals/BuyModal/__tests__/store.test.ts +10 -2
- package/src/react/ui/modals/BuyModal/components/ERC1155QuantityModal.tsx +17 -11
- package/src/react/ui/modals/BuyModal/components/ERC1155ShopModal.tsx +4 -1
- package/src/react/ui/modals/BuyModal/hooks/__tests__/useCheckoutOptions.test.tsx +1 -1
- package/src/react/ui/modals/BuyModal/hooks/__tests__/useERC1155Checkout.test.tsx +30 -27
- package/src/react/ui/modals/BuyModal/hooks/useCheckoutOptions.ts +3 -3
- package/src/react/ui/modals/BuyModal/hooks/useERC1155Checkout.ts +11 -2
- package/src/react/ui/modals/BuyModal/hooks/useERC721SalePaymentParams.ts +2 -2
- package/src/react/ui/modals/BuyModal/hooks/usePaymentModalParams.ts +10 -3
- package/src/react/ui/modals/BuyModal/index.tsx +9 -1
- package/src/react/ui/modals/BuyModal/store.ts +26 -0
- package/src/react/ui/modals/CreateListingModal/Modal.tsx +28 -11
- package/src/react/ui/modals/CreateListingModal/__tests__/Modal.test.tsx +2 -2
- package/src/react/ui/modals/CreateListingModal/hooks/useCreateListing.tsx +0 -1
- package/src/react/ui/modals/CreateListingModal/hooks/useGetTokenApproval.ts +2 -2
- package/src/react/ui/modals/CreateListingModal/hooks/useTransactionSteps.tsx +7 -6
- package/src/react/ui/modals/CreateListingModal/index.tsx +1 -1
- package/src/react/ui/modals/CreateListingModal/store.ts +3 -3
- package/src/react/ui/modals/MakeOfferModal/Modal.tsx +31 -14
- package/src/react/ui/modals/MakeOfferModal/__tests__/Modal.test.tsx +1 -1
- package/src/react/ui/modals/MakeOfferModal/hooks/useGetTokenApproval.tsx +1 -1
- package/src/react/ui/modals/MakeOfferModal/hooks/useMakeOffer.tsx +0 -1
- package/src/react/ui/modals/MakeOfferModal/hooks/useTransactionSteps.tsx +7 -7
- package/src/react/ui/modals/MakeOfferModal/index.tsx +1 -1
- package/src/react/ui/modals/MakeOfferModal/store.ts +3 -3
- package/src/react/ui/modals/SellModal/Modal.tsx +14 -11
- package/src/react/ui/modals/SellModal/__tests__/Modal.test.tsx +6 -4
- package/src/react/ui/modals/SellModal/hooks/useGetTokenApproval.tsx +1 -1
- package/src/react/ui/modals/SellModal/hooks/useSell.tsx +0 -1
- package/src/react/ui/modals/SellModal/hooks/useTransactionSteps.tsx +6 -6
- package/src/react/ui/modals/SellModal/store.ts +3 -3
- package/src/react/ui/modals/SuccessfulPurchaseModal/__tests__/Modal.test.tsx +1 -1
- package/src/react/ui/modals/TransferModal/__tests__/__snapshots__/store.test.ts.snap +17 -0
- package/src/react/ui/modals/TransferModal/__tests__/store.test.ts +366 -0
- package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/__tests__/useHandleTransfer.test.tsx +402 -0
- package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/_components/TokenQuantityInput.tsx +52 -50
- package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/_components/TransferButton.tsx +39 -47
- package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/_components/WalletAddressInput.tsx +9 -8
- package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/index.tsx +33 -37
- package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/useHandleTransfer.tsx +19 -10
- package/src/react/ui/modals/TransferModal/index.tsx +28 -31
- package/src/react/ui/modals/TransferModal/messages.ts +1 -1
- package/src/react/ui/modals/TransferModal/store.ts +122 -0
- package/src/react/ui/modals/_internal/components/actionModal/ActionModal.test.tsx +1 -1
- package/src/react/ui/modals/_internal/components/actionModal/ActionModal.tsx +2 -4
- package/src/react/ui/modals/_internal/components/calendar/index.tsx +0 -1
- package/src/react/ui/modals/_internal/components/currencyImage/index.tsx +10 -14
- package/src/react/ui/modals/_internal/components/currencyOptionsSelect/__tests__/index.test.tsx +6 -3
- package/src/react/ui/modals/_internal/components/currencyOptionsSelect/index.tsx +23 -18
- package/src/react/ui/modals/_internal/components/expirationDateSelect/index.tsx +10 -10
- package/src/react/ui/modals/_internal/components/floorPriceText/__tests__/FloorPriceText.test.tsx +6 -6
- package/src/react/ui/modals/_internal/components/floorPriceText/index.tsx +4 -4
- package/src/react/ui/modals/_internal/components/priceInput/__tests__/PriceInput.test.tsx +13 -5
- package/src/react/ui/modals/_internal/components/priceInput/index.tsx +41 -26
- package/src/react/ui/modals/_internal/components/quantityInput/__tests__/index.test.tsx +68 -59
- package/src/react/ui/modals/_internal/components/quantityInput/index.tsx +23 -17
- package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/__tests__/SelectWaasFeeOptions.test.tsx +340 -41
- package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/_components/BalanceIndicator.tsx +1 -2
- package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/index.tsx +95 -101
- package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/store.ts +72 -14
- package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/useWaasFeeOptionManager.tsx +29 -14
- package/src/react/ui/modals/_internal/components/tokenPreview/index.tsx +2 -2
- package/src/react/ui/modals/_internal/components/transactionDetails/index.tsx +2 -2
- package/src/react/ui/modals/_internal/components/transactionPreview/index.tsx +88 -89
- package/src/react/ui/modals/_internal/components/transactionStatusModal/__tests__/TransactionStatusModal.test.tsx +37 -11
- package/src/react/ui/modals/_internal/components/transactionStatusModal/hooks/useTransactionStatus.ts +0 -1
- package/src/react/ui/modals/_internal/components/transactionStatusModal/index.tsx +32 -20
- package/src/react/ui/modals/_internal/components/transactionStatusModal/store.ts +92 -63
- package/src/react/ui/modals/_internal/components/waasFeeOptionsSelect/WaasFeeOptionsSelect.tsx +44 -45
- package/src/react/ui/modals/_internal/types.ts +2 -2
- package/src/react/ui/modals/modal-provider.tsx +2 -3
- package/src/types/api-types.ts +36 -36
- package/src/types/buyModalErrors.ts +1 -1
- package/src/types/index.ts +5 -5
- package/src/types/new-marketplace-types.ts +1 -1
- package/src/types/sdk-config.ts +8 -2
- package/src/types/types.ts +1 -0
- package/src/types/waas-types.ts +1 -1
- package/src/utils/abi/index.ts +1 -1
- package/src/utils/abi/primary-sale/index.ts +1 -1
- package/src/utils/abi/token/index.ts +2 -1
- package/src/utils/decode/erc20.ts +1 -1
- package/src/utils/index.ts +3 -3
- package/src/utils/network.ts +15 -0
- package/test/const.ts +3 -1
- package/test/mocks/wallet.ts +1 -1
- package/test/test-utils.tsx +5 -4
- package/vitest.shims.d.ts +2 -0
- package/vitest.storybook.config.js +33 -0
- package/.changeset/fluffy-jokes-lay.md +0 -5
- package/.changeset/wise-bugs-boil.md +0 -8
- package/dist/CartIcon-Bll1rbxv.js.map +0 -1
- package/dist/CollectibleCard-CLQTl0_6.d.ts +0 -8
- package/dist/_internal-69NEWNUE.js +0 -34
- package/dist/_internal-69NEWNUE.js.map +0 -1
- package/dist/api-1KFxYh7o.js.map +0 -1
- package/dist/builder-api-DoK3907S.d.ts +0 -12
- package/dist/builder.gen-CxP9NT1p.js.map +0 -1
- package/dist/index-4-kfOFdx.d.ts +0 -22
- package/dist/index-BHiSG-Yi.d.ts +0 -312
- package/dist/index-BQW0PUkQ.d.ts +0 -3973
- package/dist/index-BfH21xmk.d.ts +0 -117
- package/dist/index-CN8puQQJ.d.ts +0 -24
- package/dist/index-DafWjEb4.d.ts +0 -65
- package/dist/marketplace.gen-Dqk8vRmD.js.map +0 -1
- package/dist/marketplaceConfig-D2MYFqll.js.map +0 -1
- package/dist/options-DCi6_23w.js +0 -34
- package/dist/options-DCi6_23w.js.map +0 -1
- package/dist/primary-sale-Cw95phYC.js.map +0 -1
- package/dist/queries-DPvwtnO7.js +0 -486
- package/dist/queries-DPvwtnO7.js.map +0 -1
- package/dist/react-BG7o4PId.js.map +0 -1
- package/dist/token-CO5llIla.js.map +0 -1
- package/dist/transaction-CcVViHEL.js.map +0 -1
- package/dist/types-DwWE6xOF.js.map +0 -1
- package/dist/useCollection-C-mclKU0.d.ts +0 -66
- package/dist/utils-BFdxaToy.js.map +0 -1
- package/dist/utils-Cat9_pef.js.map +0 -1
- package/dist/wagmi-DRctYEk6.js.map +0 -1
- package/src/react/_internal/api/zod-schema.ts +0 -678
- package/src/react/hooks/options/collectionOptions.ts +0 -41
- package/src/react/hooks/useCollectionDetails.tsx +0 -50
- package/src/react/hooks/useGetTokenSuppliesMap.ts +0 -33
- package/src/react/hooks/useListPrimarySaleItems.ts +0 -42
- package/src/react/queries/getTokenSupplies.ts +0 -38
- package/src/react/ui/modals/TransferModal/_store.ts +0 -72
- package/src/react/ui/modals/_internal/stores/accountModal.ts +0 -3
- package/tsconfig.tsbuildinfo +0 -1
- /package/dist/{abi-BKyRjVcZ.js → abi-BMvgNbKQ.js} +0 -0
- /package/dist/{index-C39K_8SG.d.ts → index-CD2bj_xW.d.ts} +0 -0
- /package/dist/{index-ij9f8GAA.d.ts → index-DvpBZgor.d.ts} +0 -0
|
@@ -1,59 +1,93 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { useQuery } from '@tanstack/react-query';
|
|
4
|
+
import type { Optional } from '../_internal';
|
|
5
|
+
import {
|
|
6
|
+
type FetchListCollectionActivitiesParams,
|
|
7
|
+
type fetchListCollectionActivities,
|
|
8
|
+
type ListCollectionActivitiesQueryOptions,
|
|
9
|
+
listCollectionActivitiesQueryOptions,
|
|
10
|
+
} from '../queries/listCollectionActivities';
|
|
10
11
|
import { useConfig } from './useConfig';
|
|
11
12
|
|
|
12
|
-
export type
|
|
13
|
-
|
|
13
|
+
export type UseListCollectionActivitiesParams = Optional<
|
|
14
|
+
ListCollectionActivitiesQueryOptions,
|
|
15
|
+
'config'
|
|
14
16
|
>;
|
|
15
17
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
18
|
+
/**
|
|
19
|
+
* Hook to fetch a list of activities for an entire collection
|
|
20
|
+
*
|
|
21
|
+
* Fetches activities (transfers, sales, offers, etc.) for all tokens
|
|
22
|
+
* in a collection from the marketplace with support for pagination and sorting.
|
|
23
|
+
*
|
|
24
|
+
* @param params - Configuration parameters
|
|
25
|
+
* @param params.chainId - The chain ID (must be number, e.g., 1 for Ethereum, 137 for Polygon)
|
|
26
|
+
* @param params.collectionAddress - The collection contract address
|
|
27
|
+
* @param params.page - Page number to fetch (default: 1)
|
|
28
|
+
* @param params.pageSize - Number of activities per page (default: 10)
|
|
29
|
+
* @param params.sort - Sort order for activities
|
|
30
|
+
* @param params.query - Optional React Query configuration
|
|
31
|
+
*
|
|
32
|
+
* @returns Query result containing activities data for the collection
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* Basic usage:
|
|
36
|
+
* ```typescript
|
|
37
|
+
* const { data, isLoading } = useListCollectionActivities({
|
|
38
|
+
* chainId: 137,
|
|
39
|
+
* collectionAddress: '0x...'
|
|
40
|
+
* })
|
|
41
|
+
* ```
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* With pagination:
|
|
45
|
+
* ```typescript
|
|
46
|
+
* const { data } = useListCollectionActivities({
|
|
47
|
+
* chainId: 1,
|
|
48
|
+
* collectionAddress: '0x...',
|
|
49
|
+
* page: 2,
|
|
50
|
+
* pageSize: 20
|
|
51
|
+
* })
|
|
52
|
+
* ```
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* With sorting:
|
|
56
|
+
* ```typescript
|
|
57
|
+
* const { data } = useListCollectionActivities({
|
|
58
|
+
* chainId: 137,
|
|
59
|
+
* collectionAddress: '0x...',
|
|
60
|
+
* sort: [{ column: 'createdAt', order: SortOrder.DESC }],
|
|
61
|
+
* pageSize: 50
|
|
62
|
+
* })
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
export function useListCollectionActivities(
|
|
66
|
+
params: UseListCollectionActivitiesParams,
|
|
67
|
+
) {
|
|
68
|
+
const defaultConfig = useConfig();
|
|
19
69
|
|
|
20
|
-
const
|
|
21
|
-
args: UseListCollectionActivitiesArgs,
|
|
22
|
-
config: SdkConfig,
|
|
23
|
-
) => {
|
|
24
|
-
const marketplaceClient = getMarketplaceClient(config);
|
|
25
|
-
return marketplaceClient
|
|
26
|
-
.listCollectionActivities({
|
|
27
|
-
chainId: String(args.chainId),
|
|
28
|
-
contractAddress: args.collectionAddress,
|
|
29
|
-
page: args.query?.enabled
|
|
30
|
-
? {
|
|
31
|
-
page: args.query.page ?? 1,
|
|
32
|
-
pageSize: args.query.pageSize ?? 10,
|
|
33
|
-
sort: args.query.sort,
|
|
34
|
-
}
|
|
35
|
-
: undefined,
|
|
36
|
-
})
|
|
37
|
-
.then((data) => ({
|
|
38
|
-
activities: data.activities,
|
|
39
|
-
page: data.page,
|
|
40
|
-
}));
|
|
41
|
-
};
|
|
70
|
+
const { config = defaultConfig, ...rest } = params;
|
|
42
71
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
) => {
|
|
47
|
-
return queryOptions({
|
|
48
|
-
queryKey: [...collectionKeys.collectionActivities, args, config],
|
|
49
|
-
queryFn: () => fetchListCollectionActivities(args, config),
|
|
50
|
-
enabled: args.query?.enabled ?? true,
|
|
72
|
+
const queryOptions = listCollectionActivitiesQueryOptions({
|
|
73
|
+
config,
|
|
74
|
+
...rest,
|
|
51
75
|
});
|
|
52
|
-
};
|
|
53
76
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
)
|
|
57
|
-
|
|
58
|
-
|
|
77
|
+
return useQuery({
|
|
78
|
+
...queryOptions,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export { listCollectionActivitiesQueryOptions };
|
|
83
|
+
|
|
84
|
+
export type {
|
|
85
|
+
FetchListCollectionActivitiesParams,
|
|
86
|
+
ListCollectionActivitiesQueryOptions,
|
|
59
87
|
};
|
|
88
|
+
|
|
89
|
+
// Legacy exports for backward compatibility during migration
|
|
90
|
+
export type UseListCollectionActivitiesArgs = UseListCollectionActivitiesParams;
|
|
91
|
+
export type UseListCollectionActivitiesReturn = Awaited<
|
|
92
|
+
ReturnType<typeof fetchListCollectionActivities>
|
|
93
|
+
>;
|
|
@@ -1,26 +1,80 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
1
3
|
import { useQuery } from '@tanstack/react-query';
|
|
2
|
-
import type {
|
|
3
|
-
import {
|
|
4
|
+
import type { Optional } from '../_internal';
|
|
5
|
+
import {
|
|
6
|
+
type FetchListCollectionsParams,
|
|
7
|
+
type ListCollectionsQueryOptions,
|
|
8
|
+
listCollectionsQueryOptions,
|
|
9
|
+
} from '../queries/listCollections';
|
|
4
10
|
import { useConfig } from './useConfig';
|
|
5
11
|
import { useMarketplaceConfig } from './useMarketplaceConfig';
|
|
6
12
|
|
|
7
|
-
type
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
};
|
|
12
|
-
};
|
|
13
|
+
export type UseListCollectionsParams = Optional<
|
|
14
|
+
ListCollectionsQueryOptions,
|
|
15
|
+
'config' | 'marketplaceConfig'
|
|
16
|
+
>;
|
|
13
17
|
|
|
14
|
-
|
|
15
|
-
|
|
18
|
+
/**
|
|
19
|
+
* Hook to fetch collections from marketplace configuration
|
|
20
|
+
*
|
|
21
|
+
* Retrieves all collections configured in the marketplace, with optional filtering
|
|
22
|
+
* by marketplace type. Combines metadata from the metadata API with marketplace
|
|
23
|
+
* configuration to provide complete collection information.
|
|
24
|
+
*
|
|
25
|
+
* @param params - Configuration parameters
|
|
26
|
+
* @param params.marketplaceType - Optional filter by marketplace type
|
|
27
|
+
* @param params.query - Optional React Query configuration
|
|
28
|
+
*
|
|
29
|
+
* @returns Query result containing array of collections with metadata
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* Basic usage:
|
|
33
|
+
* ```typescript
|
|
34
|
+
* const { data: collections, isLoading } = useListCollections();
|
|
35
|
+
*
|
|
36
|
+
* if (isLoading) return <div>Loading collections...</div>;
|
|
37
|
+
*
|
|
38
|
+
* return (
|
|
39
|
+
* <div>
|
|
40
|
+
* {collections?.map(collection => (
|
|
41
|
+
* <div key={collection.itemsAddress}>
|
|
42
|
+
* {collection.name}
|
|
43
|
+
* </div>
|
|
44
|
+
* ))}
|
|
45
|
+
* </div>
|
|
46
|
+
* );
|
|
47
|
+
* ```
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* Filtering by marketplace type:
|
|
51
|
+
* ```typescript
|
|
52
|
+
* const { data: marketCollections } = useListCollections({
|
|
53
|
+
* marketplaceType: 'market'
|
|
54
|
+
* });
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
export function useListCollections(params: UseListCollectionsParams = {}) {
|
|
58
|
+
const defaultConfig = useConfig();
|
|
16
59
|
const { data: marketplaceConfig } = useMarketplaceConfig();
|
|
17
60
|
|
|
61
|
+
const {
|
|
62
|
+
config = defaultConfig,
|
|
63
|
+
marketplaceConfig: paramMarketplaceConfig,
|
|
64
|
+
...rest
|
|
65
|
+
} = params;
|
|
66
|
+
|
|
67
|
+
const queryOptions = listCollectionsQueryOptions({
|
|
68
|
+
config,
|
|
69
|
+
marketplaceConfig: paramMarketplaceConfig || marketplaceConfig,
|
|
70
|
+
...rest,
|
|
71
|
+
});
|
|
72
|
+
|
|
18
73
|
return useQuery({
|
|
19
|
-
...
|
|
20
|
-
...listCollectionsOptions({
|
|
21
|
-
marketplaceType: args.marketplaceType,
|
|
22
|
-
marketplaceConfig,
|
|
23
|
-
config,
|
|
24
|
-
}),
|
|
74
|
+
...queryOptions,
|
|
25
75
|
});
|
|
26
|
-
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export { listCollectionsQueryOptions };
|
|
79
|
+
|
|
80
|
+
export type { FetchListCollectionsParams, ListCollectionsQueryOptions };
|
|
@@ -1,61 +1,101 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { useQuery } from '@tanstack/react-query';
|
|
4
|
+
import type { Optional } from '../_internal';
|
|
4
5
|
import {
|
|
5
|
-
type
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
type FetchListListingsForCollectibleParams,
|
|
7
|
+
type fetchListListingsForCollectible,
|
|
8
|
+
type ListListingsForCollectibleQueryOptions,
|
|
9
|
+
listListingsForCollectibleQueryOptions,
|
|
10
|
+
} from '../queries/listListingsForCollectible';
|
|
10
11
|
import { useConfig } from './useConfig';
|
|
11
12
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
chainId: z.number(),
|
|
16
|
-
collectionAddress: z.string(),
|
|
17
|
-
collectibleId: z.string(),
|
|
18
|
-
})
|
|
19
|
-
.omit({ contractAddress: true, tokenId: true });
|
|
20
|
-
|
|
21
|
-
type UseListListingsForCollectibleArgs = z.infer<
|
|
22
|
-
typeof UseListListingsForCollectibleArgsSchema
|
|
13
|
+
export type UseListListingsForCollectibleParams = Optional<
|
|
14
|
+
ListListingsForCollectibleQueryOptions,
|
|
15
|
+
'config'
|
|
23
16
|
>;
|
|
24
17
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
18
|
+
/**
|
|
19
|
+
* Hook to fetch listings for a specific collectible
|
|
20
|
+
*
|
|
21
|
+
* Fetches active listings (sales) for a specific token from the marketplace
|
|
22
|
+
* with support for filtering and pagination.
|
|
23
|
+
*
|
|
24
|
+
* @param params - Configuration parameters
|
|
25
|
+
* @param params.chainId - The chain ID (must be number, e.g., 1 for Ethereum, 137 for Polygon)
|
|
26
|
+
* @param params.collectionAddress - The collection contract address
|
|
27
|
+
* @param params.collectibleId - The specific token ID to fetch listings for
|
|
28
|
+
* @param params.filter - Optional filtering parameters (marketplace, currencies, etc.)
|
|
29
|
+
* @param params.page - Optional pagination parameters
|
|
30
|
+
* @param params.query - Optional React Query configuration
|
|
31
|
+
*
|
|
32
|
+
* @returns Query result containing listings data for the collectible
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* Basic usage:
|
|
36
|
+
* ```typescript
|
|
37
|
+
* const { data, isLoading } = useListListingsForCollectible({
|
|
38
|
+
* chainId: 137,
|
|
39
|
+
* collectionAddress: '0x...',
|
|
40
|
+
* collectibleId: '123'
|
|
41
|
+
* })
|
|
42
|
+
* ```
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* With pagination:
|
|
46
|
+
* ```typescript
|
|
47
|
+
* const { data } = useListListingsForCollectible({
|
|
48
|
+
* chainId: 1,
|
|
49
|
+
* collectionAddress: '0x...',
|
|
50
|
+
* collectibleId: '456',
|
|
51
|
+
* page: {
|
|
52
|
+
* page: 2,
|
|
53
|
+
* pageSize: 20
|
|
54
|
+
* }
|
|
55
|
+
* })
|
|
56
|
+
* ```
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* With filtering:
|
|
60
|
+
* ```typescript
|
|
61
|
+
* const { data } = useListListingsForCollectible({
|
|
62
|
+
* chainId: 137,
|
|
63
|
+
* collectionAddress: '0x...',
|
|
64
|
+
* collectibleId: '789',
|
|
65
|
+
* filter: {
|
|
66
|
+
* marketplace: [MarketplaceKind.sequence_marketplace_v2],
|
|
67
|
+
* currencies: ['0x...'] // Specific currency addresses
|
|
68
|
+
* }
|
|
69
|
+
* })
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
72
|
+
export function useListListingsForCollectible(
|
|
73
|
+
params: UseListListingsForCollectibleParams,
|
|
74
|
+
) {
|
|
75
|
+
const defaultConfig = useConfig();
|
|
28
76
|
|
|
29
|
-
const
|
|
30
|
-
config: SdkConfig,
|
|
31
|
-
args: UseListListingsForCollectibleArgs,
|
|
32
|
-
) => {
|
|
33
|
-
const arg = {
|
|
34
|
-
chainId: String(args.chainId),
|
|
35
|
-
contractAddress: args.collectionAddress,
|
|
36
|
-
tokenId: args.collectibleId,
|
|
37
|
-
filter: args.filter,
|
|
38
|
-
page: args.page,
|
|
39
|
-
} satisfies ListListingsForCollectibleArgs;
|
|
40
|
-
|
|
41
|
-
const marketplaceClient = getMarketplaceClient(config);
|
|
42
|
-
return marketplaceClient.listCollectibleListings(arg);
|
|
43
|
-
};
|
|
77
|
+
const { config = defaultConfig, ...rest } = params;
|
|
44
78
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
) => {
|
|
49
|
-
return queryOptions({
|
|
50
|
-
queryKey: [...collectableKeys.listings, args, config],
|
|
51
|
-
queryFn: () => fetchListListingsForCollectible(config, args),
|
|
79
|
+
const queryOptions = listListingsForCollectibleQueryOptions({
|
|
80
|
+
config,
|
|
81
|
+
...rest,
|
|
52
82
|
});
|
|
53
|
-
};
|
|
54
83
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
)
|
|
58
|
-
|
|
84
|
+
return useQuery({
|
|
85
|
+
...queryOptions,
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export { listListingsForCollectibleQueryOptions };
|
|
59
90
|
|
|
60
|
-
|
|
91
|
+
export type {
|
|
92
|
+
FetchListListingsForCollectibleParams,
|
|
93
|
+
ListListingsForCollectibleQueryOptions,
|
|
61
94
|
};
|
|
95
|
+
|
|
96
|
+
// Legacy exports for backward compatibility during migration
|
|
97
|
+
export type UseListListingsForCollectibleArgs =
|
|
98
|
+
UseListListingsForCollectibleParams;
|
|
99
|
+
export type UseListListingsForCollectibleReturn = Awaited<
|
|
100
|
+
ReturnType<typeof fetchListListingsForCollectible>
|
|
101
|
+
>;
|
|
@@ -2,7 +2,6 @@ import { useMemo } from 'react';
|
|
|
2
2
|
|
|
3
3
|
import type { Address } from 'viem';
|
|
4
4
|
import { useAccount } from 'wagmi';
|
|
5
|
-
import { OrderSide } from '../../types';
|
|
6
5
|
import type {
|
|
7
6
|
CollectibleCardAction,
|
|
8
7
|
CollectibleOrder,
|
|
@@ -11,6 +10,7 @@ import type {
|
|
|
11
10
|
OrderbookKind,
|
|
12
11
|
PropertyFilter,
|
|
13
12
|
} from '../../types';
|
|
13
|
+
import { OrderSide } from '../../types';
|
|
14
14
|
import type { MarketCollectibleCardProps } from '../ui/components/marketplace-collectible-card/types';
|
|
15
15
|
import { useSellModal } from '../ui/modals/SellModal';
|
|
16
16
|
import { useCollectionBalanceDetails } from './useCollectionBalanceDetails';
|
|
@@ -19,7 +19,8 @@ import { useListCollectibles } from './useListCollectibles';
|
|
|
19
19
|
interface UseListMarketCardDataProps {
|
|
20
20
|
collectionAddress: Address;
|
|
21
21
|
chainId: number;
|
|
22
|
-
orderbookKind
|
|
22
|
+
// orderbookKind is optional — used to override marketplace config for internal tests
|
|
23
|
+
orderbookKind?: OrderbookKind;
|
|
23
24
|
collectionType: ContractType;
|
|
24
25
|
filterOptions?: PropertyFilter[];
|
|
25
26
|
searchText?: string;
|
|
@@ -1,25 +1,20 @@
|
|
|
1
1
|
import { queryOptions, useQuery } from '@tanstack/react-query';
|
|
2
|
-
import { z } from 'zod';
|
|
3
2
|
import type { SdkConfig } from '../../types';
|
|
4
3
|
import {
|
|
5
|
-
type ListOffersForCollectibleArgs,
|
|
6
4
|
collectableKeys,
|
|
7
5
|
getMarketplaceClient,
|
|
6
|
+
type ListOffersForCollectibleArgs,
|
|
8
7
|
} from '../_internal';
|
|
9
|
-
import {
|
|
8
|
+
import type { OrderFilter, Page } from '../_internal/api/marketplace.gen';
|
|
10
9
|
import { useConfig } from './useConfig';
|
|
11
10
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
type UseListOffersForCollectibleArgs = z.infer<
|
|
21
|
-
typeof UseListOffersForCollectibleArgsSchema
|
|
22
|
-
>;
|
|
11
|
+
interface UseListOffersForCollectibleArgs {
|
|
12
|
+
chainId: number;
|
|
13
|
+
collectionAddress: string;
|
|
14
|
+
collectibleId: string;
|
|
15
|
+
filter?: OrderFilter;
|
|
16
|
+
page?: Page;
|
|
17
|
+
}
|
|
23
18
|
|
|
24
19
|
export type UseListOffersForCollectibleReturn = Awaited<
|
|
25
20
|
ReturnType<typeof fetchListOffersForCollectible>
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { useInfiniteQuery } from '@tanstack/react-query';
|
|
4
|
+
import type { Optional } from '../_internal';
|
|
5
|
+
import {
|
|
6
|
+
type ListPrimarySaleItemsQueryOptions,
|
|
7
|
+
listPrimarySaleItemsQueryOptions,
|
|
8
|
+
} from '../queries/primarySaleItems';
|
|
9
|
+
import { useConfig } from './useConfig';
|
|
10
|
+
|
|
11
|
+
export type UseListPrimarySaleItemsParams = Optional<
|
|
12
|
+
ListPrimarySaleItemsQueryOptions,
|
|
13
|
+
'config'
|
|
14
|
+
>;
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Hook to fetch primary sale items with pagination support
|
|
18
|
+
*
|
|
19
|
+
* Retrieves a paginated list of primary sale items for a specific contract address
|
|
20
|
+
* from the marketplace.
|
|
21
|
+
*
|
|
22
|
+
* @param params - Configuration parameters
|
|
23
|
+
* @param params.chainId - The chain ID (must be number, e.g., 1 for Ethereum, 137 for Polygon)
|
|
24
|
+
* @param params.primarySaleContractAddress - The primary sale contract address
|
|
25
|
+
* @param params.filter - Optional filter parameters for the query
|
|
26
|
+
* @param params.page - Optional pagination parameters
|
|
27
|
+
* @param params.query - Optional React Query configuration
|
|
28
|
+
*
|
|
29
|
+
* @returns Infinite query result containing the primary sale items data
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* Basic usage:
|
|
33
|
+
* ```typescript
|
|
34
|
+
* const { data, isLoading } = useListPrimarySaleItems({
|
|
35
|
+
* chainId: 137,
|
|
36
|
+
* primarySaleContractAddress: '0x...',
|
|
37
|
+
* })
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* With filters and pagination:
|
|
42
|
+
* ```typescript
|
|
43
|
+
* const { data, isLoading } = useListPrimarySaleItems({
|
|
44
|
+
* chainId: 1,
|
|
45
|
+
* primarySaleContractAddress: '0x...',
|
|
46
|
+
* filter: { status: 'active' },
|
|
47
|
+
* page: { page: 1, pageSize: 20 },
|
|
48
|
+
* query: {
|
|
49
|
+
* enabled: isReady
|
|
50
|
+
* }
|
|
51
|
+
* })
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
export function useListPrimarySaleItems(params: UseListPrimarySaleItemsParams) {
|
|
55
|
+
const defaultConfig = useConfig();
|
|
56
|
+
const { config = defaultConfig, ...rest } = params;
|
|
57
|
+
|
|
58
|
+
const queryOptions = listPrimarySaleItemsQueryOptions({
|
|
59
|
+
config,
|
|
60
|
+
...rest,
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
return useInfiniteQuery(queryOptions);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export type { ListPrimarySaleItemsQueryOptions };
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import type { Address } from 'viem';
|
|
2
|
+
import { ContractType } from '../_internal';
|
|
3
|
+
import { useList721ShopCardData } from './useList721ShopCardData';
|
|
4
|
+
import { useList1155ShopCardData } from './useList1155ShopCardData';
|
|
5
|
+
|
|
6
|
+
interface UseListShopCardDataProps {
|
|
7
|
+
tokenIds: string[];
|
|
8
|
+
chainId: number;
|
|
9
|
+
contractAddress: Address;
|
|
10
|
+
salesContractAddress: Address;
|
|
11
|
+
contractType: ContractType | undefined;
|
|
12
|
+
enabled?: boolean;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export function useListShopCardData({
|
|
16
|
+
tokenIds,
|
|
17
|
+
chainId,
|
|
18
|
+
contractAddress,
|
|
19
|
+
salesContractAddress,
|
|
20
|
+
contractType,
|
|
21
|
+
enabled = true,
|
|
22
|
+
}: UseListShopCardDataProps) {
|
|
23
|
+
const shouldUse721 = contractType === ContractType.ERC721;
|
|
24
|
+
const shouldUse1155 = contractType === ContractType.ERC1155;
|
|
25
|
+
|
|
26
|
+
const erc721Data = useList721ShopCardData({
|
|
27
|
+
tokenIds,
|
|
28
|
+
chainId,
|
|
29
|
+
contractAddress,
|
|
30
|
+
salesContractAddress,
|
|
31
|
+
enabled: enabled && shouldUse721,
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
const erc1155Data = useList1155ShopCardData({
|
|
35
|
+
tokenIds,
|
|
36
|
+
chainId,
|
|
37
|
+
contractAddress,
|
|
38
|
+
salesContractAddress,
|
|
39
|
+
enabled: enabled && shouldUse1155,
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
if (shouldUse721) {
|
|
43
|
+
return erc721Data;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
if (shouldUse1155) {
|
|
47
|
+
// Map ERC1155 data to match ERC721 structure
|
|
48
|
+
return {
|
|
49
|
+
collectibleCards: erc1155Data.collectibleCards,
|
|
50
|
+
isLoading: erc1155Data.isLoading,
|
|
51
|
+
saleDetailsError: erc1155Data.tokenSaleDetailsError,
|
|
52
|
+
primarySaleItemsError: erc1155Data.tokenMetadataError,
|
|
53
|
+
saleDetails: undefined,
|
|
54
|
+
primarySaleItems: undefined,
|
|
55
|
+
salePrice: erc1155Data.collectibleCards[0]?.salePrice,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// Return a default state when contract type is not determined yet
|
|
60
|
+
return {
|
|
61
|
+
collectibleCards: [],
|
|
62
|
+
isLoading: !contractType,
|
|
63
|
+
collectionDetailsError: null,
|
|
64
|
+
saleDetailsError: null,
|
|
65
|
+
primarySaleItemsError: null,
|
|
66
|
+
saleDetails: undefined,
|
|
67
|
+
primarySaleItems: undefined,
|
|
68
|
+
salePrice: undefined,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
@@ -1,19 +1,71 @@
|
|
|
1
|
-
|
|
2
|
-
import { useConfig } from './useConfig';
|
|
1
|
+
'use client';
|
|
3
2
|
|
|
3
|
+
import { useQuery } from '@tanstack/react-query';
|
|
4
|
+
import type { Optional } from '../_internal';
|
|
4
5
|
import {
|
|
5
|
-
type
|
|
6
|
-
|
|
6
|
+
type FetchListTokenMetadataParams,
|
|
7
|
+
type ListTokenMetadataQueryOptions,
|
|
8
|
+
listTokenMetadataQueryOptions,
|
|
7
9
|
} from '../queries/listTokenMetadata';
|
|
10
|
+
import { useConfig } from './useConfig';
|
|
11
|
+
|
|
12
|
+
export type UseListTokenMetadataParams = Optional<
|
|
13
|
+
ListTokenMetadataQueryOptions,
|
|
14
|
+
'config'
|
|
15
|
+
>;
|
|
8
16
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
17
|
+
/**
|
|
18
|
+
* Hook to fetch token metadata from the metadata API
|
|
19
|
+
*
|
|
20
|
+
* Retrieves metadata for a batch of tokens from a specific contract.
|
|
21
|
+
* Useful for getting token names, descriptions, images, and other attributes.
|
|
22
|
+
*
|
|
23
|
+
* @param params - Configuration parameters
|
|
24
|
+
* @param params.chainId - The chain ID (must be number, e.g., 1 for Ethereum, 137 for Polygon)
|
|
25
|
+
* @param params.contractAddress - The contract address containing the tokens
|
|
26
|
+
* @param params.tokenIds - Array of token IDs to fetch metadata for
|
|
27
|
+
* @param params.query - Optional React Query configuration
|
|
28
|
+
*
|
|
29
|
+
* @returns Query result containing token metadata array
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* Basic usage:
|
|
33
|
+
* ```typescript
|
|
34
|
+
* const { data, isLoading } = useListTokenMetadata({
|
|
35
|
+
* chainId: 137,
|
|
36
|
+
* contractAddress: '0x...',
|
|
37
|
+
* tokenIds: ['1', '2', '3']
|
|
38
|
+
* })
|
|
39
|
+
* ```
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* With conditional fetching:
|
|
43
|
+
* ```typescript
|
|
44
|
+
* const { data, isLoading } = useListTokenMetadata({
|
|
45
|
+
* chainId: 1,
|
|
46
|
+
* contractAddress: '0x...',
|
|
47
|
+
* tokenIds: selectedTokenIds,
|
|
48
|
+
* query: {
|
|
49
|
+
* enabled: selectedTokenIds.length > 0
|
|
50
|
+
* }
|
|
51
|
+
* })
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
export function useListTokenMetadata(params: UseListTokenMetadataParams) {
|
|
55
|
+
const defaultConfig = useConfig();
|
|
56
|
+
|
|
57
|
+
const { config = defaultConfig, ...rest } = params;
|
|
58
|
+
|
|
59
|
+
const queryOptions = listTokenMetadataQueryOptions({
|
|
60
|
+
config,
|
|
61
|
+
...rest,
|
|
62
|
+
});
|
|
12
63
|
|
|
13
64
|
return useQuery({
|
|
14
|
-
...
|
|
15
|
-
{ chainId, contractAddress, tokenIds, query },
|
|
16
|
-
config,
|
|
17
|
-
),
|
|
65
|
+
...queryOptions,
|
|
18
66
|
});
|
|
19
|
-
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export { listTokenMetadataQueryOptions };
|
|
70
|
+
|
|
71
|
+
export type { FetchListTokenMetadataParams, ListTokenMetadataQueryOptions };
|