@0xsequence/marketplace-sdk 0.10.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.storybook/ConnectionStatus.tsx +289 -0
- package/.storybook/main.ts +20 -1
- package/.storybook/preview.tsx +105 -0
- package/CHANGELOG.md +116 -9
- package/compile-tailwind.js +54 -0
- package/dist/BellIcon-IpHHEy8h.js +45 -0
- package/dist/BellIcon-IpHHEy8h.js.map +1 -0
- package/dist/{CalendarIcon-CqsuAuCm.js → CartIcon-C8zbor8H.js} +50 -42
- package/dist/CartIcon-C8zbor8H.js.map +1 -0
- package/dist/CollectibleCard-C2EWF0zo.d.ts +8 -0
- package/dist/{_internal-C75gOSNo.js → _internal-DkS2VUn5.js} +10 -2
- package/dist/_internal-DkS2VUn5.js.map +1 -0
- package/dist/{alien_swap-CYv6YlOF.js → alien_swap-BTJ7mSR-.js} +1 -1
- package/dist/{alien_swap-CYv6YlOF.js.map → alien_swap-BTJ7mSR-.js.map} +1 -1
- package/dist/{api-BiMGqWdz.js → api-DuLKn__v.js} +26 -4
- package/dist/api-DuLKn__v.js.map +1 -0
- package/dist/{aqua-xyz-Bzn5baeH.js → aqua-xyz-BYJ9WSP_.js} +1 -1
- package/dist/{aqua-xyz-Bzn5baeH.js.map → aqua-xyz-BYJ9WSP_.js.map} +1 -1
- package/dist/{aura-DzIWh8WT.js → aura-D7SUjgro.js} +1 -1
- package/dist/{aura-DzIWh8WT.js.map → aura-D7SUjgro.js.map} +1 -1
- package/dist/{blur-DSH-Cbpj.js → blur-BcnRFCaV.js} +1 -1
- package/dist/{blur-DSH-Cbpj.js.map → blur-BcnRFCaV.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-Df8URNxq.js → coinbase-ChoX9Hw2.js} +1 -1
- package/dist/{coinbase-Df8URNxq.js.map → coinbase-ChoX9Hw2.js.map} +1 -1
- package/dist/components-CUv-wQr8.js +119 -0
- package/dist/components-CUv-wQr8.js.map +1 -0
- package/dist/contracts-D72LBOX3.js +96 -0
- package/dist/contracts-D72LBOX3.js.map +1 -0
- package/dist/{create-config-fQ-jbJD1.js → create-config-CIfejoCk.js} +6 -11
- package/dist/create-config-CIfejoCk.js.map +1 -0
- package/dist/{create-config-DKJ-F0jc.d.ts → create-config-DV_dtaLt.d.ts} +267 -247
- package/dist/{element-Cx6uJu5N.js → element-Dbcv5qya.js} +1 -1
- package/dist/{element-Cx6uJu5N.js.map → element-Dbcv5qya.js.map} +1 -1
- package/dist/filters-zkMJaPey.d.ts +31 -0
- package/dist/{foundation-D6U4aRLN.js → foundation-QPhUEUy8.js} +1 -1
- package/dist/{foundation-D6U4aRLN.js.map → foundation-QPhUEUy8.js.map} +1 -1
- package/dist/{index-C5aqo8xu.d.ts → index-B6aSbaw2.d.ts} +1 -1
- package/dist/index-B8vaT3_s.d.ts +18 -0
- package/dist/index-BaytncQc.d.ts +946 -0
- package/dist/{index-CUwMH7Ht.d.ts → index-BoNNplSx.d.ts} +2 -2
- package/dist/{index-136YrWDH.d.ts → index-Bv5XVLjH.d.ts} +1 -1
- package/dist/index-C768pAfu.d.ts +61 -0
- package/dist/index-CM0ZTePs.d.ts +2541 -0
- package/dist/index-CMPUveNz.d.ts +64 -0
- package/dist/index-CQecU53t.d.ts +311 -0
- package/dist/{index-BAhaEfqY.d.ts → index-CT8ZorFd.d.ts} +1 -1
- package/dist/index-CXscCUg7.d.ts +298 -0
- package/dist/{index-BhVFc2rX.d.ts → index-D-UXGo5d.d.ts} +4 -4
- package/dist/index-D6YMj82n.d.ts +813 -0
- package/dist/index-DJG0kiII.d.ts +346 -0
- package/dist/index-DLUjc7Bx.d.ts +316 -0
- package/dist/index-DMBMM16q.d.ts +447 -0
- package/dist/{index-CKrYP7ot.d.ts → index-DpeWm_vF.d.ts} +14 -22
- package/dist/index-Yobo6icm.d.ts +234 -0
- package/dist/index-jGgfEHfQ.d.ts +131 -0
- package/dist/index.d.ts +8 -8
- package/dist/index.js +13 -13
- package/dist/listCollectiblesPaginated-Bq0QSOjJ.d.ts +168 -0
- package/dist/listCollections-dTCq00l5.d.ts +669 -0
- package/dist/{looks-rare-ChBRBY-p.js → looks-rare-C7cQztTR.js} +1 -1
- package/dist/{looks-rare-ChBRBY-p.js.map → looks-rare-C7cQztTR.js.map} +1 -1
- package/dist/lowestListing-CB5Te-Q9.d.ts +168 -0
- package/dist/{magic-eden-D5U7N1xL.js → magic-eden-D3r7jiBG.js} +1 -1
- package/dist/{magic-eden-D5U7N1xL.js.map → magic-eden-D3r7jiBG.js.map} +1 -1
- package/dist/{manifold-CtLF52zU.js → manifold-DsX0CBP-.js} +1 -1
- package/dist/{manifold-CtLF52zU.js.map → manifold-DsX0CBP-.js.map} +1 -1
- package/dist/marketCurrencies-Bzj8X4TL.d.ts +122 -0
- package/dist/{marketplace-DmFiyBoS.js → marketplace-BYY8OloA.js} +1 -1
- package/dist/{marketplace-DmFiyBoS.js.map → marketplace-BYY8OloA.js.map} +1 -1
- package/dist/{marketplace-logos-Cd6W-qOq.js → marketplace-logos-Csv2MBwf.js} +21 -21
- package/dist/marketplace-logos-Csv2MBwf.js.map +1 -0
- package/dist/{marketplace.gen-HpnpL5xU.js → marketplace.gen-w2YvbEEo.js} +2 -2
- package/dist/marketplace.gen-w2YvbEEo.js.map +1 -0
- package/dist/{marketplaceConfig-GQTTmihy.js → marketplaceConfig-BTy75Mbf.js} +20 -10
- package/dist/marketplaceConfig-BTy75Mbf.js.map +1 -0
- package/dist/{mintify-Bi3Bce68.js → mintify-DiOoDmO1.js} +1 -1
- package/dist/{mintify-Bi3Bce68.js.map → mintify-DiOoDmO1.js.map} +1 -1
- package/dist/{network-CGD0oKtS.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-BDQZjtkX.js → nftx-CP82jNra.js} +1 -1
- package/dist/{nftx-BDQZjtkX.js.map → nftx-CP82jNra.js.map} +1 -1
- package/dist/{okx-D4meadLe.js → okx-p9-4xRjs.js} +1 -1
- package/dist/{okx-D4meadLe.js.map → okx-p9-4xRjs.js.map} +1 -1
- package/dist/{open-sea-DN0hgfVw.js → open-sea-D2GwAmKS.js} +1 -1
- package/dist/{open-sea-DN0hgfVw.js.map → open-sea-D2GwAmKS.js.map} +1 -1
- package/dist/primary-sale-DOmNDq2P.js +3048 -0
- package/dist/primary-sale-DOmNDq2P.js.map +1 -0
- package/dist/queries-EMA5CcwY.js +1399 -0
- package/dist/queries-EMA5CcwY.js.map +1 -0
- package/dist/query-BG-MA1MB.d.ts +31 -0
- package/dist/{rarible-B0xlD88A.js → rarible-DqiiW9ki.js} +1 -1
- package/dist/{rarible-B0xlD88A.js.map → rarible-DqiiW9ki.js.map} +1 -1
- package/dist/react/_internal/api/index.d.ts +1 -1
- package/dist/react/_internal/api/index.js +4 -6
- package/dist/react/_internal/databeat/index.d.ts +1 -1
- package/dist/react/_internal/databeat/index.js +27 -4
- package/dist/react/_internal/index.d.ts +1 -1
- package/dist/react/_internal/index.js +8 -10
- package/dist/react/_internal/wagmi/index.d.ts +1 -1
- package/dist/react/_internal/wagmi/index.js +4 -4
- package/dist/react/hooks/config/index.d.ts +9 -0
- package/dist/react/hooks/config/index.js +29 -0
- package/dist/react/hooks/contracts/index.d.ts +7 -0
- package/dist/react/hooks/contracts/index.js +17 -0
- package/dist/react/hooks/data/collectibles/index.d.ts +5 -0
- package/dist/react/hooks/data/collectibles/index.js +29 -0
- package/dist/react/hooks/data/collections/index.d.ts +11 -0
- package/dist/react/hooks/data/collections/index.js +29 -0
- package/dist/react/hooks/data/index.d.ts +29 -0
- package/dist/react/hooks/data/index.js +29 -0
- package/dist/react/hooks/data/inventory/index.d.ts +29 -0
- package/dist/react/hooks/data/inventory/index.js +29 -0
- package/dist/react/hooks/data/market/index.d.ts +6 -0
- package/dist/react/hooks/data/market/index.js +29 -0
- package/dist/react/hooks/data/orders/index.d.ts +5 -0
- package/dist/react/hooks/data/orders/index.js +29 -0
- package/dist/react/hooks/data/primary-sales/index.d.ts +29 -0
- package/dist/react/hooks/data/primary-sales/index.js +29 -0
- package/dist/react/hooks/data/tokens/index.d.ts +5 -0
- package/dist/react/hooks/data/tokens/index.js +29 -0
- package/dist/react/hooks/index.d.ts +29 -13
- package/dist/react/hooks/index.js +25 -23
- package/dist/react/hooks/transactions/index.d.ts +3 -0
- package/dist/react/hooks/transactions/index.js +29 -0
- package/dist/react/hooks/ui/index.d.ts +5 -0
- package/dist/react/hooks/ui/index.js +29 -0
- package/dist/react/hooks/utils/index.d.ts +29 -0
- package/dist/react/hooks/utils/index.js +29 -0
- package/dist/react/index.d.ts +29 -13
- package/dist/react/index.js +25 -28
- package/dist/react/queries/index.d.ts +16 -9
- package/dist/react/queries/index.js +18 -20
- package/dist/react/ssr/index.d.ts +7 -7
- package/dist/react/ssr/index.js +9 -11
- 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 +29 -0
- package/dist/react/ui/components/marketplace-collectible-card/index.d.ts +5 -4
- package/dist/react/ui/components/marketplace-collectible-card/index.js +24 -27
- 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 -11
- 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 -13
- package/dist/react/ui/index.d.ts +5 -4
- package/dist/react/ui/index.js +24 -27
- package/dist/react/ui/modals/_internal/components/actionModal/index.d.ts +3 -27
- package/dist/react/ui/modals/_internal/components/actionModal/index.js +25 -24
- package/dist/react/utils/index.d.ts +19 -0
- package/dist/react/utils/index.js +9 -0
- package/dist/react-BLJ4DkPx.js +12410 -0
- package/dist/react-BLJ4DkPx.js.map +1 -0
- package/dist/{react-DeDyTgo7.css → react-F03jPjPk.css} +1 -1
- package/dist/{react-DeDyTgo7.css.map → react-F03jPjPk.css.map} +1 -1
- package/dist/{sequence-BIrOVRXO.js → sequence-Bbb-TFKg.js} +1 -1
- package/dist/{sequence-BIrOVRXO.js.map → sequence-Bbb-TFKg.js.map} +1 -1
- package/dist/{index.css → styles/index.css} +314 -153
- package/dist/{sudo-swap-BPMon-M5.js → sudo-swap-CEPIM3Js.js} +1 -1
- package/dist/{sudo-swap-BPMon-M5.js.map → sudo-swap-CEPIM3Js.js.map} +1 -1
- package/dist/{super-rare-kPN6Ua8i.js → super-rare-CMEn9PoO.js} +1 -1
- package/dist/{super-rare-kPN6Ua8i.js.map → super-rare-CMEn9PoO.js.map} +1 -1
- package/dist/{token-CHSBPYVG.js → token-CcyLz8Z8.js} +1 -1
- package/dist/{token-CHSBPYVG.js.map → token-CcyLz8Z8.js.map} +1 -1
- package/dist/tokenSupplies-C470zTT0.d.ts +147 -0
- package/dist/{transaction-CnctdNzS.js → transaction-DZUW5RHu.js} +21 -24
- 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-Yw2ywj6j.js → types-B_-cnkcP.js} +1 -1
- package/dist/types-B_-cnkcP.js.map +1 -0
- package/dist/{CollectibleCard-Dd-CG6dE.d.ts → types-D6LkVrF0.d.ts} +18 -13
- 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 +2 -2
- package/dist/utils/abi/primary-sale/index.js +2 -2
- 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 -12
- package/dist/{utils-9RXDgcBl.js → utils-BZEkdqWK.js} +7 -24
- package/dist/utils-BZEkdqWK.js.map +1 -0
- package/dist/{utils-DjVJ9tov.js → utils-oVZxdK0o.js} +2 -2
- package/dist/utils-oVZxdK0o.js.map +1 -0
- package/dist/waitForTransactionReceipt-B08YZiDY.js +26 -0
- package/dist/waitForTransactionReceipt-B08YZiDY.js.map +1 -0
- package/dist/{x2y2-BLz-_Q2O.js → x2y2-DNe6JgtG.js} +1 -1
- package/dist/{x2y2-BLz-_Q2O.js.map → x2y2-DNe6JgtG.js.map} +1 -1
- package/dist/{zora-UGhKs-aL.js → zora-w0Zqxxs4.js} +1 -1
- package/dist/{zora-UGhKs-aL.js.map → zora-w0Zqxxs4.js.map} +1 -1
- package/package.json +50 -47
- package/postcss.config.mjs +72 -5
- package/public/mockServiceWorker.js +344 -0
- package/src/react/_internal/api/__mocks__/builder.msw.ts +6 -0
- package/src/react/_internal/api/__mocks__/metadata.msw.ts +12 -1
- package/src/react/_internal/api/builder.gen.ts +11 -7
- package/src/react/_internal/api/marketplace.gen.ts +1 -1
- package/src/react/_internal/api/query-keys.ts +2 -0
- package/src/react/_internal/databeat/index.ts +1 -1
- package/src/react/_internal/databeat/types.ts +1 -0
- package/src/react/_internal/query-meta.ts +3 -0
- package/src/react/_internal/utils.ts +2 -0
- package/src/react/_internal/wagmi/__tests__/create-config.test.ts +19 -8
- package/src/react/_internal/wagmi/create-config.ts +7 -18
- package/src/react/_internal/wagmi/get-connectors.ts +1 -1
- package/src/react/hooks/{__tests__ → config}/__snapshots__/useMarketplaceConfig.test.tsx.snap +10 -4
- package/src/react/hooks/config/index.ts +3 -0
- package/src/react/hooks/{useConfig.tsx → config/useConfig.tsx} +2 -2
- package/src/react/hooks/config/useConnectorMetadata.tsx +16 -0
- package/src/react/hooks/{__tests__ → config}/useMarketplaceConfig.test.tsx +1 -1
- package/src/react/hooks/{useMarketplaceConfig.tsx → config/useMarketplaceConfig.tsx} +2 -2
- package/src/react/hooks/contracts/index.ts +1 -0
- package/src/react/hooks/contracts/useSalesContractABI.ts +174 -0
- package/src/react/hooks/data/collectibles/index.ts +6 -0
- package/src/react/hooks/{__tests__ → data/collectibles}/useBalanceOfCollectible.laos.test.tsx +6 -6
- package/src/react/hooks/{__tests__ → data/collectibles}/useBalanceOfCollectible.test.tsx +2 -2
- package/src/react/hooks/{useBalanceOfCollectible.tsx → data/collectibles/useBalanceOfCollectible.tsx} +4 -4
- package/src/react/hooks/{__tests__ → data/collectibles}/useCollectible.test.tsx +3 -3
- package/src/react/hooks/{useCollectible.tsx → data/collectibles/useCollectible.tsx} +3 -3
- package/src/react/hooks/{__tests__ → data/collectibles}/useCountOfCollectables.test.tsx +4 -4
- package/src/react/hooks/{useCountOfCollectables.tsx → data/collectibles/useCountOfCollectables.tsx} +3 -3
- package/src/react/hooks/{__tests__ → data/collectibles}/useListCollectibleActivities.test.tsx +3 -3
- package/src/react/hooks/{useListCollectibleActivities.tsx → data/collectibles/useListCollectibleActivities.tsx} +3 -3
- package/src/react/hooks/{__tests__ → data/collectibles}/useListCollectibles.test.tsx +5 -6
- package/src/react/hooks/{useListCollectibles.tsx → data/collectibles/useListCollectibles.tsx} +3 -3
- package/src/react/hooks/{__tests__ → data/collectibles}/useListCollectiblesPaginated.test.tsx +4 -4
- package/src/react/hooks/{useListCollectiblesPaginated.tsx → data/collectibles/useListCollectiblesPaginated.tsx} +3 -3
- 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/{__tests__ → data/collections}/__snapshots__/useListCollections.test.tsx.snap +16 -6
- package/src/react/hooks/data/collections/index.ts +6 -0
- package/src/react/hooks/{__tests__ → data/collections}/useCollection.test.tsx +2 -3
- package/src/react/hooks/{useCollection.tsx → data/collections/useCollection.tsx} +3 -3
- package/src/react/hooks/{__tests__ → data/collections}/useCollectionBalanceDetails.test.tsx +2 -2
- package/src/react/hooks/{useCollectionBalanceDetails.tsx → data/collections/useCollectionBalanceDetails.tsx} +3 -3
- package/src/react/hooks/{__tests__ → data/collections}/useCollectionDetails.test.tsx +2 -2
- package/src/react/hooks/{useCollectionDetails.ts → data/collections/useCollectionDetails.ts} +3 -3
- package/src/react/hooks/{__tests__ → data/collections}/useCollectionDetailsPolling.test.tsx +3 -3
- package/src/react/hooks/{useCollectionDetailsPolling.tsx → data/collections/useCollectionDetailsPolling.tsx} +4 -4
- package/src/react/hooks/{__tests__ → data/collections}/useListCollectionActivities.test.tsx +5 -5
- package/src/react/hooks/{useListCollectionActivities.tsx → data/collections/useListCollectionActivities.tsx} +3 -3
- package/src/react/hooks/{__tests__ → data/collections}/useListCollections.test.tsx +5 -4
- package/src/react/hooks/{useListCollections.tsx → data/collections/useListCollections.tsx} +4 -4
- package/src/react/hooks/data/index.ts +6 -0
- package/src/react/hooks/data/inventory/index.ts +1 -0
- package/src/react/hooks/{__tests__ → data/inventory}/useInventory.test.tsx +7 -102
- package/src/react/hooks/data/inventory/useInventory.tsx +21 -0
- package/src/react/hooks/data/market/index.ts +3 -0
- package/src/react/hooks/{__tests__ → data/market}/useCurrency.test.tsx +4 -4
- package/src/react/hooks/{useCurrency.tsx → data/market/useCurrency.tsx} +3 -3
- package/src/react/hooks/{__tests__ → data/market}/useListMarketCardData.test.tsx +10 -14
- package/src/react/hooks/{useListMarketCardData.tsx → data/market/useListMarketCardData.tsx} +7 -7
- package/src/react/hooks/{__tests__ → data/market}/useMarketCurrencies.test.tsx +5 -5
- package/src/react/hooks/{useMarketCurrencies.tsx → data/market/useMarketCurrencies.tsx} +3 -3
- package/src/react/hooks/data/orders/index.ts +7 -0
- package/src/react/hooks/{__tests__ → data/orders}/useCountListingsForCollectible.test.tsx +2 -2
- package/src/react/hooks/{useCountListingsForCollectible.tsx → data/orders/useCountListingsForCollectible.tsx} +3 -3
- package/src/react/hooks/{__tests__ → data/orders}/useCountOffersForCollectible.test.tsx +2 -2
- package/src/react/hooks/{useCountOffersForCollectible.tsx → data/orders/useCountOffersForCollectible.tsx} +3 -3
- package/src/react/hooks/{__tests__ → data/orders}/useFloorOrder.test.tsx +3 -3
- package/src/react/hooks/{useFloorOrder.tsx → data/orders/useFloorOrder.tsx} +3 -3
- package/src/react/hooks/{__tests__ → data/orders}/useHighestOffer.test.tsx +3 -3
- package/src/react/hooks/{useHighestOffer.tsx → data/orders/useHighestOffer.tsx} +3 -3
- package/src/react/hooks/{__tests__ → data/orders}/useListListingsForCollectible.test.tsx +6 -6
- package/src/react/hooks/{useListListingsForCollectible.tsx → data/orders/useListListingsForCollectible.tsx} +3 -3
- package/src/react/hooks/{__tests__ → data/orders}/useListOffersForCollectible.test.tsx +5 -5
- package/src/react/hooks/data/orders/useListOffersForCollectible.tsx +80 -0
- package/src/react/hooks/{__tests__ → data/orders}/useLowestListing.test.tsx +5 -5
- package/src/react/hooks/{useLowestListing.tsx → data/orders/useLowestListing.tsx} +3 -3
- package/src/react/hooks/data/primary-sales/index.ts +6 -0
- package/src/react/hooks/{useCountOfPrimarySaleItems.tsx → data/primary-sales/useCountOfPrimarySaleItems.tsx} +2 -2
- package/src/react/hooks/data/primary-sales/useErc721SalesData.tsx +184 -0
- package/src/react/hooks/{useGetCountOfPrimarySaleItems.tsx → data/primary-sales/useGetCountOfPrimarySaleItems.tsx} +4 -4
- package/src/react/hooks/{useList1155ShopCardData.tsx → data/primary-sales/useList1155ShopCardData.tsx} +30 -39
- package/src/react/hooks/data/primary-sales/useList721ShopCardData.tsx +194 -0
- package/src/react/hooks/{useListPrimarySaleItems.tsx → data/primary-sales/useListPrimarySaleItems.tsx} +3 -3
- package/src/react/hooks/data/tokens/index.ts +5 -0
- package/src/react/hooks/{__tests__ → data/tokens}/useCurrencyBalance.test.tsx +2 -2
- package/src/react/hooks/{__tests__ → data/tokens}/useGetTokenRanges.test.tsx +3 -3
- package/src/react/hooks/{useGetTokenRanges.tsx → data/tokens/useGetTokenRanges.tsx} +6 -4
- package/src/react/hooks/{__tests__ → data/tokens}/useListBalances.test.tsx +2 -2
- package/src/react/hooks/{useListBalances.tsx → data/tokens/useListBalances.tsx} +5 -5
- package/src/react/hooks/{__tests__ → data/tokens}/useListTokenMetadata.test.tsx +3 -3
- package/src/react/hooks/{useListTokenMetadata.tsx → data/tokens/useListTokenMetadata.tsx} +3 -3
- package/src/react/hooks/data/tokens/useSearchTokenMetadata.test.tsx +284 -0
- package/src/react/hooks/data/tokens/useSearchTokenMetadata.tsx +189 -0
- package/src/react/hooks/{useTokenSupplies.ts → data/tokens/useTokenSupplies.ts} +5 -5
- package/src/react/hooks/index.ts +18 -52
- package/src/react/hooks/transactions/index.ts +9 -0
- package/src/react/hooks/{__tests__ → transactions}/useCancelOrder.test.tsx +59 -88
- package/src/react/hooks/{useCancelOrder.tsx → transactions/useCancelOrder.tsx} +6 -5
- package/src/react/hooks/{__tests__/useCancelTransactionSteps.test.tsx → transactions/useCancelTransactionSteps.test.tsx.bak} +3 -52
- package/src/react/hooks/transactions/useCancelTransactionSteps.tsx +193 -0
- package/src/react/hooks/{__tests__ → transactions}/useGenerateCancelTransaction.test.tsx +2 -2
- package/src/react/hooks/{useGenerateCancelTransaction.tsx → transactions/useGenerateCancelTransaction.tsx} +5 -5
- package/src/react/hooks/{__tests__ → transactions}/useGenerateListingTransaction.test.tsx +2 -2
- package/src/react/hooks/{useGenerateListingTransaction.tsx → transactions/useGenerateListingTransaction.tsx} +5 -5
- package/src/react/hooks/{__tests__ → transactions}/useGenerateOfferTransaction.test.tsx +7 -45
- package/src/react/hooks/{useGenerateOfferTransaction.tsx → transactions/useGenerateOfferTransaction.tsx} +7 -7
- package/src/react/hooks/{__tests__ → transactions}/useGenerateSellTransaction.test.tsx +3 -7
- package/src/react/hooks/{useGenerateSellTransaction.tsx → transactions/useGenerateSellTransaction.tsx} +4 -4
- package/src/react/hooks/transactions/useOrderSteps.tsx +189 -0
- package/src/react/hooks/transactions/useProcessStep.test.tsx +272 -0
- package/src/react/hooks/transactions/useProcessStep.ts +95 -0
- package/src/react/hooks/{__tests__ → transactions}/useTransferTokens.test.tsx +2 -2
- package/src/react/hooks/{useTransferTokens.tsx → transactions/useTransferTokens.tsx} +3 -3
- package/src/react/hooks/ui/index.ts +3 -0
- package/src/react/hooks/{useFilterState.tsx → ui/useFilterState.tsx} +1 -1
- package/src/react/hooks/{__tests__ → ui}/useFilters.test.tsx +1 -2
- package/src/react/hooks/{useFilters.tsx → ui/useFilters.tsx} +3 -3
- package/src/react/hooks/{useOpenConnectModal.tsx → ui/useOpenConnectModal.tsx} +1 -1
- package/src/react/hooks/util/optimisticCancelUpdates.ts +1 -0
- package/src/react/hooks/utils/__tests__/useEnsureCorrectChain.test.tsx +75 -0
- package/src/react/hooks/utils/index.ts +8 -0
- package/src/react/hooks/{__tests__ → utils}/useAutoSelectFeeOption.test.tsx +7 -3
- package/src/react/hooks/{useAutoSelectFeeOption.tsx → utils/useAutoSelectFeeOption.tsx} +2 -2
- package/src/react/hooks/{__tests__ → utils}/useCheckoutOptions.test.tsx +9 -5
- package/src/react/hooks/{useCheckoutOptions.tsx → utils/useCheckoutOptions.tsx} +6 -4
- package/src/react/hooks/{__tests__ → utils}/useCheckoutOptionsSalesContract.test.tsx +8 -4
- package/src/react/hooks/{useCheckoutOptionsSalesContract.tsx → utils/useCheckoutOptionsSalesContract.tsx} +3 -3
- package/src/react/hooks/{__tests__ → utils}/useComparePrices.test.tsx +1 -1
- package/src/react/hooks/{useComparePrices.tsx → utils/useComparePrices.tsx} +3 -5
- package/src/react/hooks/{__tests__ → utils}/useConvertPriceToUSD.test.tsx +2 -2
- package/src/react/hooks/{useConvertPriceToUSD.tsx → utils/useConvertPriceToUSD.tsx} +3 -3
- package/src/react/hooks/utils/useEnsureCorrectChain.ts +71 -0
- package/src/react/hooks/{__tests__ → utils}/useRoyalty.test.tsx +1 -1
- package/src/react/hooks/{useRoyalty.tsx → utils/useRoyalty.tsx} +3 -3
- package/src/react/index.ts +1 -2
- package/src/react/{provider.tsx → providers/index.tsx} +18 -17
- package/src/react/providers/modal-provider.tsx +43 -0
- package/src/react/{__tests__ → providers}/provider.test.tsx +1 -1
- package/src/react/providers/shadow-root.tsx +63 -0
- package/src/react/providers/theme-provider.tsx +29 -0
- package/src/react/queries/__tests__/balanceOfCollectible.laos.test.ts +3 -3
- package/src/react/queries/__tests__/inventory.laos.test.ts +6 -3
- package/src/react/queries/__tests__/tokenBalances.laos.test.ts +123 -0
- package/src/react/queries/balanceOfCollectible.ts +2 -1
- package/src/react/queries/filters.ts +23 -28
- package/src/react/queries/index.ts +20 -0
- package/src/react/queries/inventory.ts +63 -243
- package/src/react/queries/listCollectibles.ts +22 -48
- package/src/react/queries/listCollections.ts +10 -13
- package/src/react/queries/listOffersForCollectible.ts +101 -0
- package/src/react/queries/marketplaceConfig.ts +16 -3
- package/src/react/queries/primarySaleItems.ts +2 -7
- package/src/react/queries/searchTokenMetadata.ts +87 -0
- package/src/react/queries/tokenBalances.ts +85 -0
- package/src/react/queries/tokenSupplies.ts +26 -18
- package/src/react/ssr/__tests__/__snapshots__/create-ssr-client.test.ts.snap +10 -4
- package/src/react/ssr/__tests__/create-ssr-client.test.ts +1 -1
- package/src/react/ui/components/_internals/action-button/ActionButton.stories.tsx +296 -0
- package/src/react/ui/components/_internals/action-button/ActionButton.tsx +6 -9
- package/src/react/ui/components/_internals/action-button/__tests__/ActionButtonBody.test.tsx +34 -14
- package/src/react/ui/components/_internals/action-button/__tests__/NonOwnerActions.test.tsx +8 -15
- package/src/react/ui/components/_internals/action-button/__tests__/OwnerActions.test.tsx +5 -12
- package/src/react/ui/components/_internals/action-button/__tests__/useActionButtonLogic.test.tsx +32 -16
- package/src/react/ui/components/_internals/action-button/components/ActionButtonBody.tsx +2 -3
- package/src/react/ui/components/_internals/action-button/components/NonOwnerActions.tsx +7 -7
- package/src/react/ui/components/_internals/action-button/hooks/useActionButtonLogic.ts +2 -3
- 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 +4 -7
- package/src/react/ui/components/marketplace-collectible-card/components/BaseCard.tsx +18 -8
- 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 +21 -8
- package/src/react/ui/components/marketplace-collectible-card/variants/MarketCard.tsx +11 -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 +19 -13
- package/src/react/ui/index.ts +1 -1
- package/src/react/ui/modals/BuyModal/__tests__/BuyModalRouter.test.tsx +20 -35
- package/src/react/ui/modals/BuyModal/__tests__/ERC1155ShopModal.test.tsx +5 -5
- package/src/react/ui/modals/BuyModal/__tests__/ERC721ShopModal.test.tsx +1 -1
- 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 +10 -10
- package/src/react/ui/modals/BuyModal/components/ERC1155BuyModal.tsx +10 -10
- package/src/react/ui/modals/BuyModal/components/ERC1155QuantityModal.tsx +40 -22
- package/src/react/ui/modals/BuyModal/components/ERC1155ShopModal.tsx +2 -2
- package/src/react/ui/modals/BuyModal/components/ERC721BuyModal.tsx +4 -4
- package/src/react/ui/modals/BuyModal/hooks/__tests__/useCheckoutOptions.test.tsx +18 -30
- package/src/react/ui/modals/BuyModal/hooks/__tests__/useERC1155Checkout.test.tsx +14 -1
- package/src/react/ui/modals/BuyModal/hooks/__tests__/useERC721SalePaymentParams.test.tsx +13 -2
- package/src/react/ui/modals/BuyModal/hooks/useCheckoutOptions.ts +5 -5
- package/src/react/ui/modals/BuyModal/hooks/useERC1155Checkout.ts +19 -3
- package/src/react/ui/modals/BuyModal/hooks/useERC721SalePaymentParams.ts +18 -7
- package/src/react/ui/modals/BuyModal/hooks/useLoadData.ts +5 -9
- package/src/react/ui/modals/BuyModal/hooks/usePaymentModalParams.ts +16 -15
- package/src/react/ui/modals/BuyModal/store.ts +8 -6
- package/src/react/ui/modals/CreateListingModal/Modal.tsx +11 -5
- package/src/react/ui/modals/CreateListingModal/__tests__/Modal.test.tsx +3 -24
- package/src/react/ui/modals/CreateListingModal/hooks/useCreateListing.tsx +2 -1
- package/src/react/ui/modals/CreateListingModal/hooks/useGetTokenApproval.ts +5 -9
- package/src/react/ui/modals/CreateListingModal/hooks/useTransactionSteps.tsx +44 -84
- package/src/react/ui/modals/MakeOfferModal/Modal.tsx +91 -93
- package/src/react/ui/modals/MakeOfferModal/__tests__/Modal.test.tsx +88 -62
- package/src/react/ui/modals/MakeOfferModal/hooks/useGetTokenApproval.tsx +9 -7
- package/src/react/ui/modals/MakeOfferModal/hooks/useMakeOffer.tsx +4 -3
- package/src/react/ui/modals/MakeOfferModal/hooks/useTransactionSteps.tsx +48 -85
- package/src/react/ui/modals/SellModal/Modal.tsx +7 -9
- package/src/react/ui/modals/SellModal/__tests__/Modal.test.tsx +8 -30
- package/src/react/ui/modals/SellModal/hooks/useGetTokenApproval.tsx +9 -8
- package/src/react/ui/modals/SellModal/hooks/useSell.tsx +2 -1
- package/src/react/ui/modals/SellModal/hooks/useTransactionSteps.tsx +39 -65
- package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/__tests__/useHandleTransfer.test.tsx +28 -18
- package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/_components/TransferButton.tsx +33 -15
- package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/useHandleTransfer.tsx +3 -3
- package/src/react/ui/modals/TransferModal/index.tsx +9 -23
- package/src/react/ui/modals/_internal/components/actionModal/ActionModal.test.tsx +130 -139
- package/src/react/ui/modals/_internal/components/actionModal/ActionModal.tsx +15 -44
- package/src/react/ui/modals/_internal/components/actionModal/index.ts +0 -1
- package/src/react/ui/modals/_internal/components/currencyOptionsSelect/__tests__/index.test.tsx +9 -3
- package/src/react/ui/modals/_internal/components/currencyOptionsSelect/index.tsx +1 -1
- package/src/react/ui/modals/_internal/components/floorPriceText/__tests__/FloorPriceText.test.tsx +2 -2
- package/src/react/ui/modals/_internal/components/priceInput/index.tsx +3 -3
- package/src/react/ui/modals/_internal/components/quantityInput/__tests__/index.test.tsx +97 -7
- package/src/react/ui/modals/_internal/components/quantityInput/index.tsx +30 -11
- package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/__tests__/SelectWaasFeeOptions.test.tsx +2 -2
- package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/index.tsx +1 -1
- package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/useWaasFeeOptionManager.tsx +1 -1
- 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/transactionStatusModal/hooks/useTransactionStatus.ts +25 -26
- package/src/react/ui/modals/_internal/components/transactionStatusModal/index.tsx +3 -1
- package/src/react/ui/modals/_internal/components/waasFeeOptionsSelect/WaasFeeOptionsSelect.tsx +19 -4
- package/src/react/ui/modals/_internal/hooks/useSelectWaasFeeOptions.ts +3 -5
- package/src/react/ui/modals/_internal/types.ts +6 -1
- package/src/react/utils/index.ts +1 -0
- package/src/react/utils/waitForTransactionReceipt.ts +49 -0
- package/src/{index.css → styles/index.css} +1 -1
- package/src/styles/styles.ts +3297 -0
- package/src/types/new-marketplace-types.ts +9 -18
- package/src/types/sdk-config.ts +2 -0
- package/src/types/types.ts +1 -1
- package/src/utils/_internal/error/transaction.ts +0 -10
- package/src/utils/abi/primary-sale/index.ts +4 -2
- package/src/utils/abi/primary-sale/{sequence-1155-sales-contract.ts → sequence-1155-sales-contract-v0.ts} +67 -58
- package/src/utils/abi/primary-sale/sequence-1155-sales-contract-v1.ts +546 -0
- package/src/utils/abi/primary-sale/{sequence-721-sales-contract.ts → sequence-721-sales-contract-v0.ts} +1 -1
- package/src/utils/abi/primary-sale/sequence-721-sales-contract-v1.ts +394 -0
- package/test/const.ts +1 -1
- package/test/globalSetup.ts +39 -11
- package/test/handlers.ts +465 -0
- package/test/index.ts +1 -0
- package/test/server-setup.ts +23 -0
- package/test/setup.ts +1 -1
- package/test/test-utils.tsx +47 -38
- package/tsconfig.json +1 -1
- package/tsdown.config.ts +12 -7
- package/.storybook/preview.ts +0 -24
- package/dist/CalendarIcon-CqsuAuCm.js.map +0 -1
- package/dist/InfoIcon-v0w_Lu7t.js +0 -53
- package/dist/InfoIcon-v0w_Lu7t.js.map +0 -1
- package/dist/_internal-C75gOSNo.js.map +0 -1
- package/dist/actionModal-CMUeVsFX.js +0 -116
- package/dist/actionModal-CMUeVsFX.js.map +0 -1
- package/dist/api-BiMGqWdz.js.map +0 -1
- package/dist/base-DqaJPvfN.js +0 -22
- package/dist/base-DqaJPvfN.js.map +0 -1
- package/dist/create-config-fQ-jbJD1.js.map +0 -1
- package/dist/get-provider-CYYHfrlg.js +0 -10
- package/dist/get-provider-CYYHfrlg.js.map +0 -1
- package/dist/get-query-client-D19vvfJo.js +0 -23
- package/dist/get-query-client-D19vvfJo.js.map +0 -1
- package/dist/hooks-4pxIbLbM.js +0 -4044
- package/dist/hooks-4pxIbLbM.js.map +0 -1
- package/dist/index-BKBin-rq.d.ts +0 -979
- package/dist/index-BUWB_RXp.d.ts +0 -3144
- package/dist/index-Cu70Lw-w.d.ts +0 -1057
- package/dist/index-DvpBZgor.d.ts +0 -1
- package/dist/marketplace-logos-Cd6W-qOq.js.map +0 -1
- package/dist/marketplace.gen-HpnpL5xU.js.map +0 -1
- package/dist/marketplaceConfig-GQTTmihy.js.map +0 -1
- package/dist/network-CGD0oKtS.js.map +0 -1
- package/dist/primary-sale-CmWxSfFQ.js +0 -1264
- package/dist/primary-sale-CmWxSfFQ.js.map +0 -1
- package/dist/provider-DPGUA10G.js +0 -125
- package/dist/provider-DPGUA10G.js.map +0 -1
- package/dist/queries-Ce_2othB.js +0 -757
- package/dist/queries-Ce_2othB.js.map +0 -1
- package/dist/react/hooks/options/index.d.ts +0 -3
- package/dist/react/hooks/options/index.js +0 -16
- package/dist/react-DP0M2Wfm.js +0 -5431
- package/dist/react-DP0M2Wfm.js.map +0 -1
- package/dist/transaction-CnctdNzS.js.map +0 -1
- package/dist/types-Yw2ywj6j.js.map +0 -1
- package/dist/utils-9RXDgcBl.js.map +0 -1
- package/dist/utils-DjVJ9tov.js.map +0 -1
- package/dist/wagmi-Do_KW5ke.js +0 -0
- package/src/react/_internal/wallet/__tests__/wallet.test.ts +0 -416
- package/src/react/_internal/wallet/useWallet.ts +0 -52
- package/src/react/_internal/wallet/wallet.ts +0 -313
- package/src/react/hooks/options/index.ts +0 -1
- package/src/react/hooks/useCancelTransactionSteps.tsx +0 -249
- package/src/react/hooks/useERC721SaleMintedTokens.tsx +0 -70
- package/src/react/hooks/useInventory.tsx +0 -18
- package/src/react/hooks/useList1155SaleSupplies.tsx +0 -62
- package/src/react/hooks/useList721ShopCardData.tsx +0 -165
- package/src/react/hooks/useListOffersForCollectible.tsx +0 -55
- package/src/react/hooks/useListShopCardData.tsx +0 -70
- package/src/react/hooks/useListTokenMetadata.ts +0 -71
- package/src/react/hooks/useShopCollectibleSaleData.tsx +0 -349
- package/src/react/hooks/useTokenSaleDetailsBatch.tsx +0 -130
- package/src/react/ui/components/marketplace-collectible-card/Footer.tsx +0 -238
- package/src/react/ui/modals/_internal/components/actionModal/store.ts +0 -57
- 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/src/react/ui/modals/modal-provider.tsx +0 -25
- package/test/mocks/wallet.ts +0 -63
- /package/dist/{abi-BMvgNbKQ.js → abi-DYsUABe6.js} +0 -0
- /package/dist/{index-CD2bj_xW.d.ts → index-Cg5cFzs-.d.ts} +0 -0
- /package/dist/{options-BBBR8u_4.js → wagmi-Bseovd6Q.js} +0 -0
- /package/src/react/hooks/{useCurrencyBalance.tsx → data/tokens/useCurrencyBalance.tsx} +0 -0
- /package/src/react/hooks/{useGetReceiptFromHash.tsx → utils/useGetReceiptFromHash.tsx} +0 -0
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import type React from 'react';
|
|
4
|
+
import { useEffect, useState } from 'react';
|
|
5
|
+
import { useAccount, useConnect, useDisconnect } from 'wagmi';
|
|
6
|
+
import { useConnectorMetadata } from '../src/react/hooks/config/useConnectorMetadata';
|
|
7
|
+
import { TEST_ACCOUNTS } from '../test/const';
|
|
8
|
+
|
|
9
|
+
type ConnectorType = 'mock' | 'waas' | 'sequence' | 'auto';
|
|
10
|
+
|
|
11
|
+
export const ConnectionStatus: React.FC = () => {
|
|
12
|
+
const {
|
|
13
|
+
connect,
|
|
14
|
+
connectors,
|
|
15
|
+
error: connectError,
|
|
16
|
+
isPending: isConnecting,
|
|
17
|
+
} = useConnect();
|
|
18
|
+
const { disconnect } = useDisconnect();
|
|
19
|
+
const {
|
|
20
|
+
isConnected: wagmiConnected,
|
|
21
|
+
address: walletAddress,
|
|
22
|
+
chainId: walletChainId,
|
|
23
|
+
isConnecting: isReconnecting,
|
|
24
|
+
} = useAccount();
|
|
25
|
+
const { isWaaS, walletKind } = useConnectorMetadata();
|
|
26
|
+
const [debugInfo, setDebugInfo] = useState<string>('');
|
|
27
|
+
const [preferredConnector, setPreferredConnector] =
|
|
28
|
+
useState<ConnectorType>('auto');
|
|
29
|
+
const [manuallyDisconnected, setManuallyDisconnected] =
|
|
30
|
+
useState<boolean>(false);
|
|
31
|
+
|
|
32
|
+
const walletLoading = isConnecting || isReconnecting;
|
|
33
|
+
const walletError = false; // wagmi handles errors differently
|
|
34
|
+
|
|
35
|
+
useEffect(() => {
|
|
36
|
+
const storedConnector = localStorage.getItem(
|
|
37
|
+
'storybook-connector',
|
|
38
|
+
) as ConnectorType;
|
|
39
|
+
const defaultConnector = storedConnector || 'auto';
|
|
40
|
+
setPreferredConnector(defaultConnector);
|
|
41
|
+
}, []);
|
|
42
|
+
|
|
43
|
+
useEffect(() => {
|
|
44
|
+
if (preferredConnector !== 'auto') {
|
|
45
|
+
localStorage.setItem('storybook-connector', preferredConnector);
|
|
46
|
+
}
|
|
47
|
+
}, [preferredConnector]);
|
|
48
|
+
|
|
49
|
+
useEffect(() => {
|
|
50
|
+
if (wagmiConnected) {
|
|
51
|
+
setManuallyDisconnected(false);
|
|
52
|
+
}
|
|
53
|
+
}, [wagmiConnected]);
|
|
54
|
+
|
|
55
|
+
useEffect(() => {
|
|
56
|
+
if (connectors.length > 0) {
|
|
57
|
+
const connectorInfo = connectors
|
|
58
|
+
.map((c) => `${c.name || 'unnamed'} (${c.id || 'no-id'})`)
|
|
59
|
+
.join(', ');
|
|
60
|
+
setDebugInfo(`Available: ${connectorInfo}`);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// Only try to connect if not connected and not connecting and not manually disconnected
|
|
64
|
+
if (
|
|
65
|
+
!wagmiConnected &&
|
|
66
|
+
!isConnecting &&
|
|
67
|
+
!manuallyDisconnected &&
|
|
68
|
+
connectors.length > 0
|
|
69
|
+
) {
|
|
70
|
+
let targetConnector: (typeof connectors)[0] | undefined;
|
|
71
|
+
|
|
72
|
+
if (preferredConnector === 'auto') {
|
|
73
|
+
targetConnector = connectors[0];
|
|
74
|
+
} else {
|
|
75
|
+
targetConnector = connectors.find((c) => c.id === preferredConnector);
|
|
76
|
+
|
|
77
|
+
// Fallback to any connector with the preferred type in name
|
|
78
|
+
if (!targetConnector) {
|
|
79
|
+
targetConnector = connectors.find(
|
|
80
|
+
(c) =>
|
|
81
|
+
c.name?.toLowerCase().includes(preferredConnector) ||
|
|
82
|
+
c.id?.toLowerCase().includes(preferredConnector),
|
|
83
|
+
);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// Final fallback to first available connector
|
|
88
|
+
if (!targetConnector && connectors.length > 0) {
|
|
89
|
+
targetConnector = connectors[0];
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
if (targetConnector) {
|
|
93
|
+
console.log(
|
|
94
|
+
`Auto-connecting to ${preferredConnector} connector:`,
|
|
95
|
+
targetConnector.name || 'unnamed',
|
|
96
|
+
targetConnector.id || 'no-id',
|
|
97
|
+
);
|
|
98
|
+
try {
|
|
99
|
+
connect({ connector: targetConnector });
|
|
100
|
+
} catch (error) {
|
|
101
|
+
console.error('Failed to connect to connector:', error);
|
|
102
|
+
setDebugInfo(
|
|
103
|
+
`Connection failed: ${error instanceof Error ? error.message : 'Unknown error'}`,
|
|
104
|
+
);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}, [
|
|
109
|
+
wagmiConnected,
|
|
110
|
+
isConnecting,
|
|
111
|
+
manuallyDisconnected,
|
|
112
|
+
connectors,
|
|
113
|
+
connect,
|
|
114
|
+
preferredConnector,
|
|
115
|
+
]);
|
|
116
|
+
|
|
117
|
+
const getConnectionStatus = () => {
|
|
118
|
+
if (isConnecting || walletLoading) {
|
|
119
|
+
return { status: 'Connecting to Anvil...', color: '#f59e0b' };
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
if (walletAddress && wagmiConnected) {
|
|
123
|
+
const accountIndex = TEST_ACCOUNTS.findIndex(
|
|
124
|
+
(acc) => acc.toLowerCase() === walletAddress.toLowerCase(),
|
|
125
|
+
);
|
|
126
|
+
const accountLabel =
|
|
127
|
+
accountIndex >= 0 ? `Account ${accountIndex}` : 'Custom';
|
|
128
|
+
|
|
129
|
+
return {
|
|
130
|
+
status: `${walletAddress.slice(0, 6)}...${walletAddress.slice(-4)} (${accountLabel})`,
|
|
131
|
+
color: '#10b981',
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
if (walletError || connectError) {
|
|
136
|
+
return {
|
|
137
|
+
status: `Error: ${connectError?.message || 'Connection failed'}`,
|
|
138
|
+
color: '#ef4444',
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
return { status: 'Disconnected from Anvil', color: '#ef4444' };
|
|
143
|
+
};
|
|
144
|
+
|
|
145
|
+
const { status, color } = getConnectionStatus();
|
|
146
|
+
|
|
147
|
+
const getWalletInfo = () => {
|
|
148
|
+
if (!wagmiConnected) return null;
|
|
149
|
+
|
|
150
|
+
const walletType = isWaaS ? 'WaaS' : 'External';
|
|
151
|
+
const kind = walletKind || 'Unknown';
|
|
152
|
+
return `${walletType} (${kind})`;
|
|
153
|
+
};
|
|
154
|
+
|
|
155
|
+
const getAnvilInfo = () => {
|
|
156
|
+
if (!walletChainId && !wagmiConnected) return null;
|
|
157
|
+
|
|
158
|
+
const displayChainId = walletChainId || 'Unknown';
|
|
159
|
+
return `Anvil Chain: ${displayChainId}`;
|
|
160
|
+
};
|
|
161
|
+
|
|
162
|
+
const handleConnectorChange = (newConnector: ConnectorType) => {
|
|
163
|
+
setPreferredConnector(newConnector);
|
|
164
|
+
setManuallyDisconnected(false);
|
|
165
|
+
if (wagmiConnected) {
|
|
166
|
+
disconnect();
|
|
167
|
+
}
|
|
168
|
+
};
|
|
169
|
+
|
|
170
|
+
const handleDisconnect = () => {
|
|
171
|
+
setManuallyDisconnected(true);
|
|
172
|
+
disconnect();
|
|
173
|
+
};
|
|
174
|
+
|
|
175
|
+
return (
|
|
176
|
+
<div
|
|
177
|
+
style={{
|
|
178
|
+
position: 'fixed',
|
|
179
|
+
top: '16px',
|
|
180
|
+
right: '16px',
|
|
181
|
+
zIndex: 9999,
|
|
182
|
+
backgroundColor: '#1f2937',
|
|
183
|
+
color: 'white',
|
|
184
|
+
padding: '8px 12px',
|
|
185
|
+
borderRadius: '8px',
|
|
186
|
+
fontSize: '12px',
|
|
187
|
+
fontFamily: 'monospace',
|
|
188
|
+
border: `2px solid ${color}`,
|
|
189
|
+
boxShadow: '0 4px 6px rgba(0, 0, 0, 0.1)',
|
|
190
|
+
display: 'flex',
|
|
191
|
+
flexDirection: 'column',
|
|
192
|
+
alignItems: 'flex-start',
|
|
193
|
+
gap: '4px',
|
|
194
|
+
maxWidth: '320px',
|
|
195
|
+
}}
|
|
196
|
+
>
|
|
197
|
+
<div style={{ display: 'flex', alignItems: 'center', gap: '8px' }}>
|
|
198
|
+
<div
|
|
199
|
+
style={{
|
|
200
|
+
width: '8px',
|
|
201
|
+
height: '8px',
|
|
202
|
+
borderRadius: '50%',
|
|
203
|
+
backgroundColor: color,
|
|
204
|
+
}}
|
|
205
|
+
/>
|
|
206
|
+
<span>{status}</span>
|
|
207
|
+
</div>
|
|
208
|
+
|
|
209
|
+
<div
|
|
210
|
+
style={{
|
|
211
|
+
display: 'flex',
|
|
212
|
+
alignItems: 'center',
|
|
213
|
+
gap: '8px',
|
|
214
|
+
width: '100%',
|
|
215
|
+
}}
|
|
216
|
+
>
|
|
217
|
+
<span style={{ fontSize: '10px', color: '#9ca3af' }}>Connector:</span>
|
|
218
|
+
<select
|
|
219
|
+
value={preferredConnector}
|
|
220
|
+
onChange={(e) =>
|
|
221
|
+
handleConnectorChange(e.target.value as ConnectorType)
|
|
222
|
+
}
|
|
223
|
+
style={{
|
|
224
|
+
background: '#374151',
|
|
225
|
+
color: 'white',
|
|
226
|
+
border: '1px solid #4b5563',
|
|
227
|
+
borderRadius: '4px',
|
|
228
|
+
fontSize: '10px',
|
|
229
|
+
padding: '2px 4px',
|
|
230
|
+
flex: 1,
|
|
231
|
+
}}
|
|
232
|
+
>
|
|
233
|
+
<option value="auto">Auto</option>
|
|
234
|
+
<option value="mock">Mock</option>
|
|
235
|
+
<option value="waas">WaaS</option>
|
|
236
|
+
<option value="sequence">Sequence</option>
|
|
237
|
+
</select>
|
|
238
|
+
</div>
|
|
239
|
+
|
|
240
|
+
{wagmiConnected && (
|
|
241
|
+
<button
|
|
242
|
+
type="button"
|
|
243
|
+
onClick={handleDisconnect}
|
|
244
|
+
style={{
|
|
245
|
+
background: '#dc2626',
|
|
246
|
+
color: 'white',
|
|
247
|
+
border: 'none',
|
|
248
|
+
borderRadius: '4px',
|
|
249
|
+
fontSize: '10px',
|
|
250
|
+
padding: '4px 8px',
|
|
251
|
+
cursor: 'pointer',
|
|
252
|
+
width: '100%',
|
|
253
|
+
marginTop: '4px',
|
|
254
|
+
}}
|
|
255
|
+
>
|
|
256
|
+
Disconnect
|
|
257
|
+
</button>
|
|
258
|
+
)}
|
|
259
|
+
|
|
260
|
+
{getWalletInfo() && (
|
|
261
|
+
<div style={{ fontSize: '10px', color: '#9ca3af' }}>
|
|
262
|
+
Type: {getWalletInfo()}
|
|
263
|
+
</div>
|
|
264
|
+
)}
|
|
265
|
+
|
|
266
|
+
{getAnvilInfo() && (
|
|
267
|
+
<div style={{ fontSize: '10px', color: '#9ca3af' }}>
|
|
268
|
+
{getAnvilInfo()}
|
|
269
|
+
</div>
|
|
270
|
+
)}
|
|
271
|
+
|
|
272
|
+
{debugInfo && (
|
|
273
|
+
<div style={{ fontSize: '10px', color: '#9ca3af' }}>{debugInfo}</div>
|
|
274
|
+
)}
|
|
275
|
+
|
|
276
|
+
{(walletError || connectError) && (
|
|
277
|
+
<div
|
|
278
|
+
style={{
|
|
279
|
+
fontSize: '10px',
|
|
280
|
+
color: '#ef4444',
|
|
281
|
+
wordBreak: 'break-word',
|
|
282
|
+
}}
|
|
283
|
+
>
|
|
284
|
+
{connectError?.message || 'Wallet connection failed'}
|
|
285
|
+
</div>
|
|
286
|
+
)}
|
|
287
|
+
</div>
|
|
288
|
+
);
|
|
289
|
+
};
|
package/.storybook/main.ts
CHANGED
|
@@ -1,13 +1,19 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
1
2
|
import type { StorybookConfig } from '@storybook/react-vite';
|
|
2
3
|
import tailwindcssPostcss from '@tailwindcss/postcss';
|
|
3
4
|
|
|
4
5
|
const config: StorybookConfig = {
|
|
5
6
|
stories: ['../src/**/*.stories.@(js|jsx|mjs|ts|tsx)'],
|
|
6
|
-
addons: [
|
|
7
|
+
addons: [
|
|
8
|
+
'@storybook/addon-docs',
|
|
9
|
+
'@storybook/addon-vitest',
|
|
10
|
+
'msw-storybook-addon',
|
|
11
|
+
],
|
|
7
12
|
framework: {
|
|
8
13
|
name: '@storybook/react-vite',
|
|
9
14
|
options: {},
|
|
10
15
|
},
|
|
16
|
+
staticDirs: ['../public'],
|
|
11
17
|
typescript: {
|
|
12
18
|
reactDocgen: 'react-docgen-typescript',
|
|
13
19
|
reactDocgenTypescriptOptions: {
|
|
@@ -33,6 +39,19 @@ const config: StorybookConfig = {
|
|
|
33
39
|
plugins: [tailwindcssPostcss()],
|
|
34
40
|
};
|
|
35
41
|
|
|
42
|
+
// Set unique cache directory to prevent conflicts
|
|
43
|
+
config.cacheDir = path.join(
|
|
44
|
+
__dirname,
|
|
45
|
+
'../node_modules/.vite-storybook-sdk',
|
|
46
|
+
);
|
|
47
|
+
|
|
48
|
+
// Configure path aliases to match tsconfig.json
|
|
49
|
+
config.resolve = config.resolve || {};
|
|
50
|
+
config.resolve.alias = {
|
|
51
|
+
...config.resolve.alias,
|
|
52
|
+
'@test': path.resolve(__dirname, '../test'),
|
|
53
|
+
};
|
|
54
|
+
|
|
36
55
|
// Exclude generated files from react-docgen processing
|
|
37
56
|
if (config.plugins) {
|
|
38
57
|
for (const plugin of config.plugins) {
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { SequenceConnectProvider } from '@0xsequence/connect';
|
|
2
|
+
import type { Preview } from '@storybook/react-vite';
|
|
3
|
+
import { QueryClientProvider } from '@tanstack/react-query';
|
|
4
|
+
|
|
5
|
+
import { WagmiProvider } from 'wagmi';
|
|
6
|
+
import { MarketplaceProvider } from '../src/react/provider';
|
|
7
|
+
import { ModalProvider } from '../src/react/ui/modals/modal-provider';
|
|
8
|
+
import '../src/index.css';
|
|
9
|
+
import { initialize, mswLoader } from 'msw-storybook-addon';
|
|
10
|
+
import {
|
|
11
|
+
createTestQueryClient,
|
|
12
|
+
sequenceConnectConfig,
|
|
13
|
+
wagmiConfig,
|
|
14
|
+
wagmiConfigEmbedded,
|
|
15
|
+
wagmiConfigSequence,
|
|
16
|
+
} from '../test/test-utils';
|
|
17
|
+
import { ConnectionStatus } from './ConnectionStatus';
|
|
18
|
+
|
|
19
|
+
const testQueryClient = createTestQueryClient();
|
|
20
|
+
|
|
21
|
+
// Initialize MSW
|
|
22
|
+
initialize({
|
|
23
|
+
onUnhandledRequest: ({ url, method }) => {
|
|
24
|
+
// Only warn about unhandled requests to our specific API paths
|
|
25
|
+
const pathname = new URL(url).pathname;
|
|
26
|
+
if (pathname.startsWith('/rpc/')) {
|
|
27
|
+
console.warn(`Unhandled ${method} request to ${url}.`);
|
|
28
|
+
}
|
|
29
|
+
// Bypass all other requests (fonts, static assets, etc.)
|
|
30
|
+
},
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
// Mock marketplace SDK config for Storybook
|
|
34
|
+
const mockSdkConfig = {
|
|
35
|
+
projectAccessKey: 'storybook-test-key',
|
|
36
|
+
projectId: '1',
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
// Get wagmi config based on localStorage
|
|
40
|
+
const getWagmiConfig = () => {
|
|
41
|
+
if (typeof window === 'undefined') {
|
|
42
|
+
return wagmiConfig; // Default for SSR
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
const storedConnector = localStorage.getItem('storybook-connector');
|
|
46
|
+
const connectorType = storedConnector || 'auto';
|
|
47
|
+
|
|
48
|
+
switch (connectorType) {
|
|
49
|
+
case 'waas':
|
|
50
|
+
console.log('Using WaaS connector configuration');
|
|
51
|
+
return wagmiConfigEmbedded;
|
|
52
|
+
case 'sequence':
|
|
53
|
+
console.log('Using Sequence connector configuration');
|
|
54
|
+
return wagmiConfigSequence;
|
|
55
|
+
default:
|
|
56
|
+
console.log('Using standard mock connector configuration');
|
|
57
|
+
return wagmiConfig;
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
const preview: Preview = {
|
|
62
|
+
parameters: {
|
|
63
|
+
backgrounds: {
|
|
64
|
+
options: {
|
|
65
|
+
dark: { name: 'Dark', value: '#333' },
|
|
66
|
+
light: { name: 'Light', value: '#F7F9F2' },
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
controls: {
|
|
70
|
+
matchers: {
|
|
71
|
+
color: /(background|color)$/i,
|
|
72
|
+
date: /Date$/i,
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
initialGlobals: {
|
|
77
|
+
backgrounds: { value: 'dark' },
|
|
78
|
+
},
|
|
79
|
+
loaders: [mswLoader],
|
|
80
|
+
decorators: [
|
|
81
|
+
(Story) => {
|
|
82
|
+
const currentWagmiConfig = getWagmiConfig();
|
|
83
|
+
|
|
84
|
+
return (
|
|
85
|
+
<WagmiProvider config={currentWagmiConfig}>
|
|
86
|
+
<QueryClientProvider client={testQueryClient}>
|
|
87
|
+
<SequenceConnectProvider
|
|
88
|
+
config={sequenceConnectConfig.connectConfig}
|
|
89
|
+
>
|
|
90
|
+
<MarketplaceProvider config={mockSdkConfig}>
|
|
91
|
+
<ConnectionStatus />
|
|
92
|
+
<div style={{ padding: '1rem', minHeight: '100vh' }}>
|
|
93
|
+
<Story />
|
|
94
|
+
</div>
|
|
95
|
+
<ModalProvider />
|
|
96
|
+
</MarketplaceProvider>
|
|
97
|
+
</SequenceConnectProvider>
|
|
98
|
+
</QueryClientProvider>
|
|
99
|
+
</WagmiProvider>
|
|
100
|
+
);
|
|
101
|
+
},
|
|
102
|
+
],
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
export default preview;
|
package/CHANGELOG.md
CHANGED
|
@@ -1,41 +1,144 @@
|
|
|
1
1
|
# @0xsequence/marketplace-sdk
|
|
2
2
|
|
|
3
|
+
## 1.1.0
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### ✨ Improvements
|
|
7
|
+
|
|
8
|
+
- Enhanced FooterName component with improved offer acceptance logic and balance-based behavior ([#533](https://github.com/0xsequence/marketplace-sdk/pull/533))
|
|
9
|
+
- Improved PriceInput component styling and user experience ([#532](https://github.com/0xsequence/marketplace-sdk/pull/532))
|
|
10
|
+
- Better event handling in collectible card components ([#528](https://github.com/0xsequence/marketplace-sdk/pull/528))
|
|
11
|
+
- Enhanced loading states and visual feedback across UI components
|
|
12
|
+
- Always import all available networks, even if not used in a collection, to improve swap options from chains not used in the marketplace ([#526](https://github.com/0xsequence/marketplace-sdk/pull/526))
|
|
13
|
+
- Improved chain switching logic with optimistic chain switching ([#521](https://github.com/0xsequence/marketplace-sdk/pull/521))
|
|
14
|
+
- Moved sort parameter outside page object in `useListOffersForCollectible` hook while maintaining backward compatibility ([#531](https://github.com/0xsequence/marketplace-sdk/pull/531))
|
|
15
|
+
- Better TypeScript support and type safety improvements
|
|
16
|
+
- Enhanced documentation and JSDoc comments
|
|
17
|
+
- Enhanced query invalidation in ERC1155 checkout flow
|
|
18
|
+
- Improved cache management for user balances with inactive refetch types
|
|
19
|
+
- Better synchronization between different data sources
|
|
20
|
+
- Enhanced switch chain error modal with current chain detection
|
|
21
|
+
- Improved modal state management and error handling
|
|
22
|
+
- Optimized data fetching patterns in shop card components ([#527](https://github.com/0xsequence/marketplace-sdk/pull/527))
|
|
23
|
+
- Reduced unnecessary re-renders in collectible card variants
|
|
24
|
+
- Improved loading states and skeleton components
|
|
25
|
+
|
|
26
|
+
### 🐛 Bug Fixes
|
|
27
|
+
|
|
28
|
+
- Fixed ERC1155 shop pagination where items beyond the first page were missing metadata and sale information
|
|
29
|
+
- Fixed bug in useSearchTokenMetadata to ensure collectionAddress is defined before doing checks for minted tokens
|
|
30
|
+
- Fixed window error when initializing analytics provider in server-side rendering ([#509](https://github.com/0xsequence/marketplace-sdk/pull/509))
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
### 🔧 Internal Improvements
|
|
34
|
+
|
|
35
|
+
- Updated all workspace dependencies to latest versions ([#530](https://github.com/0xsequence/marketplace-sdk/pull/530))
|
|
36
|
+
|
|
37
|
+
- Added complexity rules to Biome configuration for better code quality ([#535](https://github.com/0xsequence/marketplace-sdk/pull/535))
|
|
38
|
+
|
|
39
|
+
- Enhanced formatting and style consistency across the codebase
|
|
40
|
+
- Improved test coverage for critical components
|
|
41
|
+
- Enhanced test utilities and mocking capabilities
|
|
42
|
+
- Dynamic network configuration in tests for better reliability
|
|
43
|
+
- Better error handling in test scenarios
|
|
44
|
+
|
|
45
|
+
## 1.0.0
|
|
46
|
+
|
|
47
|
+
🎉 **Production Release** - Sequence Marketplace SDK 1.0! 🎉
|
|
48
|
+
|
|
49
|
+
#### Complete Marketplace Solution
|
|
50
|
+
|
|
51
|
+
- **Primary Sales (Shop)**: Full support for Sequence sales contracts (ERC721 v0 and ERC1155 v0 and v1)
|
|
52
|
+
- **Secondary Sales (Market)**: Comprehensive listing and offer management
|
|
53
|
+
|
|
54
|
+
### 🚀 New features
|
|
55
|
+
|
|
56
|
+
- Support for Sequence sales contracts (ERC721 v0 and ERC1155 v0 and v1)
|
|
57
|
+
- **New `useProcessStep` hook**: For transaction marketplace api transaction step handling
|
|
58
|
+
- **New buy checkout flow UI**: New checkout flow for buying collectibles, from @0xsequence/checkout
|
|
59
|
+
- Custom wallet class replaced with wagmi hooks and new hooks for wallet operations (useEnsureCorrectChain, useConnectorMetadata, useProcessStep), see breaking changes below
|
|
60
|
+
- All fetching hooks now have a separated query function that can be used with other data fetching libraries or SSR/SSG frameworks
|
|
61
|
+
- All fetching hooks only fetch data when all required parameters are provided
|
|
62
|
+
- Modal style isolation with shadow DOM, preventing global styles from leaking into the document body
|
|
63
|
+
- useSearchTokenMetadata now have an option to only return token metadata for minted tokens `onlyMinted: true`
|
|
64
|
+
- MarketplaceConfig is by now by default never invalidated, allow fetching only serverside
|
|
65
|
+
|
|
66
|
+
- **UI/UX Improvements**:
|
|
67
|
+
- Added optional action buttons to buy flow success modal
|
|
68
|
+
- Fixed ERC1155 quantity modal decimal precision handling
|
|
69
|
+
- Fixed collectible card image opacity issues
|
|
70
|
+
- Improved media display with object-contain for collectible cards
|
|
71
|
+
|
|
72
|
+
### ⚠️ Breaking Changes
|
|
73
|
+
|
|
74
|
+
By default, the SDK now uses shadow DOM for all modals. To disable this, you can set the `useShadowDOM` flag to `false` in the `SdkConfig`. Other components (media, collectible card etc) are rendered to the document body and requires Tailwind.
|
|
75
|
+
`useShopCollectibleSaleData` hook has been removed. Instead, use `useErc721SaleDetails` and `useErc1155SaleDetails` hooks leveraging marketplace-api
|
|
76
|
+
|
|
77
|
+
- **Wallet**: Complete removal of custom wallet client in favor of wagmi hooks
|
|
78
|
+
- Replace `wallet.address` with `useAccount()` hook from wagmi
|
|
79
|
+
- Replace `wallet.isWaaS` with `useConnectorMetadata().isWaaS`
|
|
80
|
+
- Replace `wallet.kind` with `useConnectorMetadata().walletKind`
|
|
81
|
+
- Replace `wallet.switchChain` with `useEnsureCorrectChain` hook
|
|
82
|
+
- Replace `wallet.signTransactionStep` and `wallet.transferStep` with `useProcessStep` hook
|
|
83
|
+
|
|
84
|
+
### 🐛 Bug Fixes
|
|
85
|
+
|
|
86
|
+
- Fixed ERC1155 quantity modal decimal handling with proper min/max calculations
|
|
87
|
+
- Fixed pagination issues with minted ERC721 sale tokens
|
|
88
|
+
- Resolved potential state management race conditions in action modals
|
|
89
|
+
- Fixed decimal handling in quantity inputs
|
|
90
|
+
- Fixed collectible card image opacity issues
|
|
91
|
+
- Fixed ERC721 sale contract quantity tracking for V1 contracts
|
|
92
|
+
- Fixed negative remaining supply display in shop cards
|
|
93
|
+
- Improved error handling when quantity values are 0
|
|
94
|
+
- Fixed token approval reset when transaction steps don't exist
|
|
95
|
+
- Auto fee selection for embedded wallets bug fix, now only applies for cancelling orders
|
|
96
|
+
|
|
97
|
+
### 🔧 Internal Improvements
|
|
98
|
+
|
|
99
|
+
#### Code Organization
|
|
100
|
+
|
|
101
|
+
- Reorganized hooks into logical subdirectories (data, transactions, ui, config)
|
|
102
|
+
- Removed duplicate hooks and consolidated functionality
|
|
103
|
+
- Increased test coverage
|
|
104
|
+
- Some internal hooks have been renamed for consistency
|
|
105
|
+
|
|
3
106
|
## 0.10.0
|
|
4
107
|
|
|
5
108
|
### New Features
|
|
6
109
|
|
|
7
110
|
**Alternative Wallet integration Support**
|
|
111
|
+
|
|
8
112
|
- Added support for using any wallet connection library (e.g., Privy, Rainbowkit, Dynamic Labs etc.) instead of Sequence Connect
|
|
9
113
|
- You can now provide a custom `openConnectModal` function to the `MarketplaceProvider` to integrate with your preferred wallet connection flow.
|
|
10
114
|
|
|
11
|
-
|
|
12
115
|
Example with any wallet provider:
|
|
116
|
+
|
|
13
117
|
```tsx
|
|
14
|
-
import { MarketplaceProvider } from
|
|
15
|
-
import { useConnectModal } from
|
|
118
|
+
import { MarketplaceProvider } from "@0xsequence/marketplace-sdk/react";
|
|
119
|
+
import { useConnectModal } from "@my-wallet-provider/connect-modal";
|
|
16
120
|
|
|
17
121
|
function App() {
|
|
18
122
|
const { openConnectModal } = useConnectModal();
|
|
19
|
-
|
|
123
|
+
|
|
20
124
|
return (
|
|
21
|
-
<MarketplaceProvider
|
|
22
|
-
config={sdkConfig}
|
|
23
|
-
openConnectModal={openConnectModal}
|
|
24
|
-
>
|
|
125
|
+
<MarketplaceProvider config={sdkConfig} openConnectModal={openConnectModal}>
|
|
25
126
|
{/* Your marketplace app */}
|
|
26
127
|
</MarketplaceProvider>
|
|
27
128
|
);
|
|
28
129
|
}
|
|
29
130
|
```
|
|
30
131
|
|
|
31
|
-
See the [Alternative Wallet Integration Playground](https://github.com/0xsequence/marketplace-sdk/tree/master/playgrounds/alternative-wallets) for a complete example with Dynamic Labs
|
|
132
|
+
See the [Alternative Wallet Integration Playground](https://github.com/0xsequence/marketplace-sdk/tree/master/playgrounds/alternative-wallets) for a complete example with Dynamic Labs
|
|
32
133
|
|
|
33
134
|
**Enhanced Media Component**
|
|
135
|
+
|
|
34
136
|
- Added `shouldListenForLoad` prop for controlling asset load event handling
|
|
35
137
|
- Introduced `mediaClassName` prop for controlling the inner media element
|
|
36
138
|
- Improved asset loading behavior with conditional handling
|
|
37
139
|
|
|
38
140
|
**Shop & Market Improvements**
|
|
141
|
+
|
|
39
142
|
- Added `ShopActions` component for handling collectible purchase interactions
|
|
40
143
|
- Enhanced `CollectibleDetails` to conditionally display information based on marketplace type
|
|
41
144
|
- Improved ERC1155 sale item handling - buy button now hidden when out of stock
|
|
@@ -44,19 +147,23 @@ See the [Alternative Wallet Integration Playground](https://github.com/0xsequenc
|
|
|
44
147
|
### API Updates
|
|
45
148
|
|
|
46
149
|
**New Hooks & Queries**
|
|
150
|
+
|
|
47
151
|
- `useGetCountOfPrimarySaleItems` - Now uses `useQuery` instead of `useInfiniteQuery`
|
|
48
152
|
- Added `contractAddress` parameter to `TokenBalancesParams` for more precise balance queries
|
|
49
153
|
|
|
50
154
|
**Analytics & Tracking**
|
|
155
|
+
|
|
51
156
|
- Enhanced buy modal tracking to track cart abandonment
|
|
52
157
|
|
|
53
158
|
### Developer Experience
|
|
54
159
|
|
|
55
160
|
**Testing & Documentation**
|
|
161
|
+
|
|
56
162
|
- Expanded test coverage for critical components
|
|
57
163
|
- Added JSDoc documentation improvements
|
|
58
164
|
|
|
59
165
|
**Build & Configuration**
|
|
166
|
+
|
|
60
167
|
- Fixed SSR issues with React Day Picker in React-Router V7
|
|
61
168
|
|
|
62
169
|
### Bug Fixes
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import fs from 'node:fs/promises';
|
|
3
|
+
import { dirname, join } from 'node:path';
|
|
4
|
+
import { fileURLToPath } from 'node:url';
|
|
5
|
+
import postcss from 'postcss';
|
|
6
|
+
import postcssConfig from './postcss.config.mjs';
|
|
7
|
+
|
|
8
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* @param {Object} options
|
|
12
|
+
* @param {boolean} options.copyCSS - Whether to copy CSS to dist
|
|
13
|
+
*/
|
|
14
|
+
export async function generateStyles(options = {}) {
|
|
15
|
+
const copyCSS = options.copyCSS ?? false;
|
|
16
|
+
|
|
17
|
+
const sdkPath = join(__dirname, './');
|
|
18
|
+
const inputCSSRelative = 'src/styles/index.css';
|
|
19
|
+
const outputTSPath = join(sdkPath, 'src/styles/styles.ts');
|
|
20
|
+
const outputCSSDir = join(sdkPath, 'dist/styles');
|
|
21
|
+
const outputCSSPath = join(outputCSSDir, 'index.css');
|
|
22
|
+
|
|
23
|
+
try {
|
|
24
|
+
const inputCSSPath = join(sdkPath, inputCSSRelative);
|
|
25
|
+
const cssContent = await fs.readFile(inputCSSPath, 'utf-8');
|
|
26
|
+
|
|
27
|
+
const result = await postcss(postcssConfig.plugins).process(cssContent, {
|
|
28
|
+
from: inputCSSPath,
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
const css = `/* Modified Tailwind CSS, to avoid issues with shadow DOM, see Marketplace SDK - compile-tailwind.js and postcss.config.mjs */
|
|
32
|
+
${result.css}`;
|
|
33
|
+
|
|
34
|
+
const tsContent = `export const styles = String.raw\`${css}\`;`;
|
|
35
|
+
|
|
36
|
+
await fs.writeFile(outputTSPath, tsContent);
|
|
37
|
+
|
|
38
|
+
if (copyCSS) {
|
|
39
|
+
await fs.mkdir(outputCSSDir, { recursive: true });
|
|
40
|
+
await fs.writeFile(outputCSSPath, css);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
console.log('✅ Styles compiled successfully');
|
|
44
|
+
return { css, tsContent };
|
|
45
|
+
} catch (error) {
|
|
46
|
+
console.error('❌ Failed to compile styles:', error.message);
|
|
47
|
+
throw error;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// Execute, if run as standalone script
|
|
52
|
+
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
53
|
+
generateStyles();
|
|
54
|
+
}
|