@0xsequence/marketplace-sdk 1.1.0 → 1.2.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 +58 -5
- package/dist/{BellIcon-IpHHEy8h.js → BellIcon-DMKEumAz.js} +2 -2
- package/dist/BellIcon-DMKEumAz.js.map +1 -0
- package/dist/{CartIcon-C8zbor8H.js → CartIcon-UyB4NYKt.js} +3 -3
- package/dist/CartIcon-UyB4NYKt.js.map +1 -0
- package/dist/CollectibleCard-z05qWzKE.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-Cq8LuElo.js} +1 -1
- package/dist/{alien_swap-BTJ7mSR-.js.map → alien_swap-Cq8LuElo.js.map} +1 -1
- package/dist/{api-DuLKn__v.js → api-GwTR0dBA.js} +13 -49
- package/dist/api-GwTR0dBA.js.map +1 -0
- package/dist/{aqua-xyz-BYJ9WSP_.js → aqua-xyz-0yye_c-Z.js} +1 -1
- package/dist/{aqua-xyz-BYJ9WSP_.js.map → aqua-xyz-0yye_c-Z.js.map} +1 -1
- package/dist/{aura-D7SUjgro.js → aura-TaxFvTFQ.js} +1 -1
- package/dist/{aura-D7SUjgro.js.map → aura-TaxFvTFQ.js.map} +1 -1
- package/dist/{blur-BcnRFCaV.js → blur-BupOTobO.js} +1 -1
- package/dist/{blur-BcnRFCaV.js.map → blur-BupOTobO.js.map} +1 -1
- package/dist/{builder-api-BFuZNOaN.js → builder-api-m4JAA6ee.js} +3 -3
- package/dist/builder-api-m4JAA6ee.js.map +1 -0
- package/dist/{builder.gen-B9wR2nvF.js → builder.gen--XD71cNL.js} +2 -2
- package/dist/builder.gen--XD71cNL.js.map +1 -0
- package/dist/{coinbase-ChoX9Hw2.js → coinbase-DTgZ4wDT.js} +1 -1
- package/dist/{coinbase-ChoX9Hw2.js.map → coinbase-DTgZ4wDT.js.map} +1 -1
- package/dist/collectibles-CZ6i8sXK.js +324 -0
- package/dist/collectibles-CZ6i8sXK.js.map +1 -0
- package/dist/collections-5NcU-7ZR.js +331 -0
- package/dist/collections-5NcU-7ZR.js.map +1 -0
- package/dist/{components-CUv-wQr8.js → components-CY8kx2kb.js} +13 -9
- package/dist/components-CY8kx2kb.js.map +1 -0
- package/dist/{contracts-D72LBOX3.js → contracts-DRJHF89h.js} +5 -4
- package/dist/{contracts-D72LBOX3.js.map → contracts-DRJHF89h.js.map} +1 -1
- package/dist/{create-config-CIfejoCk.js → create-config-BxyfYCEk.js} +6 -5
- package/dist/create-config-BxyfYCEk.js.map +1 -0
- package/dist/{create-config-DV_dtaLt.d.ts → create-config-CFBeD8CB.d.ts} +149 -57
- package/dist/{element-Dbcv5qya.js → element-D4dDznlu.js} +1 -1
- package/dist/{element-Dbcv5qya.js.map → element-D4dDznlu.js.map} +1 -1
- package/dist/filters-B5niI_fX.d.ts +60 -0
- package/dist/{foundation-QPhUEUy8.js → foundation-GHZOKAzN.js} +1 -1
- package/dist/{foundation-QPhUEUy8.js.map → foundation-GHZOKAzN.js.map} +1 -1
- package/dist/index-8scPf0CS.d.ts +55 -0
- package/dist/index-9qsplZ8r.d.ts +18 -0
- package/dist/index-BIuYTMc2.d.ts +122 -0
- package/dist/{index-BoNNplSx.d.ts → index-BNrz99xy.d.ts} +3 -3
- package/dist/{index-BaytncQc.d.ts → index-BYQOPS8e.d.ts} +108 -51
- package/dist/{index-CXscCUg7.d.ts → index-BkZ7SPLc.d.ts} +19 -29
- package/dist/{index-D6YMj82n.d.ts → index-BnUku_aF.d.ts} +109 -114
- package/dist/index-BtDAHMW_.d.ts +50 -0
- package/dist/index-C-c_M_sE.d.ts +107 -0
- package/dist/index-CKefEBrI.d.ts +1 -0
- package/dist/{index-CMPUveNz.d.ts → index-CNIiC8Z_.d.ts} +11 -8
- package/dist/{index-DLUjc7Bx.d.ts → index-CbERNN3s.d.ts} +201 -12
- package/dist/{index-C768pAfu.d.ts → index-CsfxsN0t.d.ts} +4 -4
- package/dist/{index-CQecU53t.d.ts → index-DASjaiJL.d.ts} +119 -24
- package/dist/{index-CT8ZorFd.d.ts → index-DD7Vc4cE.d.ts} +2 -2
- package/dist/{index-DpeWm_vF.d.ts → index-DIc8OqWV.d.ts} +7 -6
- package/dist/index-DVI_vggD.d.ts +171 -0
- package/dist/index-DgsCqh_P.d.ts +1 -0
- package/dist/{index-DMBMM16q.d.ts → index-DqxQeYT2.d.ts} +39 -36
- package/dist/{index-D-UXGo5d.d.ts → index-Dsf9FRtr.d.ts} +19 -3
- package/dist/{index-DJG0kiII.d.ts → index-DxAReMEO.d.ts} +45 -34
- package/dist/index-UXRoZmd_.d.ts +70 -0
- package/dist/{index-CM0ZTePs.d.ts → index-isFvc5gd.d.ts} +2 -2
- package/dist/{index-jGgfEHfQ.d.ts → index-j3nuJWyJ.d.ts} +18 -10
- package/dist/{index-B6aSbaw2.d.ts → index-nVb7o0hc.d.ts} +2 -2
- package/dist/{index-Bv5XVLjH.d.ts → index-pbE88Tt7.d.ts} +2 -2
- package/dist/index-xpO4AQyS.d.ts +1 -0
- package/dist/index.d.ts +8 -8
- package/dist/index.js +13 -13
- package/dist/inventory--t6Zu55O.js +75 -0
- package/dist/inventory--t6Zu55O.js.map +1 -0
- package/dist/listCollectiblesPaginated-BlE5mSzh.d.ts +327 -0
- package/dist/listCollections-DWyqFSQ3.d.ts +828 -0
- package/dist/{looks-rare-C7cQztTR.js → looks-rare-2HBhMpOf.js} +1 -1
- package/dist/{looks-rare-C7cQztTR.js.map → looks-rare-2HBhMpOf.js.map} +1 -1
- package/dist/lowestListing-DsunDO1c.d.ts +475 -0
- package/dist/{magic-eden-D3r7jiBG.js → magic-eden-BYdTp-uk.js} +1 -1
- package/dist/{magic-eden-D3r7jiBG.js.map → magic-eden-BYdTp-uk.js.map} +1 -1
- package/dist/{manifold-DsX0CBP-.js → manifold-yE0x6ZmO.js} +1 -1
- package/dist/{manifold-DsX0CBP-.js.map → manifold-yE0x6ZmO.js.map} +1 -1
- package/dist/market-DuBpFsDg.js +219 -0
- package/dist/market-DuBpFsDg.js.map +1 -0
- package/dist/{marketCurrencies-Bzj8X4TL.d.ts → marketCurrencies-BgwmbGFk.d.ts} +57 -15
- package/dist/marketCurrencies-Bolonndy.js +59 -0
- package/dist/marketCurrencies-Bolonndy.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-Cz9RrtQo.js} +21 -21
- package/dist/marketplace-logos-Cz9RrtQo.js.map +1 -0
- package/dist/{marketplace.gen-w2YvbEEo.js → marketplace.gen-906FrJQJ.js} +75 -5
- package/dist/marketplace.gen-906FrJQJ.js.map +1 -0
- package/dist/{marketplaceConfig-BTy75Mbf.js → marketplaceConfig-Bqjo7NYO.js} +9 -5
- package/dist/marketplaceConfig-Bqjo7NYO.js.map +1 -0
- package/dist/{mintify-DiOoDmO1.js → mintify-BXQx3mZB.js} +1 -1
- package/dist/{mintify-DiOoDmO1.js.map → mintify-BXQx3mZB.js.map} +1 -1
- package/dist/{network-DtmiMhcg.js → network-DwdZ_5-7.js} +2 -2
- package/dist/network-DwdZ_5-7.js.map +1 -0
- package/dist/{networkconfigToWagmiChain-DbUf6HiO.js → networkconfigToWagmiChain-Ct-hGq8M.js} +4 -3
- package/dist/networkconfigToWagmiChain-Ct-hGq8M.js.map +1 -0
- package/dist/{nftx-CP82jNra.js → nftx-B929_3Ce.js} +1 -1
- package/dist/{nftx-CP82jNra.js.map → nftx-B929_3Ce.js.map} +1 -1
- package/dist/{okx-p9-4xRjs.js → okx-sZ0-Udny.js} +1 -1
- package/dist/{okx-p9-4xRjs.js.map → okx-sZ0-Udny.js.map} +1 -1
- package/dist/{open-sea-D2GwAmKS.js → open-sea-DO9PhTrz.js} +1 -1
- package/dist/{open-sea-D2GwAmKS.js.map → open-sea-DO9PhTrz.js.map} +1 -1
- package/dist/orders-DH76ym2e.js +469 -0
- package/dist/orders-DH76ym2e.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-CECrqatg.js +156 -0
- package/dist/primary-sales-CECrqatg.js.map +1 -0
- package/dist/{query-BG-MA1MB.d.ts → query-brXxOcH0.d.ts} +1 -1
- package/dist/{rarible-DqiiW9ki.js → rarible-Ccb2hs7y.js} +1 -1
- package/dist/{rarible-DqiiW9ki.js.map → rarible-Ccb2hs7y.js.map} +1 -1
- package/dist/react/_internal/api/index.d.ts +2 -2
- package/dist/react/_internal/api/index.js +6 -6
- package/dist/react/_internal/databeat/index.d.ts +1 -1
- package/dist/react/_internal/databeat/index.js +32 -22
- package/dist/react/_internal/index.d.ts +2 -2
- package/dist/react/_internal/index.js +8 -8
- package/dist/react/_internal/wagmi/index.d.ts +1 -1
- package/dist/react/_internal/wagmi/index.js +3 -3
- package/dist/react/hooks/config/index.d.ts +8 -8
- package/dist/react/hooks/config/index.js +32 -22
- package/dist/react/hooks/contracts/index.d.ts +6 -6
- package/dist/react/hooks/contracts/index.js +12 -12
- package/dist/react/hooks/data/collectibles/index.d.ts +10 -4
- package/dist/react/hooks/data/collectibles/index.js +32 -22
- package/dist/react/hooks/data/collections/index.d.ts +11 -11
- package/dist/react/hooks/data/collections/index.js +33 -23
- package/dist/react/hooks/data/index.d.ts +37 -29
- package/dist/react/hooks/data/index.js +33 -23
- package/dist/react/hooks/data/inventory/index.d.ts +36 -28
- package/dist/react/hooks/data/inventory/index.js +32 -22
- package/dist/react/hooks/data/market/index.d.ts +11 -5
- package/dist/react/hooks/data/market/index.js +32 -22
- package/dist/react/hooks/data/orders/index.d.ts +11 -5
- package/dist/react/hooks/data/orders/index.js +33 -23
- package/dist/react/hooks/data/primary-sales/index.d.ts +37 -29
- package/dist/react/hooks/data/primary-sales/index.js +33 -23
- package/dist/react/hooks/data/tokens/index.d.ts +4 -4
- package/dist/react/hooks/data/tokens/index.js +32 -22
- package/dist/react/hooks/index.d.ts +37 -29
- package/dist/react/hooks/index.js +33 -23
- package/dist/react/hooks/transactions/index.d.ts +2 -2
- package/dist/react/hooks/transactions/index.js +32 -22
- package/dist/react/hooks/ui/index.d.ts +4 -4
- package/dist/react/hooks/ui/index.js +32 -22
- package/dist/react/hooks/utils/index.d.ts +36 -28
- package/dist/react/hooks/utils/index.js +32 -22
- package/dist/react/index.d.ts +37 -29
- package/dist/react/index.js +33 -23
- package/dist/react/queries/collectibles/index.d.ts +11 -0
- package/dist/react/queries/collectibles/index.js +22 -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 +26 -16
- 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 +13 -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 +8 -8
- 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 +16 -16
- package/dist/react/ui/components/marketplace-collectible-card/components/footer/index.d.ts +7 -10
- package/dist/react/ui/components/marketplace-collectible-card/components/footer/index.js +32 -22
- package/dist/react/ui/components/marketplace-collectible-card/index.d.ts +4 -4
- package/dist/react/ui/components/marketplace-collectible-card/index.js +32 -22
- 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 +8 -8
- package/dist/react/ui/components/marketplace-logos/index.d.ts +21 -21
- package/dist/react/ui/components/marketplace-logos/index.js +1 -1
- package/dist/react/ui/icons/index.js +12 -12
- package/dist/react/ui/index.d.ts +4 -4
- package/dist/react/ui/index.js +32 -22
- package/dist/react/ui/modals/_internal/components/actionModal/index.d.ts +2 -2
- package/dist/react/ui/modals/_internal/components/actionModal/index.js +32 -22
- package/dist/react/utils/index.d.ts +3 -3
- package/dist/react/utils/index.js +6 -6
- package/dist/{react-BLJ4DkPx.js → react-CBsgOdVP.js} +1540 -474
- package/dist/react-CBsgOdVP.js.map +1 -0
- package/dist/{sequence-Bbb-TFKg.js → sequence-CRdb1yEs.js} +1 -1
- package/dist/{sequence-Bbb-TFKg.js.map → sequence-CRdb1yEs.js.map} +1 -1
- package/dist/styles/index.css +155 -1
- package/dist/{sudo-swap-CEPIM3Js.js → sudo-swap-BIklG2gq.js} +1 -1
- package/dist/{sudo-swap-CEPIM3Js.js.map → sudo-swap-BIklG2gq.js.map} +1 -1
- package/dist/{super-rare-CMEn9PoO.js → super-rare-h8645_5E.js} +1 -1
- package/dist/{super-rare-CMEn9PoO.js.map → super-rare-h8645_5E.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-CouzNX4j.js +57 -0
- package/dist/tokenBalances-CouzNX4j.js.map +1 -0
- package/dist/tokenSupplies-C3zJll0M.d.ts +265 -0
- package/dist/tokens-BvIRUCGG.js +225 -0
- package/dist/tokens-BvIRUCGG.js.map +1 -0
- package/dist/transaction-DZUW5RHu.js.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.js +2 -2
- package/dist/types-B_-cnkcP.js.map +1 -1
- package/dist/{types-D6LkVrF0.d.ts → types-CMDwfhfR.d.ts} +6 -5
- 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 +11 -11
- package/dist/{utils-BZEkdqWK.js → utils-9ToOvt-c.js} +50 -7
- package/dist/utils-9ToOvt-c.js.map +1 -0
- package/dist/{utils-oVZxdK0o.js → utils-B6di6O-C.js} +2 -2
- package/dist/utils-B6di6O-C.js.map +1 -0
- package/dist/utils-BCYTEOvy.js +122 -0
- package/dist/utils-BCYTEOvy.js.map +1 -0
- package/dist/waitForTransactionReceipt-CbSeUSXe.js +26 -0
- package/dist/waitForTransactionReceipt-CbSeUSXe.js.map +1 -0
- package/dist/{x2y2-DNe6JgtG.js → x2y2-OvF__ugj.js} +1 -1
- package/dist/{x2y2-DNe6JgtG.js.map → x2y2-OvF__ugj.js.map} +1 -1
- package/dist/{zora-w0Zqxxs4.js → zora-DzCeu-eE.js} +1 -1
- package/dist/{zora-w0Zqxxs4.js.map → zora-DzCeu-eE.js.map} +1 -1
- package/package.json +46 -41
- package/src/react/_internal/api/__mocks__/marketplace.msw.ts +15 -0
- package/src/react/_internal/api/index.ts +0 -1
- package/src/react/_internal/api/marketplace.gen.ts +1774 -2383
- package/src/react/_internal/api/query-keys.ts +23 -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 -10
- 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 +2 -17
- package/src/react/hooks/data/collectibles/useListCollectiblesPaginated.tsx +1 -1
- package/src/react/hooks/data/collectibles/useTokenBalances.tsx +1 -10
- package/src/react/hooks/data/collections/index.ts +2 -0
- package/src/react/hooks/data/collections/useCollection.tsx +1 -1
- package/src/react/hooks/data/collections/useCollectionActiveListingsCurrencies.test.tsx +112 -0
- package/src/react/hooks/data/collections/useCollectionActiveListingsCurrencies.tsx +74 -0
- package/src/react/hooks/data/collections/useCollectionActiveOffersCurrencies.test.tsx +110 -0
- package/src/react/hooks/data/collections/useCollectionActiveOffersCurrencies.tsx +74 -0
- 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 +2 -11
- 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.test.tsx +31 -2
- 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/index.ts +1 -0
- 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/primary-sales/usePrimarySaleItem.tsx +71 -0
- package/src/react/hooks/data/tokens/useGetTokenRanges.tsx +2 -2
- package/src/react/hooks/data/tokens/useListBalances.tsx +3 -12
- 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 +2 -14
- 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 +3 -0
- package/src/react/hooks/transactions/useGenerateSellTransaction.test.tsx +6 -0
- package/src/react/hooks/transactions/useProcessStep.test.tsx +8 -6
- package/src/react/hooks/transactions/useProcessStep.ts +8 -6
- 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.test.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 +14 -2
- package/src/react/queries/{balanceOfCollectible.ts → collectibles/balanceOfCollectible.ts} +23 -16
- 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} +22 -56
- package/src/react/queries/{listCollectiblesPaginated.ts → collectibles/listCollectiblesPaginated.ts} +22 -5
- package/src/react/queries/{tokenBalances.ts → collectibles/tokenBalances.ts} +20 -16
- package/src/react/queries/collections/activeListingsCurrencies.ts +84 -0
- package/src/react/queries/collections/activeOffersCurrencies.ts +84 -0
- 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 +7 -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/inventory/index.ts +1 -0
- package/src/react/queries/{inventory.ts → inventory/inventory.ts} +13 -14
- 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} +32 -6
- 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 +4 -0
- package/src/react/queries/primary-sales/primarySaleItem.ts +80 -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} +17 -22
- 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} +17 -34
- package/src/react/queries/{comparePrices.ts → utils/comparePrices.ts} +29 -5
- 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.stories.tsx +2 -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/components/footer/Footer.tsx +4 -18
- package/src/react/ui/components/marketplace-collectible-card/types.ts +1 -0
- package/src/react/ui/components/marketplace-collectible-card/variants/MarketCard.tsx +5 -2
- package/src/react/ui/components/marketplace-collectible-card/variants/ShopCard.tsx +2 -2
- package/src/react/ui/modals/BuyModal/__tests__/BuyModalRouter.test.tsx +3 -0
- package/src/react/ui/modals/BuyModal/__tests__/Modal1155.test.tsx +1 -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 -25
- 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 +77 -10
- package/src/react/ui/modals/MakeOfferModal/__tests__/Modal.test.tsx +12 -0
- package/src/react/ui/modals/MakeOfferModal/hooks/useGetTokenApproval.tsx +6 -1
- package/src/react/ui/modals/MakeOfferModal/hooks/useMakeOffer.tsx +15 -26
- package/src/react/ui/modals/MakeOfferModal/hooks/useTransactionSteps.tsx +3 -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 +34 -10
- package/src/react/ui/modals/_internal/components/expirationDateSelect/index.tsx +18 -9
- package/src/react/ui/modals/_internal/components/floorPriceText/__tests__/FloorPriceText.test.tsx +2 -0
- package/src/react/ui/modals/_internal/components/floorPriceText/index.tsx +1 -1
- package/src/react/ui/modals/_internal/components/priceInput/index.tsx +198 -11
- package/src/react/ui/modals/_internal/components/transactionDetails/index.tsx +58 -10
- package/src/react/ui/modals/_internal/components/transactionStatusModal/__tests__/utils.test.ts +2 -0
- package/src/react/utils/waitForTransactionReceipt.ts +26 -32
- package/src/styles/index.css +1 -0
- package/src/styles/styles.ts +156 -2
- package/src/types/index.ts +1 -1
- package/src/utils/abi/index.ts +1 -0
- package/src/utils/abi/mainModule.ts +158 -0
- package/src/utils/networkconfigToWagmiChain.ts +7 -0
- package/src/utils/price.ts +58 -0
- package/test/const.ts +2 -0
- package/test/server-setup.ts +0 -2
- package/dist/BellIcon-IpHHEy8h.js.map +0 -1
- package/dist/CartIcon-C8zbor8H.js.map +0 -1
- package/dist/CollectibleCard-C2EWF0zo.d.ts +0 -8
- package/dist/api-DuLKn__v.js.map +0 -1
- package/dist/builder-api-BFuZNOaN.js.map +0 -1
- package/dist/builder.gen-B9wR2nvF.js.map +0 -1
- package/dist/components-CUv-wQr8.js.map +0 -1
- package/dist/create-config-CIfejoCk.js.map +0 -1
- package/dist/filters-zkMJaPey.d.ts +0 -31
- package/dist/index-B8vaT3_s.d.ts +0 -18
- package/dist/index-Yobo6icm.d.ts +0 -234
- package/dist/listCollectiblesPaginated-Bq0QSOjJ.d.ts +0 -168
- package/dist/listCollections-dTCq00l5.d.ts +0 -669
- package/dist/lowestListing-CB5Te-Q9.d.ts +0 -168
- package/dist/marketplace-logos-Csv2MBwf.js.map +0 -1
- package/dist/marketplace.gen-w2YvbEEo.js.map +0 -1
- package/dist/marketplaceConfig-BTy75Mbf.js.map +0 -1
- package/dist/network-DtmiMhcg.js.map +0 -1
- package/dist/networkconfigToWagmiChain-DbUf6HiO.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/utils-BZEkdqWK.js.map +0 -1
- package/dist/utils-oVZxdK0o.js.map +0 -1
- package/dist/waitForTransactionReceipt-B08YZiDY.js +0 -26
- package/dist/waitForTransactionReceipt-B08YZiDY.js.map +0 -1
- package/src/react/_internal/api/__mocks__/laos.msw.ts +0 -387
- package/src/react/_internal/api/__tests__/laos-api.test.ts +0 -756
- package/src/react/_internal/api/laos-api.ts +0 -106
- package/src/react/hooks/data/collectibles/useBalanceOfCollectible.laos.test.tsx +0 -367
- package/src/react/queries/__tests__/balanceOfCollectible.laos.test.ts +0 -123
- package/src/react/queries/__tests__/inventory.laos.test.ts +0 -499
- package/src/react/queries/__tests__/tokenBalances.laos.test.ts +0 -123
- /package/dist/{index-Cg5cFzs-.d.ts → index-CCggO_hw.d.ts} +0 -0
- /package/dist/{abi-DYsUABe6.js → queries-CyajGg_O.js} +0 -0
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
import { queryOptions } from '@tanstack/react-query';
|
|
2
2
|
import { type Address, zeroAddress } from 'viem';
|
|
3
|
-
import type { SdkConfig } from '
|
|
4
|
-
import { compareAddress } from '
|
|
3
|
+
import type { SdkConfig } from '../../../types';
|
|
4
|
+
import { compareAddress } from '../../../utils';
|
|
5
5
|
import {
|
|
6
6
|
currencyKeys,
|
|
7
7
|
getMarketplaceClient,
|
|
8
8
|
getQueryClient,
|
|
9
|
+
type ListCurrenciesArgs,
|
|
10
|
+
OrderbookKind,
|
|
11
|
+
type QueryKeyArgs,
|
|
9
12
|
type ValuesOptional,
|
|
10
|
-
} from '
|
|
11
|
-
import type { StandardQueryOptions } from '
|
|
13
|
+
} from '../../_internal';
|
|
14
|
+
import type { StandardQueryOptions } from '../../types/query';
|
|
12
15
|
import { marketplaceConfigOptions } from './marketplaceConfig';
|
|
13
16
|
|
|
14
17
|
export interface FetchMarketCurrenciesParams {
|
|
@@ -44,6 +47,11 @@ export async function fetchMarketCurrencies(
|
|
|
44
47
|
const marketplaceConfig = await queryClient.fetchQuery(
|
|
45
48
|
marketplaceConfigOptions(config),
|
|
46
49
|
);
|
|
50
|
+
const collection = marketplaceConfig.market.collections.find((collection) =>
|
|
51
|
+
compareAddress(collection.itemsAddress, collectionAddress),
|
|
52
|
+
);
|
|
53
|
+
const isOpensea =
|
|
54
|
+
collection?.destinationMarketplace === OrderbookKind.opensea;
|
|
47
55
|
|
|
48
56
|
const currenciesOptions = marketplaceConfig.market.collections.find(
|
|
49
57
|
(collection) =>
|
|
@@ -51,7 +59,8 @@ export async function fetchMarketCurrencies(
|
|
|
51
59
|
)?.currencyOptions;
|
|
52
60
|
|
|
53
61
|
// Filter currencies based on collection currency options
|
|
54
|
-
|
|
62
|
+
// Skip filtering for OpenSea as it uses API-based currency support flags
|
|
63
|
+
if (currenciesOptions && !isOpensea) {
|
|
55
64
|
currencies = currencies.filter((currency) =>
|
|
56
65
|
currenciesOptions.includes(currency.contractAddress),
|
|
57
66
|
);
|
|
@@ -70,6 +79,23 @@ export type MarketCurrenciesQueryOptions =
|
|
|
70
79
|
query?: StandardQueryOptions;
|
|
71
80
|
};
|
|
72
81
|
|
|
82
|
+
export function getMarketCurrenciesQueryKey(
|
|
83
|
+
params: MarketCurrenciesQueryOptions,
|
|
84
|
+
) {
|
|
85
|
+
const apiArgs = {
|
|
86
|
+
chainId: String(params.chainId),
|
|
87
|
+
} satisfies QueryKeyArgs<ListCurrenciesArgs>;
|
|
88
|
+
|
|
89
|
+
return [
|
|
90
|
+
...currencyKeys.lists,
|
|
91
|
+
apiArgs,
|
|
92
|
+
{
|
|
93
|
+
includeNativeCurrency: params.includeNativeCurrency,
|
|
94
|
+
collectionAddress: params.collectionAddress,
|
|
95
|
+
},
|
|
96
|
+
] as const;
|
|
97
|
+
}
|
|
98
|
+
|
|
73
99
|
export function marketCurrenciesQueryOptions(
|
|
74
100
|
params: MarketCurrenciesQueryOptions,
|
|
75
101
|
) {
|
|
@@ -78,7 +104,7 @@ export function marketCurrenciesQueryOptions(
|
|
|
78
104
|
);
|
|
79
105
|
|
|
80
106
|
return queryOptions({
|
|
81
|
-
queryKey:
|
|
107
|
+
queryKey: getMarketCurrenciesQueryKey(params),
|
|
82
108
|
queryFn: () =>
|
|
83
109
|
fetchMarketCurrencies({
|
|
84
110
|
// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { queryOptions } from '@tanstack/react-query';
|
|
2
2
|
import type { Address } from 'viem';
|
|
3
|
-
import type { ContractType, OrderbookKind, SdkConfig } from '
|
|
3
|
+
import type { ContractType, OrderbookKind, SdkConfig } from '../../../types';
|
|
4
4
|
import type {
|
|
5
5
|
MarketCollection,
|
|
6
6
|
MarketPage,
|
|
7
7
|
MarketplaceConfig,
|
|
8
8
|
ShopCollection,
|
|
9
9
|
ShopPage,
|
|
10
|
-
} from '
|
|
11
|
-
import { configKeys, getBuilderClient } from '
|
|
12
|
-
import type { LookupMarketplaceReturn } from '
|
|
13
|
-
import { persistentQueryMeta } from '
|
|
10
|
+
} from '../../../types/new-marketplace-types';
|
|
11
|
+
import { configKeys, getBuilderClient } from '../../_internal';
|
|
12
|
+
import type { LookupMarketplaceReturn } from '../../_internal/api/builder.gen';
|
|
13
|
+
import { persistentQueryMeta } from '../../_internal/query-meta';
|
|
14
14
|
|
|
15
15
|
export const fetchMarketplaceConfig = async ({
|
|
16
16
|
config,
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { queryOptions } from '@tanstack/react-query';
|
|
2
|
+
import type { SdkConfig } from '../../../types';
|
|
3
|
+
import {
|
|
4
|
+
getMarketplaceClient,
|
|
5
|
+
type QueryKeyArgs,
|
|
6
|
+
type ValuesOptional,
|
|
7
|
+
} from '../../_internal';
|
|
8
|
+
import type {
|
|
9
|
+
GetCountOfAllOrdersArgs,
|
|
10
|
+
OrderSide,
|
|
11
|
+
} from '../../_internal/api/marketplace.gen';
|
|
12
|
+
import { collectionKeys } from '../../_internal/api/query-keys';
|
|
13
|
+
import type { StandardQueryOptions } from '../../types/query';
|
|
14
|
+
|
|
15
|
+
export interface FetchCountItemsOrdersForCollectionParams {
|
|
16
|
+
chainId: number;
|
|
17
|
+
collectionAddress: string;
|
|
18
|
+
config: SdkConfig;
|
|
19
|
+
side: OrderSide;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Fetches count of orders for a collection from the marketplace API
|
|
24
|
+
*/
|
|
25
|
+
export async function fetchCountItemsOrdersForCollection(
|
|
26
|
+
params: FetchCountItemsOrdersForCollectionParams,
|
|
27
|
+
) {
|
|
28
|
+
const { collectionAddress, chainId, config, side } = params;
|
|
29
|
+
|
|
30
|
+
const client = getMarketplaceClient(config);
|
|
31
|
+
|
|
32
|
+
const apiArgs: GetCountOfAllOrdersArgs = {
|
|
33
|
+
contractAddress: collectionAddress,
|
|
34
|
+
chainId: String(chainId),
|
|
35
|
+
side,
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
const result = await client.getCountOfAllOrders(apiArgs);
|
|
39
|
+
return result.count;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export type CountItemsOrdersForCollectionQueryOptions =
|
|
43
|
+
ValuesOptional<FetchCountItemsOrdersForCollectionParams> & {
|
|
44
|
+
query?: StandardQueryOptions;
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
export function getCountItemsOrdersForCollectionQueryKey(
|
|
48
|
+
params: CountItemsOrdersForCollectionQueryOptions,
|
|
49
|
+
) {
|
|
50
|
+
const apiArgs = {
|
|
51
|
+
chainId: String(params.chainId),
|
|
52
|
+
contractAddress: params.collectionAddress,
|
|
53
|
+
side: params.side,
|
|
54
|
+
} satisfies QueryKeyArgs<GetCountOfAllOrdersArgs>;
|
|
55
|
+
|
|
56
|
+
return [...collectionKeys.collectionItemsOrdersCount, apiArgs] as const;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export function countItemsOrdersForCollectionQueryOptions(
|
|
60
|
+
params: CountItemsOrdersForCollectionQueryOptions,
|
|
61
|
+
) {
|
|
62
|
+
const enabled = Boolean(
|
|
63
|
+
params.collectionAddress &&
|
|
64
|
+
params.chainId &&
|
|
65
|
+
params.config &&
|
|
66
|
+
params.side &&
|
|
67
|
+
(params.query?.enabled ?? true),
|
|
68
|
+
);
|
|
69
|
+
|
|
70
|
+
return queryOptions({
|
|
71
|
+
queryKey: getCountItemsOrdersForCollectionQueryKey(params),
|
|
72
|
+
queryFn: () =>
|
|
73
|
+
fetchCountItemsOrdersForCollection({
|
|
74
|
+
// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined
|
|
75
|
+
chainId: params.chainId!,
|
|
76
|
+
// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined
|
|
77
|
+
collectionAddress: params.collectionAddress!,
|
|
78
|
+
// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined
|
|
79
|
+
config: params.config!,
|
|
80
|
+
// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined
|
|
81
|
+
side: params.side!,
|
|
82
|
+
}),
|
|
83
|
+
...params.query,
|
|
84
|
+
enabled,
|
|
85
|
+
});
|
|
86
|
+
}
|
package/src/react/queries/{countListingsForCollectible.ts → orders/countListingsForCollectible.ts}
RENAMED
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import { queryOptions } from '@tanstack/react-query';
|
|
2
|
-
import type { SdkConfig } from '
|
|
3
|
-
import {
|
|
2
|
+
import type { SdkConfig } from '../../../types';
|
|
3
|
+
import {
|
|
4
|
+
getMarketplaceClient,
|
|
5
|
+
type QueryKeyArgs,
|
|
6
|
+
type ValuesOptional,
|
|
7
|
+
} from '../../_internal';
|
|
4
8
|
import type {
|
|
5
9
|
GetCountOfListingsForCollectibleArgs,
|
|
6
10
|
OrderFilter,
|
|
7
|
-
} from '
|
|
8
|
-
import { collectableKeys } from '
|
|
9
|
-
import type { StandardQueryOptions } from '
|
|
11
|
+
} from '../../_internal/api/marketplace.gen';
|
|
12
|
+
import { collectableKeys } from '../../_internal/api/query-keys';
|
|
13
|
+
import type { StandardQueryOptions } from '../../types/query';
|
|
10
14
|
|
|
11
15
|
export interface FetchCountListingsForCollectibleParams {
|
|
12
16
|
chainId: number;
|
|
@@ -42,6 +46,19 @@ export type CountListingsForCollectibleQueryOptions =
|
|
|
42
46
|
query?: StandardQueryOptions;
|
|
43
47
|
};
|
|
44
48
|
|
|
49
|
+
export function getCountListingsForCollectibleQueryKey(
|
|
50
|
+
params: CountListingsForCollectibleQueryOptions,
|
|
51
|
+
) {
|
|
52
|
+
const apiArgs = {
|
|
53
|
+
chainId: String(params.chainId),
|
|
54
|
+
contractAddress: params.collectionAddress,
|
|
55
|
+
tokenId: params.collectibleId,
|
|
56
|
+
filter: params.filter,
|
|
57
|
+
} satisfies QueryKeyArgs<GetCountOfListingsForCollectibleArgs>;
|
|
58
|
+
|
|
59
|
+
return [...collectableKeys.listingsCount, apiArgs] as const;
|
|
60
|
+
}
|
|
61
|
+
|
|
45
62
|
export function countListingsForCollectibleQueryOptions(
|
|
46
63
|
params: CountListingsForCollectibleQueryOptions,
|
|
47
64
|
) {
|
|
@@ -54,7 +71,7 @@ export function countListingsForCollectibleQueryOptions(
|
|
|
54
71
|
);
|
|
55
72
|
|
|
56
73
|
return queryOptions({
|
|
57
|
-
queryKey:
|
|
74
|
+
queryKey: getCountListingsForCollectibleQueryKey(params),
|
|
58
75
|
queryFn: () =>
|
|
59
76
|
fetchCountListingsForCollectible({
|
|
60
77
|
// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined
|
package/src/react/queries/{countOffersForCollectible.ts → orders/countOffersForCollectible.ts}
RENAMED
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import { queryOptions } from '@tanstack/react-query';
|
|
2
|
-
import type { SdkConfig } from '
|
|
3
|
-
import {
|
|
2
|
+
import type { SdkConfig } from '../../../types';
|
|
3
|
+
import {
|
|
4
|
+
getMarketplaceClient,
|
|
5
|
+
type QueryKeyArgs,
|
|
6
|
+
type ValuesOptional,
|
|
7
|
+
} from '../../_internal';
|
|
4
8
|
import type {
|
|
5
9
|
GetCountOfOffersForCollectibleArgs,
|
|
6
10
|
OrderFilter,
|
|
7
|
-
} from '
|
|
8
|
-
import { collectableKeys } from '
|
|
9
|
-
import type { StandardQueryOptions } from '
|
|
11
|
+
} from '../../_internal/api/marketplace.gen';
|
|
12
|
+
import { collectableKeys } from '../../_internal/api/query-keys';
|
|
13
|
+
import type { StandardQueryOptions } from '../../types/query';
|
|
10
14
|
|
|
11
15
|
export interface FetchCountOffersForCollectibleParams {
|
|
12
16
|
chainId: number;
|
|
@@ -42,6 +46,19 @@ export type CountOffersForCollectibleQueryOptions =
|
|
|
42
46
|
query?: StandardQueryOptions;
|
|
43
47
|
};
|
|
44
48
|
|
|
49
|
+
export function getCountOffersForCollectibleQueryKey(
|
|
50
|
+
params: CountOffersForCollectibleQueryOptions,
|
|
51
|
+
) {
|
|
52
|
+
const apiArgs = {
|
|
53
|
+
chainId: String(params.chainId),
|
|
54
|
+
contractAddress: params.collectionAddress,
|
|
55
|
+
tokenId: params.collectibleId,
|
|
56
|
+
filter: params.filter,
|
|
57
|
+
} satisfies QueryKeyArgs<GetCountOfOffersForCollectibleArgs>;
|
|
58
|
+
|
|
59
|
+
return [...collectableKeys.offersCount, apiArgs] as const;
|
|
60
|
+
}
|
|
61
|
+
|
|
45
62
|
export function countOffersForCollectibleQueryOptions(
|
|
46
63
|
params: CountOffersForCollectibleQueryOptions,
|
|
47
64
|
) {
|
|
@@ -54,7 +71,7 @@ export function countOffersForCollectibleQueryOptions(
|
|
|
54
71
|
);
|
|
55
72
|
|
|
56
73
|
return queryOptions({
|
|
57
|
-
queryKey:
|
|
74
|
+
queryKey: getCountOffersForCollectibleQueryKey(params),
|
|
58
75
|
queryFn: () =>
|
|
59
76
|
fetchCountOffersForCollectible({
|
|
60
77
|
// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { queryOptions } from '@tanstack/react-query';
|
|
2
|
-
import type { SdkConfig } from '
|
|
2
|
+
import type { SdkConfig } from '../../../types';
|
|
3
3
|
import {
|
|
4
4
|
collectableKeys,
|
|
5
5
|
type GetFloorOrderArgs,
|
|
6
6
|
getMarketplaceClient,
|
|
7
|
+
type QueryKeyArgs,
|
|
7
8
|
type ValuesOptional,
|
|
8
|
-
} from '
|
|
9
|
-
import type { StandardQueryOptions } from '
|
|
9
|
+
} from '../../_internal';
|
|
10
|
+
import type { StandardQueryOptions } from '../../types/query';
|
|
10
11
|
|
|
11
12
|
export interface FetchFloorOrderParams
|
|
12
13
|
extends Omit<GetFloorOrderArgs, 'contractAddress' | 'chainId'> {
|
|
@@ -37,6 +38,16 @@ export type FloorOrderQueryOptions = ValuesOptional<FetchFloorOrderParams> & {
|
|
|
37
38
|
query?: StandardQueryOptions;
|
|
38
39
|
};
|
|
39
40
|
|
|
41
|
+
export function getFloorOrderQueryKey(params: FloorOrderQueryOptions) {
|
|
42
|
+
const apiArgs = {
|
|
43
|
+
chainId: String(params.chainId),
|
|
44
|
+
contractAddress: params.collectionAddress,
|
|
45
|
+
filter: params.filter,
|
|
46
|
+
} satisfies QueryKeyArgs<GetFloorOrderArgs>;
|
|
47
|
+
|
|
48
|
+
return [...collectableKeys.floorOrders, apiArgs] as const;
|
|
49
|
+
}
|
|
50
|
+
|
|
40
51
|
export function floorOrderQueryOptions(params: FloorOrderQueryOptions) {
|
|
41
52
|
const enabled = Boolean(
|
|
42
53
|
params.collectionAddress &&
|
|
@@ -46,7 +57,7 @@ export function floorOrderQueryOptions(params: FloorOrderQueryOptions) {
|
|
|
46
57
|
);
|
|
47
58
|
|
|
48
59
|
return queryOptions({
|
|
49
|
-
queryKey:
|
|
60
|
+
queryKey: getFloorOrderQueryKey(params),
|
|
50
61
|
queryFn: () =>
|
|
51
62
|
fetchFloorOrder({
|
|
52
63
|
// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { queryOptions } from '@tanstack/react-query';
|
|
2
|
+
import type { SdkConfig } from '../../../types';
|
|
3
|
+
import {
|
|
4
|
+
getMarketplaceClient,
|
|
5
|
+
type QueryKeyArgs,
|
|
6
|
+
type ValuesOptional,
|
|
7
|
+
} from '../../_internal';
|
|
8
|
+
import type {
|
|
9
|
+
GetCountOfFilteredOrdersArgs,
|
|
10
|
+
OrderSide,
|
|
11
|
+
OrdersFilter,
|
|
12
|
+
} from '../../_internal/api/marketplace.gen';
|
|
13
|
+
import { collectionKeys } from '../../_internal/api/query-keys';
|
|
14
|
+
import type { StandardQueryOptions } from '../../types/query';
|
|
15
|
+
|
|
16
|
+
export interface FetchGetCountOfFilteredOrdersParams {
|
|
17
|
+
chainId: number;
|
|
18
|
+
collectionAddress: string;
|
|
19
|
+
config: SdkConfig;
|
|
20
|
+
side: OrderSide;
|
|
21
|
+
filter?: OrdersFilter;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export async function fetchGetCountOfFilteredOrders(
|
|
25
|
+
params: FetchGetCountOfFilteredOrdersParams,
|
|
26
|
+
) {
|
|
27
|
+
const { collectionAddress, chainId, config, side, filter } = params;
|
|
28
|
+
|
|
29
|
+
const client = getMarketplaceClient(config);
|
|
30
|
+
|
|
31
|
+
const apiArgs: GetCountOfFilteredOrdersArgs = {
|
|
32
|
+
contractAddress: collectionAddress,
|
|
33
|
+
chainId: String(chainId),
|
|
34
|
+
side,
|
|
35
|
+
filter,
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
const result = await client.getCountOfFilteredOrders(apiArgs);
|
|
39
|
+
return result.count;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export type GetCountOfFilteredOrdersQueryOptions =
|
|
43
|
+
ValuesOptional<FetchGetCountOfFilteredOrdersParams> & {
|
|
44
|
+
query?: StandardQueryOptions;
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
export function getCountOfFilteredOrdersQueryKey(
|
|
48
|
+
params: GetCountOfFilteredOrdersQueryOptions,
|
|
49
|
+
) {
|
|
50
|
+
const apiArgs = {
|
|
51
|
+
chainId: String(params.chainId),
|
|
52
|
+
contractAddress: params.collectionAddress,
|
|
53
|
+
side: params.side,
|
|
54
|
+
filter: params.filter,
|
|
55
|
+
} satisfies QueryKeyArgs<GetCountOfFilteredOrdersArgs>;
|
|
56
|
+
|
|
57
|
+
return [...collectionKeys.getCountOfFilteredOrders, apiArgs] as const;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export function getCountOfFilteredOrdersQueryOptions(
|
|
61
|
+
params: GetCountOfFilteredOrdersQueryOptions,
|
|
62
|
+
) {
|
|
63
|
+
const enabled = Boolean(
|
|
64
|
+
params.collectionAddress &&
|
|
65
|
+
params.chainId &&
|
|
66
|
+
params.config &&
|
|
67
|
+
params.side &&
|
|
68
|
+
(params.query?.enabled ?? true),
|
|
69
|
+
);
|
|
70
|
+
|
|
71
|
+
return queryOptions({
|
|
72
|
+
queryKey: getCountOfFilteredOrdersQueryKey(params),
|
|
73
|
+
queryFn: () =>
|
|
74
|
+
fetchGetCountOfFilteredOrders({
|
|
75
|
+
// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined
|
|
76
|
+
chainId: params.chainId!,
|
|
77
|
+
// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined
|
|
78
|
+
collectionAddress: params.collectionAddress!,
|
|
79
|
+
// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined
|
|
80
|
+
config: params.config!,
|
|
81
|
+
// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined
|
|
82
|
+
side: params.side!,
|
|
83
|
+
filter: params.filter,
|
|
84
|
+
}),
|
|
85
|
+
...params.query,
|
|
86
|
+
enabled,
|
|
87
|
+
});
|
|
88
|
+
}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { queryOptions } from '@tanstack/react-query';
|
|
2
|
-
import type { SdkConfig } from '
|
|
2
|
+
import type { SdkConfig } from '../../../types';
|
|
3
3
|
import {
|
|
4
4
|
collectableKeys,
|
|
5
5
|
type GetCollectibleHighestOfferArgs,
|
|
6
6
|
getMarketplaceClient,
|
|
7
|
+
type QueryKeyArgs,
|
|
7
8
|
type ValuesOptional,
|
|
8
|
-
} from '
|
|
9
|
-
import type { StandardQueryOptions } from '
|
|
9
|
+
} from '../../_internal';
|
|
10
|
+
import type { StandardQueryOptions } from '../../types/query';
|
|
10
11
|
|
|
11
12
|
export interface FetchHighestOfferParams
|
|
12
13
|
extends Omit<GetCollectibleHighestOfferArgs, 'contractAddress' | 'chainId'> {
|
|
@@ -38,6 +39,17 @@ export type HighestOfferQueryOptions =
|
|
|
38
39
|
query?: StandardQueryOptions;
|
|
39
40
|
};
|
|
40
41
|
|
|
42
|
+
export function getHighestOfferQueryKey(params: HighestOfferQueryOptions) {
|
|
43
|
+
const apiArgs = {
|
|
44
|
+
chainId: String(params.chainId),
|
|
45
|
+
contractAddress: params.collectionAddress,
|
|
46
|
+
tokenId: params.tokenId,
|
|
47
|
+
filter: params.filter,
|
|
48
|
+
} satisfies QueryKeyArgs<GetCollectibleHighestOfferArgs>;
|
|
49
|
+
|
|
50
|
+
return [...collectableKeys.highestOffers, apiArgs] as const;
|
|
51
|
+
}
|
|
52
|
+
|
|
41
53
|
export function highestOfferQueryOptions(params: HighestOfferQueryOptions) {
|
|
42
54
|
const enabled = Boolean(
|
|
43
55
|
params.collectionAddress &&
|
|
@@ -48,7 +60,7 @@ export function highestOfferQueryOptions(params: HighestOfferQueryOptions) {
|
|
|
48
60
|
);
|
|
49
61
|
|
|
50
62
|
return queryOptions({
|
|
51
|
-
queryKey:
|
|
63
|
+
queryKey: getHighestOfferQueryKey(params),
|
|
52
64
|
queryFn: () =>
|
|
53
65
|
fetchHighestOffer({
|
|
54
66
|
// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from './countItemsOrdersForCollection';
|
|
2
|
+
export * from './countListingsForCollectible';
|
|
3
|
+
export * from './countOffersForCollectible';
|
|
4
|
+
export * from './floorOrder';
|
|
5
|
+
export * from './getCountOfFilteredOrders';
|
|
6
|
+
export * from './highestOffer';
|
|
7
|
+
export * from './listItemsOrdersForCollection';
|
|
8
|
+
export * from './listItemsOrdersForCollectionPaginated';
|
|
9
|
+
export * from './listListingsForCollectible';
|
|
10
|
+
export * from './listOffersForCollectible';
|
|
11
|
+
export * from './lowestListing';
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { infiniteQueryOptions } from '@tanstack/react-query';
|
|
2
|
+
import type { Address } from 'viem';
|
|
3
|
+
import type { Page, SdkConfig } from '../../../types';
|
|
4
|
+
import type {
|
|
5
|
+
ListOrdersWithCollectiblesArgs,
|
|
6
|
+
ListOrdersWithCollectiblesReturn,
|
|
7
|
+
QueryKeyArgs,
|
|
8
|
+
ValuesOptional,
|
|
9
|
+
} from '../../_internal';
|
|
10
|
+
import { collectionKeys, getMarketplaceClient } from '../../_internal';
|
|
11
|
+
import type { StandardInfiniteQueryOptions } from '../../types/query';
|
|
12
|
+
|
|
13
|
+
export interface FetchListItemsOrdersForCollectionParams
|
|
14
|
+
extends Omit<ListOrdersWithCollectiblesArgs, 'chainId' | 'contractAddress'> {
|
|
15
|
+
chainId: number;
|
|
16
|
+
collectionAddress: Address;
|
|
17
|
+
config: SdkConfig;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export async function fetchListItemsOrdersForCollection(
|
|
21
|
+
params: FetchListItemsOrdersForCollectionParams,
|
|
22
|
+
page: Page,
|
|
23
|
+
): Promise<ListOrdersWithCollectiblesReturn> {
|
|
24
|
+
const { collectionAddress, chainId, config, ...additionalApiParams } = params;
|
|
25
|
+
const marketplaceClient = getMarketplaceClient(config);
|
|
26
|
+
|
|
27
|
+
const apiArgs: ListOrdersWithCollectiblesArgs = {
|
|
28
|
+
contractAddress: collectionAddress,
|
|
29
|
+
chainId: String(chainId),
|
|
30
|
+
page: page,
|
|
31
|
+
...additionalApiParams,
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
return await marketplaceClient.listOrdersWithCollectibles(apiArgs);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export type ListItemsOrdersForCollectionQueryOptions =
|
|
38
|
+
ValuesOptional<FetchListItemsOrdersForCollectionParams> & {
|
|
39
|
+
query?: StandardInfiniteQueryOptions;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
export function getListItemsOrdersForCollectionQueryKey(
|
|
43
|
+
params: ListItemsOrdersForCollectionQueryOptions,
|
|
44
|
+
) {
|
|
45
|
+
const apiArgs = {
|
|
46
|
+
chainId: String(params.chainId),
|
|
47
|
+
contractAddress: params.collectionAddress,
|
|
48
|
+
side: params.side,
|
|
49
|
+
filter: params.filter,
|
|
50
|
+
} satisfies QueryKeyArgs<Omit<ListOrdersWithCollectiblesArgs, 'page'>>;
|
|
51
|
+
|
|
52
|
+
return [...collectionKeys.collectionItemsOrders, apiArgs] as const;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export function listItemsOrdersForCollectionQueryOptions(
|
|
56
|
+
params: ListItemsOrdersForCollectionQueryOptions,
|
|
57
|
+
) {
|
|
58
|
+
const enabled = Boolean(
|
|
59
|
+
params.collectionAddress &&
|
|
60
|
+
params.chainId &&
|
|
61
|
+
params.config &&
|
|
62
|
+
params.side &&
|
|
63
|
+
(params.query?.enabled ?? true),
|
|
64
|
+
);
|
|
65
|
+
|
|
66
|
+
return infiniteQueryOptions({
|
|
67
|
+
queryKey: getListItemsOrdersForCollectionQueryKey(params),
|
|
68
|
+
queryFn: async ({ pageParam }) => {
|
|
69
|
+
return fetchListItemsOrdersForCollection(
|
|
70
|
+
{
|
|
71
|
+
// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined
|
|
72
|
+
chainId: params.chainId!,
|
|
73
|
+
// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined
|
|
74
|
+
collectionAddress: params.collectionAddress!,
|
|
75
|
+
// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined
|
|
76
|
+
config: params.config!,
|
|
77
|
+
// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined
|
|
78
|
+
side: params.side!,
|
|
79
|
+
filter: params.filter,
|
|
80
|
+
},
|
|
81
|
+
pageParam,
|
|
82
|
+
);
|
|
83
|
+
},
|
|
84
|
+
initialPageParam: (params.page || { page: 1, pageSize: 30 }) as Page,
|
|
85
|
+
getNextPageParam: (lastPage) =>
|
|
86
|
+
lastPage.page?.more ? lastPage.page : undefined,
|
|
87
|
+
...params.query,
|
|
88
|
+
enabled,
|
|
89
|
+
});
|
|
90
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { queryOptions } from '@tanstack/react-query';
|
|
2
|
+
import type { Address } from 'viem';
|
|
3
|
+
import type { Page, SdkConfig } from '../../../types';
|
|
4
|
+
import type {
|
|
5
|
+
ListOrdersWithCollectiblesArgs,
|
|
6
|
+
ListOrdersWithCollectiblesReturn,
|
|
7
|
+
ValuesOptional,
|
|
8
|
+
} from '../../_internal';
|
|
9
|
+
import { collectionKeys, getMarketplaceClient } from '../../_internal';
|
|
10
|
+
import type { StandardQueryOptions } from '../../types/query';
|
|
11
|
+
|
|
12
|
+
export interface FetchListItemsOrdersForCollectionPaginatedParams
|
|
13
|
+
extends Omit<
|
|
14
|
+
ListOrdersWithCollectiblesArgs,
|
|
15
|
+
'chainId' | 'contractAddress' | 'page'
|
|
16
|
+
> {
|
|
17
|
+
chainId: number;
|
|
18
|
+
collectionAddress: Address;
|
|
19
|
+
page?: number;
|
|
20
|
+
pageSize?: number;
|
|
21
|
+
config: SdkConfig;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Fetches a list of items orders for a collection with pagination support from the Marketplace API
|
|
26
|
+
*/
|
|
27
|
+
export async function fetchListItemsOrdersForCollectionPaginated(
|
|
28
|
+
params: FetchListItemsOrdersForCollectionPaginatedParams,
|
|
29
|
+
): Promise<ListOrdersWithCollectiblesReturn> {
|
|
30
|
+
const {
|
|
31
|
+
collectionAddress,
|
|
32
|
+
chainId,
|
|
33
|
+
config,
|
|
34
|
+
page = 1,
|
|
35
|
+
pageSize = 30,
|
|
36
|
+
...additionalApiParams
|
|
37
|
+
} = params;
|
|
38
|
+
const marketplaceClient = getMarketplaceClient(config);
|
|
39
|
+
|
|
40
|
+
const pageParams: Page = {
|
|
41
|
+
page,
|
|
42
|
+
pageSize,
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
const apiArgs: ListOrdersWithCollectiblesArgs = {
|
|
46
|
+
contractAddress: collectionAddress,
|
|
47
|
+
chainId: String(chainId),
|
|
48
|
+
page: pageParams,
|
|
49
|
+
...additionalApiParams,
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
return await marketplaceClient.listOrdersWithCollectibles(apiArgs);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export type ListItemsOrdersForCollectionPaginatedQueryOptions =
|
|
56
|
+
ValuesOptional<FetchListItemsOrdersForCollectionPaginatedParams> & {
|
|
57
|
+
query?: StandardQueryOptions;
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
export function listItemsOrdersForCollectionPaginatedQueryOptions(
|
|
61
|
+
params: ListItemsOrdersForCollectionPaginatedQueryOptions,
|
|
62
|
+
) {
|
|
63
|
+
const enabled = Boolean(
|
|
64
|
+
params.collectionAddress &&
|
|
65
|
+
params.chainId &&
|
|
66
|
+
params.config &&
|
|
67
|
+
params.side &&
|
|
68
|
+
(params.query?.enabled ?? true),
|
|
69
|
+
);
|
|
70
|
+
|
|
71
|
+
return queryOptions({
|
|
72
|
+
queryKey: [...collectionKeys.collectionItemsOrders, 'paginated', params],
|
|
73
|
+
queryFn: () =>
|
|
74
|
+
fetchListItemsOrdersForCollectionPaginated({
|
|
75
|
+
// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined
|
|
76
|
+
chainId: params.chainId!,
|
|
77
|
+
// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined
|
|
78
|
+
collectionAddress: params.collectionAddress!,
|
|
79
|
+
// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined
|
|
80
|
+
config: params.config!,
|
|
81
|
+
// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined
|
|
82
|
+
side: params.side!,
|
|
83
|
+
filter: params.filter,
|
|
84
|
+
page: params.page,
|
|
85
|
+
pageSize: params.pageSize,
|
|
86
|
+
}),
|
|
87
|
+
...params.query,
|
|
88
|
+
enabled,
|
|
89
|
+
});
|
|
90
|
+
}
|