@0xsequence/marketplace-sdk 1.1.0 → 1.1.1
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/.changeset/honest-peas-arrive.md +5 -0
- package/.changeset/real-tips-stick.md +8 -0
- package/.changeset/tall-pandas-wear.md +8 -0
- package/CHANGELOG.md +24 -2
- package/dist/{BellIcon-IpHHEy8h.js → BellIcon-ByhygxBO.js} +2 -2
- package/dist/{BellIcon-IpHHEy8h.js.map → BellIcon-ByhygxBO.js.map} +1 -1
- package/dist/{CartIcon-C8zbor8H.js → CartIcon-Bt3rQYGk.js} +3 -3
- package/dist/{CartIcon-C8zbor8H.js.map → CartIcon-Bt3rQYGk.js.map} +1 -1
- package/dist/CollectibleCard-CVpdgXA8.d.ts +8 -0
- package/dist/_internal-DkS2VUn5.js.map +1 -1
- package/dist/abi-fa-o9gH3.js +134 -0
- package/dist/abi-fa-o9gH3.js.map +1 -0
- package/dist/{alien_swap-BTJ7mSR-.js → alien_swap-DoY6XfMA.js} +1 -1
- package/dist/{alien_swap-BTJ7mSR-.js.map → alien_swap-DoY6XfMA.js.map} +1 -1
- package/dist/{api-DuLKn__v.js → api-BoO0V5aJ.js} +8 -3
- package/dist/api-BoO0V5aJ.js.map +1 -0
- package/dist/{aqua-xyz-BYJ9WSP_.js → aqua-xyz-BBDxnG14.js} +1 -1
- package/dist/{aqua-xyz-BYJ9WSP_.js.map → aqua-xyz-BBDxnG14.js.map} +1 -1
- package/dist/{aura-D7SUjgro.js → aura-DGx2zwvF.js} +1 -1
- package/dist/{aura-D7SUjgro.js.map → aura-DGx2zwvF.js.map} +1 -1
- package/dist/{blur-BcnRFCaV.js → blur-D8GKrRrq.js} +1 -1
- package/dist/{blur-BcnRFCaV.js.map → blur-D8GKrRrq.js.map} +1 -1
- package/dist/{coinbase-ChoX9Hw2.js → coinbase-DOry4PXY.js} +1 -1
- package/dist/{coinbase-ChoX9Hw2.js.map → coinbase-DOry4PXY.js.map} +1 -1
- package/dist/collectibles-C_H8jMGH.js +358 -0
- package/dist/collectibles-C_H8jMGH.js.map +1 -0
- package/dist/collections-CKummc-R.js +249 -0
- package/dist/collections-CKummc-R.js.map +1 -0
- package/dist/{components-CUv-wQr8.js → components-CosnX7F9.js} +5 -5
- package/dist/{components-CUv-wQr8.js.map → components-CosnX7F9.js.map} +1 -1
- package/dist/{contracts-D72LBOX3.js → contracts-BP_0vX48.js} +3 -3
- package/dist/{contracts-D72LBOX3.js.map → contracts-BP_0vX48.js.map} +1 -1
- package/dist/{create-config-DV_dtaLt.d.ts → create-config-ZOB7i4ZJ.d.ts} +117 -12
- package/dist/{element-Dbcv5qya.js → element-ciybd_VF.js} +1 -1
- package/dist/{element-Dbcv5qya.js.map → element-ciybd_VF.js.map} +1 -1
- package/dist/filters-V-V8Dn8f.d.ts +60 -0
- package/dist/{foundation-QPhUEUy8.js → foundation-Bq4lRz4x.js} +1 -1
- package/dist/{foundation-QPhUEUy8.js.map → foundation-Bq4lRz4x.js.map} +1 -1
- package/dist/index-BOiHR01C.d.ts +106 -0
- package/dist/index-BZIJTQT0.d.ts +121 -0
- package/dist/index-BeRV-7AX.d.ts +55 -0
- package/dist/{index-BaytncQc.d.ts → index-Bsx6XsC2.d.ts} +58 -55
- package/dist/{index-jGgfEHfQ.d.ts → index-BtWMBHeP.d.ts} +13 -9
- package/dist/{index-CT8ZorFd.d.ts → index-Bxzjy0d1.d.ts} +1 -1
- package/dist/{index-B6aSbaw2.d.ts → index-C-745li7.d.ts} +1 -1
- package/dist/{index-BoNNplSx.d.ts → index-C4MUKshG.d.ts} +2 -2
- package/dist/{index-DMBMM16q.d.ts → index-CPzvNmq9.d.ts} +35 -35
- package/dist/{index-D-UXGo5d.d.ts → index-CS65jqOq.d.ts} +2 -2
- package/dist/index-CZUtOTjh.d.ts +1 -0
- package/dist/index-CnEbXm_t.d.ts +130 -0
- package/dist/{index-CQecU53t.d.ts → index-CxA34wP1.d.ts} +32 -23
- package/dist/{index-C768pAfu.d.ts → index-CxpFwGvR.d.ts} +3 -3
- package/dist/{index-Bv5XVLjH.d.ts → index-D9LPlmbC.d.ts} +1 -1
- package/dist/{index-DJG0kiII.d.ts → index-DFEnA6Wa.d.ts} +28 -17
- package/dist/{index-B8vaT3_s.d.ts → index-DNNUeZEq.d.ts} +4 -4
- package/dist/{index-CXscCUg7.d.ts → index-DUXfvhxs.d.ts} +12 -12
- package/dist/index-DW3njUfb.d.ts +1 -0
- package/dist/{index-CMPUveNz.d.ts → index-DWt6yrIG.d.ts} +7 -7
- package/dist/index-DewGsFz5.d.ts +1 -0
- package/dist/{index-DLUjc7Bx.d.ts → index-DmudgrsN.d.ts} +191 -12
- package/dist/{index-DpeWm_vF.d.ts → index-DqXd1EeB.d.ts} +5 -5
- package/dist/{index-CM0ZTePs.d.ts → index-DwKr18CI.d.ts} +1 -1
- package/dist/{index-D6YMj82n.d.ts → index-NlPMNcqh.d.ts} +100 -100
- package/dist/index-Stm5u0I0.d.ts +53 -0
- package/dist/index-U-zp70of.d.ts +74 -0
- package/dist/index.d.ts +8 -8
- package/dist/index.js +8 -8
- package/dist/inventory-Dd7TazvZ.js +72 -0
- package/dist/inventory-Dd7TazvZ.js.map +1 -0
- package/dist/listBalances-BxpxBCvn.js +57 -0
- package/dist/listBalances-BxpxBCvn.js.map +1 -0
- package/dist/listCollectiblesPaginated-Cy2_qEZA.d.ts +327 -0
- package/dist/{listCollections-dTCq00l5.d.ts → listCollections-BB9FxKj2.d.ts} +193 -111
- package/dist/{looks-rare-C7cQztTR.js → looks-rare-6H--x3AM.js} +1 -1
- package/dist/{looks-rare-C7cQztTR.js.map → looks-rare-6H--x3AM.js.map} +1 -1
- package/dist/lowestListing-Cbsi6M1K.d.ts +465 -0
- package/dist/{magic-eden-D3r7jiBG.js → magic-eden-BoxEQ1Li.js} +1 -1
- package/dist/{magic-eden-D3r7jiBG.js.map → magic-eden-BoxEQ1Li.js.map} +1 -1
- package/dist/{manifold-DsX0CBP-.js → manifold-DycKsljb.js} +1 -1
- package/dist/{manifold-DsX0CBP-.js.map → manifold-DycKsljb.js.map} +1 -1
- package/dist/market-C3HV-awQ.js +209 -0
- package/dist/market-C3HV-awQ.js.map +1 -0
- package/dist/{marketCurrencies-Bzj8X4TL.d.ts → marketCurrencies-Bpw1bIO0.d.ts} +46 -15
- package/dist/marketCurrencies-sKrTX0og.js +53 -0
- package/dist/marketCurrencies-sKrTX0og.js.map +1 -0
- package/dist/{marketplace-BYY8OloA.js → marketplace-NQB-sEQL.js} +1 -1
- package/dist/{marketplace-BYY8OloA.js.map → marketplace-NQB-sEQL.js.map} +1 -1
- package/dist/{marketplace-logos-Csv2MBwf.js → marketplace-logos-D4dS1Foy.js} +21 -21
- package/dist/{marketplace-logos-Csv2MBwf.js.map → marketplace-logos-D4dS1Foy.js.map} +1 -1
- package/dist/{marketplace.gen-w2YvbEEo.js → marketplace.gen-ksUafDqS.js} +56 -5
- package/dist/marketplace.gen-ksUafDqS.js.map +1 -0
- package/dist/{marketplaceConfig-BTy75Mbf.js → marketplaceConfig-UHQMM9fq.js} +3 -3
- package/dist/marketplaceConfig-UHQMM9fq.js.map +1 -0
- package/dist/{mintify-DiOoDmO1.js → mintify-Dyqyo8jQ.js} +1 -1
- package/dist/{mintify-DiOoDmO1.js.map → mintify-Dyqyo8jQ.js.map} +1 -1
- package/dist/{nftx-CP82jNra.js → nftx-2LbFjj9Q.js} +1 -1
- package/dist/{nftx-CP82jNra.js.map → nftx-2LbFjj9Q.js.map} +1 -1
- package/dist/{okx-p9-4xRjs.js → okx-CBEWJNsR.js} +1 -1
- package/dist/{okx-p9-4xRjs.js.map → okx-CBEWJNsR.js.map} +1 -1
- package/dist/{open-sea-D2GwAmKS.js → open-sea-Dxntz_PA.js} +1 -1
- package/dist/{open-sea-D2GwAmKS.js.map → open-sea-Dxntz_PA.js.map} +1 -1
- package/dist/orders-DnFfZAXV.js +462 -0
- package/dist/orders-DnFfZAXV.js.map +1 -0
- package/dist/{primary-sale-DOmNDq2P.js → primary-sale-1u4QlPdA.js} +1 -1
- package/dist/{primary-sale-DOmNDq2P.js.map → primary-sale-1u4QlPdA.js.map} +1 -1
- package/dist/primary-sales-Dmsi6bqj.js +114 -0
- package/dist/primary-sales-Dmsi6bqj.js.map +1 -0
- package/dist/{query-BG-MA1MB.d.ts → query-BWbCsXLY.d.ts} +1 -1
- package/dist/{rarible-DqiiW9ki.js → rarible-CS0SupHr.js} +1 -1
- package/dist/{rarible-DqiiW9ki.js.map → rarible-CS0SupHr.js.map} +1 -1
- package/dist/react/_internal/api/index.d.ts +2 -2
- package/dist/react/_internal/api/index.js +3 -3
- package/dist/react/_internal/databeat/index.d.ts +1 -1
- package/dist/react/_internal/databeat/index.js +28 -17
- package/dist/react/_internal/index.d.ts +2 -2
- package/dist/react/_internal/index.js +3 -3
- package/dist/react/_internal/wagmi/index.d.ts +1 -1
- package/dist/react/hooks/config/index.d.ts +8 -8
- package/dist/react/hooks/config/index.js +28 -17
- package/dist/react/hooks/contracts/index.d.ts +6 -6
- package/dist/react/hooks/contracts/index.js +7 -7
- package/dist/react/hooks/data/collectibles/index.d.ts +10 -4
- package/dist/react/hooks/data/collectibles/index.js +28 -17
- package/dist/react/hooks/data/collections/index.d.ts +10 -10
- package/dist/react/hooks/data/collections/index.js +28 -17
- package/dist/react/hooks/data/index.d.ts +37 -29
- package/dist/react/hooks/data/index.js +29 -18
- package/dist/react/hooks/data/inventory/index.d.ts +36 -28
- package/dist/react/hooks/data/inventory/index.js +28 -17
- package/dist/react/hooks/data/market/index.d.ts +11 -5
- package/dist/react/hooks/data/market/index.js +28 -17
- package/dist/react/hooks/data/orders/index.d.ts +11 -5
- package/dist/react/hooks/data/orders/index.js +29 -18
- package/dist/react/hooks/data/primary-sales/index.d.ts +36 -28
- package/dist/react/hooks/data/primary-sales/index.js +28 -17
- package/dist/react/hooks/data/tokens/index.d.ts +4 -4
- package/dist/react/hooks/data/tokens/index.js +28 -17
- package/dist/react/hooks/index.d.ts +37 -29
- package/dist/react/hooks/index.js +29 -18
- package/dist/react/hooks/transactions/index.d.ts +2 -2
- package/dist/react/hooks/transactions/index.js +28 -17
- package/dist/react/hooks/ui/index.d.ts +4 -4
- package/dist/react/hooks/ui/index.js +28 -17
- package/dist/react/hooks/utils/index.d.ts +36 -28
- package/dist/react/hooks/utils/index.js +28 -17
- package/dist/react/index.d.ts +37 -29
- package/dist/react/index.js +29 -18
- package/dist/react/queries/collectibles/index.d.ts +11 -0
- package/dist/react/queries/collectibles/index.js +23 -0
- package/dist/react/queries/collections/index.d.ts +11 -0
- package/dist/react/queries/collections/index.js +20 -0
- package/dist/react/queries/index.d.ts +24 -16
- package/dist/react/queries/index.js +22 -11
- package/dist/react/queries/inventory/index.d.ts +3 -0
- package/dist/react/queries/inventory/index.js +22 -0
- package/dist/react/queries/market/index.d.ts +6 -0
- package/dist/react/queries/market/index.js +22 -0
- package/dist/react/queries/orders/index.d.ts +11 -0
- package/dist/react/queries/orders/index.js +13 -0
- package/dist/react/queries/primary-sales/index.d.ts +4 -0
- package/dist/react/queries/primary-sales/index.js +13 -0
- package/dist/react/queries/tokens/index.d.ts +5 -0
- package/dist/react/queries/tokens/index.js +14 -0
- package/dist/react/queries/utils/index.d.ts +4 -0
- package/dist/react/queries/utils/index.js +22 -0
- package/dist/react/ssr/index.d.ts +7 -7
- package/dist/react/ssr/index.js +3 -3
- package/dist/react/ssr/index.js.map +1 -1
- package/dist/react/ui/components/marketplace-collectible-card/components/footer/components/index.d.ts +2 -2
- package/dist/react/ui/components/marketplace-collectible-card/components/footer/components/index.js +11 -11
- package/dist/react/ui/components/marketplace-collectible-card/components/footer/index.d.ts +5 -5
- package/dist/react/ui/components/marketplace-collectible-card/components/footer/index.js +28 -17
- package/dist/react/ui/components/marketplace-collectible-card/index.d.ts +4 -4
- package/dist/react/ui/components/marketplace-collectible-card/index.js +28 -17
- package/dist/react/ui/components/marketplace-collectible-card/utils/index.d.ts +2 -2
- package/dist/react/ui/components/marketplace-collectible-card/utils/index.js +3 -3
- 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 +9 -9
- package/dist/react/ui/index.d.ts +4 -4
- package/dist/react/ui/index.js +28 -17
- package/dist/react/ui/modals/_internal/components/actionModal/index.d.ts +2 -2
- package/dist/react/ui/modals/_internal/components/actionModal/index.js +28 -17
- package/dist/react/utils/index.d.ts +3 -3
- package/dist/react/utils/index.js +3 -3
- package/dist/{react-BLJ4DkPx.js → react-DE852KeT.js} +1365 -172
- package/dist/react-DE852KeT.js.map +1 -0
- package/dist/{sequence-Bbb-TFKg.js → sequence-paCCener.js} +1 -1
- package/dist/{sequence-Bbb-TFKg.js.map → sequence-paCCener.js.map} +1 -1
- package/dist/styles/index.css +154 -0
- package/dist/{sudo-swap-CEPIM3Js.js → sudo-swap-9rH2EgfT.js} +1 -1
- package/dist/{sudo-swap-CEPIM3Js.js.map → sudo-swap-9rH2EgfT.js.map} +1 -1
- package/dist/{super-rare-CMEn9PoO.js → super-rare-DHIuWtRw.js} +1 -1
- package/dist/{super-rare-CMEn9PoO.js.map → super-rare-DHIuWtRw.js.map} +1 -1
- package/dist/{token-CcyLz8Z8.js → token-Cv7l2ZaL.js} +1 -1
- package/dist/{token-CcyLz8Z8.js.map → token-Cv7l2ZaL.js.map} +1 -1
- package/dist/tokenBalances-ibDerNmM.js +63 -0
- package/dist/tokenBalances-ibDerNmM.js.map +1 -0
- package/dist/tokenSupplies-Bfe8RHzI.d.ts +272 -0
- package/dist/tokens-cGxMadd8.js +194 -0
- package/dist/tokens-cGxMadd8.js.map +1 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.js +1 -1
- package/dist/{types-D6LkVrF0.d.ts → types-D2TJ1dwv.d.ts} +3 -2
- 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 +1 -1
- package/dist/utils/abi/token/index.js +1 -1
- package/dist/utils/index.d.ts +7 -7
- package/dist/utils/index.js +8 -8
- package/dist/utils-BCgNhBFR.js +112 -0
- package/dist/utils-BCgNhBFR.js.map +1 -0
- package/dist/{utils-BZEkdqWK.js → utils-BfpDVibN.js} +3 -3
- package/dist/{utils-BZEkdqWK.js.map → utils-BfpDVibN.js.map} +1 -1
- package/dist/{utils-oVZxdK0o.js → utils-BqxcalL2.js} +2 -2
- package/dist/{utils-oVZxdK0o.js.map → utils-BqxcalL2.js.map} +1 -1
- package/dist/waitForTransactionReceipt-DieAnV52.js +25 -0
- package/dist/waitForTransactionReceipt-DieAnV52.js.map +1 -0
- package/dist/{x2y2-DNe6JgtG.js → x2y2-45WDooeh.js} +1 -1
- package/dist/{x2y2-DNe6JgtG.js.map → x2y2-45WDooeh.js.map} +1 -1
- package/dist/{zora-w0Zqxxs4.js → zora-CbeBoLvQ.js} +1 -1
- package/dist/{zora-w0Zqxxs4.js.map → zora-CbeBoLvQ.js.map} +1 -1
- package/package.json +10 -5
- package/src/react/_internal/api/__mocks__/marketplace.msw.ts +2 -0
- package/src/react/_internal/api/marketplace.gen.ts +1730 -2383
- package/src/react/_internal/api/query-keys.ts +14 -0
- package/src/react/_internal/api/services.ts +1 -1
- package/src/react/_internal/databeat/types.ts +1 -0
- package/src/react/_internal/types.ts +14 -0
- package/src/react/_internal/utils.ts +3 -0
- package/src/react/hooks/config/useMarketplaceConfig.tsx +1 -1
- package/src/react/hooks/data/collectibles/useBalanceOfCollectible.tsx +1 -1
- package/src/react/hooks/data/collectibles/useCollectible.tsx +1 -1
- package/src/react/hooks/data/collectibles/useCountOfCollectables.tsx +1 -1
- package/src/react/hooks/data/collectibles/useListCollectibleActivities.tsx +1 -1
- package/src/react/hooks/data/collectibles/useListCollectibles.tsx +1 -1
- package/src/react/hooks/data/collectibles/useListCollectiblesPaginated.tsx +1 -1
- package/src/react/hooks/data/collectibles/useTokenBalances.tsx +1 -1
- package/src/react/hooks/data/collections/useCollection.tsx +1 -1
- package/src/react/hooks/data/collections/useCollectionBalanceDetails.tsx +1 -1
- package/src/react/hooks/data/collections/useCollectionDetails.ts +1 -1
- package/src/react/hooks/data/collections/useListCollectionActivities.tsx +1 -1
- package/src/react/hooks/data/collections/useListCollections.tsx +1 -1
- package/src/react/hooks/data/inventory/useInventory.tsx +1 -1
- package/src/react/hooks/data/market/useCurrency.tsx +1 -1
- package/src/react/hooks/data/market/useListMarketCardData.tsx +7 -0
- package/src/react/hooks/data/market/useMarketCurrencies.tsx +1 -1
- package/src/react/hooks/data/orders/index.ts +4 -0
- package/src/react/hooks/data/orders/useCountItemsOrdersForCollection.tsx +90 -0
- package/src/react/hooks/data/orders/useCountListingsForCollectible.tsx +1 -1
- package/src/react/hooks/data/orders/useCountOffersForCollectible.tsx +1 -1
- package/src/react/hooks/data/orders/useFloorOrder.tsx +1 -1
- package/src/react/hooks/data/orders/useGetCountOfFilteredOrders.tsx +39 -0
- package/src/react/hooks/data/orders/useHighestOffer.tsx +1 -1
- package/src/react/hooks/data/orders/useListItemsOrdersForCollection.tsx +93 -0
- package/src/react/hooks/data/orders/useListItemsOrdersForCollectionPaginated.tsx +108 -0
- package/src/react/hooks/data/orders/useListListingsForCollectible.tsx +1 -1
- package/src/react/hooks/data/orders/useListOffersForCollectible.tsx +1 -1
- package/src/react/hooks/data/orders/useLowestListing.tsx +1 -1
- package/src/react/hooks/data/primary-sales/useGetCountOfPrimarySaleItems.tsx +2 -2
- package/src/react/hooks/data/primary-sales/useListPrimarySaleItems.tsx +1 -1
- package/src/react/hooks/data/tokens/useGetTokenRanges.tsx +2 -2
- package/src/react/hooks/data/tokens/useListBalances.tsx +2 -2
- package/src/react/hooks/data/tokens/useListTokenMetadata.tsx +1 -1
- package/src/react/hooks/data/tokens/useSearchTokenMetadata.tsx +1 -1
- package/src/react/hooks/data/tokens/useTokenSupplies.ts +1 -1
- package/src/react/hooks/transactions/useGenerateCancelTransaction.test.tsx +1 -0
- package/src/react/hooks/transactions/useGenerateListingTransaction.test.tsx +13 -0
- package/src/react/hooks/transactions/useGenerateOfferTransaction.test.tsx +1 -0
- package/src/react/hooks/transactions/useGenerateSellTransaction.test.tsx +6 -0
- package/src/react/hooks/ui/useFilterState.tsx +72 -2
- package/src/react/hooks/ui/useFilters.tsx +1 -1
- package/src/react/hooks/utils/useCheckoutOptions.tsx +2 -2
- package/src/react/hooks/utils/useCheckoutOptionsSalesContract.tsx +1 -1
- package/src/react/hooks/utils/useComparePrices.tsx +1 -1
- package/src/react/hooks/utils/useConvertPriceToUSD.tsx +1 -1
- package/src/react/providers/analytics-provider.tsx +45 -0
- package/src/react/providers/index.tsx +30 -41
- package/src/react/providers/modal-provider.tsx +13 -2
- package/src/react/queries/{__tests__ → collectibles/__tests__}/balanceOfCollectible.laos.test.ts +1 -1
- package/src/react/queries/{__tests__ → collectibles/__tests__}/tokenBalances.laos.test.ts +1 -1
- package/src/react/queries/{balanceOfCollectible.ts → collectibles/balanceOfCollectible.ts} +24 -3
- package/src/react/queries/{collectible.ts → collectibles/collectible.ts} +20 -5
- package/src/react/queries/{countOfCollectables.ts → collectibles/countOfCollectables.ts} +32 -6
- package/src/react/queries/collectibles/index.ts +7 -0
- package/src/react/queries/{listCollectibleActivities.ts → collectibles/listCollectibleActivities.ts} +29 -5
- package/src/react/queries/{listCollectibles.ts → collectibles/listCollectibles.ts} +28 -9
- package/src/react/queries/{listCollectiblesPaginated.ts → collectibles/listCollectiblesPaginated.ts} +22 -5
- package/src/react/queries/{tokenBalances.ts → collectibles/tokenBalances.ts} +21 -3
- package/src/react/queries/{collection.ts → collections/collection.ts} +19 -5
- package/src/react/queries/{collectionBalanceDetails.ts → collections/collectionBalanceDetails.ts} +19 -4
- package/src/react/queries/{collectionDetails.ts → collections/collectionDetails.ts} +21 -6
- package/src/react/queries/collections/index.ts +5 -0
- package/src/react/queries/{listCollectionActivities.ts → collections/listCollectionActivities.ts} +28 -6
- package/src/react/queries/{listCollections.ts → collections/listCollections.ts} +17 -6
- package/src/react/queries/index.ts +7 -34
- package/src/react/queries/{__tests__ → inventory/__tests__}/inventory.laos.test.ts +4 -4
- package/src/react/queries/inventory/index.ts +1 -0
- package/src/react/queries/{inventory.ts → inventory/inventory.ts} +11 -5
- package/src/react/queries/{checkoutOptions.ts → market/checkoutOptions.ts} +28 -6
- package/src/react/queries/{checkoutOptionsSalesContract.ts → market/checkoutOptionsSalesContract.ts} +24 -5
- package/src/react/queries/{currency.ts → market/currency.ts} +13 -4
- package/src/react/queries/{filters.ts → market/filters.ts} +25 -6
- package/src/react/queries/market/index.ts +6 -0
- package/src/react/queries/{marketCurrencies.ts → market/marketCurrencies.ts} +24 -5
- package/src/react/queries/{marketplaceConfig.ts → market/marketplaceConfig.ts} +5 -5
- package/src/react/queries/orders/countItemsOrdersForCollection.ts +86 -0
- package/src/react/queries/{countListingsForCollectible.ts → orders/countListingsForCollectible.ts} +23 -6
- package/src/react/queries/{countOffersForCollectible.ts → orders/countOffersForCollectible.ts} +23 -6
- package/src/react/queries/{floorOrder.ts → orders/floorOrder.ts} +15 -4
- package/src/react/queries/orders/getCountOfFilteredOrders.ts +88 -0
- package/src/react/queries/{highestOffer.ts → orders/highestOffer.ts} +16 -4
- package/src/react/queries/orders/index.ts +11 -0
- package/src/react/queries/orders/listItemsOrdersForCollection.ts +90 -0
- package/src/react/queries/orders/listItemsOrdersForCollectionPaginated.ts +90 -0
- package/src/react/queries/{listListingsForCollectible.ts → orders/listListingsForCollectible.ts} +20 -5
- package/src/react/queries/{listOffersForCollectible.ts → orders/listOffersForCollectible.ts} +20 -5
- package/src/react/queries/{lowestListing.ts → orders/lowestListing.ts} +16 -4
- package/src/react/queries/{countOfPrimarySaleItems.ts → primary-sales/countOfPrimarySaleItems.ts} +17 -3
- package/src/react/queries/primary-sales/index.ts +3 -0
- package/src/react/queries/{primarySaleItems.ts → primary-sales/primarySaleItems.ts} +18 -4
- package/src/react/queries/{primarySaleItemsCount.ts → primary-sales/primarySaleItemsCount.ts} +19 -4
- package/src/react/queries/{getTokenRanges.ts → tokens/getTokenRanges.ts} +17 -4
- package/src/react/queries/tokens/index.ts +5 -0
- package/src/react/queries/{listBalances.ts → tokens/listBalances.ts} +18 -3
- package/src/react/queries/{listTokenMetadata.ts → tokens/listTokenMetadata.ts} +18 -4
- package/src/react/queries/{searchTokenMetadata.ts → tokens/searchTokenMetadata.ts} +18 -4
- package/src/react/queries/{tokenSupplies.ts → tokens/tokenSupplies.ts} +16 -4
- package/src/react/queries/{comparePrices.ts → utils/comparePrices.ts} +16 -4
- package/src/react/queries/{convertPriceToUSD.ts → utils/convertPriceToUSD.ts} +18 -5
- package/src/react/queries/utils/index.ts +2 -0
- package/src/react/ssr/create-ssr-client.ts +1 -1
- package/src/react/ui/components/_internals/ErrorLogBox.tsx +85 -0
- package/src/react/ui/components/_internals/action-button/ActionButton.tsx +4 -0
- package/src/react/ui/components/_internals/action-button/components/NonOwnerActions.tsx +4 -0
- package/src/react/ui/components/marketplace-collectible-card/components/ActionButtonWrapper.tsx +3 -0
- package/src/react/ui/components/marketplace-collectible-card/types.ts +1 -0
- package/src/react/ui/components/marketplace-collectible-card/variants/MarketCard.tsx +3 -0
- package/src/react/ui/components/marketplace-collectible-card/variants/ShopCard.tsx +2 -0
- package/src/react/ui/modals/BuyModal/components/ERC1155BuyModal.tsx +65 -3
- package/src/react/ui/modals/BuyModal/components/ERC721BuyModal.tsx +31 -0
- package/src/react/ui/modals/BuyModal/hooks/__tests__/useERC721SalePaymentParams.test.tsx +20 -1
- package/src/react/ui/modals/BuyModal/hooks/useERC1155Checkout.ts +7 -2
- package/src/react/ui/modals/BuyModal/hooks/useERC721SalePaymentParams.ts +12 -3
- package/src/react/ui/modals/BuyModal/hooks/usePaymentModalParams.ts +11 -2
- package/src/react/ui/modals/BuyModal/store.ts +3 -0
- package/src/react/ui/modals/CreateListingModal/Modal.tsx +63 -24
- package/src/react/ui/modals/CreateListingModal/__tests__/Modal.test.tsx +4 -0
- package/src/react/ui/modals/CreateListingModal/hooks/useCreateListing.tsx +18 -12
- package/src/react/ui/modals/CreateListingModal/hooks/useGetTokenApproval.ts +4 -1
- package/src/react/ui/modals/CreateListingModal/hooks/useTransactionSteps.tsx +1 -0
- package/src/react/ui/modals/MakeOfferModal/Modal.tsx +55 -8
- package/src/react/ui/modals/MakeOfferModal/__tests__/Modal.test.tsx +10 -0
- package/src/react/ui/modals/MakeOfferModal/hooks/useGetTokenApproval.tsx +4 -1
- package/src/react/ui/modals/MakeOfferModal/hooks/useMakeOffer.tsx +15 -26
- package/src/react/ui/modals/MakeOfferModal/hooks/useTransactionSteps.tsx +1 -0
- package/src/react/ui/modals/SellModal/Modal.tsx +21 -3
- package/src/react/ui/modals/SellModal/__tests__/Modal.test.tsx +2 -0
- package/src/react/ui/modals/SellModal/hooks/useGetTokenApproval.tsx +3 -1
- package/src/react/ui/modals/SellModal/hooks/useSell.tsx +13 -7
- package/src/react/ui/modals/SuccessfulPurchaseModal/__tests__/Modal.test.tsx +9 -0
- package/src/react/ui/modals/_internal/components/calendarDropdown/TimeSelector.tsx +105 -0
- package/src/react/ui/modals/_internal/components/calendarDropdown/index.tsx +45 -12
- package/src/react/ui/modals/_internal/components/calendarDropdown/overrides.css +39 -0
- package/src/react/ui/modals/_internal/components/currencyOptionsSelect/index.tsx +31 -10
- package/src/react/ui/modals/_internal/components/expirationDateSelect/index.tsx +18 -9
- package/src/react/ui/modals/_internal/components/priceInput/index.tsx +51 -1
- package/src/react/ui/modals/_internal/components/transactionDetails/index.tsx +58 -10
- package/src/react/ui/modals/_internal/constants/opensea-currencies.ts +481 -0
- package/src/react/utils/waitForTransactionReceipt.ts +26 -32
- package/src/styles/index.css +1 -0
- package/src/styles/styles.ts +155 -1
- package/src/types/index.ts +1 -1
- package/src/utils/abi/index.ts +1 -0
- package/src/utils/abi/mainModule.ts +158 -0
- package/dist/CollectibleCard-C2EWF0zo.d.ts +0 -8
- package/dist/api-DuLKn__v.js.map +0 -1
- package/dist/filters-zkMJaPey.d.ts +0 -31
- package/dist/index-Yobo6icm.d.ts +0 -234
- package/dist/listCollectiblesPaginated-Bq0QSOjJ.d.ts +0 -168
- package/dist/lowestListing-CB5Te-Q9.d.ts +0 -168
- package/dist/marketplace.gen-w2YvbEEo.js.map +0 -1
- package/dist/marketplaceConfig-BTy75Mbf.js.map +0 -1
- package/dist/queries-EMA5CcwY.js +0 -1399
- package/dist/queries-EMA5CcwY.js.map +0 -1
- package/dist/react-BLJ4DkPx.js.map +0 -1
- package/dist/react-F03jPjPk.css +0 -80
- package/dist/react-F03jPjPk.css.map +0 -1
- package/dist/tokenSupplies-C470zTT0.d.ts +0 -147
- package/dist/waitForTransactionReceipt-B08YZiDY.js +0 -26
- package/dist/waitForTransactionReceipt-B08YZiDY.js.map +0 -1
- /package/dist/{index-Cg5cFzs-.d.ts → index-6wsMChsg.d.ts} +0 -0
- /package/dist/{abi-DYsUABe6.js → queries-KOcILNJO.js} +0 -0
|
@@ -0,0 +1,358 @@
|
|
|
1
|
+
import { LaosAPI, collectableKeys, getIndexerClient, getMarketplaceClient, getMetadataClient } from "./api-BoO0V5aJ.js";
|
|
2
|
+
import { MetadataStatus, OrderSide } from "./marketplace.gen-ksUafDqS.js";
|
|
3
|
+
import { compareAddress } from "./utils-BfpDVibN.js";
|
|
4
|
+
import { fetchMarketplaceConfig } from "./marketplaceConfig-UHQMM9fq.js";
|
|
5
|
+
import { fetchBalances } from "./listBalances-BxpxBCvn.js";
|
|
6
|
+
import { infiniteQueryOptions, queryOptions, skipToken } from "@tanstack/react-query";
|
|
7
|
+
|
|
8
|
+
//#region src/react/queries/collectibles/balanceOfCollectible.ts
|
|
9
|
+
/**
|
|
10
|
+
* Fetches the balance of a specific collectible for a user
|
|
11
|
+
*
|
|
12
|
+
* @param args - Arguments for the API call
|
|
13
|
+
* @param config - SDK configuration
|
|
14
|
+
* @returns The balance data
|
|
15
|
+
*/
|
|
16
|
+
async function fetchBalanceOfCollectible(args, config) {
|
|
17
|
+
if (args.isLaos721) return (await new LaosAPI().getTokenBalances({
|
|
18
|
+
chainId: args.chainId.toString(),
|
|
19
|
+
contractAddress: args.collectionAddress,
|
|
20
|
+
accountAddress: args.userAddress,
|
|
21
|
+
includeMetadata: true
|
|
22
|
+
})).balances[0] || null;
|
|
23
|
+
return getIndexerClient(args.chainId, config).getTokenBalances({
|
|
24
|
+
accountAddress: args.userAddress,
|
|
25
|
+
contractAddress: args.collectionAddress,
|
|
26
|
+
tokenID: args.collectableId,
|
|
27
|
+
includeMetadata: args.includeMetadata ?? false,
|
|
28
|
+
metadataOptions: {
|
|
29
|
+
verifiedOnly: true,
|
|
30
|
+
includeContracts: [args.collectionAddress]
|
|
31
|
+
}
|
|
32
|
+
}).then((res) => res.balances[0] || null);
|
|
33
|
+
}
|
|
34
|
+
function getBalanceOfCollectibleQueryKey(args) {
|
|
35
|
+
const apiArgs = {
|
|
36
|
+
chainId: args.chainId,
|
|
37
|
+
accountAddress: args.userAddress,
|
|
38
|
+
contractAddress: args.collectionAddress,
|
|
39
|
+
tokenID: args.collectableId,
|
|
40
|
+
includeMetadata: args.includeMetadata,
|
|
41
|
+
metadataOptions: args.userAddress ? {
|
|
42
|
+
verifiedOnly: true,
|
|
43
|
+
includeContracts: [args.collectionAddress]
|
|
44
|
+
} : void 0,
|
|
45
|
+
isLaos721: args.isLaos721
|
|
46
|
+
};
|
|
47
|
+
return [...collectableKeys.userBalances, apiArgs];
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Creates a tanstack query options object for the balance query
|
|
51
|
+
*
|
|
52
|
+
* @param args - The query arguments
|
|
53
|
+
* @param config - SDK configuration
|
|
54
|
+
* @returns Query options configuration
|
|
55
|
+
*/
|
|
56
|
+
function balanceOfCollectibleOptions(args, config) {
|
|
57
|
+
const enabled = !!args.userAddress && (args.query?.enabled ?? true);
|
|
58
|
+
return queryOptions({
|
|
59
|
+
queryKey: getBalanceOfCollectibleQueryKey(args),
|
|
60
|
+
queryFn: enabled ? () => fetchBalanceOfCollectible({
|
|
61
|
+
...args,
|
|
62
|
+
userAddress: args.userAddress
|
|
63
|
+
}, config) : skipToken
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
//#endregion
|
|
68
|
+
//#region src/react/queries/collectibles/collectible.ts
|
|
69
|
+
/**
|
|
70
|
+
* Fetches collectible metadata from the metadata API
|
|
71
|
+
*/
|
|
72
|
+
async function fetchCollectible(params) {
|
|
73
|
+
const { collectionAddress, collectibleId, chainId, config } = params;
|
|
74
|
+
const metadataClient = getMetadataClient(config);
|
|
75
|
+
const apiArgs = {
|
|
76
|
+
contractAddress: collectionAddress,
|
|
77
|
+
chainID: String(chainId),
|
|
78
|
+
tokenIDs: [collectibleId]
|
|
79
|
+
};
|
|
80
|
+
return (await metadataClient.getTokenMetadata(apiArgs)).tokenMetadata[0];
|
|
81
|
+
}
|
|
82
|
+
function getCollectibleQueryKey(params) {
|
|
83
|
+
const apiArgs = {
|
|
84
|
+
chainID: String(params.chainId),
|
|
85
|
+
contractAddress: params.collectionAddress,
|
|
86
|
+
tokenIDs: [params.collectibleId]
|
|
87
|
+
};
|
|
88
|
+
return [...collectableKeys.details, apiArgs];
|
|
89
|
+
}
|
|
90
|
+
function collectibleQueryOptions(params) {
|
|
91
|
+
const enabled = Boolean(params.collectionAddress && params.collectibleId && params.chainId && params.config && (params.query?.enabled ?? true));
|
|
92
|
+
return queryOptions({
|
|
93
|
+
queryKey: getCollectibleQueryKey(params),
|
|
94
|
+
queryFn: () => fetchCollectible({
|
|
95
|
+
chainId: params.chainId,
|
|
96
|
+
collectionAddress: params.collectionAddress,
|
|
97
|
+
collectibleId: params.collectibleId,
|
|
98
|
+
config: params.config
|
|
99
|
+
}),
|
|
100
|
+
...params.query,
|
|
101
|
+
enabled
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
//#endregion
|
|
106
|
+
//#region src/react/queries/collectibles/countOfCollectables.ts
|
|
107
|
+
/**
|
|
108
|
+
* Fetches count of collectibles from the marketplace API
|
|
109
|
+
*/
|
|
110
|
+
async function fetchCountOfCollectables(params) {
|
|
111
|
+
const { collectionAddress, chainId, config, filter, side } = params;
|
|
112
|
+
const client = getMarketplaceClient(config);
|
|
113
|
+
if (filter && side) {
|
|
114
|
+
const apiArgs$1 = {
|
|
115
|
+
contractAddress: collectionAddress,
|
|
116
|
+
chainId: String(chainId),
|
|
117
|
+
filter,
|
|
118
|
+
side
|
|
119
|
+
};
|
|
120
|
+
return (await client.getCountOfFilteredCollectibles(apiArgs$1)).count;
|
|
121
|
+
}
|
|
122
|
+
const apiArgs = {
|
|
123
|
+
contractAddress: collectionAddress,
|
|
124
|
+
chainId: String(chainId)
|
|
125
|
+
};
|
|
126
|
+
return (await client.getCountOfAllCollectibles(apiArgs)).count;
|
|
127
|
+
}
|
|
128
|
+
function getCountOfCollectablesQueryKey(params) {
|
|
129
|
+
if (params.filter && params.side) {
|
|
130
|
+
const apiArgs$1 = {
|
|
131
|
+
chainId: String(params.chainId),
|
|
132
|
+
contractAddress: params.collectionAddress,
|
|
133
|
+
filter: params.filter,
|
|
134
|
+
side: params.side
|
|
135
|
+
};
|
|
136
|
+
return [...collectableKeys.counts, apiArgs$1];
|
|
137
|
+
}
|
|
138
|
+
const apiArgs = {
|
|
139
|
+
chainId: String(params.chainId),
|
|
140
|
+
contractAddress: params.collectionAddress
|
|
141
|
+
};
|
|
142
|
+
return [...collectableKeys.counts, apiArgs];
|
|
143
|
+
}
|
|
144
|
+
function countOfCollectablesQueryOptions(params) {
|
|
145
|
+
const enabled = Boolean(params.collectionAddress && params.chainId && params.config && (params.query?.enabled ?? true));
|
|
146
|
+
return queryOptions({
|
|
147
|
+
queryKey: getCountOfCollectablesQueryKey(params),
|
|
148
|
+
queryFn: () => fetchCountOfCollectables({
|
|
149
|
+
chainId: params.chainId,
|
|
150
|
+
collectionAddress: params.collectionAddress,
|
|
151
|
+
config: params.config,
|
|
152
|
+
filter: params.filter,
|
|
153
|
+
side: params.side
|
|
154
|
+
}),
|
|
155
|
+
...params.query,
|
|
156
|
+
enabled
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
//#endregion
|
|
161
|
+
//#region src/react/queries/collectibles/listCollectibleActivities.ts
|
|
162
|
+
/**
|
|
163
|
+
* Fetches collectible activities from the Marketplace API
|
|
164
|
+
*/
|
|
165
|
+
async function fetchListCollectibleActivities(params) {
|
|
166
|
+
const { collectionAddress, chainId, config, page, pageSize, sort,...additionalApiParams } = params;
|
|
167
|
+
const marketplaceClient = getMarketplaceClient(config);
|
|
168
|
+
const pageParams = page || pageSize || sort ? {
|
|
169
|
+
page: page ?? 1,
|
|
170
|
+
pageSize: pageSize ?? 10,
|
|
171
|
+
sort
|
|
172
|
+
} : void 0;
|
|
173
|
+
const apiArgs = {
|
|
174
|
+
contractAddress: collectionAddress,
|
|
175
|
+
chainId: String(chainId),
|
|
176
|
+
page: pageParams,
|
|
177
|
+
...additionalApiParams
|
|
178
|
+
};
|
|
179
|
+
return await marketplaceClient.listCollectibleActivities(apiArgs);
|
|
180
|
+
}
|
|
181
|
+
function getListCollectibleActivitiesQueryKey(params) {
|
|
182
|
+
const page = params.page || params.pageSize || params.sort ? {
|
|
183
|
+
page: params.page ?? 1,
|
|
184
|
+
pageSize: params.pageSize ?? 10,
|
|
185
|
+
sort: params.sort
|
|
186
|
+
} : void 0;
|
|
187
|
+
const apiArgs = {
|
|
188
|
+
chainId: String(params.chainId),
|
|
189
|
+
contractAddress: params.collectionAddress,
|
|
190
|
+
tokenId: params.tokenId,
|
|
191
|
+
page
|
|
192
|
+
};
|
|
193
|
+
return [...collectableKeys.collectibleActivities, apiArgs];
|
|
194
|
+
}
|
|
195
|
+
function listCollectibleActivitiesQueryOptions(params) {
|
|
196
|
+
const enabled = Boolean(params.collectionAddress && params.chainId && params.tokenId && params.config && (params.query?.enabled ?? true));
|
|
197
|
+
return queryOptions({
|
|
198
|
+
queryKey: getListCollectibleActivitiesQueryKey(params),
|
|
199
|
+
queryFn: () => fetchListCollectibleActivities({
|
|
200
|
+
chainId: params.chainId,
|
|
201
|
+
collectionAddress: params.collectionAddress,
|
|
202
|
+
config: params.config,
|
|
203
|
+
tokenId: params.tokenId,
|
|
204
|
+
page: params.page,
|
|
205
|
+
pageSize: params.pageSize,
|
|
206
|
+
sort: params.sort
|
|
207
|
+
}),
|
|
208
|
+
...params.query,
|
|
209
|
+
enabled
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
//#endregion
|
|
214
|
+
//#region src/react/queries/collectibles/listCollectibles.ts
|
|
215
|
+
/**
|
|
216
|
+
* Fetches a list of collectibles with pagination support from the Marketplace API
|
|
217
|
+
*/
|
|
218
|
+
async function fetchListCollectibles(params, page) {
|
|
219
|
+
const { collectionAddress, chainId, config,...additionalApiParams } = params;
|
|
220
|
+
const marketplaceClient = getMarketplaceClient(config);
|
|
221
|
+
const isMarketCollection = (await fetchMarketplaceConfig({ config }))?.market.collections.some((collection) => compareAddress(collection.itemsAddress, collectionAddress));
|
|
222
|
+
if (params.enabled === false || !isMarketCollection) return {
|
|
223
|
+
collectibles: [],
|
|
224
|
+
page: {
|
|
225
|
+
page: 1,
|
|
226
|
+
pageSize: 30,
|
|
227
|
+
more: false
|
|
228
|
+
}
|
|
229
|
+
};
|
|
230
|
+
const apiArgs = {
|
|
231
|
+
contractAddress: collectionAddress,
|
|
232
|
+
chainId: String(chainId),
|
|
233
|
+
page,
|
|
234
|
+
...additionalApiParams
|
|
235
|
+
};
|
|
236
|
+
if (params.isLaos721 && params.side === OrderSide.listing) try {
|
|
237
|
+
const fetchBalancesArgs = {
|
|
238
|
+
chainId: params.chainId,
|
|
239
|
+
accountAddress: params.filter?.inAccounts?.[0],
|
|
240
|
+
contractAddress: params.collectionAddress,
|
|
241
|
+
page,
|
|
242
|
+
includeMetadata: true,
|
|
243
|
+
isLaos721: true
|
|
244
|
+
};
|
|
245
|
+
const balances = await fetchBalances(fetchBalancesArgs, config, page);
|
|
246
|
+
return {
|
|
247
|
+
collectibles: balances.balances.map((balance) => {
|
|
248
|
+
if (!balance.tokenMetadata) throw new Error("Token metadata not found");
|
|
249
|
+
return { metadata: {
|
|
250
|
+
tokenId: balance.tokenID ?? "",
|
|
251
|
+
attributes: balance.tokenMetadata.attributes,
|
|
252
|
+
image: balance.tokenMetadata.image,
|
|
253
|
+
name: balance.tokenMetadata.name,
|
|
254
|
+
description: balance.tokenMetadata.description,
|
|
255
|
+
video: balance.tokenMetadata.video,
|
|
256
|
+
audio: balance.tokenMetadata.audio,
|
|
257
|
+
status: MetadataStatus.AVAILABLE
|
|
258
|
+
} };
|
|
259
|
+
}),
|
|
260
|
+
page: balances.page
|
|
261
|
+
};
|
|
262
|
+
} catch (error) {
|
|
263
|
+
console.error(error);
|
|
264
|
+
}
|
|
265
|
+
return await marketplaceClient.listCollectibles(apiArgs);
|
|
266
|
+
}
|
|
267
|
+
function getListCollectiblesQueryKey(params) {
|
|
268
|
+
const apiArgs = {
|
|
269
|
+
chainId: String(params.chainId),
|
|
270
|
+
contractAddress: params.collectionAddress,
|
|
271
|
+
side: params.side,
|
|
272
|
+
filter: params.filter
|
|
273
|
+
};
|
|
274
|
+
return [...collectableKeys.lists, apiArgs];
|
|
275
|
+
}
|
|
276
|
+
function listCollectiblesQueryOptions(params) {
|
|
277
|
+
const enabled = Boolean(params.collectionAddress && params.chainId && params.side && params.config && (params.query?.enabled ?? true));
|
|
278
|
+
return infiniteQueryOptions({
|
|
279
|
+
queryKey: getListCollectiblesQueryKey(params),
|
|
280
|
+
queryFn: async ({ pageParam }) => {
|
|
281
|
+
return fetchListCollectibles({
|
|
282
|
+
chainId: params.chainId,
|
|
283
|
+
collectionAddress: params.collectionAddress,
|
|
284
|
+
config: params.config,
|
|
285
|
+
side: params.side,
|
|
286
|
+
filter: params.filter,
|
|
287
|
+
isLaos721: params.isLaos721,
|
|
288
|
+
cardType: params.cardType
|
|
289
|
+
}, pageParam);
|
|
290
|
+
},
|
|
291
|
+
initialPageParam: {
|
|
292
|
+
page: 1,
|
|
293
|
+
pageSize: 30
|
|
294
|
+
},
|
|
295
|
+
getNextPageParam: (lastPage) => lastPage.page?.more ? lastPage.page : void 0,
|
|
296
|
+
...params.query,
|
|
297
|
+
enabled
|
|
298
|
+
});
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
//#endregion
|
|
302
|
+
//#region src/react/queries/collectibles/listCollectiblesPaginated.ts
|
|
303
|
+
/**
|
|
304
|
+
* Fetches a list of collectibles with pagination support from the Marketplace API
|
|
305
|
+
*/
|
|
306
|
+
async function fetchListCollectiblesPaginated(params) {
|
|
307
|
+
const { collectionAddress, chainId, config, page = 1, pageSize = 30,...additionalApiParams } = params;
|
|
308
|
+
const marketplaceClient = getMarketplaceClient(config);
|
|
309
|
+
const pageParams = {
|
|
310
|
+
page,
|
|
311
|
+
pageSize
|
|
312
|
+
};
|
|
313
|
+
const apiArgs = {
|
|
314
|
+
contractAddress: collectionAddress,
|
|
315
|
+
chainId: String(chainId),
|
|
316
|
+
page: pageParams,
|
|
317
|
+
...additionalApiParams
|
|
318
|
+
};
|
|
319
|
+
return await marketplaceClient.listCollectibles(apiArgs);
|
|
320
|
+
}
|
|
321
|
+
function getListCollectiblesPaginatedQueryKey(params) {
|
|
322
|
+
const apiArgs = {
|
|
323
|
+
chainId: String(params.chainId),
|
|
324
|
+
contractAddress: params.collectionAddress,
|
|
325
|
+
side: params.side,
|
|
326
|
+
filter: params.filter,
|
|
327
|
+
page: params.page ? {
|
|
328
|
+
page: params.page,
|
|
329
|
+
pageSize: params.pageSize ?? 30
|
|
330
|
+
} : void 0
|
|
331
|
+
};
|
|
332
|
+
return [
|
|
333
|
+
...collectableKeys.lists,
|
|
334
|
+
"paginated",
|
|
335
|
+
apiArgs
|
|
336
|
+
];
|
|
337
|
+
}
|
|
338
|
+
function listCollectiblesPaginatedQueryOptions(params) {
|
|
339
|
+
const enabled = Boolean(params.collectionAddress && params.chainId && params.side && params.config && (params.query?.enabled ?? true));
|
|
340
|
+
return queryOptions({
|
|
341
|
+
queryKey: getListCollectiblesPaginatedQueryKey(params),
|
|
342
|
+
queryFn: () => fetchListCollectiblesPaginated({
|
|
343
|
+
chainId: params.chainId,
|
|
344
|
+
collectionAddress: params.collectionAddress,
|
|
345
|
+
config: params.config,
|
|
346
|
+
side: params.side,
|
|
347
|
+
filter: params.filter,
|
|
348
|
+
page: params.page,
|
|
349
|
+
pageSize: params.pageSize
|
|
350
|
+
}),
|
|
351
|
+
...params.query,
|
|
352
|
+
enabled
|
|
353
|
+
});
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
//#endregion
|
|
357
|
+
export { balanceOfCollectibleOptions, collectibleQueryOptions, countOfCollectablesQueryOptions, fetchBalanceOfCollectible, fetchCollectible, fetchCountOfCollectables, fetchListCollectibleActivities, fetchListCollectibles, fetchListCollectiblesPaginated, getBalanceOfCollectibleQueryKey, getCollectibleQueryKey, getCountOfCollectablesQueryKey, getListCollectibleActivitiesQueryKey, getListCollectiblesPaginatedQueryKey, getListCollectiblesQueryKey, listCollectibleActivitiesQueryOptions, listCollectiblesPaginatedQueryOptions, listCollectiblesQueryOptions };
|
|
358
|
+
//# sourceMappingURL=collectibles-C_H8jMGH.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collectibles-C_H8jMGH.js","names":["apiArgs: GetTokenMetadataArgs","apiArgs: GetCountOfFilteredCollectiblesArgs","apiArgs","apiArgs: GetCountOfAllCollectiblesArgs","pageParams: Page | undefined","apiArgs: ListCollectibleActivitiesArgs","apiArgs: ListCollectiblesArgs","pageParams: Page","apiArgs: ListCollectiblesArgs"],"sources":["../src/react/queries/collectibles/balanceOfCollectible.ts","../src/react/queries/collectibles/collectible.ts","../src/react/queries/collectibles/countOfCollectables.ts","../src/react/queries/collectibles/listCollectibleActivities.ts","../src/react/queries/collectibles/listCollectibles.ts","../src/react/queries/collectibles/listCollectiblesPaginated.ts"],"sourcesContent":["import { queryOptions, skipToken } from '@tanstack/react-query';\nimport type { Address } from 'viem';\nimport type { UseQueryParameters } from 'wagmi/query';\nimport type { SdkConfig } from '../../../types';\nimport { collectableKeys, getIndexerClient, LaosAPI } from '../../_internal';\n\nexport type UseBalanceOfCollectibleArgs = {\n\tcollectionAddress: Address;\n\tcollectableId: string;\n\tuserAddress: Address | undefined;\n\tchainId: number;\n\tisLaos721?: boolean;\n\tincludeMetadata?: boolean;\n\tquery?: UseQueryParameters;\n};\n\n/**\n * Fetches the balance of a specific collectible for a user\n *\n * @param args - Arguments for the API call\n * @param config - SDK configuration\n * @returns The balance data\n */\nexport async function fetchBalanceOfCollectible(\n\targs: Omit<UseBalanceOfCollectibleArgs, 'userAddress'> & {\n\t\tuserAddress: Address;\n\t},\n\tconfig: SdkConfig,\n) {\n\tif (args.isLaos721) {\n\t\tconst laosApi = new LaosAPI();\n\t\tconst response = await laosApi.getTokenBalances({\n\t\t\tchainId: args.chainId.toString(),\n\t\t\tcontractAddress: args.collectionAddress,\n\t\t\taccountAddress: args.userAddress,\n\t\t\tincludeMetadata: true,\n\t\t});\n\n\t\treturn response.balances[0] || null;\n\t}\n\n\tconst indexerClient = getIndexerClient(args.chainId, config);\n\treturn indexerClient\n\t\t.getTokenBalances({\n\t\t\taccountAddress: args.userAddress,\n\t\t\tcontractAddress: args.collectionAddress,\n\t\t\ttokenID: args.collectableId,\n\t\t\tincludeMetadata: args.includeMetadata ?? false,\n\t\t\tmetadataOptions: {\n\t\t\t\tverifiedOnly: true,\n\t\t\t\tincludeContracts: [args.collectionAddress],\n\t\t\t},\n\t\t})\n\t\t.then((res) => res.balances[0] || null);\n}\n\nexport function getBalanceOfCollectibleQueryKey(\n\targs: UseBalanceOfCollectibleArgs,\n) {\n\tconst apiArgs = {\n\t\tchainId: args.chainId,\n\t\taccountAddress: args.userAddress,\n\t\tcontractAddress: args.collectionAddress,\n\t\ttokenID: args.collectableId,\n\t\tincludeMetadata: args.includeMetadata,\n\t\tmetadataOptions: args.userAddress\n\t\t\t? {\n\t\t\t\t\tverifiedOnly: true,\n\t\t\t\t\tincludeContracts: [args.collectionAddress],\n\t\t\t\t}\n\t\t\t: undefined,\n\t\tisLaos721: args.isLaos721,\n\t};\n\n\treturn [...collectableKeys.userBalances, apiArgs] as const;\n}\n\n/**\n * Creates a tanstack query options object for the balance query\n *\n * @param args - The query arguments\n * @param config - SDK configuration\n * @returns Query options configuration\n */\nexport function balanceOfCollectibleOptions(\n\targs: UseBalanceOfCollectibleArgs,\n\tconfig: SdkConfig,\n) {\n\tconst enabled = !!args.userAddress && (args.query?.enabled ?? true);\n\treturn queryOptions({\n\t\tqueryKey: getBalanceOfCollectibleQueryKey(args),\n\t\tqueryFn: enabled\n\t\t\t? () =>\n\t\t\t\t\tfetchBalanceOfCollectible(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t...args,\n\t\t\t\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: this is guaranteed by the userAddress check above\n\t\t\t\t\t\t\tuserAddress: args.userAddress!,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tconfig,\n\t\t\t\t\t)\n\t\t\t: skipToken,\n\t});\n}\n","import type { GetTokenMetadataArgs } from '@0xsequence/metadata';\nimport { queryOptions } from '@tanstack/react-query';\nimport type { SdkConfig } from '../../../types';\nimport {\n\tgetMetadataClient,\n\ttype QueryKeyArgs,\n\ttype ValuesOptional,\n} from '../../_internal';\nimport { collectableKeys } from '../../_internal/api/query-keys';\nimport type { StandardQueryOptions } from '../../types/query';\n\nexport interface FetchCollectibleParams\n\textends Omit<\n\t\tGetTokenMetadataArgs,\n\t\t'chainID' | 'contractAddress' | 'tokenIDs'\n\t> {\n\tchainId: number;\n\tcollectionAddress: string;\n\tcollectibleId: string;\n\tconfig: SdkConfig;\n}\n\n/**\n * Fetches collectible metadata from the metadata API\n */\nexport async function fetchCollectible(params: FetchCollectibleParams) {\n\tconst { collectionAddress, collectibleId, chainId, config } = params;\n\n\tconst metadataClient = getMetadataClient(config);\n\n\tconst apiArgs: GetTokenMetadataArgs = {\n\t\tcontractAddress: collectionAddress,\n\t\tchainID: String(chainId),\n\t\ttokenIDs: [collectibleId],\n\t};\n\n\tconst result = await metadataClient.getTokenMetadata(apiArgs);\n\treturn result.tokenMetadata[0];\n}\n\nexport type CollectibleQueryOptions = ValuesOptional<FetchCollectibleParams> & {\n\tquery?: StandardQueryOptions;\n};\n\nexport function getCollectibleQueryKey(params: CollectibleQueryOptions) {\n\tconst apiArgs = {\n\t\tchainID: String(params.chainId),\n\t\tcontractAddress: params.collectionAddress,\n\t\t// biome-ignore lint/style/noNonNullAssertion: Dont need to validate here\n\t\ttokenIDs: [params.collectibleId!],\n\t} satisfies QueryKeyArgs<GetTokenMetadataArgs>;\n\n\treturn [...collectableKeys.details, apiArgs] as const;\n}\n\nexport function collectibleQueryOptions(params: CollectibleQueryOptions) {\n\tconst enabled = Boolean(\n\t\tparams.collectionAddress &&\n\t\t\tparams.collectibleId &&\n\t\t\tparams.chainId &&\n\t\t\tparams.config &&\n\t\t\t(params.query?.enabled ?? true),\n\t);\n\n\treturn queryOptions({\n\t\tqueryKey: getCollectibleQueryKey(params),\n\t\tqueryFn: () =>\n\t\t\tfetchCollectible({\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tchainId: params.chainId!,\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tcollectionAddress: params.collectionAddress!,\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tcollectibleId: params.collectibleId!,\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tconfig: params.config!,\n\t\t\t}),\n\t\t...params.query,\n\t\tenabled,\n\t});\n}\n","import { queryOptions } from '@tanstack/react-query';\nimport type { SdkConfig } from '../../../types';\nimport {\n\tgetMarketplaceClient,\n\ttype QueryKeyArgs,\n\ttype ValuesOptional,\n} from '../../_internal';\nimport type {\n\tCollectiblesFilter,\n\tGetCountOfAllCollectiblesArgs,\n\tGetCountOfFilteredCollectiblesArgs,\n\tOrderSide,\n} from '../../_internal/api/marketplace.gen';\nimport { collectableKeys } from '../../_internal/api/query-keys';\nimport type { StandardQueryOptions } from '../../types/query';\n\nexport interface FetchCountOfCollectablesParams {\n\tchainId: number;\n\tcollectionAddress: string;\n\tconfig: SdkConfig;\n\tfilter?: CollectiblesFilter;\n\tside?: OrderSide;\n}\n\n/**\n * Fetches count of collectibles from the marketplace API\n */\nexport async function fetchCountOfCollectables(\n\tparams: FetchCountOfCollectablesParams,\n) {\n\tconst { collectionAddress, chainId, config, filter, side } = params;\n\n\tconst client = getMarketplaceClient(config);\n\n\tif (filter && side) {\n\t\tconst apiArgs: GetCountOfFilteredCollectiblesArgs = {\n\t\t\tcontractAddress: collectionAddress,\n\t\t\tchainId: String(chainId),\n\t\t\tfilter,\n\t\t\tside,\n\t\t};\n\n\t\tconst result = await client.getCountOfFilteredCollectibles(apiArgs);\n\t\treturn result.count;\n\t}\n\n\tconst apiArgs: GetCountOfAllCollectiblesArgs = {\n\t\tcontractAddress: collectionAddress,\n\t\tchainId: String(chainId),\n\t};\n\n\tconst result = await client.getCountOfAllCollectibles(apiArgs);\n\treturn result.count;\n}\n\nexport type CountOfCollectablesQueryOptions =\n\tValuesOptional<FetchCountOfCollectablesParams> & {\n\t\tquery?: StandardQueryOptions;\n\t};\n\nexport function getCountOfCollectablesQueryKey(\n\tparams: CountOfCollectablesQueryOptions,\n) {\n\tif (params.filter && params.side) {\n\t\tconst apiArgs = {\n\t\t\tchainId: String(params.chainId),\n\t\t\tcontractAddress: params.collectionAddress,\n\t\t\tfilter: params.filter,\n\t\t\tside: params.side,\n\t\t} satisfies QueryKeyArgs<GetCountOfFilteredCollectiblesArgs>;\n\n\t\treturn [...collectableKeys.counts, apiArgs] as const;\n\t}\n\n\tconst apiArgs = {\n\t\tchainId: String(params.chainId),\n\t\tcontractAddress: params.collectionAddress,\n\t} satisfies QueryKeyArgs<GetCountOfAllCollectiblesArgs>;\n\n\treturn [...collectableKeys.counts, apiArgs] as const;\n}\n\nexport function countOfCollectablesQueryOptions(\n\tparams: CountOfCollectablesQueryOptions,\n) {\n\tconst enabled = Boolean(\n\t\tparams.collectionAddress &&\n\t\t\tparams.chainId &&\n\t\t\tparams.config &&\n\t\t\t(params.query?.enabled ?? true),\n\t);\n\n\treturn queryOptions({\n\t\tqueryKey: getCountOfCollectablesQueryKey(params),\n\t\tqueryFn: () =>\n\t\t\tfetchCountOfCollectables({\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tchainId: params.chainId!,\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tcollectionAddress: params.collectionAddress!,\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tconfig: params.config!,\n\t\t\t\tfilter: params.filter,\n\t\t\t\tside: params.side,\n\t\t\t}),\n\t\t...params.query,\n\t\tenabled,\n\t});\n}\n","import { queryOptions } from '@tanstack/react-query';\nimport type { Address } from 'viem';\nimport type { Page, SdkConfig } from '../../../types';\nimport type {\n\tListCollectibleActivitiesArgs,\n\tListCollectibleActivitiesReturn,\n\tQueryKeyArgs,\n\tSortBy,\n\tValuesOptional,\n} from '../../_internal';\nimport { collectableKeys, getMarketplaceClient } from '../../_internal';\nimport type { StandardQueryOptions } from '../../types/query';\n\nexport interface FetchListCollectibleActivitiesParams\n\textends Omit<\n\t\tListCollectibleActivitiesArgs,\n\t\t'chainId' | 'contractAddress' | 'page'\n\t> {\n\tchainId: number;\n\tcollectionAddress: Address;\n\tpage?: number;\n\tpageSize?: number;\n\tsort?: SortBy[];\n\tconfig: SdkConfig;\n}\n\n/**\n * Fetches collectible activities from the Marketplace API\n */\nexport async function fetchListCollectibleActivities(\n\tparams: FetchListCollectibleActivitiesParams,\n): Promise<ListCollectibleActivitiesReturn> {\n\tconst {\n\t\tcollectionAddress,\n\t\tchainId,\n\t\tconfig,\n\t\tpage,\n\t\tpageSize,\n\t\tsort,\n\t\t...additionalApiParams\n\t} = params;\n\tconst marketplaceClient = getMarketplaceClient(config);\n\n\tconst pageParams: Page | undefined =\n\t\tpage || pageSize || sort\n\t\t\t? {\n\t\t\t\t\tpage: page ?? 1,\n\t\t\t\t\tpageSize: pageSize ?? 10,\n\t\t\t\t\tsort,\n\t\t\t\t}\n\t\t\t: undefined;\n\n\tconst apiArgs: ListCollectibleActivitiesArgs = {\n\t\tcontractAddress: collectionAddress,\n\t\tchainId: String(chainId),\n\t\tpage: pageParams,\n\t\t...additionalApiParams,\n\t};\n\n\treturn await marketplaceClient.listCollectibleActivities(apiArgs);\n}\n\nexport type ListCollectibleActivitiesQueryOptions =\n\tValuesOptional<FetchListCollectibleActivitiesParams> & {\n\t\tquery?: StandardQueryOptions;\n\t};\n\nexport function getListCollectibleActivitiesQueryKey(\n\tparams: ListCollectibleActivitiesQueryOptions,\n) {\n\t// TODO: Do we actually want to do the page like this?\n\tconst page =\n\t\tparams.page || params.pageSize || params.sort\n\t\t\t? {\n\t\t\t\t\tpage: params.page ?? 1,\n\t\t\t\t\tpageSize: params.pageSize ?? 10,\n\t\t\t\t\tsort: params.sort,\n\t\t\t\t}\n\t\t\t: undefined;\n\n\tconst apiArgs = {\n\t\tchainId: String(params.chainId),\n\t\tcontractAddress: params.collectionAddress,\n\t\ttokenId: params.tokenId,\n\t\tpage: page,\n\t} satisfies QueryKeyArgs<ListCollectibleActivitiesArgs>;\n\n\treturn [...collectableKeys.collectibleActivities, apiArgs] as const;\n}\n\nexport function listCollectibleActivitiesQueryOptions(\n\tparams: ListCollectibleActivitiesQueryOptions,\n) {\n\tconst enabled = Boolean(\n\t\tparams.collectionAddress &&\n\t\t\tparams.chainId &&\n\t\t\tparams.tokenId &&\n\t\t\tparams.config &&\n\t\t\t(params.query?.enabled ?? true),\n\t);\n\n\treturn queryOptions({\n\t\tqueryKey: getListCollectibleActivitiesQueryKey(params),\n\t\tqueryFn: () =>\n\t\t\tfetchListCollectibleActivities({\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tchainId: params.chainId!,\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tcollectionAddress: params.collectionAddress!,\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tconfig: params.config!,\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\ttokenId: params.tokenId!,\n\t\t\t\tpage: params.page,\n\t\t\t\tpageSize: params.pageSize,\n\t\t\t\tsort: params.sort,\n\t\t\t}),\n\t\t...params.query,\n\t\tenabled,\n\t});\n}\n","import { infiniteQueryOptions } from '@tanstack/react-query';\nimport type { Address } from 'viem';\nimport type { Page, SdkConfig } from '../../../types';\nimport type { CardType } from '../../../types/types';\nimport { compareAddress } from '../../../utils';\nimport type {\n\tListCollectiblesArgs,\n\tListCollectiblesReturn,\n\tQueryKeyArgs,\n\tValuesOptional,\n} from '../../_internal';\nimport {\n\ttype CollectibleOrder,\n\tcollectableKeys,\n\tgetMarketplaceClient,\n\tMetadataStatus,\n\tOrderSide,\n} from '../../_internal';\nimport type { StandardInfiniteQueryOptions } from '../../types/query';\nimport { fetchMarketplaceConfig } from '../market/marketplaceConfig';\nimport {\n\tfetchBalances,\n\ttype UseListBalancesArgs,\n} from '../tokens/listBalances';\n\nexport interface FetchListCollectiblesParams\n\textends Omit<ListCollectiblesArgs, 'chainId' | 'contractAddress'> {\n\tchainId: number;\n\tcollectionAddress: Address;\n\tisLaos721?: boolean;\n\tcardType?: CardType;\n\tconfig: SdkConfig;\n\tenabled?: boolean;\n}\n\n/**\n * Fetches a list of collectibles with pagination support from the Marketplace API\n */\nexport async function fetchListCollectibles(\n\tparams: FetchListCollectiblesParams,\n\tpage: Page,\n): Promise<ListCollectiblesReturn> {\n\tconst { collectionAddress, chainId, config, ...additionalApiParams } = params;\n\tconst marketplaceClient = getMarketplaceClient(config);\n\tconst marketplaceConfig = await fetchMarketplaceConfig({ config });\n\tconst isMarketCollection = marketplaceConfig?.market.collections.some(\n\t\t(collection) => compareAddress(collection.itemsAddress, collectionAddress),\n\t);\n\n\t// If it's not a market collection, return an empty list. those collections are not compatible with the ListCollectibles endpoint.\n\tif (params.enabled === false || !isMarketCollection) {\n\t\treturn {\n\t\t\tcollectibles: [],\n\t\t\tpage: {\n\t\t\t\tpage: 1,\n\t\t\t\tpageSize: 30,\n\t\t\t\tmore: false,\n\t\t\t},\n\t\t};\n\t}\n\n\tconst apiArgs: ListCollectiblesArgs = {\n\t\tcontractAddress: collectionAddress,\n\t\tchainId: String(chainId),\n\t\tpage: page,\n\t\t...additionalApiParams,\n\t};\n\n\tif (params.isLaos721 && params.side === OrderSide.listing) {\n\t\ttry {\n\t\t\tconst fetchBalancesArgs = {\n\t\t\t\tchainId: params.chainId,\n\t\t\t\taccountAddress: params.filter?.inAccounts?.[0] as Address,\n\t\t\t\tcontractAddress: params.collectionAddress,\n\t\t\t\tpage: page,\n\t\t\t\tincludeMetadata: true,\n\t\t\t\tisLaos721: true,\n\t\t\t} satisfies UseListBalancesArgs;\n\n\t\t\tconst balances = await fetchBalances(fetchBalancesArgs, config, page);\n\t\t\tconst collectibles: CollectibleOrder[] = balances.balances.map(\n\t\t\t\t(balance) => {\n\t\t\t\t\tif (!balance.tokenMetadata)\n\t\t\t\t\t\tthrow new Error('Token metadata not found');\n\t\t\t\t\treturn {\n\t\t\t\t\t\tmetadata: {\n\t\t\t\t\t\t\ttokenId: balance.tokenID ?? '',\n\t\t\t\t\t\t\tattributes: balance.tokenMetadata.attributes,\n\t\t\t\t\t\t\timage: balance.tokenMetadata.image,\n\t\t\t\t\t\t\tname: balance.tokenMetadata.name,\n\t\t\t\t\t\t\tdescription: balance.tokenMetadata.description,\n\t\t\t\t\t\t\tvideo: balance.tokenMetadata.video,\n\t\t\t\t\t\t\taudio: balance.tokenMetadata.audio,\n\t\t\t\t\t\t\tstatus: MetadataStatus.AVAILABLE,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tcollectibles: collectibles,\n\t\t\t\t//@ts-expect-error\n\t\t\t\tpage: balances.page,\n\t\t\t};\n\t\t} catch (error) {\n\t\t\t// If the request fails, ignore the error and return the collectibles from our indexer\n\t\t\tconsole.error(error);\n\t\t}\n\t}\n\n\treturn await marketplaceClient.listCollectibles(apiArgs);\n}\n\nexport type ListCollectiblesQueryOptions =\n\tValuesOptional<FetchListCollectiblesParams> & {\n\t\tquery?: StandardInfiniteQueryOptions;\n\t};\n\nexport function getListCollectiblesQueryKey(\n\tparams: ListCollectiblesQueryOptions,\n) {\n\tconst apiArgs = {\n\t\tchainId: String(params.chainId),\n\t\tcontractAddress: params.collectionAddress,\n\t\tside: params.side,\n\t\tfilter: params.filter,\n\t} satisfies QueryKeyArgs<Omit<ListCollectiblesArgs, 'page'>>;\n\n\treturn [...collectableKeys.lists, apiArgs] as const;\n}\n\nexport function listCollectiblesQueryOptions(\n\tparams: ListCollectiblesQueryOptions,\n) {\n\tconst enabled = Boolean(\n\t\tparams.collectionAddress &&\n\t\t\tparams.chainId &&\n\t\t\tparams.side &&\n\t\t\tparams.config &&\n\t\t\t(params.query?.enabled ?? true),\n\t);\n\n\treturn infiniteQueryOptions({\n\t\tqueryKey: getListCollectiblesQueryKey(params),\n\t\tqueryFn: async ({ pageParam }) => {\n\t\t\treturn fetchListCollectibles(\n\t\t\t\t{\n\t\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\t\tchainId: params.chainId!,\n\t\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\t\tcollectionAddress: params.collectionAddress!,\n\t\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\t\tconfig: params.config!,\n\t\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\t\tside: params.side!,\n\t\t\t\t\tfilter: params.filter,\n\t\t\t\t\tisLaos721: params.isLaos721,\n\t\t\t\t\tcardType: params.cardType,\n\t\t\t\t},\n\t\t\t\tpageParam,\n\t\t\t);\n\t\t},\n\t\tinitialPageParam: { page: 1, pageSize: 30 } as Page,\n\t\tgetNextPageParam: (lastPage) =>\n\t\t\tlastPage.page?.more ? lastPage.page : undefined,\n\t\t...params.query,\n\t\tenabled,\n\t});\n}\n","import { queryOptions } from '@tanstack/react-query';\nimport type { Address } from 'viem';\nimport type { Page, SdkConfig } from '../../../types';\nimport type {\n\tListCollectiblesArgs,\n\tListCollectiblesReturn,\n\tQueryKeyArgs,\n\tValuesOptional,\n} from '../../_internal';\nimport { collectableKeys, getMarketplaceClient } from '../../_internal';\nimport type { StandardQueryOptions } from '../../types/query';\n\nexport interface FetchListCollectiblesPaginatedParams\n\textends Omit<ListCollectiblesArgs, 'chainId' | 'contractAddress' | 'page'> {\n\tchainId: number;\n\tcollectionAddress: Address;\n\tpage?: number;\n\tpageSize?: number;\n\tconfig: SdkConfig;\n}\n\n/**\n * Fetches a list of collectibles with pagination support from the Marketplace API\n */\nexport async function fetchListCollectiblesPaginated(\n\tparams: FetchListCollectiblesPaginatedParams,\n): Promise<ListCollectiblesReturn> {\n\tconst {\n\t\tcollectionAddress,\n\t\tchainId,\n\t\tconfig,\n\t\tpage = 1,\n\t\tpageSize = 30,\n\t\t...additionalApiParams\n\t} = params;\n\tconst marketplaceClient = getMarketplaceClient(config);\n\n\tconst pageParams: Page = {\n\t\tpage,\n\t\tpageSize,\n\t};\n\n\tconst apiArgs: ListCollectiblesArgs = {\n\t\tcontractAddress: collectionAddress,\n\t\tchainId: String(chainId),\n\t\tpage: pageParams,\n\t\t...additionalApiParams,\n\t};\n\n\treturn await marketplaceClient.listCollectibles(apiArgs);\n}\n\nexport type ListCollectiblesPaginatedQueryOptions =\n\tValuesOptional<FetchListCollectiblesPaginatedParams> & {\n\t\tquery?: StandardQueryOptions;\n\t};\n\nexport function getListCollectiblesPaginatedQueryKey(\n\tparams: ListCollectiblesPaginatedQueryOptions,\n) {\n\tconst apiArgs = {\n\t\tchainId: String(params.chainId),\n\t\tcontractAddress: params.collectionAddress,\n\t\tside: params.side,\n\t\tfilter: params.filter,\n\t\tpage: params.page\n\t\t\t? { page: params.page, pageSize: params.pageSize ?? 30 }\n\t\t\t: undefined,\n\t} satisfies QueryKeyArgs<ListCollectiblesArgs>;\n\n\treturn [...collectableKeys.lists, 'paginated', apiArgs] as const;\n}\n\nexport function listCollectiblesPaginatedQueryOptions(\n\tparams: ListCollectiblesPaginatedQueryOptions,\n) {\n\tconst enabled = Boolean(\n\t\tparams.collectionAddress &&\n\t\t\tparams.chainId &&\n\t\t\tparams.side &&\n\t\t\tparams.config &&\n\t\t\t(params.query?.enabled ?? true),\n\t);\n\n\treturn queryOptions({\n\t\tqueryKey: getListCollectiblesPaginatedQueryKey(params),\n\t\tqueryFn: () =>\n\t\t\tfetchListCollectiblesPaginated({\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tchainId: params.chainId!,\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tcollectionAddress: params.collectionAddress!,\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tconfig: params.config!,\n\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\tside: params.side!,\n\t\t\t\tfilter: params.filter,\n\t\t\t\tpage: params.page,\n\t\t\t\tpageSize: params.pageSize,\n\t\t\t}),\n\t\t...params.query,\n\t\tenabled,\n\t});\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
import { balanceQueries, collectionKeys, getIndexerClient, getMarketplaceClient, getMetadataClient } from "./api-BoO0V5aJ.js";
|
|
2
|
+
import { compareAddress } from "./utils-BfpDVibN.js";
|
|
3
|
+
import { queryOptions, skipToken } from "@tanstack/react-query";
|
|
4
|
+
|
|
5
|
+
//#region src/react/queries/collections/collection.ts
|
|
6
|
+
/**
|
|
7
|
+
* Fetches collection information from the metadata API
|
|
8
|
+
*/
|
|
9
|
+
async function fetchCollection(params) {
|
|
10
|
+
const { collectionAddress, chainId, config } = params;
|
|
11
|
+
return (await getMetadataClient(config).getContractInfo({
|
|
12
|
+
chainID: chainId.toString(),
|
|
13
|
+
contractAddress: collectionAddress
|
|
14
|
+
})).contractInfo;
|
|
15
|
+
}
|
|
16
|
+
function getCollectionQueryKey(params) {
|
|
17
|
+
const apiArgs = {
|
|
18
|
+
chainID: String(params.chainId),
|
|
19
|
+
contractAddress: params.collectionAddress
|
|
20
|
+
};
|
|
21
|
+
return [...collectionKeys.detail, apiArgs];
|
|
22
|
+
}
|
|
23
|
+
function collectionQueryOptions(params) {
|
|
24
|
+
const enabled = Boolean(params.collectionAddress && params.chainId && params.config && (params.query?.enabled ?? true));
|
|
25
|
+
return queryOptions({
|
|
26
|
+
queryKey: getCollectionQueryKey(params),
|
|
27
|
+
queryFn: () => fetchCollection({
|
|
28
|
+
chainId: params.chainId,
|
|
29
|
+
collectionAddress: params.collectionAddress,
|
|
30
|
+
config: params.config
|
|
31
|
+
}),
|
|
32
|
+
...params.query,
|
|
33
|
+
enabled
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
//#endregion
|
|
38
|
+
//#region src/react/queries/collections/collectionBalanceDetails.ts
|
|
39
|
+
/**
|
|
40
|
+
* Fetches detailed balance information for multiple accounts from the Indexer API
|
|
41
|
+
*/
|
|
42
|
+
async function fetchCollectionBalanceDetails(params) {
|
|
43
|
+
const { chainId, filter, config } = params;
|
|
44
|
+
const indexerClient = getIndexerClient(chainId, config);
|
|
45
|
+
const promises = filter.accountAddresses.map((accountAddress) => indexerClient.getTokenBalancesDetails({ filter: {
|
|
46
|
+
accountAddresses: [accountAddress],
|
|
47
|
+
contractWhitelist: filter.contractWhitelist,
|
|
48
|
+
omitNativeBalances: filter.omitNativeBalances
|
|
49
|
+
} }));
|
|
50
|
+
const mergedResponse = (await Promise.all(promises)).reduce((acc, curr) => {
|
|
51
|
+
if (!curr) return acc;
|
|
52
|
+
return {
|
|
53
|
+
page: curr.page,
|
|
54
|
+
nativeBalances: [...acc.nativeBalances || [], ...curr.nativeBalances || []],
|
|
55
|
+
balances: [...acc.balances || [], ...curr.balances || []]
|
|
56
|
+
};
|
|
57
|
+
}, {
|
|
58
|
+
page: {},
|
|
59
|
+
nativeBalances: [],
|
|
60
|
+
balances: []
|
|
61
|
+
});
|
|
62
|
+
if (!mergedResponse) throw new Error("Failed to fetch collection balance details");
|
|
63
|
+
return mergedResponse;
|
|
64
|
+
}
|
|
65
|
+
function getCollectionBalanceDetailsQueryKey(params) {
|
|
66
|
+
const apiArgs = {
|
|
67
|
+
chainId: params.chainId,
|
|
68
|
+
filter: params.filter
|
|
69
|
+
};
|
|
70
|
+
return [...balanceQueries.collectionBalanceDetails, apiArgs];
|
|
71
|
+
}
|
|
72
|
+
function collectionBalanceDetailsQueryOptions(params) {
|
|
73
|
+
const enabled = Boolean(params.chainId && params.filter?.accountAddresses?.length && params.config && (params.query?.enabled ?? true));
|
|
74
|
+
return queryOptions({
|
|
75
|
+
queryKey: getCollectionBalanceDetailsQueryKey(params),
|
|
76
|
+
queryFn: () => fetchCollectionBalanceDetails({
|
|
77
|
+
chainId: params.chainId,
|
|
78
|
+
filter: params.filter,
|
|
79
|
+
config: params.config
|
|
80
|
+
}),
|
|
81
|
+
...params.query,
|
|
82
|
+
enabled
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
//#endregion
|
|
87
|
+
//#region src/react/queries/collections/collectionDetails.ts
|
|
88
|
+
/**
|
|
89
|
+
* Fetches collection details from the marketplace API
|
|
90
|
+
*/
|
|
91
|
+
async function fetchCollectionDetails(params) {
|
|
92
|
+
const { collectionAddress, chainId, config,...additionalApiParams } = params;
|
|
93
|
+
const marketplaceClient = getMarketplaceClient(config);
|
|
94
|
+
const apiArgs = {
|
|
95
|
+
contractAddress: collectionAddress,
|
|
96
|
+
chainId: String(chainId),
|
|
97
|
+
...additionalApiParams
|
|
98
|
+
};
|
|
99
|
+
return (await marketplaceClient.getCollectionDetail(apiArgs)).collection;
|
|
100
|
+
}
|
|
101
|
+
function getCollectionDetailsQueryKey(params) {
|
|
102
|
+
const apiArgs = {
|
|
103
|
+
chainId: String(params.chainId),
|
|
104
|
+
contractAddress: params.collectionAddress
|
|
105
|
+
};
|
|
106
|
+
return [...collectionKeys.detail, apiArgs];
|
|
107
|
+
}
|
|
108
|
+
function collectionDetailsQueryOptions(params) {
|
|
109
|
+
const enabled = Boolean(params.collectionAddress && params.chainId && params.config && (params.query?.enabled ?? true));
|
|
110
|
+
return queryOptions({
|
|
111
|
+
queryKey: getCollectionDetailsQueryKey(params),
|
|
112
|
+
queryFn: () => fetchCollectionDetails({
|
|
113
|
+
chainId: params.chainId,
|
|
114
|
+
collectionAddress: params.collectionAddress,
|
|
115
|
+
config: params.config
|
|
116
|
+
}),
|
|
117
|
+
...params.query,
|
|
118
|
+
enabled
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
//#endregion
|
|
123
|
+
//#region src/react/queries/collections/listCollectionActivities.ts
|
|
124
|
+
/**
|
|
125
|
+
* Fetches collection activities from the Marketplace API
|
|
126
|
+
*/
|
|
127
|
+
async function fetchListCollectionActivities(params) {
|
|
128
|
+
const { collectionAddress, chainId, config, page, pageSize, sort,...additionalApiParams } = params;
|
|
129
|
+
const marketplaceClient = getMarketplaceClient(config);
|
|
130
|
+
const pageParams = page || pageSize || sort ? {
|
|
131
|
+
page: page ?? 1,
|
|
132
|
+
pageSize: pageSize ?? 10,
|
|
133
|
+
sort
|
|
134
|
+
} : void 0;
|
|
135
|
+
const apiArgs = {
|
|
136
|
+
contractAddress: collectionAddress,
|
|
137
|
+
chainId: String(chainId),
|
|
138
|
+
page: pageParams,
|
|
139
|
+
...additionalApiParams
|
|
140
|
+
};
|
|
141
|
+
return await marketplaceClient.listCollectionActivities(apiArgs);
|
|
142
|
+
}
|
|
143
|
+
function getListCollectionActivitiesQueryKey(params) {
|
|
144
|
+
const page = params.page || params.pageSize || params.sort ? {
|
|
145
|
+
page: params.page ?? 1,
|
|
146
|
+
pageSize: params.pageSize ?? 10,
|
|
147
|
+
sort: params.sort
|
|
148
|
+
} : void 0;
|
|
149
|
+
const apiArgs = {
|
|
150
|
+
chainId: String(params.chainId),
|
|
151
|
+
contractAddress: params.collectionAddress,
|
|
152
|
+
page
|
|
153
|
+
};
|
|
154
|
+
return [...collectionKeys.collectionActivities, apiArgs];
|
|
155
|
+
}
|
|
156
|
+
function listCollectionActivitiesQueryOptions(params) {
|
|
157
|
+
const enabled = Boolean(params.collectionAddress && params.chainId && params.config && (params.query?.enabled ?? true));
|
|
158
|
+
return queryOptions({
|
|
159
|
+
queryKey: getListCollectionActivitiesQueryKey(params),
|
|
160
|
+
queryFn: () => fetchListCollectionActivities({
|
|
161
|
+
chainId: params.chainId,
|
|
162
|
+
collectionAddress: params.collectionAddress,
|
|
163
|
+
config: params.config,
|
|
164
|
+
page: params.page,
|
|
165
|
+
pageSize: params.pageSize,
|
|
166
|
+
sort: params.sort
|
|
167
|
+
}),
|
|
168
|
+
...params.query,
|
|
169
|
+
enabled
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
//#endregion
|
|
174
|
+
//#region src/react/queries/collections/listCollections.ts
|
|
175
|
+
const allCollections = (marketplaceConfig) => {
|
|
176
|
+
return [...marketplaceConfig.market.collections, ...marketplaceConfig.shop.collections];
|
|
177
|
+
};
|
|
178
|
+
/**
|
|
179
|
+
* Fetches collections from the metadata API with marketplace config filtering
|
|
180
|
+
*/
|
|
181
|
+
async function fetchListCollections(params) {
|
|
182
|
+
const { cardType, marketplaceConfig, config } = params;
|
|
183
|
+
const metadataClient = getMetadataClient(config);
|
|
184
|
+
let collections = allCollections(marketplaceConfig);
|
|
185
|
+
if (!collections?.length) return [];
|
|
186
|
+
if (cardType) collections = collections.filter((collection) => collection.cardType === cardType);
|
|
187
|
+
const collectionsByChain = collections.reduce((acc, curr) => {
|
|
188
|
+
const { chainId, itemsAddress } = curr;
|
|
189
|
+
if (!acc[chainId]) acc[chainId] = [];
|
|
190
|
+
acc[chainId].push(itemsAddress);
|
|
191
|
+
return acc;
|
|
192
|
+
}, {});
|
|
193
|
+
const promises = Object.entries(collectionsByChain).map(([chainId, addresses]) => metadataClient.getContractInfoBatch({
|
|
194
|
+
chainID: chainId,
|
|
195
|
+
contractAddresses: addresses
|
|
196
|
+
}).then((resp) => Object.values(resp.contractInfoMap)));
|
|
197
|
+
const settled = await Promise.allSettled(promises);
|
|
198
|
+
if (settled.every((result) => result.status === "rejected")) throw settled[0].reason;
|
|
199
|
+
const results = settled.filter((r) => r.status === "fulfilled").flatMap((r) => r.value);
|
|
200
|
+
return collections.map((collection) => {
|
|
201
|
+
const metadata = results.find((result) => compareAddress(result.address, collection.itemsAddress));
|
|
202
|
+
return {
|
|
203
|
+
collection,
|
|
204
|
+
metadata
|
|
205
|
+
};
|
|
206
|
+
}).filter((item) => item.metadata !== void 0).map(({ collection, metadata }) => ({
|
|
207
|
+
...collection,
|
|
208
|
+
...metadata
|
|
209
|
+
}));
|
|
210
|
+
}
|
|
211
|
+
function getListCollectionsQueryKey(params) {
|
|
212
|
+
const queryKeyParams = {
|
|
213
|
+
cardType: params.cardType,
|
|
214
|
+
marketplaceConfig: params.marketplaceConfig
|
|
215
|
+
};
|
|
216
|
+
return [...collectionKeys.list, queryKeyParams];
|
|
217
|
+
}
|
|
218
|
+
function listCollectionsQueryOptions(params) {
|
|
219
|
+
const enabled = Boolean(params.marketplaceConfig && params.config && (params.query?.enabled ?? true));
|
|
220
|
+
return queryOptions({
|
|
221
|
+
queryKey: getListCollectionsQueryKey(params),
|
|
222
|
+
queryFn: enabled ? () => fetchListCollections({
|
|
223
|
+
marketplaceConfig: params.marketplaceConfig,
|
|
224
|
+
config: params.config,
|
|
225
|
+
cardType: params.cardType
|
|
226
|
+
}) : skipToken,
|
|
227
|
+
...params.query,
|
|
228
|
+
enabled
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
const listCollectionsOptions = ({ cardType, marketplaceConfig, config }) => {
|
|
232
|
+
return queryOptions({
|
|
233
|
+
queryKey: [...collectionKeys.list, {
|
|
234
|
+
cardType,
|
|
235
|
+
marketplaceConfig,
|
|
236
|
+
config
|
|
237
|
+
}],
|
|
238
|
+
queryFn: marketplaceConfig ? () => fetchListCollections({
|
|
239
|
+
marketplaceConfig,
|
|
240
|
+
config,
|
|
241
|
+
cardType
|
|
242
|
+
}) : skipToken,
|
|
243
|
+
enabled: Boolean(marketplaceConfig)
|
|
244
|
+
});
|
|
245
|
+
};
|
|
246
|
+
|
|
247
|
+
//#endregion
|
|
248
|
+
export { collectionBalanceDetailsQueryOptions, collectionDetailsQueryOptions, collectionQueryOptions, fetchCollection, fetchCollectionBalanceDetails, fetchCollectionDetails, fetchListCollectionActivities, fetchListCollections, getCollectionBalanceDetailsQueryKey, getCollectionDetailsQueryKey, getCollectionQueryKey, getListCollectionActivitiesQueryKey, getListCollectionsQueryKey, listCollectionActivitiesQueryOptions, listCollectionsOptions, listCollectionsQueryOptions };
|
|
249
|
+
//# sourceMappingURL=collections-CKummc-R.js.map
|