@0xsequence/marketplace-sdk 0.8.12 → 0.9.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/CHANGELOG.md +91 -23
- package/dist/{CartIcon-Bll1rbxv.js → CalendarIcon-DbQ7Vxcw.js} +38 -38
- package/dist/CalendarIcon-DbQ7Vxcw.js.map +1 -0
- package/dist/{types-BIJOaL4j.d.ts → CollectibleCard-C8Ae64Ab.d.ts} +7 -4
- package/dist/{_internal-69NEWNUE.js → _internal-BgWcRIak.js} +2 -14
- package/dist/_internal-BgWcRIak.js.map +1 -0
- package/dist/{api-1KFxYh7o.js → api-DTIan01C.js} +73 -64
- package/dist/api-DTIan01C.js.map +1 -0
- 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-api-DoK3907S.d.ts → builder-api-C_zj5mr3.d.ts} +2 -2
- package/dist/{builder.gen-CxP9NT1p.js → builder.gen-B9wR2nvF.js} +1 -1
- package/dist/builder.gen-B9wR2nvF.js.map +1 -0
- package/dist/{index-Cl7PQOGu.d.ts → index-21LE7OhL.d.ts} +24 -24
- package/dist/{index-1bezgsFq.d.ts → index-BL9RUSEK.d.ts} +929 -255
- package/dist/index-BQsgAvtX.d.ts +2938 -0
- package/dist/{index-DafWjEb4.d.ts → index-BUVWziLP.d.ts} +9 -14
- package/dist/{index-BIMIpDiI.d.ts → index-ByznONYE.d.ts} +98 -99
- package/dist/{index-BjIwVzc4.d.ts → index-CLy8y5hm.d.ts} +238 -238
- package/dist/{index-CN8puQQJ.d.ts → index-COt10OgI.d.ts} +4 -4
- package/dist/index-DPNWNa7t.d.ts +414 -0
- package/dist/{index-BEYefG1G.d.ts → index-DaE5ZNHb.d.ts} +2 -2
- package/dist/{index-BfH21xmk.d.ts → index-DsfCs3-x.d.ts} +46 -41
- package/dist/{index-4-kfOFdx.d.ts → index-dUb6wb4Y.d.ts} +5 -5
- package/dist/index.css +14 -1
- package/dist/index.d.ts +7 -7
- package/dist/index.js +7 -7
- package/dist/marketplace-logos-CSeGcPW4.js.map +1 -1
- package/dist/{marketplace.gen-Dqk8vRmD.js → marketplace.gen-BSDIX7NZ.js} +12 -3
- package/dist/marketplace.gen-BSDIX7NZ.js.map +1 -0
- package/dist/{marketplaceConfig-D2MYFqll.js → marketplaceConfig-C6X1SUik.js} +2 -2
- package/dist/marketplaceConfig-C6X1SUik.js.map +1 -0
- package/dist/{sdk-config-DJzxVPld.d.ts → new-marketplace-types-Bfis0U4J.d.ts} +65 -54
- package/dist/options-B4QN7Xou.js +0 -0
- package/dist/{primary-sale-Cw95phYC.js → primary-sale-C55ALnfQ.js} +279 -279
- package/dist/primary-sale-C55ALnfQ.js.map +1 -0
- package/dist/{queries-DPvwtnO7.js → queries-CUU65uYZ.js} +247 -134
- package/dist/queries-CUU65uYZ.js.map +1 -0
- package/dist/react/_internal/api/index.d.ts +4 -4
- package/dist/react/_internal/api/index.js +5 -5
- package/dist/react/_internal/databeat/index.d.ts +3 -3
- package/dist/react/_internal/databeat/index.js +15 -15
- package/dist/react/_internal/index.d.ts +7 -7
- package/dist/react/_internal/index.js +7 -7
- package/dist/react/_internal/wagmi/index.d.ts +3 -3
- package/dist/react/_internal/wagmi/index.js +2 -2
- package/dist/react/hooks/index.d.ts +15 -14
- package/dist/react/hooks/index.js +16 -16
- package/dist/react/hooks/options/index.d.ts +4 -5
- package/dist/react/hooks/options/index.js +9 -9
- package/dist/react/index.d.ts +15 -37
- package/dist/react/index.js +16 -16
- package/dist/react/queries/index.d.ts +8 -8
- package/dist/react/queries/index.js +12 -12
- package/dist/react/ssr/index.d.ts +6 -6
- package/dist/react/ssr/index.js +7 -7
- package/dist/react/ssr/index.js.map +1 -1
- package/dist/react/ui/components/marketplace-collectible-card/index.d.ts +8 -9
- package/dist/react/ui/components/marketplace-collectible-card/index.js +15 -15
- package/dist/react/ui/components/marketplace-collectible-card/utils/index.d.ts +7 -7
- package/dist/react/ui/components/marketplace-collectible-card/utils/index.js +7 -7
- package/dist/react/ui/components/marketplace-logos/index.d.ts +21 -21
- package/dist/react/ui/icons/index.js +6 -6
- package/dist/react/ui/index.d.ts +8 -9
- package/dist/react/ui/index.js +15 -15
- package/dist/react/ui/modals/_internal/components/actionModal/index.d.ts +5 -5
- package/dist/react/ui/modals/_internal/components/actionModal/index.js +15 -15
- package/dist/{react-BG7o4PId.js → react-DAIicQPT.js} +7422 -6835
- package/dist/react-DAIicQPT.js.map +1 -0
- package/dist/{token-CO5llIla.js → token-Da4TdyUk.js} +1540 -761
- package/dist/token-Da4TdyUk.js.map +1 -0
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.js +2 -2
- package/dist/types-DwWE6xOF.js.map +1 -1
- package/dist/utils/abi/index.d.ts +3 -3
- package/dist/utils/abi/index.js +3 -3
- 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 +6 -6
- package/dist/utils/index.js +6 -6
- package/dist/{utils-Cat9_pef.js → utils-BPYfgDSL.js} +2 -2
- package/dist/{utils-Cat9_pef.js.map → utils-BPYfgDSL.js.map} +1 -1
- package/dist/{utils-BFdxaToy.js → utils-CW2NA5KG.js} +87 -87
- package/dist/utils-CW2NA5KG.js.map +1 -0
- package/dist/{wagmi-DRctYEk6.js → wagmi-CDzEQbfk.js} +19 -12
- package/dist/wagmi-CDzEQbfk.js.map +1 -0
- package/eslint/use-client.js +0 -6
- package/package.json +30 -31
- package/src/index.ts +1 -1
- package/src/react/_internal/api/__mocks__/builder.msw.ts +5 -3
- package/src/react/_internal/api/__mocks__/indexer.msw.ts +8 -8
- package/src/react/_internal/api/__mocks__/marketplace.msw.ts +4 -6
- package/src/react/_internal/api/__mocks__/metadata.msw.ts +1 -1
- 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/marketplace.gen.ts +42 -4
- package/src/react/_internal/api/query-keys.ts +13 -6
- package/src/react/_internal/api/services.ts +28 -31
- package/src/react/_internal/index.ts +1 -1
- package/src/react/_internal/types.ts +10 -23
- package/src/react/_internal/utils.ts +1 -2
- package/src/react/_internal/wagmi/create-config.ts +20 -11
- 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 +18 -18
- 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.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__/useCollectible.test.tsx +14 -16
- package/src/react/hooks/__tests__/useCollection.test.tsx +4 -4
- package/src/react/hooks/__tests__/useCollectionBalanceDetails.test.tsx +1 -27
- package/src/react/hooks/__tests__/useCollectionDetails.test.tsx +1 -1
- package/src/react/hooks/__tests__/useCollectionDetailsPolling.test.tsx +1 -1
- package/src/react/hooks/__tests__/useComparePrices.test.tsx +7 -6
- package/src/react/hooks/__tests__/useConvertPriceToUSD.test.tsx +1 -1
- 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__/useFilters.test.tsx +1 -1
- 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__/useGetTokenSuppliesMap.test.tsx +104 -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 +111 -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/index.ts +27 -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/useCheckoutOptionsSalesContract.tsx +1 -1
- package/src/react/hooks/useCollectible.tsx +64 -49
- package/src/react/hooks/useCollection.tsx +60 -11
- package/src/react/hooks/useCollectionBalanceDetails.tsx +20 -27
- package/src/react/hooks/useCollectionDetails.ts +69 -0
- package/src/react/hooks/useCollectionDetailsPolling.tsx +10 -2
- package/src/react/hooks/useComparePrices.tsx +18 -21
- package/src/react/hooks/useConvertPriceToUSD.tsx +20 -37
- 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/useFilterState.tsx +1 -2
- 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/useGetReceiptFromHash.tsx +32 -3
- package/src/react/hooks/{useGetTokenSuppliesMap.ts → useGetTokenRanges.tsx} +15 -17
- package/src/react/hooks/useGetTokenSuppliesMap.tsx +73 -0
- package/src/react/hooks/useHighestOffer.tsx +68 -4
- package/src/react/hooks/useInventory.tsx +1 -1
- package/src/react/hooks/useList1155ShopCardData.tsx +55 -82
- package/src/react/hooks/useList721ShopCardData.tsx +93 -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 +72 -18
- package/src/react/hooks/useListListingsForCollectible.tsx +90 -50
- package/src/react/hooks/useListMarketCardData.tsx +1 -1
- package/src/react/hooks/useListOffersForCollectible.tsx +9 -14
- package/src/react/hooks/useListPrimarySaleItems.ts +72 -12
- package/src/react/hooks/useListShopCardData.tsx +70 -0
- 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/useRoyalty.tsx +57 -13
- package/src/react/hooks/useShopCollectibleSaleData.tsx +349 -0
- package/src/react/hooks/useTransferTokens.tsx +1 -1
- package/src/react/hooks/util/optimisticCancelUpdates.ts +5 -7
- package/src/react/index.ts +5 -3
- package/src/react/queries/balanceOfCollectible.ts +1 -1
- package/src/react/queries/collectible.ts +66 -0
- package/src/react/queries/collection.ts +55 -0
- package/src/react/queries/collectionDetails.ts +64 -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/floorOrder.ts +63 -0
- package/src/react/queries/getTokenSuppliesMap.ts +77 -0
- package/src/react/queries/highestOffer.ts +46 -40
- package/src/react/queries/index.ts +7 -4
- package/src/react/queries/inventory.ts +4 -4
- package/src/react/queries/listBalances.ts +1 -1
- 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 +47 -8
- 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 +3 -3
- 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/__tests__/useActionButtonLogic.test.tsx +14 -8
- package/src/react/ui/components/_internals/action-button/hooks/useActionButtonLogic.ts +12 -15
- package/src/react/ui/components/_internals/action-button/store.ts +46 -18
- package/src/react/ui/components/marketplace-collectible-card/CollectibleCard.tsx +1 -1
- package/src/react/ui/components/marketplace-collectible-card/Footer.tsx +1 -1
- 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 +7 -4
- package/src/react/ui/components/marketplace-collectible-card/variants/MarketCard.tsx +3 -2
- package/src/react/ui/components/marketplace-collectible-card/variants/ShopCard.tsx +2 -5
- package/src/react/ui/components/marketplace-logos/marketplace-logos.tsx +1 -1
- package/src/react/ui/components/media/Media.tsx +5 -1
- package/src/react/ui/index.ts +8 -10
- package/src/react/ui/modals/BuyModal/__tests__/ERC1155ShopModal.test.tsx +94 -87
- package/src/react/ui/modals/BuyModal/__tests__/Modal1155.test.tsx +4 -4
- package/src/react/ui/modals/BuyModal/__tests__/store.test.ts +1 -1
- package/src/react/ui/modals/BuyModal/components/ERC1155QuantityModal.tsx +3 -4
- package/src/react/ui/modals/BuyModal/components/ERC1155ShopModal.tsx +1 -1
- package/src/react/ui/modals/BuyModal/hooks/__tests__/useCheckoutOptions.test.tsx +1 -1
- package/src/react/ui/modals/BuyModal/hooks/useCheckoutOptions.ts +1 -1
- package/src/react/ui/modals/BuyModal/hooks/useERC721SalePaymentParams.ts +1 -1
- package/src/react/ui/modals/BuyModal/hooks/usePaymentModalParams.ts +3 -3
- package/src/react/ui/modals/CreateListingModal/Modal.tsx +1 -1
- 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/MakeOfferModal/Modal.tsx +2 -2
- 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/SellModal/Modal.tsx +3 -3
- 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/SuccessfulPurchaseModal/__tests__/Modal.test.tsx +1 -1
- package/src/react/ui/modals/TransferModal/_store.ts +1 -7
- package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/_components/TokenQuantityInput.tsx +2 -3
- package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/index.tsx +2 -2
- 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/currencyOptionsSelect/__tests__/index.test.tsx +1 -1
- package/src/react/ui/modals/_internal/components/currencyOptionsSelect/index.tsx +0 -1
- package/src/react/ui/modals/_internal/components/floorPriceText/index.tsx +4 -4
- package/src/react/ui/modals/_internal/components/quantityInput/QuantityInputBase.tsx +166 -0
- package/src/react/ui/modals/_internal/components/quantityInput/index.tsx +12 -141
- package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/__tests__/SelectWaasFeeOptions.test.tsx +1 -1
- package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/_components/BalanceIndicator.tsx +1 -2
- package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/useWaasFeeOptionManager.tsx +0 -1
- package/src/react/ui/modals/_internal/components/transactionPreview/index.tsx +1 -1
- package/src/react/ui/modals/_internal/components/transactionStatusModal/__tests__/TransactionStatusModal.test.tsx +1 -1
- package/src/react/ui/modals/_internal/components/transactionStatusModal/hooks/useTransactionStatus.ts +0 -1
- package/src/react/ui/modals/_internal/components/transactionStatusModal/store.ts +1 -1
- package/src/react/ui/modals/_internal/components/waasFeeOptionsSelect/WaasFeeOptionsSelect.tsx +1 -1
- 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 +2 -1
- 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/test/const.ts +3 -1
- package/test/mocks/wallet.ts +1 -1
- package/test/test-utils.tsx +3 -4
- 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.map +0 -1
- package/dist/api-1KFxYh7o.js.map +0 -1
- package/dist/builder.gen-CxP9NT1p.js.map +0 -1
- package/dist/index-BHiSG-Yi.d.ts +0 -312
- package/dist/index-BQW0PUkQ.d.ts +0 -3973
- 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.map +0 -1
- package/dist/react-BG7o4PId.js.map +0 -1
- package/dist/token-CO5llIla.js.map +0 -1
- package/dist/useCollection-C-mclKU0.d.ts +0 -66
- package/dist/utils-BFdxaToy.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/useCheckoutOptions.tsx +0 -66
- package/src/react/hooks/useCollectionDetails.tsx +0 -50
- package/src/react/hooks/useListTokenMetadata.ts +0 -19
- package/src/react/queries/getTokenSupplies.ts +0 -38
- package/tsconfig.tsbuildinfo +0 -1
- /package/dist/{index-ij9f8GAA.d.ts → index-DvpBZgor.d.ts} +0 -0
|
@@ -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';
|
|
@@ -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>
|
|
@@ -1,19 +1,29 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useInfiniteQuery, useQuery } from '@tanstack/react-query';
|
|
2
|
+
import type { Address } from 'viem';
|
|
2
3
|
import type { SdkConfig } from '../../types';
|
|
3
4
|
import {
|
|
4
|
-
type ListPrimarySaleItemsArgs,
|
|
5
5
|
getMarketplaceClient,
|
|
6
|
+
type ListPrimarySaleItemsArgs,
|
|
7
|
+
type ListPrimarySaleItemsReturn,
|
|
8
|
+
type Page,
|
|
9
|
+
type PrimarySaleItemsFilter,
|
|
6
10
|
} from '../_internal';
|
|
7
11
|
import { useConfig } from './useConfig';
|
|
8
12
|
|
|
9
|
-
|
|
13
|
+
interface UseListPrimarySaleItemsArgs {
|
|
10
14
|
chainId: number;
|
|
11
|
-
|
|
15
|
+
primarySaleContractAddress: Address | undefined;
|
|
16
|
+
filter?: PrimarySaleItemsFilter;
|
|
17
|
+
page?: Page;
|
|
18
|
+
query?: {
|
|
19
|
+
enabled?: boolean;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
12
22
|
|
|
13
23
|
const fetchListPrimarySaleItems = async (
|
|
24
|
+
args: ListPrimarySaleItemsArgs,
|
|
14
25
|
config: SdkConfig,
|
|
15
|
-
|
|
16
|
-
) => {
|
|
26
|
+
): Promise<ListPrimarySaleItemsReturn> => {
|
|
17
27
|
const arg = {
|
|
18
28
|
chainId: String(args.chainId),
|
|
19
29
|
primarySaleContractAddress: args.primarySaleContractAddress,
|
|
@@ -25,18 +35,68 @@ const fetchListPrimarySaleItems = async (
|
|
|
25
35
|
return marketplaceClient.listPrimarySaleItems(arg);
|
|
26
36
|
};
|
|
27
37
|
|
|
28
|
-
|
|
38
|
+
const listPrimarySaleItemsOptions = (
|
|
29
39
|
args: UseListPrimarySaleItemsArgs,
|
|
30
40
|
config: SdkConfig,
|
|
31
41
|
) => {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
42
|
+
const primarySaleContractAddress = args.primarySaleContractAddress as Address;
|
|
43
|
+
return {
|
|
44
|
+
queryKey: ['listPrimarySaleItems', args],
|
|
45
|
+
queryFn: async ({ pageParam }: { pageParam: Page }) => {
|
|
46
|
+
return fetchListPrimarySaleItems(
|
|
47
|
+
{
|
|
48
|
+
chainId: String(args.chainId),
|
|
49
|
+
primarySaleContractAddress,
|
|
50
|
+
filter: args.filter,
|
|
51
|
+
page: pageParam,
|
|
52
|
+
},
|
|
53
|
+
config,
|
|
54
|
+
);
|
|
55
|
+
},
|
|
56
|
+
initialPageParam: { page: 1, pageSize: 30 } as Page,
|
|
57
|
+
getNextPageParam: (lastPage: ListPrimarySaleItemsReturn) =>
|
|
58
|
+
lastPage.page?.more
|
|
59
|
+
? {
|
|
60
|
+
page: lastPage.page?.page || 1,
|
|
61
|
+
pageSize: lastPage.page?.pageSize || 30,
|
|
62
|
+
}
|
|
63
|
+
: undefined,
|
|
64
|
+
...args.query,
|
|
65
|
+
enabled: !!primarySaleContractAddress && args.query?.enabled !== false,
|
|
66
|
+
};
|
|
36
67
|
};
|
|
37
68
|
|
|
38
69
|
export const useListPrimarySaleItems = (args: UseListPrimarySaleItemsArgs) => {
|
|
39
70
|
const config = useConfig();
|
|
71
|
+
return useInfiniteQuery(listPrimarySaleItemsOptions(args, config));
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
interface UseGetCountOfPrimarySaleItemsArgs {
|
|
75
|
+
chainId: number;
|
|
76
|
+
primarySaleContractAddress: Address | undefined;
|
|
77
|
+
filter?: PrimarySaleItemsFilter;
|
|
78
|
+
query?: {
|
|
79
|
+
enabled?: boolean;
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export const useGetCountOfPrimarySaleItems = (
|
|
84
|
+
args: UseGetCountOfPrimarySaleItemsArgs,
|
|
85
|
+
) => {
|
|
86
|
+
const config = useConfig();
|
|
87
|
+
|
|
88
|
+
return useQuery({
|
|
89
|
+
queryKey: ['getCountOfPrimarySaleItems', args],
|
|
90
|
+
queryFn: async () => {
|
|
91
|
+
const marketplaceClient = getMarketplaceClient(config);
|
|
40
92
|
|
|
41
|
-
|
|
93
|
+
return marketplaceClient.getCountOfPrimarySaleItems({
|
|
94
|
+
chainId: String(args.chainId),
|
|
95
|
+
primarySaleContractAddress: args.primarySaleContractAddress || '',
|
|
96
|
+
filter: args.filter,
|
|
97
|
+
});
|
|
98
|
+
},
|
|
99
|
+
...args.query,
|
|
100
|
+
enabled: !!args.primarySaleContractAddress && args.query?.enabled !== false,
|
|
101
|
+
});
|
|
42
102
|
};
|
|
@@ -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
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { useQuery } from '@tanstack/react-query';
|
|
4
|
+
import type { Optional } from '../_internal';
|
|
5
|
+
import {
|
|
6
|
+
type FetchListTokenMetadataParams,
|
|
7
|
+
type ListTokenMetadataQueryOptions,
|
|
8
|
+
listTokenMetadataQueryOptions,
|
|
9
|
+
} from '../queries/listTokenMetadata';
|
|
10
|
+
import { useConfig } from './useConfig';
|
|
11
|
+
|
|
12
|
+
export type UseListTokenMetadataParams = Optional<
|
|
13
|
+
ListTokenMetadataQueryOptions,
|
|
14
|
+
'config'
|
|
15
|
+
>;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Hook to fetch metadata for multiple tokens
|
|
19
|
+
*
|
|
20
|
+
* Retrieves metadata for a batch of tokens from a specific contract using the metadata API.
|
|
21
|
+
* This hook is optimized for fetching multiple token metadata in a single request.
|
|
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.config - Optional SDK configuration (defaults from context)
|
|
28
|
+
* @param params.query - Optional React Query configuration
|
|
29
|
+
*
|
|
30
|
+
* @returns Query result containing an array of token metadata
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* Basic usage:
|
|
34
|
+
* ```typescript
|
|
35
|
+
* const { data: metadata, isLoading } = useListTokenMetadata({
|
|
36
|
+
* chainId: 137,
|
|
37
|
+
* contractAddress: '0x...',
|
|
38
|
+
* tokenIds: ['1', '2', '3']
|
|
39
|
+
* })
|
|
40
|
+
* ```
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* With query options:
|
|
44
|
+
* ```typescript
|
|
45
|
+
* const { data: metadata } = useListTokenMetadata({
|
|
46
|
+
* chainId: 1,
|
|
47
|
+
* contractAddress: '0x...',
|
|
48
|
+
* tokenIds: selectedTokenIds,
|
|
49
|
+
* query: {
|
|
50
|
+
* enabled: selectedTokenIds.length > 0,
|
|
51
|
+
* staleTime: 10 * 60 * 1000 // 10 minutes
|
|
52
|
+
* }
|
|
53
|
+
* })
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
export function useListTokenMetadata(params: UseListTokenMetadataParams) {
|
|
57
|
+
const defaultConfig = useConfig();
|
|
58
|
+
|
|
59
|
+
const { config = defaultConfig, ...rest } = params;
|
|
60
|
+
|
|
61
|
+
const queryOptions = listTokenMetadataQueryOptions({
|
|
62
|
+
config,
|
|
63
|
+
...rest,
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
return useQuery({
|
|
67
|
+
...queryOptions,
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export { listTokenMetadataQueryOptions };
|
|
72
|
+
|
|
73
|
+
export type { FetchListTokenMetadataParams, ListTokenMetadataQueryOptions };
|
|
@@ -1,8 +1,72 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
1
3
|
import { useQuery } from '@tanstack/react-query';
|
|
2
|
-
import
|
|
4
|
+
import type { Optional } from '../_internal';
|
|
5
|
+
import {
|
|
6
|
+
type FetchLowestListingParams,
|
|
7
|
+
type LowestListingQueryOptions,
|
|
8
|
+
lowestListingQueryOptions,
|
|
9
|
+
} from '../queries/lowestListing';
|
|
3
10
|
import { useConfig } from './useConfig';
|
|
4
11
|
|
|
5
|
-
export
|
|
6
|
-
|
|
7
|
-
|
|
12
|
+
export type UseLowestListingParams = Optional<
|
|
13
|
+
LowestListingQueryOptions,
|
|
14
|
+
'config'
|
|
15
|
+
>;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Hook to fetch the lowest listing for a collectible
|
|
19
|
+
*
|
|
20
|
+
* Retrieves the lowest priced listing currently available for a specific token
|
|
21
|
+
* in a collection from the marketplace.
|
|
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.collectionAddress - The collection contract address
|
|
26
|
+
* @param params.tokenId - The token ID within the collection
|
|
27
|
+
* @param params.query - Optional React Query configuration
|
|
28
|
+
*
|
|
29
|
+
* @returns Query result containing the lowest listing data or null if no listings exist
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* Basic usage:
|
|
33
|
+
* ```typescript
|
|
34
|
+
* const { data, isLoading } = useLowestListing({
|
|
35
|
+
* chainId: 137,
|
|
36
|
+
* collectionAddress: '0x...',
|
|
37
|
+
* tokenId: '1'
|
|
38
|
+
* })
|
|
39
|
+
* ```
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* With custom query options:
|
|
43
|
+
* ```typescript
|
|
44
|
+
* const { data, isLoading } = useLowestListing({
|
|
45
|
+
* chainId: 1,
|
|
46
|
+
* collectionAddress: '0x...',
|
|
47
|
+
* tokenId: '42',
|
|
48
|
+
* query: {
|
|
49
|
+
* refetchInterval: 15000,
|
|
50
|
+
* enabled: hasTokenId
|
|
51
|
+
* }
|
|
52
|
+
* })
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
export function useLowestListing(params: UseLowestListingParams) {
|
|
56
|
+
const defaultConfig = useConfig();
|
|
57
|
+
|
|
58
|
+
const { config = defaultConfig, ...rest } = params;
|
|
59
|
+
|
|
60
|
+
const queryOptions = lowestListingQueryOptions({
|
|
61
|
+
config,
|
|
62
|
+
...rest,
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
return useQuery({
|
|
66
|
+
...queryOptions,
|
|
67
|
+
});
|
|
8
68
|
}
|
|
69
|
+
|
|
70
|
+
export { lowestListingQueryOptions };
|
|
71
|
+
|
|
72
|
+
export type { FetchLowestListingParams, LowestListingQueryOptions };
|
|
@@ -1,8 +1,65 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
1
3
|
import { useQuery } from '@tanstack/react-query';
|
|
2
|
-
import
|
|
4
|
+
import type { Optional } from '../_internal';
|
|
5
|
+
import {
|
|
6
|
+
type FetchMarketCurrenciesParams,
|
|
7
|
+
type MarketCurrenciesQueryOptions,
|
|
8
|
+
marketCurrenciesQueryOptions,
|
|
9
|
+
} from '../queries/marketCurrencies';
|
|
3
10
|
import { useConfig } from './useConfig';
|
|
4
11
|
|
|
5
|
-
export
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
12
|
+
export type UseMarketCurrenciesParams = Optional<
|
|
13
|
+
MarketCurrenciesQueryOptions,
|
|
14
|
+
'config'
|
|
15
|
+
>;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Hook to fetch supported currencies for a marketplace
|
|
19
|
+
*
|
|
20
|
+
* Retrieves the list of currencies supported by the marketplace for a specific chain.
|
|
21
|
+
* Can optionally filter to exclude native currency or filter by collection.
|
|
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.includeNativeCurrency - Whether to include native currency (default: true)
|
|
26
|
+
* @param params.collectionAddress - Optional collection address to filter currencies
|
|
27
|
+
* @param params.query - Optional React Query configuration
|
|
28
|
+
*
|
|
29
|
+
* @returns Query result containing supported currencies
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* Basic usage:
|
|
33
|
+
* ```typescript
|
|
34
|
+
* const { data, isLoading } = useMarketCurrencies({
|
|
35
|
+
* chainId: 137
|
|
36
|
+
* })
|
|
37
|
+
* ```
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* Exclude native currency:
|
|
41
|
+
* ```typescript
|
|
42
|
+
* const { data, isLoading } = useMarketCurrencies({
|
|
43
|
+
* chainId: 1,
|
|
44
|
+
* includeNativeCurrency: false
|
|
45
|
+
* })
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
export function useMarketCurrencies(params: UseMarketCurrenciesParams) {
|
|
49
|
+
const defaultConfig = useConfig();
|
|
50
|
+
|
|
51
|
+
const { config = defaultConfig, ...rest } = params;
|
|
52
|
+
|
|
53
|
+
const queryOptions = marketCurrenciesQueryOptions({
|
|
54
|
+
config,
|
|
55
|
+
...rest,
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
return useQuery({
|
|
59
|
+
...queryOptions,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export { marketCurrenciesQueryOptions };
|
|
64
|
+
|
|
65
|
+
export type { FetchMarketCurrenciesParams, MarketCurrenciesQueryOptions };
|
|
@@ -1,18 +1,62 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import type { Address } from 'viem';
|
|
1
4
|
import { useReadContract } from 'wagmi';
|
|
2
|
-
import { z } from 'zod';
|
|
3
5
|
import { EIP2981_ABI } from '../../utils';
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
const UseRoyaltySchema = z.object({
|
|
7
|
-
chainId: z.number(),
|
|
8
|
-
collectionAddress: AddressSchema,
|
|
9
|
-
collectibleId: z.string(),
|
|
10
|
-
query: QueryArgSchema.optional(),
|
|
11
|
-
});
|
|
6
|
+
import type { QueryArg } from '../_internal';
|
|
7
|
+
import { collectableKeys } from '../_internal';
|
|
12
8
|
|
|
13
|
-
|
|
9
|
+
export interface UseRoyaltyArgs {
|
|
10
|
+
chainId: number;
|
|
11
|
+
collectionAddress: Address;
|
|
12
|
+
collectibleId: string;
|
|
13
|
+
query?: QueryArg;
|
|
14
|
+
}
|
|
14
15
|
|
|
15
|
-
|
|
16
|
+
/**
|
|
17
|
+
* Hook to fetch royalty information for a collectible
|
|
18
|
+
*
|
|
19
|
+
* Reads royalty information from the blockchain using the EIP-2981 standard.
|
|
20
|
+
* This hook queries the contract directly to get royalty percentage and recipient
|
|
21
|
+
* address for a specific token.
|
|
22
|
+
*
|
|
23
|
+
* @param args - Configuration parameters
|
|
24
|
+
* @param args.chainId - The chain ID (must be number, e.g., 1 for Ethereum, 137 for Polygon)
|
|
25
|
+
* @param args.collectionAddress - The collection contract address
|
|
26
|
+
* @param args.collectibleId - The token ID within the collection
|
|
27
|
+
* @param args.query - Optional React Query configuration
|
|
28
|
+
*
|
|
29
|
+
* @returns Query result containing royalty information (percentage and recipient) or null
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* Basic usage:
|
|
33
|
+
* ```typescript
|
|
34
|
+
* const { data, isLoading } = useRoyalty({
|
|
35
|
+
* chainId: 137,
|
|
36
|
+
* collectionAddress: '0x...',
|
|
37
|
+
* collectibleId: '1'
|
|
38
|
+
* })
|
|
39
|
+
*
|
|
40
|
+
* if (data) {
|
|
41
|
+
* console.log('Royalty:', data.percentage, 'Recipient:', data.recipient)
|
|
42
|
+
* }
|
|
43
|
+
* ```
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* With custom query options:
|
|
47
|
+
* ```typescript
|
|
48
|
+
* const { data, isLoading } = useRoyalty({
|
|
49
|
+
* chainId: 1,
|
|
50
|
+
* collectionAddress: '0x...',
|
|
51
|
+
* collectibleId: '42',
|
|
52
|
+
* query: {
|
|
53
|
+
* refetchInterval: 60000,
|
|
54
|
+
* enabled: hasTokenId
|
|
55
|
+
* }
|
|
56
|
+
* })
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
export function useRoyalty(args: UseRoyaltyArgs) {
|
|
16
60
|
const { chainId, collectionAddress, collectibleId, query } = args;
|
|
17
61
|
const scopeKey = `${collectableKeys.royaltyPercentage.join('.')}-${chainId}-${collectionAddress}-${collectibleId}`;
|
|
18
62
|
|
|
@@ -31,7 +75,7 @@ export const useRoyalty = (args: UseRoyaltyArgs) => {
|
|
|
31
75
|
recipient && percentage
|
|
32
76
|
? {
|
|
33
77
|
percentage,
|
|
34
|
-
recipient,
|
|
78
|
+
recipient: recipient as Address,
|
|
35
79
|
}
|
|
36
80
|
: null;
|
|
37
81
|
|
|
@@ -39,4 +83,4 @@ export const useRoyalty = (args: UseRoyaltyArgs) => {
|
|
|
39
83
|
...contractResult,
|
|
40
84
|
data: formattedData,
|
|
41
85
|
};
|
|
42
|
-
}
|
|
86
|
+
}
|