@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,54 +1,69 @@
|
|
|
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
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
} from '../_internal';
|
|
6
|
+
type CollectibleQueryOptions,
|
|
7
|
+
collectibleQueryOptions,
|
|
8
|
+
type FetchCollectibleParams,
|
|
9
|
+
} from '../queries/collectible';
|
|
10
10
|
import { useConfig } from './useConfig';
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
12
|
+
export type UseCollectibleParams = Optional<CollectibleQueryOptions, 'config'>;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Hook to fetch metadata for a specific collectible
|
|
16
|
+
*
|
|
17
|
+
* This hook retrieves metadata for an individual NFT from a collection,
|
|
18
|
+
* including properties like name, description, image, attributes, etc.
|
|
19
|
+
*
|
|
20
|
+
* @param params - Configuration parameters
|
|
21
|
+
* @param params.chainId - The chain ID (must be number, e.g., 1 for Ethereum, 137 for Polygon)
|
|
22
|
+
* @param params.collectionAddress - The collection contract address
|
|
23
|
+
* @param params.collectibleId - The token ID of the collectible
|
|
24
|
+
* @param params.query - Optional React Query configuration
|
|
25
|
+
*
|
|
26
|
+
* @returns Query result containing the collectible metadata
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* Basic usage:
|
|
30
|
+
* ```typescript
|
|
31
|
+
* const { data: collectible, isLoading } = useCollectible({
|
|
32
|
+
* chainId: 137,
|
|
33
|
+
* collectionAddress: '0x631998e91476da5b870d741192fc5cbc55f5a52e',
|
|
34
|
+
* collectibleId: '12345'
|
|
35
|
+
* })
|
|
36
|
+
* ```
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* With custom query options:
|
|
40
|
+
* ```typescript
|
|
41
|
+
* const { data } = useCollectible({
|
|
42
|
+
* chainId: 137,
|
|
43
|
+
* collectionAddress: '0x631998e91476da5b870d741192fc5cbc55f5a52e',
|
|
44
|
+
* collectibleId: '12345',
|
|
45
|
+
* query: {
|
|
46
|
+
* enabled: Boolean(collectionAddress && tokenId),
|
|
47
|
+
* staleTime: 30_000
|
|
48
|
+
* }
|
|
49
|
+
* })
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
export function useCollectible(params: UseCollectibleParams) {
|
|
53
|
+
const defaultConfig = useConfig();
|
|
54
|
+
|
|
55
|
+
const { config = defaultConfig, ...rest } = params;
|
|
56
|
+
|
|
57
|
+
const queryOptions = collectibleQueryOptions({
|
|
58
|
+
config,
|
|
59
|
+
...rest,
|
|
48
60
|
});
|
|
49
|
-
};
|
|
50
61
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
}
|
|
62
|
+
return useQuery({
|
|
63
|
+
...queryOptions,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export { collectibleQueryOptions };
|
|
68
|
+
|
|
69
|
+
export type { FetchCollectibleParams, CollectibleQueryOptions };
|
|
@@ -1,17 +1,66 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
1
3
|
import { useQuery } from '@tanstack/react-query';
|
|
2
|
-
import type {
|
|
4
|
+
import type { Optional } from '../_internal';
|
|
3
5
|
import {
|
|
4
|
-
type
|
|
5
|
-
|
|
6
|
-
type
|
|
7
|
-
} from '
|
|
6
|
+
type CollectionQueryOptions,
|
|
7
|
+
collectionQueryOptions,
|
|
8
|
+
type FetchCollectionParams,
|
|
9
|
+
} from '../queries/collection';
|
|
8
10
|
import { useConfig } from './useConfig';
|
|
9
11
|
|
|
10
|
-
export type
|
|
12
|
+
export type UseCollectionParams = Optional<CollectionQueryOptions, 'config'>;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Hook to fetch collection information from the metadata API
|
|
16
|
+
*
|
|
17
|
+
* Retrieves basic contract information including name, symbol, type,
|
|
18
|
+
* and extension data for a given collection contract.
|
|
19
|
+
*
|
|
20
|
+
* @param params - Configuration parameters
|
|
21
|
+
* @param params.chainId - The chain ID (must be number, e.g., 1 for Ethereum, 137 for Polygon)
|
|
22
|
+
* @param params.collectionAddress - The collection contract address
|
|
23
|
+
* @param params.query - Optional React Query configuration
|
|
24
|
+
*
|
|
25
|
+
* @returns Query result containing contract information
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* Basic usage:
|
|
29
|
+
* ```typescript
|
|
30
|
+
* const { data, isLoading } = useCollection({
|
|
31
|
+
* chainId: 137,
|
|
32
|
+
* collectionAddress: '0x...'
|
|
33
|
+
* })
|
|
34
|
+
* ```
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* With custom query options:
|
|
38
|
+
* ```typescript
|
|
39
|
+
* const { data, isLoading } = useCollection({
|
|
40
|
+
* chainId: 1,
|
|
41
|
+
* collectionAddress: '0x...',
|
|
42
|
+
* query: {
|
|
43
|
+
* refetchInterval: 30000,
|
|
44
|
+
* enabled: userWantsToFetch
|
|
45
|
+
* }
|
|
46
|
+
* })
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export function useCollection(params: UseCollectionParams) {
|
|
50
|
+
const defaultConfig = useConfig();
|
|
51
|
+
|
|
52
|
+
const { config = defaultConfig, ...rest } = params;
|
|
53
|
+
|
|
54
|
+
const queryOptions = collectionQueryOptions({
|
|
55
|
+
config,
|
|
56
|
+
...rest,
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
return useQuery({
|
|
60
|
+
...queryOptions,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
11
63
|
|
|
12
|
-
export
|
|
64
|
+
export { collectionQueryOptions };
|
|
13
65
|
|
|
14
|
-
export
|
|
15
|
-
const config = useConfig();
|
|
16
|
-
return useQuery(collectionOptions(args, config));
|
|
17
|
-
};
|
|
66
|
+
export type { FetchCollectionParams, CollectionQueryOptions };
|
|
@@ -1,31 +1,22 @@
|
|
|
1
1
|
import type { GetTokenBalancesDetailsReturn } from '@0xsequence/indexer';
|
|
2
2
|
import { queryOptions, useQuery } from '@tanstack/react-query';
|
|
3
|
-
import {
|
|
3
|
+
import type { Address } from 'viem';
|
|
4
4
|
import type { SdkConfig } from '../../types';
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
QueryArgSchema,
|
|
8
|
-
balanceQueries,
|
|
9
|
-
getIndexerClient,
|
|
10
|
-
} from '../_internal';
|
|
5
|
+
import type { QueryArg } from '../_internal';
|
|
6
|
+
import { balanceQueries, getIndexerClient } from '../_internal';
|
|
11
7
|
import { useConfig } from './useConfig';
|
|
12
8
|
|
|
13
|
-
|
|
14
|
-
accountAddresses:
|
|
15
|
-
contractWhitelist
|
|
16
|
-
omitNativeBalances:
|
|
17
|
-
}
|
|
9
|
+
export interface CollectionBalanceFilter {
|
|
10
|
+
accountAddresses: Address[];
|
|
11
|
+
contractWhitelist?: Address[];
|
|
12
|
+
omitNativeBalances: boolean;
|
|
13
|
+
}
|
|
18
14
|
|
|
19
|
-
|
|
20
|
-
chainId:
|
|
21
|
-
filter:
|
|
22
|
-
query
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export type CollectionBalanceFilter = z.infer<typeof filterSchema>;
|
|
26
|
-
export type UseCollectionBalanceDetailsArgs = z.input<
|
|
27
|
-
typeof useCollectionBalanceDetailsArgsSchema
|
|
28
|
-
>;
|
|
15
|
+
export interface UseCollectionBalanceDetailsArgs {
|
|
16
|
+
chainId: number;
|
|
17
|
+
filter: CollectionBalanceFilter;
|
|
18
|
+
query?: QueryArg;
|
|
19
|
+
}
|
|
29
20
|
|
|
30
21
|
const fetchCollectionBalanceDetails = async (
|
|
31
22
|
args: UseCollectionBalanceDetailsArgs,
|
|
@@ -43,7 +34,10 @@ const fetchCollectionBalanceDetails = async (
|
|
|
43
34
|
|
|
44
35
|
const responses = await Promise.all(promises);
|
|
45
36
|
const mergedResponse = responses.reduce<GetTokenBalancesDetailsReturn>(
|
|
46
|
-
(
|
|
37
|
+
(
|
|
38
|
+
acc: GetTokenBalancesDetailsReturn,
|
|
39
|
+
curr: GetTokenBalancesDetailsReturn | null,
|
|
40
|
+
) => {
|
|
47
41
|
if (!curr) return acc;
|
|
48
42
|
return {
|
|
49
43
|
page: curr.page,
|
|
@@ -68,13 +62,12 @@ export const collectionBalanceDetailsOptions = (
|
|
|
68
62
|
args: UseCollectionBalanceDetailsArgs,
|
|
69
63
|
config: SdkConfig,
|
|
70
64
|
) => {
|
|
71
|
-
const
|
|
72
|
-
const indexerClient = getIndexerClient(parsedArgs.chainId, config);
|
|
65
|
+
const indexerClient = getIndexerClient(args.chainId, config);
|
|
73
66
|
|
|
74
67
|
return queryOptions({
|
|
75
68
|
queryKey: [...balanceQueries.collectionBalanceDetails, args, config],
|
|
76
|
-
queryFn: () => fetchCollectionBalanceDetails(
|
|
77
|
-
...args.query,
|
|
69
|
+
queryFn: () => fetchCollectionBalanceDetails(args, indexerClient),
|
|
70
|
+
...(args.query || {}),
|
|
78
71
|
});
|
|
79
72
|
};
|
|
80
73
|
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { useQuery } from '@tanstack/react-query';
|
|
4
|
+
import type { Optional } from '../_internal';
|
|
5
|
+
import {
|
|
6
|
+
type CollectionDetailsQueryOptions,
|
|
7
|
+
collectionDetailsQueryOptions,
|
|
8
|
+
type FetchCollectionDetailsParams,
|
|
9
|
+
} from '../queries/collectionDetails';
|
|
10
|
+
import { useConfig } from './useConfig';
|
|
11
|
+
|
|
12
|
+
export type UseCollectionDetailsParams = Optional<
|
|
13
|
+
CollectionDetailsQueryOptions,
|
|
14
|
+
'config'
|
|
15
|
+
>;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Hook to fetch detailed information about a collection
|
|
19
|
+
*
|
|
20
|
+
* This hook retrieves comprehensive metadata and details for an NFT collection,
|
|
21
|
+
* including collection name, description, banner, avatar, social links, stats, etc.
|
|
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.query - Optional React Query configuration
|
|
27
|
+
*
|
|
28
|
+
* @returns Query result containing the collection details
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* Basic usage:
|
|
32
|
+
* ```typescript
|
|
33
|
+
* const { data: collection, isLoading } = useCollectionDetails({
|
|
34
|
+
* chainId: 137,
|
|
35
|
+
* collectionAddress: '0x631998e91476da5b870d741192fc5cbc55f5a52e'
|
|
36
|
+
* })
|
|
37
|
+
* ```
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* With custom query options:
|
|
41
|
+
* ```typescript
|
|
42
|
+
* const { data } = useCollectionDetails({
|
|
43
|
+
* chainId: 137,
|
|
44
|
+
* collectionAddress: '0x631998e91476da5b870d741192fc5cbc55f5a52e',
|
|
45
|
+
* query: {
|
|
46
|
+
* enabled: Boolean(collectionAddress),
|
|
47
|
+
* staleTime: 60_000
|
|
48
|
+
* }
|
|
49
|
+
* })
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
export function useCollectionDetails(params: UseCollectionDetailsParams) {
|
|
53
|
+
const defaultConfig = useConfig();
|
|
54
|
+
|
|
55
|
+
const { config = defaultConfig, ...rest } = params;
|
|
56
|
+
|
|
57
|
+
const queryOptions = collectionDetailsQueryOptions({
|
|
58
|
+
config,
|
|
59
|
+
...rest,
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
return useQuery({
|
|
63
|
+
...queryOptions,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export { collectionDetailsQueryOptions };
|
|
68
|
+
|
|
69
|
+
export type { FetchCollectionDetailsParams, CollectionDetailsQueryOptions };
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { queryOptions, useQuery } from '@tanstack/react-query';
|
|
2
2
|
import type { SdkConfig } from '../../types';
|
|
3
3
|
import { CollectionStatus } from '../_internal/api/marketplace.gen';
|
|
4
|
-
import {
|
|
4
|
+
import { collectionDetailsQueryOptions } from '../queries/collectionDetails';
|
|
5
5
|
import { useConfig } from './useConfig';
|
|
6
6
|
|
|
7
7
|
type UseCollectionDetailsPolling = {
|
|
8
8
|
collectionAddress: string;
|
|
9
9
|
chainId: number;
|
|
10
|
+
query?: {
|
|
11
|
+
enabled?: boolean;
|
|
12
|
+
};
|
|
10
13
|
};
|
|
11
14
|
|
|
12
15
|
const INITIAL_POLLING_INTERVAL = 2000; // 2 seconds
|
|
@@ -27,7 +30,11 @@ export const collectionDetailsPollingOptions = (
|
|
|
27
30
|
config: SdkConfig,
|
|
28
31
|
) => {
|
|
29
32
|
return queryOptions({
|
|
30
|
-
...
|
|
33
|
+
...collectionDetailsQueryOptions({
|
|
34
|
+
collectionAddress: args.collectionAddress,
|
|
35
|
+
chainId: args.chainId,
|
|
36
|
+
config,
|
|
37
|
+
}),
|
|
31
38
|
refetchInterval: (query) => {
|
|
32
39
|
const data = query.state.data;
|
|
33
40
|
if (data && isTerminalState(data.status)) {
|
|
@@ -49,6 +56,7 @@ export const collectionDetailsPollingOptions = (
|
|
|
49
56
|
},
|
|
50
57
|
refetchOnWindowFocus: false,
|
|
51
58
|
retry: false,
|
|
59
|
+
enabled: args.query?.enabled ?? true,
|
|
52
60
|
});
|
|
53
61
|
};
|
|
54
62
|
|
|
@@ -1,49 +1,46 @@
|
|
|
1
1
|
import { queryOptions, useQuery } from '@tanstack/react-query';
|
|
2
|
-
import {
|
|
2
|
+
import type { Address } from 'viem';
|
|
3
3
|
import type { SdkConfig } from '../../types';
|
|
4
|
-
import {
|
|
4
|
+
import { currencyKeys, type QueryArg } from '../_internal';
|
|
5
5
|
import { useConfig } from './useConfig';
|
|
6
6
|
import { convertPriceToUSD } from './useConvertPriceToUSD';
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
chainId:
|
|
8
|
+
export interface UseComparePricesArgs {
|
|
9
|
+
chainId: number;
|
|
10
10
|
// First price details
|
|
11
|
-
priceAmountRaw:
|
|
12
|
-
priceCurrencyAddress:
|
|
11
|
+
priceAmountRaw: string;
|
|
12
|
+
priceCurrencyAddress: Address;
|
|
13
13
|
// Second price details (to compare against)
|
|
14
|
-
compareToPriceAmountRaw:
|
|
15
|
-
compareToPriceCurrencyAddress:
|
|
16
|
-
query:
|
|
17
|
-
}
|
|
14
|
+
compareToPriceAmountRaw: string;
|
|
15
|
+
compareToPriceCurrencyAddress: Address;
|
|
16
|
+
query: QueryArg;
|
|
17
|
+
}
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
export type UseComparePricesReturn = {
|
|
19
|
+
export interface UseComparePricesReturn {
|
|
22
20
|
percentageDifference: number;
|
|
23
21
|
percentageDifferenceFormatted: string;
|
|
24
22
|
status: 'above' | 'same' | 'below';
|
|
25
|
-
}
|
|
23
|
+
}
|
|
26
24
|
|
|
27
25
|
const comparePrices = async (
|
|
28
26
|
args: UseComparePricesArgs,
|
|
29
27
|
config: SdkConfig,
|
|
30
28
|
): Promise<UseComparePricesReturn> => {
|
|
31
|
-
const parsedArgs = UseComparePricesArgsSchema.parse(args);
|
|
32
29
|
const [priceUSD, compareToPriceUSD] = await Promise.all([
|
|
33
30
|
convertPriceToUSD(
|
|
34
31
|
{
|
|
35
|
-
chainId:
|
|
36
|
-
currencyAddress:
|
|
37
|
-
amountRaw:
|
|
32
|
+
chainId: args.chainId,
|
|
33
|
+
currencyAddress: args.priceCurrencyAddress,
|
|
34
|
+
amountRaw: args.priceAmountRaw,
|
|
38
35
|
query: {},
|
|
39
36
|
},
|
|
40
37
|
config,
|
|
41
38
|
),
|
|
42
39
|
convertPriceToUSD(
|
|
43
40
|
{
|
|
44
|
-
chainId:
|
|
45
|
-
currencyAddress:
|
|
46
|
-
amountRaw:
|
|
41
|
+
chainId: args.chainId,
|
|
42
|
+
currencyAddress: args.compareToPriceCurrencyAddress,
|
|
43
|
+
amountRaw: args.compareToPriceAmountRaw,
|
|
47
44
|
query: {},
|
|
48
45
|
},
|
|
49
46
|
config,
|
|
@@ -1,26 +1,18 @@
|
|
|
1
1
|
import { queryOptions, useQuery } from '@tanstack/react-query';
|
|
2
|
-
import { formatUnits } from 'viem';
|
|
3
|
-
import { z } from 'zod';
|
|
2
|
+
import { type Address, formatUnits } from 'viem';
|
|
4
3
|
import type { SdkConfig } from '../../types';
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
QueryArgSchema,
|
|
8
|
-
currencyKeys,
|
|
9
|
-
getQueryClient,
|
|
10
|
-
} from '../_internal';
|
|
11
|
-
import { currenciesOptions } from '../queries/marketCurrencies';
|
|
4
|
+
import { type Currency, currencyKeys, getQueryClient } from '../_internal';
|
|
5
|
+
import { marketCurrenciesQueryOptions } from '../queries/marketCurrencies';
|
|
12
6
|
import { useConfig } from './useConfig';
|
|
13
7
|
|
|
14
|
-
|
|
15
|
-
chainId:
|
|
16
|
-
currencyAddress:
|
|
17
|
-
amountRaw:
|
|
18
|
-
query
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
typeof UseConvertPriceToUSDArgsSchema
|
|
23
|
-
>;
|
|
8
|
+
export interface UseConvertPriceToUSDArgs {
|
|
9
|
+
chainId: number;
|
|
10
|
+
currencyAddress: Address;
|
|
11
|
+
amountRaw: string;
|
|
12
|
+
query?: {
|
|
13
|
+
enabled?: boolean;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
24
16
|
|
|
25
17
|
export type UseConvertPriceToUSDReturn = {
|
|
26
18
|
usdAmount: number;
|
|
@@ -31,20 +23,16 @@ export const convertPriceToUSD = async (
|
|
|
31
23
|
args: UseConvertPriceToUSDArgs,
|
|
32
24
|
config: SdkConfig,
|
|
33
25
|
): Promise<UseConvertPriceToUSDReturn> => {
|
|
34
|
-
const parsedArgs = UseConvertPriceToUSDArgsSchema.parse(args);
|
|
35
26
|
const queryClient = getQueryClient();
|
|
36
|
-
const currencies = await queryClient.fetchQuery(
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
chainId: parsedArgs.chainId,
|
|
40
|
-
},
|
|
27
|
+
const currencies = (await queryClient.fetchQuery(
|
|
28
|
+
marketCurrenciesQueryOptions({
|
|
29
|
+
chainId: args.chainId,
|
|
41
30
|
config,
|
|
42
|
-
),
|
|
43
|
-
);
|
|
31
|
+
}),
|
|
32
|
+
)) as Currency[];
|
|
44
33
|
const currencyDetails = currencies.find(
|
|
45
|
-
(c) =>
|
|
46
|
-
c.contractAddress.toLowerCase() ===
|
|
47
|
-
parsedArgs.currencyAddress.toLowerCase(),
|
|
34
|
+
(c: Currency) =>
|
|
35
|
+
c.contractAddress.toLowerCase() === args.currencyAddress.toLowerCase(),
|
|
48
36
|
);
|
|
49
37
|
|
|
50
38
|
if (!currencyDetails) {
|
|
@@ -52,7 +40,7 @@ export const convertPriceToUSD = async (
|
|
|
52
40
|
}
|
|
53
41
|
|
|
54
42
|
const amountDecimal = Number(
|
|
55
|
-
formatUnits(BigInt(
|
|
43
|
+
formatUnits(BigInt(args.amountRaw), currencyDetails.decimals),
|
|
56
44
|
);
|
|
57
45
|
const usdAmount = amountDecimal * currencyDetails.exchangeRate;
|
|
58
46
|
|
|
@@ -68,12 +56,7 @@ export const convertPriceToUSDOptions = (
|
|
|
68
56
|
) => {
|
|
69
57
|
return queryOptions({
|
|
70
58
|
...args.query,
|
|
71
|
-
queryKey: [
|
|
72
|
-
...currencyKeys.conversion,
|
|
73
|
-
args.chainId,
|
|
74
|
-
args.currencyAddress,
|
|
75
|
-
args.amountRaw,
|
|
76
|
-
],
|
|
59
|
+
queryKey: [...currencyKeys.conversion, args],
|
|
77
60
|
queryFn: () => convertPriceToUSD(args, config),
|
|
78
61
|
});
|
|
79
62
|
};
|
|
@@ -1,64 +1,75 @@
|
|
|
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
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
} from '../_internal';
|
|
10
|
-
import { countListingsForCollectibleArgsSchema } from '../_internal/api/zod-schema';
|
|
6
|
+
type CountListingsForCollectibleQueryOptions,
|
|
7
|
+
countListingsForCollectibleQueryOptions,
|
|
8
|
+
type FetchCountListingsForCollectibleParams,
|
|
9
|
+
} from '../queries/countListingsForCollectible';
|
|
11
10
|
import { useConfig } from './useConfig';
|
|
12
11
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
contractAddress: true,
|
|
17
|
-
tokenId: true,
|
|
18
|
-
})
|
|
19
|
-
.extend({
|
|
20
|
-
collectionAddress: AddressSchema,
|
|
21
|
-
collectibleId: z.string(),
|
|
22
|
-
chainId: z.number(),
|
|
23
|
-
query: QueryArgSchema,
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
export type UseCountListingsForCollectibleArgs = z.infer<
|
|
27
|
-
typeof UseCountListingsForCollectibleArgsSchema
|
|
12
|
+
export type UseCountListingsForCollectibleParams = Optional<
|
|
13
|
+
CountListingsForCollectibleQueryOptions,
|
|
14
|
+
'config'
|
|
28
15
|
>;
|
|
29
16
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
17
|
+
/**
|
|
18
|
+
* Hook to get the count of listings for a specific collectible
|
|
19
|
+
*
|
|
20
|
+
* Counts the number of active listings for a given collectible in the marketplace.
|
|
21
|
+
* Useful for displaying listing counts in UI components.
|
|
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.collectibleId - The specific collectible/token ID
|
|
27
|
+
* @param params.filter - Optional filter criteria for listings
|
|
28
|
+
* @param params.query - Optional React Query configuration
|
|
29
|
+
*
|
|
30
|
+
* @returns Query result containing the count of listings
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* Basic usage:
|
|
34
|
+
* ```typescript
|
|
35
|
+
* const { data: listingCount, isLoading } = useCountListingsForCollectible({
|
|
36
|
+
* chainId: 137,
|
|
37
|
+
* collectionAddress: '0x...',
|
|
38
|
+
* collectibleId: '123'
|
|
39
|
+
* })
|
|
40
|
+
* ```
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* With filter:
|
|
44
|
+
* ```typescript
|
|
45
|
+
* const { data: filteredCount } = useCountListingsForCollectible({
|
|
46
|
+
* chainId: 137,
|
|
47
|
+
* collectionAddress: '0x...',
|
|
48
|
+
* collectibleId: '123',
|
|
49
|
+
* filter: { priceRange: { min: '1000000000000000000' } }
|
|
50
|
+
* })
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
export function useCountListingsForCollectible(
|
|
54
|
+
params: UseCountListingsForCollectibleParams,
|
|
55
|
+
) {
|
|
56
|
+
const defaultConfig = useConfig();
|
|
57
|
+
|
|
58
|
+
const { config = defaultConfig, ...rest } = params;
|
|
33
59
|
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
) => {
|
|
38
|
-
const parsedArgs = UseCountListingsForCollectibleArgsSchema.parse(args);
|
|
39
|
-
const marketplaceClient = getMarketplaceClient(config);
|
|
40
|
-
const { chainId, collectionAddress, collectibleId } = parsedArgs;
|
|
41
|
-
return marketplaceClient.getCountOfListingsForCollectible({
|
|
42
|
-
chainId: String(chainId),
|
|
43
|
-
contractAddress: collectionAddress,
|
|
44
|
-
tokenId: collectibleId,
|
|
60
|
+
const queryOptions = countListingsForCollectibleQueryOptions({
|
|
61
|
+
config,
|
|
62
|
+
...rest,
|
|
45
63
|
});
|
|
46
|
-
};
|
|
47
64
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
config: SdkConfig,
|
|
51
|
-
) => {
|
|
52
|
-
return queryOptions({
|
|
53
|
-
...args.query,
|
|
54
|
-
queryKey: [...collectableKeys.listingsCount, args, config],
|
|
55
|
-
queryFn: () => fetchCountListingsForCollectible(args, config),
|
|
65
|
+
return useQuery({
|
|
66
|
+
...queryOptions,
|
|
56
67
|
});
|
|
57
|
-
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export { countListingsForCollectibleQueryOptions };
|
|
58
71
|
|
|
59
|
-
export
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
const config = useConfig();
|
|
63
|
-
return useQuery(countListingsForCollectibleOptions(args, config));
|
|
72
|
+
export type {
|
|
73
|
+
FetchCountListingsForCollectibleParams,
|
|
74
|
+
CountListingsForCollectibleQueryOptions,
|
|
64
75
|
};
|