@0xsequence/marketplace-sdk 1.0.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/.storybook/main.ts +1 -1
- package/.storybook/preview.tsx +0 -1
- package/CHANGELOG.md +84 -13
- package/dist/BellIcon-ByhygxBO.js +45 -0
- package/dist/BellIcon-ByhygxBO.js.map +1 -0
- package/dist/{BellIcon-Cb9YEUzJ.js → CartIcon-Bt3rQYGk.js} +10 -49
- package/dist/CartIcon-Bt3rQYGk.js.map +1 -0
- package/dist/CollectibleCard-CVpdgXA8.d.ts +8 -0
- package/dist/{_internal-DslqcNC1.js → _internal-DkS2VUn5.js} +1 -1
- package/dist/{_internal-DslqcNC1.js.map → _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-DJ98gZQp.js → alien_swap-DoY6XfMA.js} +1 -1
- package/dist/{alien_swap-DJ98gZQp.js.map → alien_swap-DoY6XfMA.js.map} +1 -1
- package/dist/{api-BmEQfSQa.js → api-BoO0V5aJ.js} +11 -4
- package/dist/api-BoO0V5aJ.js.map +1 -0
- package/dist/{aqua-xyz-n1PcCCZ0.js → aqua-xyz-BBDxnG14.js} +1 -1
- package/dist/{aqua-xyz-n1PcCCZ0.js.map → aqua-xyz-BBDxnG14.js.map} +1 -1
- package/dist/{aura-Bevk_YkS.js → aura-DGx2zwvF.js} +1 -1
- package/dist/{aura-Bevk_YkS.js.map → aura-DGx2zwvF.js.map} +1 -1
- package/dist/{blur-B5sHErx5.js → blur-D8GKrRrq.js} +1 -1
- package/dist/{blur-B5sHErx5.js.map → blur-D8GKrRrq.js.map} +1 -1
- package/dist/builder-api-BFuZNOaN.js.map +1 -1
- package/dist/builder.gen-B9wR2nvF.js.map +1 -1
- package/dist/{coinbase-D30W-lxA.js → coinbase-DOry4PXY.js} +1 -1
- package/dist/{coinbase-D30W-lxA.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-CosnX7F9.js +119 -0
- package/dist/components-CosnX7F9.js.map +1 -0
- package/dist/{contracts-DPHFT2TA.js → contracts-BP_0vX48.js} +4 -5
- package/dist/{contracts-DPHFT2TA.js.map → contracts-BP_0vX48.js.map} +1 -1
- package/dist/{create-config-6uynwTeb.js → create-config-CIfejoCk.js} +6 -11
- package/dist/create-config-CIfejoCk.js.map +1 -0
- package/dist/{create-config-lLSrnkbb.d.ts → create-config-ZOB7i4ZJ.d.ts} +135 -37
- package/dist/{element-C2NJexro.js → element-ciybd_VF.js} +1 -1
- package/dist/{element-C2NJexro.js.map → element-ciybd_VF.js.map} +1 -1
- package/dist/filters-V-V8Dn8f.d.ts +60 -0
- package/dist/{foundation-QgY1lvUj.js → foundation-Bq4lRz4x.js} +1 -1
- package/dist/{foundation-QgY1lvUj.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-DonXiSg2.d.ts → index-Bsx6XsC2.d.ts} +117 -70
- package/dist/{index-BGJXqdg6.d.ts → index-BtWMBHeP.d.ts} +13 -9
- package/dist/{index-CtF7EE2z.d.ts → index-Bxzjy0d1.d.ts} +1 -1
- package/dist/{index-ChSKFOMx.d.ts → index-C-745li7.d.ts} +1 -1
- package/dist/{index-CY5UEX4h.d.ts → index-C4MUKshG.d.ts} +2 -2
- package/dist/{index-C7xKVIr4.d.ts → index-CPzvNmq9.d.ts} +37 -37
- package/dist/{index-ByW08-Z7.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-ThUIs-Sy.d.ts → index-CxA34wP1.d.ts} +37 -23
- package/dist/{index-CIkpYltz.d.ts → index-CxpFwGvR.d.ts} +3 -3
- package/dist/{index-QxxS6f9r.d.ts → index-D9LPlmbC.d.ts} +1 -1
- package/dist/{index-CQnGIGb5.d.ts → index-DFEnA6Wa.d.ts} +44 -33
- package/dist/{index-PSPpUxCE.d.ts → index-DNNUeZEq.d.ts} +4 -4
- package/dist/{index-Dpyp7fQz.d.ts → index-DUXfvhxs.d.ts} +12 -12
- package/dist/index-DW3njUfb.d.ts +1 -0
- package/dist/index-DWt6yrIG.d.ts +64 -0
- package/dist/index-DewGsFz5.d.ts +1 -0
- package/dist/index-DmudgrsN.d.ts +495 -0
- package/dist/{index-DNU9xoGK.d.ts → index-DqXd1EeB.d.ts} +5 -5
- package/dist/{index-DX0Vm8HY.d.ts → index-DwKr18CI.d.ts} +1 -1
- package/dist/{index-D71J5Ghd.d.ts → index-NlPMNcqh.d.ts} +99 -99
- 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 +13 -12
- 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-Bbzbz7qW.d.ts → listCollections-BB9FxKj2.d.ts} +264 -137
- package/dist/{looks-rare-CMVPny4v.js → looks-rare-6H--x3AM.js} +1 -1
- package/dist/{looks-rare-CMVPny4v.js.map → looks-rare-6H--x3AM.js.map} +1 -1
- package/dist/lowestListing-Cbsi6M1K.d.ts +465 -0
- package/dist/{magic-eden-IrWp2ZXk.js → magic-eden-BoxEQ1Li.js} +1 -1
- package/dist/{magic-eden-IrWp2ZXk.js.map → magic-eden-BoxEQ1Li.js.map} +1 -1
- package/dist/{manifold-DeOE-p2G.js → manifold-DycKsljb.js} +1 -1
- package/dist/{manifold-DeOE-p2G.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-CmOMCCOr.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-B5Z8G03R.js → marketplace-NQB-sEQL.js} +1 -1
- package/dist/{marketplace-B5Z8G03R.js.map → marketplace-NQB-sEQL.js.map} +1 -1
- package/dist/{marketplace-logos-D8t86gsW.js → marketplace-logos-D4dS1Foy.js} +21 -21
- package/dist/marketplace-logos-D4dS1Foy.js.map +1 -0
- package/dist/{marketplace.gen-JzNYpM0U.js → marketplace.gen-ksUafDqS.js} +56 -5
- package/dist/marketplace.gen-ksUafDqS.js.map +1 -0
- package/dist/{marketplaceConfig-sNh-MA5M.js → marketplaceConfig-UHQMM9fq.js} +9 -10
- package/dist/marketplaceConfig-UHQMM9fq.js.map +1 -0
- package/dist/{mintify-DG3GrljJ.js → mintify-Dyqyo8jQ.js} +1 -1
- package/dist/{mintify-DG3GrljJ.js.map → mintify-Dyqyo8jQ.js.map} +1 -1
- package/dist/{network-DnBEe1Ur.js → network-DtmiMhcg.js} +2 -2
- package/dist/network-DtmiMhcg.js.map +1 -0
- package/dist/networkconfigToWagmiChain-DbUf6HiO.js +15 -0
- package/dist/networkconfigToWagmiChain-DbUf6HiO.js.map +1 -0
- package/dist/{nftx-B3LH-ZYM.js → nftx-2LbFjj9Q.js} +1 -1
- package/dist/{nftx-B3LH-ZYM.js.map → nftx-2LbFjj9Q.js.map} +1 -1
- package/dist/{okx-CRFLrT3Z.js → okx-CBEWJNsR.js} +1 -1
- package/dist/{okx-CRFLrT3Z.js.map → okx-CBEWJNsR.js.map} +1 -1
- package/dist/{open-sea-cOpfl366.js → open-sea-Dxntz_PA.js} +1 -1
- package/dist/{open-sea-cOpfl366.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-CLjXRrDj.js → primary-sale-1u4QlPdA.js} +1 -1
- package/dist/{primary-sale-CLjXRrDj.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-BTe7Wkrs.d.ts → query-BWbCsXLY.d.ts} +1 -1
- package/dist/{rarible-guwUx4cn.js → rarible-CS0SupHr.js} +1 -1
- package/dist/{rarible-guwUx4cn.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 +5 -5
- package/dist/react/_internal/databeat/index.d.ts +1 -1
- package/dist/react/_internal/databeat/index.js +35 -21
- package/dist/react/_internal/index.d.ts +2 -2
- package/dist/react/_internal/index.js +9 -8
- package/dist/react/_internal/wagmi/index.d.ts +1 -1
- package/dist/react/_internal/wagmi/index.js +4 -3
- package/dist/react/hooks/config/index.d.ts +8 -8
- package/dist/react/hooks/config/index.js +35 -21
- package/dist/react/hooks/contracts/index.d.ts +6 -6
- package/dist/react/hooks/contracts/index.js +13 -12
- package/dist/react/hooks/data/collectibles/index.d.ts +10 -4
- package/dist/react/hooks/data/collectibles/index.js +35 -21
- package/dist/react/hooks/data/collections/index.d.ts +10 -10
- package/dist/react/hooks/data/collections/index.js +35 -21
- package/dist/react/hooks/data/index.d.ts +37 -29
- package/dist/react/hooks/data/index.js +36 -22
- package/dist/react/hooks/data/inventory/index.d.ts +36 -28
- package/dist/react/hooks/data/inventory/index.js +35 -21
- package/dist/react/hooks/data/market/index.d.ts +11 -11
- package/dist/react/hooks/data/market/index.js +35 -21
- package/dist/react/hooks/data/orders/index.d.ts +11 -11
- package/dist/react/hooks/data/orders/index.js +36 -22
- package/dist/react/hooks/data/primary-sales/index.d.ts +36 -28
- package/dist/react/hooks/data/primary-sales/index.js +35 -21
- package/dist/react/hooks/data/tokens/index.d.ts +4 -4
- package/dist/react/hooks/data/tokens/index.js +35 -21
- package/dist/react/hooks/index.d.ts +37 -29
- package/dist/react/hooks/index.js +36 -22
- package/dist/react/hooks/transactions/index.d.ts +2 -2
- package/dist/react/hooks/transactions/index.js +35 -21
- package/dist/react/hooks/ui/index.d.ts +4 -4
- package/dist/react/hooks/ui/index.js +35 -21
- package/dist/react/hooks/utils/index.d.ts +37 -29
- package/dist/react/hooks/utils/index.js +36 -22
- package/dist/react/index.d.ts +37 -29
- package/dist/react/index.js +36 -22
- 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 +29 -17
- 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 +9 -8
- package/dist/react/ssr/index.js.map +1 -1
- package/dist/react/ui/components/marketplace-collectible-card/components/footer/components/index.d.ts +3 -0
- package/dist/react/ui/components/marketplace-collectible-card/components/footer/components/index.js +22 -0
- package/dist/react/ui/components/marketplace-collectible-card/components/footer/index.d.ts +54 -0
- package/dist/react/ui/components/marketplace-collectible-card/components/footer/index.js +40 -0
- package/dist/react/ui/components/marketplace-collectible-card/index.d.ts +5 -5
- package/dist/react/ui/components/marketplace-collectible-card/index.js +35 -21
- 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 +9 -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 +13 -11
- package/dist/react/ui/index.d.ts +5 -5
- package/dist/react/ui/index.js +35 -21
- package/dist/react/ui/modals/_internal/components/actionModal/index.d.ts +2 -2
- package/dist/react/ui/modals/_internal/components/actionModal/index.js +35 -21
- package/dist/react/utils/index.d.ts +3 -3
- package/dist/react/utils/index.js +5 -5
- package/dist/{react-Ceq8mamy.js → react-DE852KeT.js} +2111 -1002
- package/dist/react-DE852KeT.js.map +1 -0
- package/dist/{sequence-Dt2Xo7Fa.js → sequence-paCCener.js} +1 -1
- package/dist/{sequence-Dt2Xo7Fa.js.map → sequence-paCCener.js.map} +1 -1
- package/dist/styles/index.css +200 -24
- package/dist/{sudo-swap-CGoARONs.js → sudo-swap-9rH2EgfT.js} +1 -1
- package/dist/{sudo-swap-CGoARONs.js.map → sudo-swap-9rH2EgfT.js.map} +1 -1
- package/dist/{super-rare-NeQtZjcn.js → super-rare-DHIuWtRw.js} +1 -1
- package/dist/{super-rare-NeQtZjcn.js.map → super-rare-DHIuWtRw.js.map} +1 -1
- package/dist/{token-D9gZVqbX.js → token-Cv7l2ZaL.js} +1 -1
- package/dist/{token-D9gZVqbX.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/{transaction-CC2KxNF6.js → transaction-DZUW5RHu.js} +2 -8
- package/dist/transaction-DZUW5RHu.js.map +1 -0
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.js +2 -2
- package/dist/{types-G2PWxiJR.js → types-B_-cnkcP.js} +1 -1
- package/dist/types-B_-cnkcP.js.map +1 -0
- package/dist/{types-BlCa0TVE.d.ts → types-D2TJ1dwv.d.ts} +19 -10
- 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 +12 -11
- package/dist/utils-BCgNhBFR.js +112 -0
- package/dist/utils-BCgNhBFR.js.map +1 -0
- package/dist/{utils-CKJd-CRf.js → utils-BfpDVibN.js} +7 -24
- package/dist/utils-BfpDVibN.js.map +1 -0
- package/dist/{utils-wquIhK6T.js → utils-BqxcalL2.js} +2 -2
- package/dist/utils-BqxcalL2.js.map +1 -0
- package/dist/waitForTransactionReceipt-DieAnV52.js +25 -0
- package/dist/waitForTransactionReceipt-DieAnV52.js.map +1 -0
- package/dist/{x2y2-CQdg24VP.js → x2y2-45WDooeh.js} +1 -1
- package/dist/{x2y2-CQdg24VP.js.map → x2y2-45WDooeh.js.map} +1 -1
- package/dist/{zora-DdEydy4L.js → zora-CbeBoLvQ.js} +1 -1
- package/dist/{zora-DdEydy4L.js.map → zora-CbeBoLvQ.js.map} +1 -1
- package/package.json +43 -38
- 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 +16 -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/_internal/wagmi/__tests__/create-config.test.ts +19 -8
- package/src/react/_internal/wagmi/create-config.ts +6 -17
- package/src/react/hooks/config/__snapshots__/useMarketplaceConfig.test.tsx.snap +4 -4
- package/src/react/hooks/config/useMarketplaceConfig.tsx +1 -1
- package/src/react/hooks/data/collectibles/useBalanceOfCollectible.laos.test.tsx +2 -2
- 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.test.tsx +151 -0
- package/src/react/hooks/data/collectibles/useTokenBalances.tsx +47 -0
- package/src/react/hooks/data/collections/__snapshots__/useListCollections.test.tsx.snap +6 -6
- 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.test.tsx +3 -98
- package/src/react/hooks/data/inventory/useInventory.tsx +3 -3
- package/src/react/hooks/data/market/useCurrency.tsx +1 -1
- package/src/react/hooks/data/market/useListMarketCardData.tsx +8 -1
- 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 +70 -45
- 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/useList1155ShopCardData.tsx +21 -37
- package/src/react/hooks/data/primary-sales/useList721ShopCardData.tsx +14 -3
- 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 +5 -2
- package/src/react/hooks/data/tokens/useTokenSupplies.ts +1 -1
- package/src/react/hooks/transactions/useCancelOrder.test.tsx +7 -4
- package/src/react/hooks/transactions/useCancelOrder.tsx +2 -1
- package/src/react/hooks/transactions/useCancelTransactionSteps.tsx +2 -2
- 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/transactions/useProcessStep.test.tsx +2 -2
- package/src/react/hooks/ui/useFilterState.tsx +72 -2
- package/src/react/hooks/ui/useFilters.tsx +1 -1
- package/src/react/hooks/utils/__tests__/useEnsureCorrectChain.test.tsx +75 -0
- package/src/react/hooks/utils/index.ts +0 -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/hooks/utils/useEnsureCorrectChain.ts +31 -34
- package/src/react/providers/analytics-provider.tsx +45 -0
- package/src/react/providers/index.tsx +33 -46
- package/src/react/providers/modal-provider.tsx +15 -4
- package/src/react/queries/{__tests__ → collectibles/__tests__}/balanceOfCollectible.laos.test.ts +4 -4
- package/src/react/queries/collectibles/__tests__/tokenBalances.laos.test.ts +123 -0
- package/src/react/queries/{balanceOfCollectible.ts → collectibles/balanceOfCollectible.ts} +26 -4
- 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} +47 -54
- package/src/react/queries/{listCollectiblesPaginated.ts → collectibles/listCollectiblesPaginated.ts} +22 -5
- package/src/react/queries/collectibles/tokenBalances.ts +103 -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 +5 -0
- package/src/react/queries/{listCollectionActivities.ts → collections/listCollectionActivities.ts} +28 -6
- package/src/react/queries/{listCollections.ts → collections/listCollections.ts} +26 -18
- package/src/react/queries/index.ts +7 -33
- package/src/react/queries/{__tests__ → inventory/__tests__}/inventory.laos.test.ts +10 -7
- package/src/react/queries/inventory/index.ts +1 -0
- package/src/react/queries/inventory/inventory.ts +169 -0
- 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} +48 -34
- 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} +11 -7
- 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/orders/listOffersForCollectible.ts +116 -0
- 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/__tests__/__snapshots__/create-ssr-client.test.ts.snap +4 -4
- 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 +8 -8
- package/src/react/ui/components/_internals/action-button/ActionButton.tsx +10 -9
- package/src/react/ui/components/_internals/action-button/__tests__/NonOwnerActions.test.tsx +4 -4
- package/src/react/ui/components/_internals/action-button/components/NonOwnerActions.tsx +10 -6
- package/src/react/ui/components/_internals/custom-select/__tests__/CustomSelect.test.tsx +1 -1
- package/src/react/ui/components/marketplace-collectible-card/CollectibleCard.tsx +4 -3
- package/src/react/ui/components/marketplace-collectible-card/CollectibleCardSkeleton.tsx +13 -2
- package/src/react/ui/components/marketplace-collectible-card/components/ActionButtonWrapper.tsx +7 -7
- package/src/react/ui/components/marketplace-collectible-card/components/BaseCard.tsx +14 -5
- package/src/react/ui/components/marketplace-collectible-card/components/footer/Footer.tsx +179 -0
- package/src/react/ui/components/marketplace-collectible-card/components/footer/components/FooterName.tsx +103 -0
- package/src/react/ui/components/marketplace-collectible-card/components/footer/components/PriceDisplay.tsx +80 -0
- package/src/react/ui/components/marketplace-collectible-card/components/footer/components/SaleDetailsPill.tsx +29 -0
- package/src/react/ui/components/marketplace-collectible-card/components/footer/components/TokenTypeBalancePill.tsx +30 -0
- package/src/react/ui/components/marketplace-collectible-card/components/footer/components/index.ts +4 -0
- package/src/react/ui/components/marketplace-collectible-card/components/footer/index.ts +2 -0
- package/src/react/ui/components/marketplace-collectible-card/types.ts +19 -6
- package/src/react/ui/components/marketplace-collectible-card/variants/MarketCard.tsx +14 -23
- package/src/react/ui/components/marketplace-collectible-card/variants/NonTradableInventoryCard.tsx +42 -0
- package/src/react/ui/components/marketplace-collectible-card/variants/ShopCard.tsx +17 -12
- package/src/react/ui/modals/BuyModal/__tests__/BuyModalRouter.test.tsx +10 -10
- package/src/react/ui/modals/BuyModal/__tests__/ERC1155ShopModal.test.tsx +3 -3
- package/src/react/ui/modals/BuyModal/__tests__/Modal.test.tsx.bak +3 -3
- package/src/react/ui/modals/BuyModal/__tests__/Modal1155.test.tsx +6 -6
- package/src/react/ui/modals/BuyModal/__tests__/store.test.ts +3 -3
- package/src/react/ui/modals/BuyModal/components/BuyModalRouter.tsx +5 -5
- package/src/react/ui/modals/BuyModal/components/ERC1155BuyModal.tsx +67 -5
- package/src/react/ui/modals/BuyModal/components/ERC1155QuantityModal.tsx +8 -8
- package/src/react/ui/modals/BuyModal/components/ERC1155ShopModal.tsx +2 -2
- 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 +20 -4
- 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 +9 -6
- 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 +20 -13
- package/src/react/ui/modals/CreateListingModal/hooks/useGetTokenApproval.ts +4 -1
- package/src/react/ui/modals/CreateListingModal/hooks/useTransactionSteps.tsx +2 -1
- package/src/react/ui/modals/MakeOfferModal/Modal.tsx +141 -96
- 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 +17 -27
- package/src/react/ui/modals/MakeOfferModal/hooks/useTransactionSteps.tsx +2 -1
- 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 +5 -2
- package/src/react/ui/modals/SellModal/hooks/useSell.tsx +15 -8
- package/src/react/ui/modals/SuccessfulPurchaseModal/__tests__/Modal.test.tsx +9 -0
- package/src/react/ui/modals/_internal/components/actionModal/ActionModal.test.tsx +20 -9
- 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 +53 -3
- package/src/react/ui/modals/_internal/components/switchChainErrorModal/__tests__/SwitchChainErrorModal.test.tsx +80 -0
- package/src/react/ui/modals/_internal/components/switchChainErrorModal/index.tsx +64 -0
- package/src/react/ui/modals/_internal/components/switchChainErrorModal/store.ts +42 -0
- 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/ui/modals/_internal/types.ts +0 -1
- package/src/react/utils/waitForTransactionReceipt.ts +26 -32
- package/src/styles/index.css +1 -0
- package/src/styles/styles.ts +201 -25
- package/src/types/index.ts +1 -1
- package/src/types/new-marketplace-types.ts +9 -18
- package/src/types/types.ts +1 -1
- package/src/utils/abi/index.ts +1 -0
- package/src/utils/abi/mainModule.ts +158 -0
- package/test/globalSetup.ts +1 -1
- package/test/test-utils.tsx +1 -0
- package/dist/BellIcon-Cb9YEUzJ.js.map +0 -1
- package/dist/CollectibleCard-CYyWzk6u.d.ts +0 -8
- package/dist/api-BmEQfSQa.js.map +0 -1
- package/dist/create-config-6uynwTeb.js.map +0 -1
- package/dist/filters-B8XS4tFH.d.ts +0 -31
- package/dist/index-BuY_NKSX.d.ts +0 -222
- package/dist/index-D2HohSwO.d.ts +0 -293
- package/dist/listCollectiblesPaginated--AgXjajA.d.ts +0 -166
- package/dist/lowestListing-BQHfQpfg.d.ts +0 -144
- package/dist/marketplace-logos-D8t86gsW.js.map +0 -1
- package/dist/marketplace.gen-JzNYpM0U.js.map +0 -1
- package/dist/marketplaceConfig-sNh-MA5M.js.map +0 -1
- package/dist/network-DnBEe1Ur.js.map +0 -1
- package/dist/queries-BYT4GJw3.js +0 -1478
- package/dist/queries-BYT4GJw3.js.map +0 -1
- package/dist/react-CbqXKOpt.css +0 -80
- package/dist/react-CbqXKOpt.css.map +0 -1
- package/dist/react-Ceq8mamy.js.map +0 -1
- package/dist/tokenSupplies-DXtkRYNO.d.ts +0 -147
- package/dist/transaction-CC2KxNF6.js.map +0 -1
- package/dist/types-G2PWxiJR.js.map +0 -1
- package/dist/utils-CKJd-CRf.js.map +0 -1
- package/dist/utils-wquIhK6T.js.map +0 -1
- package/dist/waitForTransactionReceipt-DZxAuR9N.js +0 -27
- package/dist/waitForTransactionReceipt-DZxAuR9N.js.map +0 -1
- package/src/react/hooks/utils/useSwitchChainWithModal.ts +0 -38
- package/src/react/queries/inventory.ts +0 -343
- package/src/react/ui/components/marketplace-collectible-card/Footer.tsx +0 -238
- package/src/react/ui/modals/_internal/components/switchChainModal/__tests__/SwitchChainModal.test.tsx +0 -117
- package/src/react/ui/modals/_internal/components/switchChainModal/index.tsx +0 -124
- package/src/react/ui/modals/_internal/components/switchChainModal/store.ts +0 -71
- /package/dist/{index-q7f-WDBS.d.ts → index-6wsMChsg.d.ts} +0 -0
- /package/dist/{abi-Wr_aTZFi.js → queries-KOcILNJO.js} +0 -0
- /package/dist/{wagmi-BhP3mdhP.js → wagmi-Bseovd6Q.js} +0 -0
|
@@ -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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collections-CKummc-R.js","names":["apiArgs: GetCollectionDetailArgs","pageParams: Page | undefined","apiArgs: ListCollectionActivitiesArgs"],"sources":["../src/react/queries/collections/collection.ts","../src/react/queries/collections/collectionBalanceDetails.ts","../src/react/queries/collections/collectionDetails.ts","../src/react/queries/collections/listCollectionActivities.ts","../src/react/queries/collections/listCollections.ts"],"sourcesContent":["import type { GetContractInfoArgs } 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 { collectionKeys } from '../../_internal/api/query-keys';\nimport type { StandardQueryOptions } from '../../types/query';\n\nexport interface FetchCollectionParams {\n\tchainId: number;\n\tcollectionAddress: string;\n\tconfig: SdkConfig;\n}\n\n/**\n * Fetches collection information from the metadata API\n */\nexport async function fetchCollection(params: FetchCollectionParams) {\n\tconst { collectionAddress, chainId, config } = params;\n\n\tconst metadataClient = getMetadataClient(config);\n\n\tconst result = await metadataClient.getContractInfo({\n\t\tchainID: chainId.toString(),\n\t\tcontractAddress: collectionAddress,\n\t});\n\n\treturn result.contractInfo;\n}\n\nexport type CollectionQueryOptions = ValuesOptional<FetchCollectionParams> & {\n\tquery?: StandardQueryOptions;\n};\n\nexport function getCollectionQueryKey(params: CollectionQueryOptions) {\n\tconst apiArgs = {\n\t\tchainID: String(params.chainId),\n\t\tcontractAddress: params.collectionAddress,\n\t} satisfies QueryKeyArgs<GetContractInfoArgs>;\n\n\treturn [...collectionKeys.detail, apiArgs] as const;\n}\n\nexport function collectionQueryOptions(params: CollectionQueryOptions) {\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: getCollectionQueryKey(params),\n\t\tqueryFn: () =>\n\t\t\tfetchCollection({\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}),\n\t\t...params.query,\n\t\tenabled,\n\t});\n}\n","import type { GetTokenBalancesDetailsReturn } from '@0xsequence/indexer';\nimport { queryOptions } from '@tanstack/react-query';\nimport type { Address } from 'viem';\nimport type { SdkConfig } from '../../../types';\nimport {\n\tbalanceQueries,\n\tgetIndexerClient,\n\ttype ValuesOptional,\n} from '../../_internal';\nimport type { StandardQueryOptions } from '../../types/query';\n\nexport interface CollectionBalanceFilter {\n\taccountAddresses: Array<Address>;\n\tcontractWhitelist?: Array<Address>;\n\tomitNativeBalances: boolean;\n}\n\nexport interface FetchCollectionBalanceDetailsParams {\n\tchainId: number;\n\tfilter: CollectionBalanceFilter;\n\tconfig: SdkConfig;\n}\n\n/**\n * Fetches detailed balance information for multiple accounts from the Indexer API\n */\nexport async function fetchCollectionBalanceDetails(\n\tparams: FetchCollectionBalanceDetailsParams,\n): Promise<GetTokenBalancesDetailsReturn> {\n\tconst { chainId, filter, config } = params;\n\n\tconst indexerClient = getIndexerClient(chainId, config);\n\n\tconst promises = filter.accountAddresses.map((accountAddress) =>\n\t\tindexerClient.getTokenBalancesDetails({\n\t\t\tfilter: {\n\t\t\t\taccountAddresses: [accountAddress],\n\t\t\t\tcontractWhitelist: filter.contractWhitelist,\n\t\t\t\tomitNativeBalances: filter.omitNativeBalances,\n\t\t\t},\n\t\t}),\n\t);\n\n\tconst responses = await Promise.all(promises);\n\tconst mergedResponse = responses.reduce<GetTokenBalancesDetailsReturn>(\n\t\t(acc, curr) => {\n\t\t\tif (!curr) return acc;\n\t\t\treturn {\n\t\t\t\tpage: curr.page,\n\t\t\t\tnativeBalances: [\n\t\t\t\t\t...(acc.nativeBalances || []),\n\t\t\t\t\t...(curr.nativeBalances || []),\n\t\t\t\t],\n\t\t\t\tbalances: [...(acc.balances || []), ...(curr.balances || [])],\n\t\t\t};\n\t\t},\n\t\t{ page: {}, nativeBalances: [], balances: [] },\n\t);\n\n\tif (!mergedResponse) {\n\t\tthrow new Error('Failed to fetch collection balance details');\n\t}\n\n\treturn mergedResponse;\n}\n\nexport type CollectionBalanceDetailsQueryOptions =\n\tValuesOptional<FetchCollectionBalanceDetailsParams> & {\n\t\tquery?: StandardQueryOptions;\n\t};\n\nexport function getCollectionBalanceDetailsQueryKey(\n\tparams: CollectionBalanceDetailsQueryOptions,\n) {\n\tconst apiArgs = {\n\t\tchainId: params.chainId!,\n\t\tfilter: params.filter!,\n\t};\n\n\treturn [...balanceQueries.collectionBalanceDetails, apiArgs] as const;\n}\n\nexport function collectionBalanceDetailsQueryOptions(\n\tparams: CollectionBalanceDetailsQueryOptions,\n) {\n\tconst enabled = Boolean(\n\t\tparams.chainId &&\n\t\t\tparams.filter?.accountAddresses?.length &&\n\t\t\tparams.config &&\n\t\t\t(params.query?.enabled ?? true),\n\t);\n\n\treturn queryOptions({\n\t\tqueryKey: getCollectionBalanceDetailsQueryKey(params),\n\t\tqueryFn: () =>\n\t\t\tfetchCollectionBalanceDetails({\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\tfilter: params.filter!,\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 { GetCollectionDetailArgs } from '../../_internal/api/marketplace.gen';\nimport { collectionKeys } from '../../_internal/api/query-keys';\nimport type { StandardQueryOptions } from '../../types/query';\n\nexport interface FetchCollectionDetailsParams\n\textends Omit<GetCollectionDetailArgs, 'chainId' | 'contractAddress'> {\n\tchainId: number;\n\tcollectionAddress: string;\n\tconfig: SdkConfig;\n}\n\n/**\n * Fetches collection details from the marketplace API\n */\nexport async function fetchCollectionDetails(\n\tparams: FetchCollectionDetailsParams,\n) {\n\tconst { collectionAddress, chainId, config, ...additionalApiParams } = params;\n\n\tconst marketplaceClient = getMarketplaceClient(config);\n\n\tconst apiArgs: GetCollectionDetailArgs = {\n\t\tcontractAddress: collectionAddress,\n\t\tchainId: String(chainId),\n\t\t...additionalApiParams,\n\t};\n\n\tconst result = await marketplaceClient.getCollectionDetail(apiArgs);\n\treturn result.collection;\n}\n\nexport type CollectionDetailsQueryOptions =\n\tValuesOptional<FetchCollectionDetailsParams> & {\n\t\tquery?: StandardQueryOptions;\n\t};\n\nexport function getCollectionDetailsQueryKey(\n\tparams: CollectionDetailsQueryOptions,\n) {\n\tconst apiArgs = {\n\t\tchainId: String(params.chainId),\n\t\tcontractAddress: params.collectionAddress,\n\t} satisfies QueryKeyArgs<GetCollectionDetailArgs>;\n\n\treturn [...collectionKeys.detail, apiArgs] as const;\n}\n\nexport function collectionDetailsQueryOptions(\n\tparams: CollectionDetailsQueryOptions,\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: getCollectionDetailsQueryKey(params),\n\t\tqueryFn: () =>\n\t\t\tfetchCollectionDetails({\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}),\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\tListCollectionActivitiesArgs,\n\tListCollectionActivitiesReturn,\n\tQueryKeyArgs,\n\tSortBy,\n\tValuesOptional,\n} from '../../_internal';\nimport { getMarketplaceClient } from '../../_internal';\nimport { collectionKeys } from '../../_internal/api';\nimport type { StandardQueryOptions } from '../../types/query';\n\nexport interface FetchListCollectionActivitiesParams\n\textends Omit<\n\t\tListCollectionActivitiesArgs,\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 collection activities from the Marketplace API\n */\nexport async function fetchListCollectionActivities(\n\tparams: FetchListCollectionActivitiesParams,\n): Promise<ListCollectionActivitiesReturn> {\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: ListCollectionActivitiesArgs = {\n\t\tcontractAddress: collectionAddress,\n\t\tchainId: String(chainId),\n\t\tpage: pageParams,\n\t\t...additionalApiParams,\n\t};\n\n\treturn await marketplaceClient.listCollectionActivities(apiArgs);\n}\n\nexport type ListCollectionActivitiesQueryOptions =\n\tValuesOptional<FetchListCollectionActivitiesParams> & {\n\t\tquery?: StandardQueryOptions;\n\t};\n\nexport function getListCollectionActivitiesQueryKey(\n\tparams: ListCollectionActivitiesQueryOptions,\n) {\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\tpage: page,\n\t} satisfies QueryKeyArgs<ListCollectionActivitiesArgs>;\n\n\treturn [...collectionKeys.collectionActivities, apiArgs] as const;\n}\n\nexport function listCollectionActivitiesQueryOptions(\n\tparams: ListCollectionActivitiesQueryOptions,\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: getListCollectionActivitiesQueryKey(params),\n\t\tqueryFn: () =>\n\t\t\tfetchListCollectionActivities({\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\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 type { ContractInfo } from '@0xsequence/metadata';\nimport { queryOptions, skipToken } from '@tanstack/react-query';\nimport type { CardType, SdkConfig } from '../../../types';\nimport type {\n\tMarketCollection,\n\tMarketplaceConfig,\n\tShopCollection,\n} from '../../../types/new-marketplace-types';\nimport { compareAddress } from '../../../utils';\nimport {\n\tcollectionKeys,\n\tgetMetadataClient,\n\ttype ValuesOptional,\n} from '../../_internal';\nimport type { StandardQueryOptions } from '../../types/query';\n\nconst allCollections = (marketplaceConfig: MarketplaceConfig) => {\n\treturn [\n\t\t...marketplaceConfig.market.collections,\n\t\t...marketplaceConfig.shop.collections,\n\t];\n};\n\nexport interface FetchListCollectionsParams {\n\tcardType?: CardType;\n\tmarketplaceConfig: MarketplaceConfig;\n\tconfig: SdkConfig;\n}\n\n/**\n * Fetches collections from the metadata API with marketplace config filtering\n */\nexport async function fetchListCollections(params: FetchListCollectionsParams) {\n\tconst { cardType, marketplaceConfig, config } = params;\n\tconst metadataClient = getMetadataClient(config);\n\n\tlet collections = allCollections(marketplaceConfig);\n\n\tif (!collections?.length) {\n\t\treturn [];\n\t}\n\n\tif (cardType) {\n\t\tcollections = collections.filter(\n\t\t\t(collection) => collection.cardType === cardType,\n\t\t);\n\t}\n\n\t// Group collections by chainId\n\tconst collectionsByChain = collections.reduce<Record<string, string[]>>(\n\t\t(acc, curr) => {\n\t\t\tconst { chainId, itemsAddress } = curr;\n\t\t\tif (!acc[chainId]) {\n\t\t\t\tacc[chainId] = [];\n\t\t\t}\n\t\t\tacc[chainId].push(itemsAddress);\n\t\t\treturn acc;\n\t\t},\n\t\t{},\n\t);\n\n\t// Fetch collections for each chain\n\tconst promises = Object.entries(collectionsByChain).map(\n\t\t([chainId, addresses]) =>\n\t\t\tmetadataClient\n\t\t\t\t.getContractInfoBatch({\n\t\t\t\t\tchainID: chainId,\n\t\t\t\t\tcontractAddresses: addresses,\n\t\t\t\t})\n\t\t\t\t.then((resp) => Object.values(resp.contractInfoMap)),\n\t);\n\n\tconst settled = await Promise.allSettled(promises);\n\n\t// If all promises failed, throw the first error\n\tif (settled.every((result) => result.status === 'rejected')) {\n\t\tconst firstError = settled[0] as PromiseRejectedResult;\n\t\tthrow firstError.reason;\n\t}\n\n\tconst results = settled\n\t\t.filter(\n\t\t\t(r): r is PromiseFulfilledResult<ContractInfo[]> =>\n\t\t\t\tr.status === 'fulfilled',\n\t\t)\n\t\t.flatMap((r) => r.value);\n\n\tconst collectionsWithMetadata = collections\n\t\t.map((collection) => {\n\t\t\tconst metadata = results.find((result) =>\n\t\t\t\tcompareAddress(result.address, collection.itemsAddress),\n\t\t\t);\n\t\t\treturn { collection, metadata };\n\t\t})\n\t\t.filter(\n\t\t\t(\n\t\t\t\titem,\n\t\t\t): item is {\n\t\t\t\tcollection: MarketCollection | ShopCollection;\n\t\t\t\tmetadata: ContractInfo;\n\t\t\t} => item.metadata !== undefined,\n\t\t)\n\t\t.map(({ collection, metadata }) => ({\n\t\t\t...collection,\n\t\t\t...metadata,\n\t\t}));\n\n\treturn collectionsWithMetadata;\n}\n\nexport type ListCollectionsQueryOptions =\n\tValuesOptional<FetchListCollectionsParams> & {\n\t\tquery?: StandardQueryOptions;\n\t};\n\nexport function getListCollectionsQueryKey(\n\tparams: ListCollectionsQueryOptions,\n) {\n\tconst queryKeyParams = {\n\t\tcardType: params.cardType,\n\t\tmarketplaceConfig: params.marketplaceConfig,\n\t} as const;\n\n\treturn [...collectionKeys.list, queryKeyParams] as const;\n}\n\nexport function listCollectionsQueryOptions(\n\tparams: ListCollectionsQueryOptions,\n) {\n\tconst enabled = Boolean(\n\t\tparams.marketplaceConfig &&\n\t\t\tparams.config &&\n\t\t\t(params.query?.enabled ?? true),\n\t);\n\n\treturn queryOptions({\n\t\tqueryKey: getListCollectionsQueryKey(params),\n\t\tqueryFn: enabled\n\t\t\t? () =>\n\t\t\t\t\tfetchListCollections({\n\t\t\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\t\t\tmarketplaceConfig: params.marketplaceConfig!,\n\t\t\t\t\t\t// biome-ignore lint/style/noNonNullAssertion: The enabled check above ensures these are not undefined\n\t\t\t\t\t\tconfig: params.config!,\n\t\t\t\t\t\tcardType: params.cardType,\n\t\t\t\t\t})\n\t\t\t: skipToken,\n\t\t...params.query,\n\t\tenabled,\n\t});\n}\n\n// Keep old function for backward compatibility during migration\nexport const listCollectionsOptions = ({\n\tcardType,\n\tmarketplaceConfig,\n\tconfig,\n}: {\n\tcardType?: CardType;\n\tmarketplaceConfig: MarketplaceConfig | undefined;\n\tconfig: SdkConfig;\n}) => {\n\treturn queryOptions({\n\t\tqueryKey: [...collectionKeys.list, { cardType, marketplaceConfig, config }],\n\t\tqueryFn: marketplaceConfig\n\t\t\t? () =>\n\t\t\t\t\tfetchListCollections({\n\t\t\t\t\t\tmarketplaceConfig,\n\t\t\t\t\t\tconfig,\n\t\t\t\t\t\tcardType,\n\t\t\t\t\t})\n\t\t\t: skipToken,\n\t\tenabled: Boolean(marketplaceConfig),\n\t});\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { ContractType } from "./marketplace.gen-ksUafDqS.js";
|
|
2
|
+
import { compareAddress } from "./utils-BfpDVibN.js";
|
|
3
|
+
import { BellIcon_default } from "./BellIcon-ByhygxBO.js";
|
|
4
|
+
import { formatPriceNumber, getSupplyStatusText } from "./utils-BqxcalL2.js";
|
|
5
|
+
import { useAccount } from "wagmi";
|
|
6
|
+
import { ChevronLeftIcon, ChevronRightIcon, IconButton, Image, Text, cn } from "@0xsequence/design-system";
|
|
7
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
import { formatUnits } from "viem";
|
|
9
|
+
|
|
10
|
+
//#region src/react/ui/components/marketplace-collectible-card/components/footer/components/FooterName.tsx
|
|
11
|
+
const FooterName = ({ name, isShop, highestOffer, onOfferClick, quantityInitial, quantityRemaining, balance }) => {
|
|
12
|
+
const { address: currentUserAddress } = useAccount();
|
|
13
|
+
const displayName = (() => {
|
|
14
|
+
if (name.length > 15 && highestOffer && !isShop) return `${name.substring(0, 13)}...`;
|
|
15
|
+
if (name.length > 17 && !highestOffer && !isShop) return `${name.substring(0, 17)}...`;
|
|
16
|
+
if (name.length > 17) return `${name.substring(0, 17)}...`;
|
|
17
|
+
return name;
|
|
18
|
+
})();
|
|
19
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
20
|
+
className: "relative flex w-full items-center justify-between",
|
|
21
|
+
children: [/* @__PURE__ */ jsx(Text, {
|
|
22
|
+
className: cn("overflow-hidden text-ellipsis text-left font-body font-bold text-sm text-text-100", isShop && (quantityInitial === void 0 || quantityRemaining === void 0) && "text-text-50"),
|
|
23
|
+
children: displayName || "Untitled"
|
|
24
|
+
}), highestOffer && onOfferClick && !isShop && (() => {
|
|
25
|
+
const canAcceptOffer = !(currentUserAddress && highestOffer.createdBy && compareAddress(highestOffer.createdBy, currentUserAddress)) && balance && Number(balance) > 0;
|
|
26
|
+
return /* @__PURE__ */ jsx(IconButton, {
|
|
27
|
+
className: `absolute top-0 right-0 z-10 h-[22px] w-[22px] ${!canAcceptOffer ? "opacity-50 hover:animate-none hover:opacity-50" : "hover:animate-bell-ring"}`,
|
|
28
|
+
size: "xs",
|
|
29
|
+
variant: "primary",
|
|
30
|
+
onClick: (e) => {
|
|
31
|
+
if (!canAcceptOffer) return;
|
|
32
|
+
e.stopPropagation();
|
|
33
|
+
e.preventDefault();
|
|
34
|
+
onOfferClick?.(e);
|
|
35
|
+
},
|
|
36
|
+
onMouseEnter: (e) => {
|
|
37
|
+
if (canAcceptOffer) e.stopPropagation();
|
|
38
|
+
},
|
|
39
|
+
icon: (props) => /* @__PURE__ */ jsx(BellIcon_default, {
|
|
40
|
+
...props,
|
|
41
|
+
size: "xs"
|
|
42
|
+
})
|
|
43
|
+
});
|
|
44
|
+
})()]
|
|
45
|
+
});
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
//#endregion
|
|
49
|
+
//#region src/react/ui/components/marketplace-collectible-card/components/footer/components/PriceDisplay.tsx
|
|
50
|
+
const formatPrice = (amount, currency) => {
|
|
51
|
+
const { formattedNumber, isUnderflow, isOverflow } = formatPriceNumber(amount, currency.decimals);
|
|
52
|
+
if (amount === "0") return /* @__PURE__ */ jsx(Text, {
|
|
53
|
+
className: "font-bold text-sm text-text-100",
|
|
54
|
+
children: "Free"
|
|
55
|
+
});
|
|
56
|
+
if (isUnderflow) return /* @__PURE__ */ jsxs("div", {
|
|
57
|
+
className: "flex items-center",
|
|
58
|
+
children: [/* @__PURE__ */ jsx(ChevronLeftIcon, { className: "h-3 w-3 text-text-100" }), /* @__PURE__ */ jsx(Text, {
|
|
59
|
+
className: "font-bold text-sm text-text-100",
|
|
60
|
+
children: `${formattedNumber} ${currency.symbol}`
|
|
61
|
+
})]
|
|
62
|
+
});
|
|
63
|
+
if (isOverflow) return /* @__PURE__ */ jsxs("div", {
|
|
64
|
+
className: "flex items-center",
|
|
65
|
+
children: [/* @__PURE__ */ jsx(ChevronRightIcon, { className: "h-3 w-3 text-text-100" }), /* @__PURE__ */ jsx(Text, {
|
|
66
|
+
className: "font-bold text-sm text-text-100",
|
|
67
|
+
children: `${formattedNumber} ${currency.symbol}`
|
|
68
|
+
})]
|
|
69
|
+
});
|
|
70
|
+
return /* @__PURE__ */ jsxs(Text, {
|
|
71
|
+
className: "font-bold text-sm text-text-100",
|
|
72
|
+
children: [
|
|
73
|
+
formattedNumber,
|
|
74
|
+
" ",
|
|
75
|
+
currency.symbol
|
|
76
|
+
]
|
|
77
|
+
});
|
|
78
|
+
};
|
|
79
|
+
const PriceDisplay = ({ amount, currency, showCurrencyIcon = true, className }) => {
|
|
80
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
81
|
+
className: cn("flex items-center gap-1", className),
|
|
82
|
+
children: [showCurrencyIcon && currency.imageUrl && /* @__PURE__ */ jsx(Image, {
|
|
83
|
+
alt: currency.symbol,
|
|
84
|
+
className: "h-3 w-3",
|
|
85
|
+
src: currency.imageUrl,
|
|
86
|
+
onError: (e) => {
|
|
87
|
+
e.currentTarget.style.display = "none";
|
|
88
|
+
}
|
|
89
|
+
}), formatPrice(amount, currency)]
|
|
90
|
+
});
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
//#endregion
|
|
94
|
+
//#region src/react/ui/components/marketplace-collectible-card/components/footer/components/SaleDetailsPill.tsx
|
|
95
|
+
const SaleDetailsPill = ({ quantityRemaining, collectionType, unlimitedSupply }) => {
|
|
96
|
+
const supplyText = getSupplyStatusText({
|
|
97
|
+
quantityRemaining,
|
|
98
|
+
collectionType,
|
|
99
|
+
unlimitedSupply
|
|
100
|
+
});
|
|
101
|
+
return /* @__PURE__ */ jsx(Text, {
|
|
102
|
+
className: "rounded-lg bg-background-secondary px-2 py-1 text-left font-medium text-text-80 text-xs",
|
|
103
|
+
children: supplyText
|
|
104
|
+
});
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
//#endregion
|
|
108
|
+
//#region src/react/ui/components/marketplace-collectible-card/components/footer/components/TokenTypeBalancePill.tsx
|
|
109
|
+
const TokenTypeBalancePill = ({ balance, type, decimals }) => {
|
|
110
|
+
const displayText = type === ContractType.ERC1155 ? balance ? `Owned: ${formatUnits(BigInt(balance), decimals ?? 0)}` : "ERC-1155" : "ERC-721";
|
|
111
|
+
return /* @__PURE__ */ jsx(Text, {
|
|
112
|
+
className: "rounded-lg bg-background-secondary px-2 py-1 text-left font-medium text-text-80 text-xs",
|
|
113
|
+
children: displayText
|
|
114
|
+
});
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
//#endregion
|
|
118
|
+
export { FooterName, PriceDisplay, SaleDetailsPill, TokenTypeBalancePill, formatPrice };
|
|
119
|
+
//# sourceMappingURL=components-CosnX7F9.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components-CosnX7F9.js","names":["SvgBellIcon"],"sources":["../src/react/ui/components/marketplace-collectible-card/components/footer/components/FooterName.tsx","../src/react/ui/components/marketplace-collectible-card/components/footer/components/PriceDisplay.tsx","../src/react/ui/components/marketplace-collectible-card/components/footer/components/SaleDetailsPill.tsx","../src/react/ui/components/marketplace-collectible-card/components/footer/components/TokenTypeBalancePill.tsx"],"sourcesContent":["'use client';\n\nimport { cn, IconButton, Text } from '@0xsequence/design-system';\nimport { useAccount } from 'wagmi';\nimport { compareAddress } from '../../../../../../../utils/address';\nimport type { Order } from '../../../../../../_internal';\nimport SvgBellIcon from '../../../../../icons/BellIcon';\n\ninterface FooterNameProps {\n\tname: string;\n\tisShop?: boolean;\n\thighestOffer?: Order;\n\tonOfferClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;\n\tquantityInitial?: string;\n\tquantityRemaining?: string;\n\tbalance?: string;\n}\n\nexport const FooterName = ({\n\tname,\n\tisShop,\n\thighestOffer,\n\tonOfferClick,\n\tquantityInitial,\n\tquantityRemaining,\n\tbalance,\n}: FooterNameProps) => {\n\tconst { address: currentUserAddress } = useAccount();\n\tconst displayName = (() => {\n\t\tif (name.length > 15 && highestOffer && !isShop) {\n\t\t\treturn `${name.substring(0, 13)}...`;\n\t\t}\n\t\tif (name.length > 17 && !highestOffer && !isShop) {\n\t\t\treturn `${name.substring(0, 17)}...`;\n\t\t}\n\t\tif (name.length > 17) {\n\t\t\treturn `${name.substring(0, 17)}...`;\n\t\t}\n\t\treturn name;\n\t})();\n\n\treturn (\n\t\t<div className=\"relative flex w-full items-center justify-between\">\n\t\t\t<Text\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'overflow-hidden text-ellipsis text-left font-body font-bold text-sm text-text-100',\n\t\t\t\t\tisShop &&\n\t\t\t\t\t\t(quantityInitial === undefined ||\n\t\t\t\t\t\t\tquantityRemaining === undefined) &&\n\t\t\t\t\t\t'text-text-50',\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{displayName || 'Untitled'}\n\t\t\t</Text>\n\n\t\t\t{highestOffer &&\n\t\t\t\tonOfferClick &&\n\t\t\t\t!isShop &&\n\t\t\t\t(() => {\n\t\t\t\t\t// Check if the current user made the offer\n\t\t\t\t\tconst isOfferMadeBySelf =\n\t\t\t\t\t\tcurrentUserAddress &&\n\t\t\t\t\t\thighestOffer.createdBy &&\n\t\t\t\t\t\tcompareAddress(highestOffer.createdBy, currentUserAddress);\n\n\t\t\t\t\t// Check if user owns the token (has balance > 0)\n\t\t\t\t\tconst userOwnsToken = balance && Number(balance) > 0;\n\n\t\t\t\t\t// Can accept offer: didn't make the offer AND owns the token\n\t\t\t\t\tconst canAcceptOffer = !isOfferMadeBySelf && userOwnsToken;\n\n\t\t\t\t\t// Should show disabled styling: can't accept offer\n\t\t\t\t\tconst shouldDisable = !canAcceptOffer;\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\tclassName={`absolute top-0 right-0 z-10 h-[22px] w-[22px] ${shouldDisable ? 'opacity-50 hover:animate-none hover:opacity-50' : 'hover:animate-bell-ring'}`}\n\t\t\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\tif (!canAcceptOffer) {\n\t\t\t\t\t\t\t\t\t// For cases where user can't accept offer (offer maker or non-owner), allow normal wrapper behavior\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Only stop propagation and open offer modal if user can accept the offer\n\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\t\tonOfferClick?.(e);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonMouseEnter={(e) => {\n\t\t\t\t\t\t\t\tif (canAcceptOffer) {\n\t\t\t\t\t\t\t\t\t// Only prevent parent hover effects when user can accept offer\n\t\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\ticon={(props) => <SvgBellIcon {...props} size=\"xs\" />}\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t})()}\n\t\t</div>\n\t);\n};\n","'use client';\n\nimport {\n\tChevronLeftIcon,\n\tChevronRightIcon,\n\tcn,\n\tImage,\n\tText,\n} from '@0xsequence/design-system';\nimport type { Currency } from '../../../../../../_internal';\nimport { formatPriceNumber } from '../../../utils';\n\ninterface PriceDisplayProps {\n\tamount: string;\n\tcurrency: Currency;\n\tshowCurrencyIcon?: boolean;\n\tclassName?: string;\n}\n\nexport const formatPrice = (\n\tamount: string,\n\tcurrency: Currency,\n): React.ReactNode => {\n\tconst { formattedNumber, isUnderflow, isOverflow } = formatPriceNumber(\n\t\tamount,\n\t\tcurrency.decimals,\n\t);\n\tconst isFree = amount === '0';\n\n\tif (isFree) {\n\t\treturn <Text className=\"font-bold text-sm text-text-100\">Free</Text>;\n\t}\n\n\tif (isUnderflow) {\n\t\treturn (\n\t\t\t<div className=\"flex items-center\">\n\t\t\t\t<ChevronLeftIcon className=\"h-3 w-3 text-text-100\" />\n\t\t\t\t<Text className=\"font-bold text-sm text-text-100\">{`${formattedNumber} ${currency.symbol}`}</Text>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif (isOverflow) {\n\t\treturn (\n\t\t\t<div className=\"flex items-center\">\n\t\t\t\t<ChevronRightIcon className=\"h-3 w-3 text-text-100\" />\n\t\t\t\t<Text className=\"font-bold text-sm text-text-100\">{`${formattedNumber} ${currency.symbol}`}</Text>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<Text className=\"font-bold text-sm text-text-100\">\n\t\t\t{formattedNumber} {currency.symbol}\n\t\t</Text>\n\t);\n};\n\nexport const PriceDisplay = ({\n\tamount,\n\tcurrency,\n\tshowCurrencyIcon = true,\n\tclassName,\n}: PriceDisplayProps) => {\n\treturn (\n\t\t<div className={cn('flex items-center gap-1', className)}>\n\t\t\t{showCurrencyIcon && currency.imageUrl && (\n\t\t\t\t<Image\n\t\t\t\t\talt={currency.symbol}\n\t\t\t\t\tclassName=\"h-3 w-3\"\n\t\t\t\t\tsrc={currency.imageUrl}\n\t\t\t\t\tonError={(e) => {\n\t\t\t\t\t\te.currentTarget.style.display = 'none';\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t{formatPrice(amount, currency)}\n\t\t</div>\n\t);\n};\n","'use client';\n\nimport { Text } from '@0xsequence/design-system';\nimport type { ContractType } from '../../../../../../_internal';\nimport { getSupplyStatusText } from '../../../utils';\n\ninterface SaleDetailsPillProps {\n\tquantityRemaining: string | undefined;\n\tcollectionType: ContractType;\n\tunlimitedSupply?: boolean;\n}\n\nexport const SaleDetailsPill = ({\n\tquantityRemaining,\n\tcollectionType,\n\tunlimitedSupply,\n}: SaleDetailsPillProps) => {\n\tconst supplyText = getSupplyStatusText({\n\t\tquantityRemaining,\n\t\tcollectionType,\n\t\tunlimitedSupply,\n\t});\n\n\treturn (\n\t\t<Text className=\"rounded-lg bg-background-secondary px-2 py-1 text-left font-medium text-text-80 text-xs\">\n\t\t\t{supplyText}\n\t\t</Text>\n\t);\n};\n","'use client';\n\nimport { Text } from '@0xsequence/design-system';\nimport { formatUnits } from 'viem';\nimport { ContractType } from '../../../../../../_internal';\n\ninterface TokenTypeBalancePillProps {\n\tbalance?: string;\n\ttype: ContractType;\n\tdecimals?: number;\n}\n\nexport const TokenTypeBalancePill = ({\n\tbalance,\n\ttype,\n\tdecimals,\n}: TokenTypeBalancePillProps) => {\n\tconst displayText =\n\t\ttype === ContractType.ERC1155\n\t\t\t? balance\n\t\t\t\t? `Owned: ${formatUnits(BigInt(balance), decimals ?? 0)}`\n\t\t\t\t: 'ERC-1155'\n\t\t\t: 'ERC-721';\n\n\treturn (\n\t\t<Text className=\"rounded-lg bg-background-secondary px-2 py-1 text-left font-medium text-text-80 text-xs\">\n\t\t\t{displayText}\n\t\t</Text>\n\t);\n};\n"],"mappings":";;;;;;;;;;AAkBA,MAAa,cAAc,EAC1B,MACA,QACA,cACA,cACA,iBACA,mBACA,cACsB;CACtB,MAAM,EAAE,SAAS,uBAAuB,YAAY;CACpD,MAAM,qBAAqB;AAC1B,MAAI,KAAK,SAAS,MAAM,gBAAgB,CAAC,OACxC,QAAO,GAAG,KAAK,UAAU,GAAG,GAAG,CAAC;AAEjC,MAAI,KAAK,SAAS,MAAM,CAAC,gBAAgB,CAAC,OACzC,QAAO,GAAG,KAAK,UAAU,GAAG,GAAG,CAAC;AAEjC,MAAI,KAAK,SAAS,GACjB,QAAO,GAAG,KAAK,UAAU,GAAG,GAAG,CAAC;AAEjC,SAAO;KACJ;AAEJ,QACC,qBAAC;EAAI,WAAU;aACd,oBAAC;GACA,WAAW,GACV,qFACA,WACE,oBAAoB,UACpB,sBAAsB,WACvB,eACD;aAEA,eAAe;IACV,EAEN,gBACA,gBACA,CAAC,iBACM;GAWN,MAAM,iBAAiB,EARtB,sBACA,aAAa,aACb,eAAe,aAAa,WAAW,mBAAmB,KAGrC,WAAW,OAAO,QAAQ,GAAG;AAQnD,UACC,oBAAC;IACA,WAAW,iDAJS,CAAC,iBAIuD,mDAAmD;IAC/H,MAAK;IACL,SAAQ;IACR,UAAU,MAAM;AACf,SAAI,CAAC,eAEJ;AAID,OAAE,iBAAiB;AACnB,OAAE,gBAAgB;AAClB,oBAAe,EAAE;;IAElB,eAAe,MAAM;AACpB,SAAI,eAEH,GAAE,iBAAiB;;IAGrB,OAAO,UAAU,oBAACA;KAAY,GAAI;KAAO,MAAK;MAAO;KACpD;MAEA;GACA;;;;;ACjFR,MAAa,eACZ,QACA,aACqB;CACrB,MAAM,EAAE,iBAAiB,aAAa,eAAe,kBACpD,QACA,SAAS,SACT;AAGD,KAFe,WAAW,IAGzB,QAAO,oBAAC;EAAK,WAAU;YAAkC;GAAW;AAGrE,KAAI,YACH,QACC,qBAAC;EAAI,WAAU;aACd,oBAAC,mBAAgB,WAAU,0BAA0B,EACrD,oBAAC;GAAK,WAAU;aAAmC,GAAG,gBAAgB,GAAG,SAAS;IAAgB;GAC7F;AAIR,KAAI,WACH,QACC,qBAAC;EAAI,WAAU;aACd,oBAAC,oBAAiB,WAAU,0BAA0B,EACtD,oBAAC;GAAK,WAAU;aAAmC,GAAG,gBAAgB,GAAG,SAAS;IAAgB;GAC7F;AAIR,QACC,qBAAC;EAAK,WAAU;;GACd;GAAgB;GAAE,SAAS;;GACtB;;AAIT,MAAa,gBAAgB,EAC5B,QACA,UACA,mBAAmB,MACnB,gBACwB;AACxB,QACC,qBAAC;EAAI,WAAW,GAAG,2BAA2B,UAAU;aACtD,oBAAoB,SAAS,YAC7B,oBAAC;GACA,KAAK,SAAS;GACd,WAAU;GACV,KAAK,SAAS;GACd,UAAU,MAAM;AACf,MAAE,cAAc,MAAM,UAAU;;IAEhC,EAEF,YAAY,QAAQ,SAAS;GACzB;;;;;ACjER,MAAa,mBAAmB,EAC/B,mBACA,gBACA,sBAC2B;CAC3B,MAAM,aAAa,oBAAoB;EACtC;EACA;EACA;EACA,CAAC;AAEF,QACC,oBAAC;EAAK,WAAU;YACd;GACK;;;;;ACdT,MAAa,wBAAwB,EACpC,SACA,MACA,eACgC;CAChC,MAAM,cACL,SAAS,aAAa,UACnB,UACC,UAAU,YAAY,OAAO,QAAQ,EAAE,YAAY,EAAE,KACrD,aACD;AAEJ,QACC,oBAAC;EAAK,WAAU;YACd;GACK"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ContractType } from "./marketplace.gen-
|
|
2
|
-
import { ERC1155_SALES_CONTRACT_ABI_V0, ERC1155_SALES_CONTRACT_ABI_V1, ERC721_SALE_ABI_V0, ERC721_SALE_ABI_V1 } from "./primary-sale-
|
|
1
|
+
import { ContractType } from "./marketplace.gen-ksUafDqS.js";
|
|
2
|
+
import { ERC1155_SALES_CONTRACT_ABI_V0, ERC1155_SALES_CONTRACT_ABI_V1, ERC721_SALE_ABI_V0, ERC721_SALE_ABI_V1 } from "./primary-sale-1u4QlPdA.js";
|
|
3
3
|
import { useReadContract } from "wagmi";
|
|
4
4
|
import { useMemo } from "react";
|
|
5
5
|
|
|
@@ -73,13 +73,12 @@ function useSalesContractABI({ contractAddress, contractType, chainId, enabled =
|
|
|
73
73
|
error: null
|
|
74
74
|
};
|
|
75
75
|
}
|
|
76
|
-
const error = v0Error || v1Error;
|
|
77
76
|
return {
|
|
78
77
|
version: null,
|
|
79
78
|
abi: null,
|
|
80
79
|
contractType: null,
|
|
81
80
|
isLoading: false,
|
|
82
|
-
error
|
|
81
|
+
error: v0Error || v1Error
|
|
83
82
|
};
|
|
84
83
|
}, [
|
|
85
84
|
v1Data,
|
|
@@ -94,4 +93,4 @@ function useSalesContractABI({ contractAddress, contractType, chainId, enabled =
|
|
|
94
93
|
|
|
95
94
|
//#endregion
|
|
96
95
|
export { SalesContractVersion, useSalesContractABI };
|
|
97
|
-
//# sourceMappingURL=contracts-
|
|
96
|
+
//# sourceMappingURL=contracts-BP_0vX48.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts-
|
|
1
|
+
{"version":3,"file":"contracts-BP_0vX48.js","names":[],"sources":["../src/react/hooks/contracts/useSalesContractABI.ts"],"sourcesContent":["import { useMemo } from 'react';\nimport type { Address } from 'viem';\nimport { useReadContract } from 'wagmi';\nimport {\n\tERC721_SALE_ABI_V0,\n\tERC721_SALE_ABI_V1,\n\tERC1155_SALES_CONTRACT_ABI_V0,\n\tERC1155_SALES_CONTRACT_ABI_V1,\n} from '../../../utils/abi';\nimport { ContractType } from '../../_internal';\n\nexport enum SalesContractVersion {\n\tV0 = 'v0',\n\tV1 = 'v1',\n}\n\ninterface UseSalesContractABIProps {\n\tcontractAddress: Address;\n\tcontractType: ContractType.ERC721 | ContractType.ERC1155;\n\tchainId: number;\n\tenabled?: boolean;\n}\n\ntype UseSalesContractABIResult =\n\t| {\n\t\t\tversion: null;\n\t\t\tabi: null;\n\t\t\tcontractType: null;\n\t\t\tisLoading: true;\n\t\t\terror: null;\n\t }\n\t| {\n\t\t\tversion: SalesContractVersion.V0;\n\t\t\tabi: typeof ERC721_SALE_ABI_V0;\n\t\t\tcontractType: ContractType.ERC721;\n\t\t\tisLoading: false;\n\t\t\terror: null;\n\t }\n\t| {\n\t\t\tversion: SalesContractVersion.V0;\n\t\t\tabi: typeof ERC1155_SALES_CONTRACT_ABI_V0;\n\t\t\tcontractType: ContractType.ERC1155;\n\t\t\tisLoading: false;\n\t\t\terror: null;\n\t }\n\t| {\n\t\t\tversion: SalesContractVersion.V1;\n\t\t\tabi: typeof ERC721_SALE_ABI_V1;\n\t\t\tcontractType: ContractType.ERC721;\n\t\t\tisLoading: false;\n\t\t\terror: null;\n\t }\n\t| {\n\t\t\tversion: SalesContractVersion.V1;\n\t\t\tabi: typeof ERC1155_SALES_CONTRACT_ABI_V1;\n\t\t\tcontractType: ContractType.ERC1155;\n\t\t\tisLoading: false;\n\t\t\terror: null;\n\t }\n\t| {\n\t\t\tversion: null;\n\t\t\tabi: null;\n\t\t\tcontractType: null;\n\t\t\tisLoading: false;\n\t\t\terror: Error;\n\t };\n\nexport function useSalesContractABI({\n\tcontractAddress,\n\tcontractType,\n\tchainId,\n\tenabled = true,\n}: UseSalesContractABIProps): UseSalesContractABIResult {\n\tconst functionName =\n\t\tcontractType === ContractType.ERC721 ? 'saleDetails' : 'tokenSaleDetails';\n\n\tconst {\n\t\tdata: v1Data,\n\t\tisLoading: v1Loading,\n\t\terror: v1Error,\n\t} = useReadContract({\n\t\taddress: contractAddress,\n\t\tabi:\n\t\t\tcontractType === ContractType.ERC721\n\t\t\t\t? ERC721_SALE_ABI_V1\n\t\t\t\t: ERC1155_SALES_CONTRACT_ABI_V1,\n\t\tfunctionName,\n\t\targs: contractType === ContractType.ERC1155 ? [0n] : undefined,\n\t\tchainId,\n\t\tquery: {\n\t\t\tenabled,\n\t\t\tretry: false,\n\t\t},\n\t});\n\n\t// If V1 fails, try with V0 ABI, see enabled query\n\tconst {\n\t\tdata: v0Data,\n\t\tisLoading: v0Loading,\n\t\terror: v0Error,\n\t} = useReadContract({\n\t\taddress: contractAddress,\n\t\tabi:\n\t\t\tcontractType === ContractType.ERC721\n\t\t\t\t? ERC721_SALE_ABI_V0\n\t\t\t\t: ERC1155_SALES_CONTRACT_ABI_V0,\n\t\tfunctionName,\n\t\targs: contractType === ContractType.ERC1155 ? [0n] : undefined,\n\t\tchainId,\n\t\tquery: {\n\t\t\tenabled: enabled && !!v1Error && !v1Loading, // Only try V0 if V1 failed\n\t\t\tretry: false,\n\t\t},\n\t});\n\n\treturn useMemo(() => {\n\t\tif (v1Loading || (v1Error && v0Loading)) {\n\t\t\treturn {\n\t\t\t\tversion: null,\n\t\t\t\tabi: null,\n\t\t\t\tcontractType: null,\n\t\t\t\tisLoading: true,\n\t\t\t\terror: null,\n\t\t\t};\n\t\t}\n\n\t\tif (v1Data && !v1Error) {\n\t\t\tif (contractType === ContractType.ERC721) {\n\t\t\t\treturn {\n\t\t\t\t\tversion: SalesContractVersion.V1,\n\t\t\t\t\tabi: ERC721_SALE_ABI_V1,\n\t\t\t\t\tcontractType: ContractType.ERC721,\n\t\t\t\t\tisLoading: false,\n\t\t\t\t\terror: null,\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tversion: SalesContractVersion.V1,\n\t\t\t\tabi: ERC1155_SALES_CONTRACT_ABI_V1,\n\t\t\t\tcontractType: ContractType.ERC1155,\n\t\t\t\tisLoading: false,\n\t\t\t\terror: null,\n\t\t\t};\n\t\t}\n\n\t\tif (v0Data && !v0Error) {\n\t\t\tif (contractType === ContractType.ERC721) {\n\t\t\t\treturn {\n\t\t\t\t\tversion: SalesContractVersion.V0,\n\t\t\t\t\tabi: ERC721_SALE_ABI_V0,\n\t\t\t\t\tcontractType: ContractType.ERC721,\n\t\t\t\t\tisLoading: false,\n\t\t\t\t\terror: null,\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tversion: SalesContractVersion.V0,\n\t\t\t\tabi: ERC1155_SALES_CONTRACT_ABI_V0,\n\t\t\t\tcontractType: ContractType.ERC1155,\n\t\t\t\tisLoading: false,\n\t\t\t\terror: null,\n\t\t\t};\n\t\t}\n\n\t\tconst error = v0Error || v1Error;\n\t\treturn {\n\t\t\tversion: null,\n\t\t\tabi: null,\n\t\t\tcontractType: null,\n\t\t\tisLoading: false,\n\t\t\terror: error as Error,\n\t\t};\n\t}, [v1Data, v1Error, v1Loading, v0Data, v0Error, v0Loading, contractType]);\n}\n"],"mappings":";;;;;;AAWA,IAAY,wEAAL;AACN;AACA;;;AAsDD,SAAgB,oBAAoB,EACnC,iBACA,cACA,SACA,UAAU,QAC6C;CACvD,MAAM,eACL,iBAAiB,aAAa,SAAS,gBAAgB;CAExD,MAAM,EACL,MAAM,QACN,WAAW,WACX,OAAO,YACJ,gBAAgB;EACnB,SAAS;EACT,KACC,iBAAiB,aAAa,SAC3B,qBACA;EACJ;EACA,MAAM,iBAAiB,aAAa,UAAU,CAAC,GAAG,GAAG;EACrD;EACA,OAAO;GACN;GACA,OAAO;GACP;EACD,CAAC;CAGF,MAAM,EACL,MAAM,QACN,WAAW,WACX,OAAO,YACJ,gBAAgB;EACnB,SAAS;EACT,KACC,iBAAiB,aAAa,SAC3B,qBACA;EACJ;EACA,MAAM,iBAAiB,aAAa,UAAU,CAAC,GAAG,GAAG;EACrD;EACA,OAAO;GACN,SAAS,WAAW,CAAC,CAAC,WAAW,CAAC;GAClC,OAAO;GACP;EACD,CAAC;AAEF,QAAO,cAAc;AACpB,MAAI,aAAc,WAAW,UAC5B,QAAO;GACN,SAAS;GACT,KAAK;GACL,cAAc;GACd,WAAW;GACX,OAAO;GACP;AAGF,MAAI,UAAU,CAAC,SAAS;AACvB,OAAI,iBAAiB,aAAa,OACjC,QAAO;IACN,SAAS,qBAAqB;IAC9B,KAAK;IACL,cAAc,aAAa;IAC3B,WAAW;IACX,OAAO;IACP;AAEF,UAAO;IACN,SAAS,qBAAqB;IAC9B,KAAK;IACL,cAAc,aAAa;IAC3B,WAAW;IACX,OAAO;IACP;;AAGF,MAAI,UAAU,CAAC,SAAS;AACvB,OAAI,iBAAiB,aAAa,OACjC,QAAO;IACN,SAAS,qBAAqB;IAC9B,KAAK;IACL,cAAc,aAAa;IAC3B,WAAW;IACX,OAAO;IACP;AAEF,UAAO;IACN,SAAS,qBAAqB;IAC9B,KAAK;IACL,cAAc,aAAa;IAC3B,WAAW;IACX,OAAO;IACP;;AAIF,SAAO;GACN,SAAS;GACT,KAAK;GACL,cAAc;GACd,WAAW;GACX,OANa,WAAW;GAOxB;IACC;EAAC;EAAQ;EAAS;EAAW;EAAQ;EAAS;EAAW;EAAa,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { MarketplaceWalletType } from "./builder.gen-B9wR2nvF.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { networkToWagmiChain } from "./networkconfigToWagmiChain-DbUf6HiO.js";
|
|
3
|
+
import { MissingConfigError } from "./transaction-DZUW5RHu.js";
|
|
4
4
|
import { allNetworks, findNetworkConfig } from "@0xsequence/network";
|
|
5
5
|
import { cookieStorage, createConfig, createStorage, http } from "wagmi";
|
|
6
|
+
import { apple, appleWaas, coinbaseWallet, ecosystemWallet, email, emailWaas, facebook, getConnectWallets, google, googleWaas, sequence, twitch, walletConnect } from "@0xsequence/connect";
|
|
6
7
|
import React from "react";
|
|
7
8
|
|
|
8
9
|
//#region src/react/_internal/consts.ts
|
|
@@ -145,14 +146,8 @@ function getWagmiChainsAndTransports({ marketplaceConfig, sdkConfig }) {
|
|
|
145
146
|
transports
|
|
146
147
|
};
|
|
147
148
|
}
|
|
148
|
-
function
|
|
149
|
-
return
|
|
150
|
-
}
|
|
151
|
-
function getChainConfigs(marketConfig) {
|
|
152
|
-
const supportedChainIds = new Set(getAllCollections(marketConfig).map((c) => c.chainId));
|
|
153
|
-
if (supportedChainIds.size === 0) supportedChainIds.add(DEFAULT_NETWORK);
|
|
154
|
-
const chains = getDefaultChains([...supportedChainIds]);
|
|
155
|
-
return chains;
|
|
149
|
+
function getChainConfigs(_marketConfig) {
|
|
150
|
+
return Object.values(allNetworks).map(networkToWagmiChain);
|
|
156
151
|
}
|
|
157
152
|
function getTransportConfigs(chains, projectAccessKey, nodeGatewayEnv, nodeGatewayUrl) {
|
|
158
153
|
return chains.reduce((acc, chain) => {
|
|
@@ -173,4 +168,4 @@ function getTransportConfigs(chains, projectAccessKey, nodeGatewayEnv, nodeGatew
|
|
|
173
168
|
|
|
174
169
|
//#endregion
|
|
175
170
|
export { DEFAULT_NETWORK, createWagmiConfig, getConnectors, getEcosystemConnector, getWaasConnectors, getWagmiChainsAndTransports };
|
|
176
|
-
//# sourceMappingURL=create-config-
|
|
171
|
+
//# sourceMappingURL=create-config-CIfejoCk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-config-CIfejoCk.js","names":["wallets: Wallet[]","rpcUrl: string"],"sources":["../src/react/_internal/consts.ts","../src/react/_internal/wagmi/get-connectors.ts","../src/react/_internal/wagmi/create-config.ts"],"sourcesContent":["export const DEFAULT_NETWORK = 137;\n","import {\n\tapple,\n\tappleWaas,\n\tcoinbaseWallet,\n\tecosystemWallet,\n\temail,\n\temailWaas,\n\tfacebook,\n\tgetConnectWallets,\n\tgoogle,\n\tgoogleWaas,\n\ttype SequenceOptions,\n\tsequence,\n\ttwitch,\n\ttype Wallet,\n\twalletConnect,\n} from '@0xsequence/connect';\nimport React, { type FunctionComponent } from 'react';\nimport type { CreateConnectorFn } from 'wagmi';\nimport type { Env, SdkConfig } from '../../../types/index';\nimport type { MarketplaceConfig } from '../../../types/new-marketplace-types';\nimport { MissingConfigError } from '../../../utils/_internal/error/transaction';\nimport { MarketplaceWalletType } from '../api/builder.gen';\nimport { DEFAULT_NETWORK } from '../consts';\n\nexport function getConnectors({\n\tmarketplaceConfig,\n\tsdkConfig,\n\twalletType,\n}: {\n\tmarketplaceConfig: MarketplaceConfig;\n\tsdkConfig: SdkConfig;\n\twalletType: MarketplaceWalletType;\n}): CreateConnectorFn[] {\n\tconst connectors = commonConnectors(marketplaceConfig, sdkConfig);\n\n\tif (walletType === MarketplaceWalletType.UNIVERSAL) {\n\t\tconnectors.push(...getUniversalWalletConfigs(sdkConfig, marketplaceConfig));\n\t} else if (walletType === MarketplaceWalletType.EMBEDDED) {\n\t\tconnectors.push(...getWaasConnectors(sdkConfig, marketplaceConfig));\n\t} else if (walletType === MarketplaceWalletType.ECOSYSTEM) {\n\t\tconnectors.push(getEcosystemConnector(marketplaceConfig, sdkConfig));\n\t} else {\n\t\tthrow new Error('Invalid wallet type');\n\t}\n\n\treturn getConnectWallets(sdkConfig.projectAccessKey, connectors);\n}\n\nfunction commonConnectors(\n\tmarketplaceConfig: MarketplaceConfig,\n\tsdkConfig: SdkConfig,\n) {\n\tconst wallets = [];\n\tconst { title: appName } = marketplaceConfig.settings;\n\tconst walletOptions = marketplaceConfig.settings.walletOptions;\n\tconst walletConnectProjectId = sdkConfig.walletConnectProjectId;\n\n\tif (walletOptions.connectors.includes('coinbase')) {\n\t\twallets.push(\n\t\t\tcoinbaseWallet({\n\t\t\t\tappName,\n\t\t\t}),\n\t\t);\n\t}\n\n\tif (\n\t\twalletConnectProjectId &&\n\t\twalletOptions.connectors.includes('walletconnect')\n\t) {\n\t\twallets.push(\n\t\t\twalletConnect({\n\t\t\t\tprojectId: walletConnectProjectId,\n\t\t\t}),\n\t\t);\n\t}\n\n\treturn wallets;\n}\n\nfunction getUniversalWalletConfigs(\n\tconfig: SdkConfig,\n\tmarketplaceConfig: MarketplaceConfig,\n): Wallet[] {\n\tconst sequenceWalletOverrides =\n\t\tconfig._internal?.overrides?.api?.sequenceWallet;\n\tconst sequenceWalletUrl =\n\t\tsequenceWalletOverrides?.url ||\n\t\tgetSequenceWalletURL(sequenceWalletOverrides?.env || 'production');\n\tconst projectAccessKey =\n\t\tsequenceWalletOverrides?.accessKey || config.projectAccessKey;\n\n\tconst sequenceWalletOptions = {\n\t\twalletAppURL: sequenceWalletUrl,\n\t\tdefaultNetwork: DEFAULT_NETWORK,\n\t\tconnect: {\n\t\t\tprojectAccessKey,\n\t\t\tapp: marketplaceConfig.settings.title,\n\t\t\tsettings: {\n\t\t\t\t// TODO: make a separate config for this?\n\t\t\t\tbannerUrl: marketplaceConfig.market.ogImage,\n\t\t\t},\n\t\t},\n\t} satisfies SequenceOptions;\n\n\treturn [\n\t\tsequence(sequenceWalletOptions),\n\t\temail(sequenceWalletOptions),\n\t\tfacebook(sequenceWalletOptions),\n\t\tgoogle(sequenceWalletOptions),\n\t\tapple(sequenceWalletOptions),\n\t\ttwitch(sequenceWalletOptions),\n\t] as const;\n}\n\nexport function getWaasConnectors(\n\tconfig: SdkConfig,\n\tmarketplaceConfig: MarketplaceConfig,\n): Wallet[] {\n\tconst { projectAccessKey } = config;\n\n\tconst waasConfigKey =\n\t\tmarketplaceConfig.settings.walletOptions.embedded?.tenantKey;\n\n\tif (!waasConfigKey)\n\t\tthrow new MissingConfigError(\n\t\t\t'Embedded wallet config is missing, please check your access key',\n\t\t);\n\n\tconst waasOptions = marketplaceConfig.settings.walletOptions.oidcIssuers;\n\tconst googleClientId = waasOptions.google;\n\tconst appleClientId = waasOptions.apple;\n\tconst appleRedirectURI =\n\t\ttypeof window !== 'undefined'\n\t\t\t? `${window.location.origin}${window.location.pathname}`\n\t\t\t: undefined;\n\n\tconst wallets: Wallet[] = [];\n\n\tif (marketplaceConfig.settings.walletOptions.embedded?.emailEnabled) {\n\t\twallets.push(\n\t\t\temailWaas({\n\t\t\t\tprojectAccessKey,\n\t\t\t\twaasConfigKey,\n\t\t\t}),\n\t\t);\n\t}\n\n\tif (googleClientId) {\n\t\twallets.push(\n\t\t\tgoogleWaas({\n\t\t\t\tprojectAccessKey,\n\t\t\t\tgoogleClientId,\n\t\t\t\twaasConfigKey,\n\t\t\t\tnetwork: DEFAULT_NETWORK,\n\t\t\t}),\n\t\t);\n\t}\n\n\tif (appleClientId) {\n\t\twallets.push(\n\t\t\tappleWaas({\n\t\t\t\tprojectAccessKey,\n\t\t\t\tappleClientId,\n\t\t\t\tappleRedirectURI,\n\t\t\t\twaasConfigKey,\n\t\t\t\tnetwork: DEFAULT_NETWORK,\n\t\t\t}),\n\t\t);\n\t}\n\n\treturn wallets;\n}\n\nexport function getEcosystemConnector(\n\tmarketplaceConfig: MarketplaceConfig,\n\tsdkConfig: SdkConfig,\n): Wallet {\n\tconst ecosystemOptions = marketplaceConfig.settings.walletOptions.ecosystem;\n\tif (!ecosystemOptions) throw new MissingConfigError('ecosystem');\n\tconst { walletAppName, walletUrl, logoDarkUrl, logoLightUrl } =\n\t\tecosystemOptions;\n\n\treturn ecosystemWallet({\n\t\tprojectAccessKey: sdkConfig.projectAccessKey,\n\t\twalletUrl,\n\t\tname: walletAppName,\n\t\tdefaultNetwork: DEFAULT_NETWORK,\n\t\tlogoDark: getEcosystemLogo(logoDarkUrl, walletAppName),\n\t\tlogoLight: getEcosystemLogo(logoLightUrl, walletAppName),\n\t});\n}\n\nfunction getEcosystemLogo(\n\turl: string | undefined,\n\tname: string,\n): FunctionComponent {\n\tif (!url) return () => null;\n\tconst Logo = () =>\n\t\tReact.createElement('img', { src: url, alt: name, width: 32, height: 32 });\n\tLogo.displayName = 'EcosystemLogo';\n\treturn Logo;\n}\n\nfunction getSequenceWalletURL(env: Env) {\n\tswitch (env) {\n\t\tcase 'development':\n\t\t\treturn 'https://dev.sequence.app';\n\t\tcase 'next':\n\t\t\treturn 'https://next.sequence.app';\n\t\t// biome-ignore lint/complexity/noUselessSwitchCase: Production case kept for readability alongside other environments\n\t\tcase 'production':\n\t\tdefault:\n\t\t\treturn 'https://sequence.app';\n\t}\n}\n","import { allNetworks, findNetworkConfig } from '@0xsequence/network';\nimport type { Chain, Transport } from 'viem';\nimport { cookieStorage, createConfig, createStorage, http } from 'wagmi';\nimport type { Env, SdkConfig } from '../../../types/index';\nimport type { MarketplaceConfig } from '../../../types/new-marketplace-types';\nimport { networkToWagmiChain } from '../../../utils/networkconfigToWagmiChain';\nimport { getConnectors } from './get-connectors';\n\nexport const createWagmiConfig = (\n\tmarketplaceConfig: MarketplaceConfig,\n\tsdkConfig: SdkConfig,\n\tssr?: boolean,\n) => {\n\tconst { chains, transports } = getWagmiChainsAndTransports({\n\t\tmarketplaceConfig,\n\t\tsdkConfig,\n\t});\n\n\tconst walletType = marketplaceConfig.settings.walletOptions.walletType;\n\n\tconst connectors = getConnectors({\n\t\tmarketplaceConfig,\n\t\tsdkConfig,\n\t\twalletType,\n\t});\n\n\tconst multiInjectedProviderDiscovery =\n\t\tmarketplaceConfig.settings.walletOptions.includeEIP6963Wallets;\n\n\treturn createConfig({\n\t\tconnectors,\n\t\tchains,\n\t\tssr,\n\t\tmultiInjectedProviderDiscovery,\n\t\tstorage: ssr\n\t\t\t? createStorage({\n\t\t\t\t\tstorage: cookieStorage,\n\t\t\t\t})\n\t\t\t: undefined,\n\t\ttransports,\n\t});\n};\n\nexport function getWagmiChainsAndTransports({\n\tmarketplaceConfig,\n\tsdkConfig,\n}: {\n\tmarketplaceConfig: MarketplaceConfig;\n\tsdkConfig: SdkConfig;\n}) {\n\tconst chains = getChainConfigs(marketplaceConfig);\n\tconst nodeGatewayOverrides = sdkConfig._internal?.overrides?.api?.nodeGateway;\n\tconst nodeGatewayEnv = nodeGatewayOverrides?.env ?? 'production';\n\tconst nodeGatewayUrl = nodeGatewayOverrides?.url;\n\tconst projectAccessKey =\n\t\tnodeGatewayOverrides?.accessKey ?? sdkConfig.projectAccessKey;\n\n\tconst transports = getTransportConfigs(\n\t\tchains,\n\t\tprojectAccessKey,\n\t\tnodeGatewayEnv,\n\t\tnodeGatewayUrl,\n\t);\n\n\treturn { chains, transports };\n}\n\nfunction getChainConfigs(\n\t_marketConfig: MarketplaceConfig,\n): [Chain, ...Chain[]] {\n\tconst chains = Object.values(allNetworks).map(networkToWagmiChain);\n\n\treturn chains as [Chain, ...Chain[]];\n}\n\nfunction getTransportConfigs(\n\tchains: [Chain, ...Chain[]],\n\tprojectAccessKey: string,\n\tnodeGatewayEnv: Env | undefined,\n\tnodeGatewayUrl?: string,\n): Record<number, Transport> {\n\treturn chains.reduce(\n\t\t(acc, chain) => {\n\t\t\tconst network = findNetworkConfig(allNetworks, chain.id);\n\t\t\tif (network) {\n\t\t\t\tlet rpcUrl: string;\n\t\t\t\tif (nodeGatewayUrl) {\n\t\t\t\t\t// Use manual URL if provided\n\t\t\t\t\trpcUrl = nodeGatewayUrl;\n\t\t\t\t} else {\n\t\t\t\t\t// Use default URL with environment prefix\n\t\t\t\t\trpcUrl = network.rpcUrl;\n\t\t\t\t\tif (nodeGatewayEnv === 'development') {\n\t\t\t\t\t\trpcUrl = rpcUrl.replace('nodes.', 'dev-nodes.');\n\t\t\t\t\t}\n\t\t\t\t\tif (!network.rpcUrl.endsWith(projectAccessKey))\n\t\t\t\t\t\trpcUrl = `${rpcUrl}/${projectAccessKey}`;\n\t\t\t\t}\n\t\t\t\tacc[chain.id] = http(rpcUrl);\n\t\t\t}\n\t\t\treturn acc;\n\t\t},\n\t\t{} as Record<number, Transport>,\n\t);\n}\n"],"mappings":"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"}
|