@0xsequence/marketplace-sdk 0.9.0 → 1.0.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 +82 -0
- package/.storybook/preview.tsx +106 -0
- package/.storybook/vitest.setup.ts +6 -0
- package/CHANGELOG.md +135 -8
- package/compile-tailwind.js +54 -0
- package/dist/{CalendarIcon-DbQ7Vxcw.js → BellIcon-Cb9YEUzJ.js} +27 -27
- package/dist/BellIcon-Cb9YEUzJ.js.map +1 -0
- package/dist/CollectibleCard-CYyWzk6u.d.ts +8 -0
- package/dist/{_internal-BgWcRIak.js → _internal-DslqcNC1.js} +1 -1
- package/dist/{_internal-BgWcRIak.js.map → _internal-DslqcNC1.js.map} +1 -1
- package/dist/{alien_swap-B_76IMma.js → alien_swap-DJ98gZQp.js} +1 -1
- package/dist/{alien_swap-B_76IMma.js.map → alien_swap-DJ98gZQp.js.map} +1 -1
- package/dist/{api-DTIan01C.js → api-BmEQfSQa.js} +17 -14
- package/dist/api-BmEQfSQa.js.map +1 -0
- package/dist/{aqua-xyz-CMN_TFY5.js → aqua-xyz-n1PcCCZ0.js} +1 -1
- package/dist/{aqua-xyz-CMN_TFY5.js.map → aqua-xyz-n1PcCCZ0.js.map} +1 -1
- package/dist/{aura-Cye_TuHj.js → aura-Bevk_YkS.js} +1 -1
- package/dist/{aura-Cye_TuHj.js.map → aura-Bevk_YkS.js.map} +1 -1
- package/dist/{blur-DWDMyMpK.js → blur-B5sHErx5.js} +1 -1
- package/dist/{blur-DWDMyMpK.js.map → blur-B5sHErx5.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-ByA_XRB0.js → coinbase-D30W-lxA.js} +1 -1
- package/dist/{coinbase-ByA_XRB0.js.map → coinbase-D30W-lxA.js.map} +1 -1
- package/dist/contracts-DPHFT2TA.js +97 -0
- package/dist/contracts-DPHFT2TA.js.map +1 -0
- package/dist/{wagmi-CDzEQbfk.js → create-config-6uynwTeb.js} +20 -10
- package/dist/create-config-6uynwTeb.js.map +1 -0
- package/dist/{new-marketplace-types-Bfis0U4J.d.ts → create-config-lLSrnkbb.d.ts} +554 -166
- package/dist/{element-b77CyXIZ.js → element-C2NJexro.js} +1 -1
- package/dist/{element-b77CyXIZ.js.map → element-C2NJexro.js.map} +1 -1
- package/dist/filters-B8XS4tFH.d.ts +31 -0
- package/dist/{foundation-DbOrKP9Y.js → foundation-QgY1lvUj.js} +1 -1
- package/dist/{foundation-DbOrKP9Y.js.map → foundation-QgY1lvUj.js.map} +1 -1
- package/dist/index-BGJXqdg6.d.ts +131 -0
- package/dist/index-BuY_NKSX.d.ts +222 -0
- package/dist/{index-21LE7OhL.d.ts → index-ByW08-Z7.d.ts} +6 -3
- package/dist/index-C7xKVIr4.d.ts +447 -0
- package/dist/index-CIkpYltz.d.ts +61 -0
- package/dist/index-CQnGIGb5.d.ts +346 -0
- package/dist/{index-DaE5ZNHb.d.ts → index-CY5UEX4h.d.ts} +5 -5
- package/dist/{index-DXMfTZ1F.d.ts → index-ChSKFOMx.d.ts} +1 -1
- package/dist/{index-D5v5iluA.d.ts → index-CtF7EE2z.d.ts} +1 -1
- package/dist/index-D2HohSwO.d.ts +293 -0
- package/dist/index-D71J5Ghd.d.ts +813 -0
- package/dist/{index-ByznONYE.d.ts → index-DNU9xoGK.d.ts} +28 -64
- package/dist/index-DX0Vm8HY.d.ts +2541 -0
- package/dist/index-DonXiSg2.d.ts +902 -0
- package/dist/index-Dpyp7fQz.d.ts +298 -0
- package/dist/index-PSPpUxCE.d.ts +18 -0
- package/dist/{index-BL9RUSEK.d.ts → index-QxxS6f9r.d.ts} +1 -1
- package/dist/index-ThUIs-Sy.d.ts +306 -0
- package/dist/index.d.ts +8 -10
- package/dist/index.js +12 -9
- package/dist/listCollectiblesPaginated--AgXjajA.d.ts +166 -0
- package/dist/listCollections-Bbzbz7qW.d.ts +624 -0
- package/dist/{looks-rare-C1VqNcSM.js → looks-rare-CMVPny4v.js} +1 -1
- package/dist/{looks-rare-C1VqNcSM.js.map → looks-rare-CMVPny4v.js.map} +1 -1
- package/dist/lowestListing-BQHfQpfg.d.ts +144 -0
- package/dist/{magic-eden-ea_AGCZr.js → magic-eden-IrWp2ZXk.js} +1 -1
- package/dist/{magic-eden-ea_AGCZr.js.map → magic-eden-IrWp2ZXk.js.map} +1 -1
- package/dist/{manifold-8y8J2sjT.js → manifold-DeOE-p2G.js} +1 -1
- package/dist/{manifold-8y8J2sjT.js.map → manifold-DeOE-p2G.js.map} +1 -1
- package/dist/marketCurrencies-CmOMCCOr.d.ts +122 -0
- package/dist/{marketplace-nwnZv9Cb.js → marketplace-B5Z8G03R.js} +1 -1
- package/dist/{marketplace-nwnZv9Cb.js.map → marketplace-B5Z8G03R.js.map} +1 -1
- package/dist/{marketplace-logos-CSeGcPW4.js → marketplace-logos-D8t86gsW.js} +21 -21
- package/dist/{marketplace-logos-CSeGcPW4.js.map → marketplace-logos-D8t86gsW.js.map} +1 -1
- package/dist/{marketplace.gen-BSDIX7NZ.js → marketplace.gen-JzNYpM0U.js} +3 -3
- package/dist/marketplace.gen-JzNYpM0U.js.map +1 -0
- package/dist/{marketplaceConfig-C6X1SUik.js → marketplaceConfig-sNh-MA5M.js} +15 -4
- package/dist/marketplaceConfig-sNh-MA5M.js.map +1 -0
- package/dist/{mintify-LA68TzWg.js → mintify-DG3GrljJ.js} +1 -1
- package/dist/{mintify-LA68TzWg.js.map → mintify-DG3GrljJ.js.map} +1 -1
- package/dist/network-DnBEe1Ur.js +15 -0
- package/dist/network-DnBEe1Ur.js.map +1 -0
- package/dist/{nftx-D3Tc8nzd.js → nftx-B3LH-ZYM.js} +1 -1
- package/dist/{nftx-D3Tc8nzd.js.map → nftx-B3LH-ZYM.js.map} +1 -1
- package/dist/{okx-hbqg6oIJ.js → okx-CRFLrT3Z.js} +1 -1
- package/dist/{okx-hbqg6oIJ.js.map → okx-CRFLrT3Z.js.map} +1 -1
- package/dist/{open-sea-BccuK8-t.js → open-sea-cOpfl366.js} +1 -1
- package/dist/{open-sea-BccuK8-t.js.map → open-sea-cOpfl366.js.map} +1 -1
- package/dist/primary-sale-CLjXRrDj.js +3048 -0
- package/dist/primary-sale-CLjXRrDj.js.map +1 -0
- package/dist/queries-BYT4GJw3.js +1478 -0
- package/dist/queries-BYT4GJw3.js.map +1 -0
- package/dist/query-BTe7Wkrs.d.ts +31 -0
- package/dist/{rarible-BgTwwj9g.js → rarible-guwUx4cn.js} +1 -1
- package/dist/{rarible-BgTwwj9g.js.map → rarible-guwUx4cn.js.map} +1 -1
- package/dist/react/_internal/api/index.d.ts +2 -4
- package/dist/react/_internal/api/index.js +5 -4
- package/dist/react/_internal/databeat/index.d.ts +2 -73
- package/dist/react/_internal/databeat/index.js +21 -18
- package/dist/react/_internal/index.d.ts +2 -7
- package/dist/react/_internal/index.js +8 -6
- package/dist/react/_internal/wagmi/index.d.ts +2 -4
- package/dist/react/_internal/wagmi/index.js +4 -3
- package/dist/react/hooks/config/index.d.ts +9 -0
- package/dist/react/hooks/config/index.js +26 -0
- package/dist/react/hooks/contracts/index.d.ts +7 -0
- package/dist/react/hooks/contracts/index.js +16 -0
- package/dist/react/hooks/data/collectibles/index.d.ts +5 -0
- package/dist/react/hooks/data/collectibles/index.js +26 -0
- package/dist/react/hooks/data/collections/index.d.ts +11 -0
- package/dist/react/hooks/data/collections/index.js +26 -0
- package/dist/react/hooks/data/index.d.ts +29 -0
- package/dist/react/hooks/data/index.js +26 -0
- package/dist/react/hooks/data/inventory/index.d.ts +29 -0
- package/dist/react/hooks/data/inventory/index.js +26 -0
- package/dist/react/hooks/data/market/index.d.ts +12 -0
- package/dist/react/hooks/data/market/index.js +26 -0
- package/dist/react/hooks/data/orders/index.d.ts +11 -0
- package/dist/react/hooks/data/orders/index.js +26 -0
- package/dist/react/hooks/data/primary-sales/index.d.ts +29 -0
- package/dist/react/hooks/data/primary-sales/index.js +26 -0
- package/dist/react/hooks/data/tokens/index.d.ts +5 -0
- package/dist/react/hooks/data/tokens/index.js +26 -0
- package/dist/react/hooks/index.d.ts +29 -18
- package/dist/react/hooks/index.js +22 -19
- package/dist/react/hooks/transactions/index.d.ts +3 -0
- package/dist/react/hooks/transactions/index.js +26 -0
- package/dist/react/hooks/ui/index.d.ts +5 -0
- package/dist/react/hooks/ui/index.js +26 -0
- package/dist/react/hooks/utils/index.d.ts +29 -0
- package/dist/react/hooks/utils/index.js +26 -0
- package/dist/react/index.d.ts +29 -18
- package/dist/react/index.js +22 -19
- package/dist/react/queries/index.d.ts +16 -8
- package/dist/react/queries/index.js +17 -15
- package/dist/react/ssr/index.d.ts +7 -9
- package/dist/react/ssr/index.js +8 -6
- package/dist/react/ssr/index.js.map +1 -1
- package/dist/react/ui/components/marketplace-collectible-card/index.d.ts +4 -8
- package/dist/react/ui/components/marketplace-collectible-card/index.js +21 -18
- package/dist/react/ui/components/marketplace-collectible-card/utils/index.d.ts +2 -7
- package/dist/react/ui/components/marketplace-collectible-card/utils/index.js +8 -6
- 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 +11 -9
- package/dist/react/ui/index.d.ts +4 -8
- package/dist/react/ui/index.js +21 -18
- package/dist/react/ui/modals/_internal/components/actionModal/index.d.ts +1 -25
- package/dist/react/ui/modals/_internal/components/actionModal/index.js +22 -19
- package/dist/react/utils/index.d.ts +19 -0
- package/dist/react/utils/index.js +9 -0
- package/dist/{react-BbHBl6gg.css → react-CbqXKOpt.css} +1 -1
- package/dist/{react-BbHBl6gg.css.map → react-CbqXKOpt.css.map} +1 -1
- package/dist/{react-DAIicQPT.js → react-Ceq8mamy.js} +11203 -7647
- package/dist/react-Ceq8mamy.js.map +1 -0
- package/dist/{sequence-Do3kzb4J.js → sequence-Dt2Xo7Fa.js} +1 -1
- package/dist/{sequence-Do3kzb4J.js.map → sequence-Dt2Xo7Fa.js.map} +1 -1
- package/dist/{index.css → styles/index.css} +679 -127
- package/dist/{sudo-swap-B6vPKxBz.js → sudo-swap-CGoARONs.js} +1 -1
- package/dist/{sudo-swap-B6vPKxBz.js.map → sudo-swap-CGoARONs.js.map} +1 -1
- package/dist/{super-rare-eCm1SE6O.js → super-rare-NeQtZjcn.js} +1 -1
- package/dist/{super-rare-eCm1SE6O.js.map → super-rare-NeQtZjcn.js.map} +1 -1
- package/dist/{token-Da4TdyUk.js → token-D9gZVqbX.js} +1 -1
- package/dist/{token-Da4TdyUk.js.map → token-D9gZVqbX.js.map} +1 -1
- package/dist/tokenSupplies-DXtkRYNO.d.ts +147 -0
- package/dist/{transaction-CcVViHEL.js → transaction-CC2KxNF6.js} +2 -17
- package/dist/transaction-CC2KxNF6.js.map +1 -0
- package/dist/types/index.d.ts +2 -3
- package/dist/types/index.js +2 -2
- package/dist/{CollectibleCard-C8Ae64Ab.d.ts → types-BlCa0TVE.d.ts} +9 -11
- package/dist/{types-DwWE6xOF.js → types-G2PWxiJR.js} +1 -1
- package/dist/{types-DwWE6xOF.js.map → types-G2PWxiJR.js.map} +1 -1
- 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 -8
- package/dist/utils/index.js +11 -9
- package/dist/{utils-CW2NA5KG.js → utils-CKJd-CRf.js} +4 -11
- package/dist/utils-CKJd-CRf.js.map +1 -0
- package/dist/{utils-BPYfgDSL.js → utils-wquIhK6T.js} +5 -6
- package/dist/utils-wquIhK6T.js.map +1 -0
- package/dist/waitForTransactionReceipt-DZxAuR9N.js +27 -0
- package/dist/waitForTransactionReceipt-DZxAuR9N.js.map +1 -0
- package/dist/{x2y2-DD17tT91.js → x2y2-CQdg24VP.js} +1 -1
- package/dist/{x2y2-DD17tT91.js.map → x2y2-CQdg24VP.js.map} +1 -1
- package/dist/{zora-BpSG9UzS.js → zora-DdEydy4L.js} +1 -1
- package/dist/{zora-BpSG9UzS.js.map → zora-DdEydy4L.js.map} +1 -1
- package/eslint.config.mjs +4 -0
- package/package.json +55 -39
- package/postcss.config.mjs +73 -0
- package/public/mockServiceWorker.js +344 -0
- package/src/index.ts +1 -0
- package/src/react/_internal/api/__mocks__/builder.msw.ts +6 -0
- package/src/react/_internal/api/__mocks__/indexer.msw.ts +16 -0
- package/src/react/_internal/api/__mocks__/laos.msw.ts +387 -0
- package/src/react/_internal/api/__mocks__/marketplace.msw.ts +2 -0
- package/src/react/_internal/api/__mocks__/metadata.msw.ts +12 -1
- package/src/react/_internal/api/__tests__/laos-api.test.ts +756 -0
- package/src/react/_internal/api/builder.gen.ts +11 -7
- package/src/react/_internal/api/laos-api.ts +3 -0
- package/src/react/_internal/api/marketplace.gen.ts +5 -3
- package/src/react/_internal/api/query-keys.ts +12 -4
- package/src/react/_internal/api/services.ts +2 -14
- package/src/react/_internal/databeat/index.ts +15 -14
- package/src/react/_internal/databeat/types.ts +23 -0
- package/src/react/_internal/databeat/utils.ts +26 -0
- package/src/react/_internal/query-meta.ts +3 -0
- package/src/react/_internal/utils.ts +6 -4
- package/src/react/_internal/wagmi/create-config.ts +29 -14
- package/src/react/_internal/wagmi/get-connectors.ts +1 -1
- package/src/react/hooks/{__tests__ → config}/__snapshots__/useMarketplaceConfig.test.tsx.snap +6 -0
- 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/data/collectibles/useBalanceOfCollectible.laos.test.tsx +367 -0
- 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/{__tests__ → data/collections}/__snapshots__/useListCollections.test.tsx.snap +10 -0
- 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 +19 -2
- package/src/react/hooks/data/collections/useCollectionBalanceDetails.tsx +106 -0
- 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 +14 -6
- package/src/react/hooks/{useCollectionDetailsPolling.tsx → data/collections/useCollectionDetailsPolling.tsx} +5 -9
- 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/data/collections/useListCollections.tsx +80 -0
- 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 +4 -4
- package/src/react/hooks/{useInventory.tsx → data/inventory/useInventory.tsx} +7 -4
- 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} +8 -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/{useListOffersForCollectible.tsx → data/orders/useListOffersForCollectible.tsx} +4 -4
- 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/data/primary-sales/useGetCountOfPrimarySaleItems.tsx +48 -0
- package/src/react/hooks/{useList1155ShopCardData.tsx → data/primary-sales/useList1155ShopCardData.tsx} +17 -8
- package/src/react/hooks/data/primary-sales/useList721ShopCardData.tsx +183 -0
- package/src/react/hooks/data/primary-sales/useListPrimarySaleItems.tsx +66 -0
- package/src/react/hooks/data/tokens/index.ts +5 -0
- package/src/react/hooks/{__tests__ → data/tokens}/useCurrencyBalance.test.tsx +9 -5
- package/src/react/hooks/data/tokens/useCurrencyBalance.tsx +137 -0
- package/src/react/hooks/data/tokens/useGetTokenRanges.test.tsx +111 -0
- package/src/react/hooks/data/tokens/useGetTokenRanges.tsx +94 -0
- 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/data/tokens/useListTokenMetadata.test.tsx +137 -0
- 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 +186 -0
- package/src/react/hooks/data/tokens/useTokenSupplies.ts +81 -0
- package/src/react/hooks/index.ts +18 -50
- package/src/react/hooks/transactions/index.ts +9 -0
- package/src/react/hooks/{__tests__ → transactions}/useCancelOrder.test.tsx +53 -85
- package/src/react/hooks/{useCancelOrder.tsx → transactions/useCancelOrder.tsx} +4 -4
- 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/transactions/useTransferTokens.test.tsx +469 -0
- package/src/react/hooks/{useTransferTokens.tsx → transactions/useTransferTokens.tsx} +5 -5
- 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 +2 -3
- package/src/react/hooks/ui/useFilters.tsx +178 -0
- package/src/react/hooks/ui/useOpenConnectModal.tsx +9 -0
- package/src/react/hooks/util/optimisticCancelUpdates.ts +1 -0
- package/src/react/hooks/utils/index.ts +9 -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/utils/useCheckoutOptions.test.tsx +162 -0
- package/src/react/hooks/utils/useCheckoutOptions.tsx +98 -0
- package/src/react/hooks/{__tests__ → utils}/useCheckoutOptionsSalesContract.test.tsx +42 -61
- package/src/react/hooks/utils/useCheckoutOptionsSalesContract.tsx +108 -0
- package/src/react/hooks/{__tests__ → utils}/useComparePrices.test.tsx +1 -1
- package/src/react/hooks/utils/useComparePrices.tsx +102 -0
- package/src/react/hooks/{__tests__ → utils}/useConvertPriceToUSD.test.tsx +4 -4
- package/src/react/hooks/utils/useConvertPriceToUSD.tsx +96 -0
- package/src/react/hooks/utils/useEnsureCorrectChain.ts +74 -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/hooks/utils/useSwitchChainWithModal.ts +38 -0
- package/src/react/index.ts +1 -2
- package/src/react/providers/index.tsx +110 -0
- package/src/react/providers/modal-provider.tsx +43 -0
- package/src/react/{__tests__ → providers}/provider.test.tsx +5 -4
- 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 +123 -0
- package/src/react/queries/__tests__/inventory.laos.test.ts +496 -0
- package/src/react/queries/balanceOfCollectible.ts +7 -4
- package/src/react/queries/checkoutOptions.ts +85 -0
- package/src/react/queries/checkoutOptionsSalesContract.ts +89 -0
- package/src/react/queries/collectionBalanceDetails.ts +92 -0
- package/src/react/queries/comparePrices.ts +108 -0
- package/src/react/queries/convertPriceToUSD.ts +92 -0
- package/src/react/{hooks/useFilters.tsx → queries/filters.ts} +51 -48
- package/src/react/queries/getTokenRanges.ts +62 -0
- package/src/react/queries/index.ts +22 -0
- package/src/react/queries/inventory.ts +6 -0
- package/src/react/queries/listBalances.ts +4 -3
- package/src/react/queries/listCollections.ts +7 -3
- package/src/react/queries/listTokenMetadata.ts +2 -2
- package/src/react/queries/marketplaceConfig.ts +11 -2
- package/src/react/queries/primarySaleItems.ts +80 -0
- package/src/react/queries/primarySaleItemsCount.ts +64 -0
- package/src/react/queries/searchTokenMetadata.ts +87 -0
- package/src/react/queries/tokenSupplies.ts +101 -0
- package/src/react/ssr/__tests__/__snapshots__/create-ssr-client.test.ts.snap +6 -0
- 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 +66 -66
- package/src/react/ui/components/_internals/action-button/__tests__/ActionButtonBody.test.tsx +56 -18
- package/src/react/ui/components/_internals/action-button/__tests__/NonOwnerActions.test.tsx +4 -11
- 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 +7 -7
- package/src/react/ui/components/_internals/action-button/components/NonOwnerActions.tsx +4 -1
- package/src/react/ui/components/_internals/action-button/components/OwnerActions.tsx +4 -4
- package/src/react/ui/components/_internals/action-button/hooks/useActionButtonLogic.ts +15 -11
- package/src/react/ui/components/_internals/action-button/store.ts +44 -34
- package/src/react/ui/components/_internals/custom-select/CustomSelect.stories.tsx +582 -0
- package/src/react/ui/components/_internals/pill/Pill.stories.tsx +83 -0
- package/src/react/ui/components/marketplace-collectible-card/Footer.tsx +11 -4
- package/src/react/ui/components/marketplace-collectible-card/components/ActionButtonWrapper.tsx +7 -4
- package/src/react/ui/components/marketplace-collectible-card/components/BaseCard.tsx +4 -3
- package/src/react/ui/components/marketplace-collectible-card/types.ts +7 -5
- package/src/react/ui/components/marketplace-collectible-card/utils/supplyStatus.ts +4 -7
- package/src/react/ui/components/marketplace-collectible-card/variants/MarketCard.tsx +1 -1
- package/src/react/ui/components/marketplace-collectible-card/variants/ShopCard.tsx +11 -4
- package/src/react/ui/components/marketplace-logos/marketplace-logos.stories.tsx +199 -0
- package/src/react/ui/components/media/Media.stories.tsx +642 -0
- package/src/react/ui/components/media/Media.tsx +24 -19
- package/src/react/ui/components/media/types.ts +6 -0
- package/src/react/ui/index.ts +1 -1
- package/src/react/ui/modals/BuyModal/__tests__/BuyModalRouter.test.tsx +25 -25
- package/src/react/ui/modals/BuyModal/__tests__/ERC1155ShopModal.test.tsx +8 -2
- package/src/react/ui/modals/BuyModal/__tests__/ERC721ShopModal.test.tsx +1 -1
- package/src/react/ui/modals/BuyModal/__tests__/Modal1155.test.tsx +7 -1
- package/src/react/ui/modals/BuyModal/__tests__/store.test.ts +9 -1
- package/src/react/ui/modals/BuyModal/components/BuyModalRouter.tsx +5 -5
- package/src/react/ui/modals/BuyModal/components/ERC1155BuyModal.tsx +8 -8
- package/src/react/ui/modals/BuyModal/components/ERC1155QuantityModal.tsx +44 -19
- package/src/react/ui/modals/BuyModal/components/ERC1155ShopModal.tsx +3 -0
- 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 +43 -27
- package/src/react/ui/modals/BuyModal/hooks/__tests__/useERC721SalePaymentParams.test.tsx +13 -2
- package/src/react/ui/modals/BuyModal/hooks/useCheckoutOptions.ts +7 -7
- package/src/react/ui/modals/BuyModal/hooks/useERC1155Checkout.ts +17 -3
- package/src/react/ui/modals/BuyModal/hooks/useERC721SalePaymentParams.ts +19 -8
- package/src/react/ui/modals/BuyModal/hooks/useLoadData.ts +5 -9
- package/src/react/ui/modals/BuyModal/hooks/usePaymentModalParams.ts +23 -15
- package/src/react/ui/modals/BuyModal/index.tsx +9 -1
- package/src/react/ui/modals/BuyModal/store.ts +28 -0
- package/src/react/ui/modals/CreateListingModal/Modal.tsx +39 -16
- package/src/react/ui/modals/CreateListingModal/__tests__/Modal.test.tsx +3 -24
- package/src/react/ui/modals/CreateListingModal/hooks/useGetTokenApproval.ts +5 -9
- package/src/react/ui/modals/CreateListingModal/hooks/useTransactionSteps.tsx +43 -83
- package/src/react/ui/modals/CreateListingModal/store.ts +3 -3
- package/src/react/ui/modals/MakeOfferModal/Modal.tsx +34 -17
- 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 +2 -2
- package/src/react/ui/modals/MakeOfferModal/hooks/useTransactionSteps.tsx +47 -84
- package/src/react/ui/modals/MakeOfferModal/store.ts +3 -3
- package/src/react/ui/modals/SellModal/Modal.tsx +18 -17
- package/src/react/ui/modals/SellModal/__tests__/Modal.test.tsx +8 -30
- package/src/react/ui/modals/SellModal/hooks/useGetTokenApproval.tsx +7 -7
- package/src/react/ui/modals/SellModal/hooks/useTransactionSteps.tsx +39 -65
- package/src/react/ui/modals/SellModal/store.ts +3 -3
- package/src/react/ui/modals/TransferModal/__tests__/__snapshots__/store.test.ts.snap +17 -0
- package/src/react/ui/modals/TransferModal/__tests__/store.test.ts +366 -0
- package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/__tests__/useHandleTransfer.test.tsx +412 -0
- package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/_components/TokenQuantityInput.tsx +51 -48
- package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/_components/TransferButton.tsx +54 -44
- package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/_components/WalletAddressInput.tsx +9 -8
- package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/index.tsx +31 -35
- package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/useHandleTransfer.tsx +22 -13
- package/src/react/ui/modals/TransferModal/index.tsx +36 -53
- package/src/react/ui/modals/TransferModal/messages.ts +1 -1
- package/src/react/ui/modals/TransferModal/store.ts +122 -0
- package/src/react/ui/modals/_internal/components/actionModal/ActionModal.test.tsx +116 -136
- 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/calendar/index.tsx +0 -1
- package/src/react/ui/modals/_internal/components/currencyImage/index.tsx +10 -14
- package/src/react/ui/modals/_internal/components/currencyOptionsSelect/__tests__/index.test.tsx +14 -5
- package/src/react/ui/modals/_internal/components/currencyOptionsSelect/index.tsx +24 -18
- package/src/react/ui/modals/_internal/components/expirationDateSelect/index.tsx +10 -10
- package/src/react/ui/modals/_internal/components/floorPriceText/__tests__/FloorPriceText.test.tsx +8 -8
- package/src/react/ui/modals/_internal/components/priceInput/__tests__/PriceInput.test.tsx +13 -5
- package/src/react/ui/modals/_internal/components/priceInput/index.tsx +42 -27
- package/src/react/ui/modals/_internal/components/quantityInput/__tests__/index.test.tsx +164 -65
- package/src/react/ui/modals/_internal/components/quantityInput/index.tsx +174 -20
- package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/__tests__/SelectWaasFeeOptions.test.tsx +341 -42
- package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/index.tsx +95 -101
- package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/store.ts +72 -14
- package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/useWaasFeeOptionManager.tsx +30 -14
- package/src/react/ui/modals/_internal/components/tokenPreview/index.tsx +2 -2
- package/src/react/ui/modals/_internal/components/transactionDetails/index.tsx +2 -2
- package/src/react/ui/modals/_internal/components/transactionPreview/index.tsx +88 -89
- package/src/react/ui/modals/_internal/components/transactionStatusModal/__tests__/TransactionStatusModal.test.tsx +36 -10
- package/src/react/ui/modals/_internal/components/transactionStatusModal/hooks/useTransactionStatus.ts +25 -26
- package/src/react/ui/modals/_internal/components/transactionStatusModal/index.tsx +35 -21
- package/src/react/ui/modals/_internal/components/transactionStatusModal/store.ts +91 -62
- package/src/react/ui/modals/_internal/components/waasFeeOptionsSelect/WaasFeeOptionsSelect.tsx +62 -48
- package/src/react/ui/modals/_internal/hooks/useSelectWaasFeeOptions.ts +3 -5
- package/src/react/ui/modals/_internal/types.ts +8 -2
- package/src/react/utils/index.ts +1 -0
- package/src/react/utils/waitForTransactionReceipt.ts +49 -0
- package/src/{index.css → styles/index.css} +6 -5
- package/src/styles/styles.ts +3275 -0
- package/src/types/sdk-config.ts +8 -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/src/utils/network.ts +15 -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 +46 -36
- package/tsconfig.json +1 -1
- package/tsdown.config.ts +12 -7
- package/vitest.shims.d.ts +2 -0
- package/vitest.storybook.config.js +33 -0
- package/dist/CalendarIcon-DbQ7Vxcw.js.map +0 -1
- package/dist/api-DTIan01C.js.map +0 -1
- package/dist/builder-api-C_zj5mr3.d.ts +0 -12
- package/dist/index-BQsgAvtX.d.ts +0 -2938
- package/dist/index-BUVWziLP.d.ts +0 -60
- package/dist/index-CLy8y5hm.d.ts +0 -1057
- package/dist/index-COt10OgI.d.ts +0 -24
- package/dist/index-DPNWNa7t.d.ts +0 -414
- package/dist/index-DsfCs3-x.d.ts +0 -122
- package/dist/index-DvpBZgor.d.ts +0 -1
- package/dist/index-dUb6wb4Y.d.ts +0 -22
- package/dist/marketplace.gen-BSDIX7NZ.js.map +0 -1
- package/dist/marketplaceConfig-C6X1SUik.js.map +0 -1
- package/dist/primary-sale-C55ALnfQ.js +0 -1264
- package/dist/primary-sale-C55ALnfQ.js.map +0 -1
- package/dist/queries-CUU65uYZ.js +0 -599
- package/dist/queries-CUU65uYZ.js.map +0 -1
- package/dist/react/hooks/options/index.d.ts +0 -4
- package/dist/react/hooks/options/index.js +0 -11
- package/dist/react-DAIicQPT.js.map +0 -1
- package/dist/transaction-CcVViHEL.js.map +0 -1
- package/dist/utils-BPYfgDSL.js.map +0 -1
- package/dist/utils-CW2NA5KG.js.map +0 -1
- package/dist/wagmi-CDzEQbfk.js.map +0 -1
- 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/__tests__/useGetTokenSuppliesMap.test.tsx +0 -104
- package/src/react/hooks/__tests__/useListTokenMetadata.test.tsx +0 -111
- package/src/react/hooks/options/index.ts +0 -1
- package/src/react/hooks/useCancelTransactionSteps.tsx +0 -249
- package/src/react/hooks/useCheckoutOptionsSalesContract.tsx +0 -67
- package/src/react/hooks/useCollectionBalanceDetails.tsx +0 -79
- package/src/react/hooks/useComparePrices.tsx +0 -96
- package/src/react/hooks/useConvertPriceToUSD.tsx +0 -82
- package/src/react/hooks/useCurrencyBalance.tsx +0 -51
- package/src/react/hooks/useERC721SaleMintedTokens.tsx +0 -67
- package/src/react/hooks/useGetTokenRanges.tsx +0 -31
- package/src/react/hooks/useGetTokenSuppliesMap.tsx +0 -73
- package/src/react/hooks/useList1155SaleSupplies.tsx +0 -62
- package/src/react/hooks/useList721ShopCardData.tsx +0 -160
- package/src/react/hooks/useListCollections.tsx +0 -80
- package/src/react/hooks/useListPrimarySaleItems.ts +0 -102
- package/src/react/hooks/useListShopCardData.tsx +0 -70
- package/src/react/hooks/useShopCollectibleSaleData.tsx +0 -349
- package/src/react/hooks/useTokenSaleDetailsBatch.tsx +0 -134
- package/src/react/provider.tsx +0 -43
- package/src/react/queries/getTokenSuppliesMap.ts +0 -77
- package/src/react/ui/modals/TransferModal/_store.ts +0 -66
- package/src/react/ui/modals/_internal/components/actionModal/store.ts +0 -57
- package/src/react/ui/modals/_internal/components/quantityInput/QuantityInputBase.tsx +0 -166
- package/src/react/ui/modals/_internal/stores/accountModal.ts +0 -3
- package/src/react/ui/modals/modal-provider.tsx +0 -25
- package/test/mocks/wallet.ts +0 -63
- /package/dist/{abi-BKyRjVcZ.js → abi-Wr_aTZFi.js} +0 -0
- /package/dist/{index-C39K_8SG.d.ts → index-q7f-WDBS.d.ts} +0 -0
- /package/dist/{options-B4QN7Xou.js → wagmi-BhP3mdhP.js} +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
|
+
};
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import type { StorybookConfig } from '@storybook/react-vite';
|
|
2
|
+
import tailwindcssPostcss from '@tailwindcss/postcss';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
|
|
5
|
+
const config: StorybookConfig = {
|
|
6
|
+
stories: ['../src/**/*.stories.@(js|jsx|mjs|ts|tsx)'],
|
|
7
|
+
addons: [
|
|
8
|
+
'@storybook/addon-docs',
|
|
9
|
+
'@storybook/addon-vitest',
|
|
10
|
+
'msw-storybook-addon',
|
|
11
|
+
],
|
|
12
|
+
framework: {
|
|
13
|
+
name: '@storybook/react-vite',
|
|
14
|
+
options: {},
|
|
15
|
+
},
|
|
16
|
+
staticDirs: ['../public'],
|
|
17
|
+
typescript: {
|
|
18
|
+
reactDocgen: 'react-docgen-typescript',
|
|
19
|
+
reactDocgenTypescriptOptions: {
|
|
20
|
+
shouldExtractLiteralValuesFromEnum: true,
|
|
21
|
+
shouldRemoveUndefinedFromOptional: true,
|
|
22
|
+
propFilter: (prop) => {
|
|
23
|
+
// Exclude props from generated files
|
|
24
|
+
if (prop.parent?.fileName.includes('.gen.ts')) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
// Exclude props from node_modules except for specific packages
|
|
28
|
+
if (prop.parent?.fileName.includes('node_modules')) {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
return true;
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
async viteFinal(config) {
|
|
36
|
+
// Configure PostCSS for Tailwind CSS v4
|
|
37
|
+
config.css = config.css || {};
|
|
38
|
+
config.css.postcss = {
|
|
39
|
+
plugins: [tailwindcssPostcss()],
|
|
40
|
+
};
|
|
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
|
+
|
|
55
|
+
// Exclude generated files from react-docgen processing
|
|
56
|
+
if (config.plugins) {
|
|
57
|
+
for (const plugin of config.plugins) {
|
|
58
|
+
if (
|
|
59
|
+
plugin &&
|
|
60
|
+
typeof plugin === 'object' &&
|
|
61
|
+
'name' in plugin &&
|
|
62
|
+
plugin.name === 'storybook:react-docgen-plugin'
|
|
63
|
+
) {
|
|
64
|
+
const originalTransform = plugin.transform;
|
|
65
|
+
if (typeof originalTransform === 'function') {
|
|
66
|
+
plugin.transform = async function (code: string, id: string) {
|
|
67
|
+
// Skip generated files
|
|
68
|
+
if (id.includes('.gen.ts') || id.includes('_internal/api/')) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
return originalTransform.call(this, code, id);
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
break;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
return config;
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
export default config;
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { SequenceConnectProvider } from '@0xsequence/connect';
|
|
2
|
+
import type { Preview } from '@storybook/react-vite';
|
|
3
|
+
import { QueryClientProvider } from '@tanstack/react-query';
|
|
4
|
+
|
|
5
|
+
import React from 'react';
|
|
6
|
+
import { WagmiProvider } from 'wagmi';
|
|
7
|
+
import { MarketplaceProvider } from '../src/react/provider';
|
|
8
|
+
import { ModalProvider } from '../src/react/ui/modals/modal-provider';
|
|
9
|
+
import '../src/index.css';
|
|
10
|
+
import { initialize, mswLoader } from 'msw-storybook-addon';
|
|
11
|
+
import {
|
|
12
|
+
createTestQueryClient,
|
|
13
|
+
sequenceConnectConfig,
|
|
14
|
+
wagmiConfig,
|
|
15
|
+
wagmiConfigEmbedded,
|
|
16
|
+
wagmiConfigSequence,
|
|
17
|
+
} from '../test/test-utils';
|
|
18
|
+
import { ConnectionStatus } from './ConnectionStatus';
|
|
19
|
+
|
|
20
|
+
const testQueryClient = createTestQueryClient();
|
|
21
|
+
|
|
22
|
+
// Initialize MSW
|
|
23
|
+
initialize({
|
|
24
|
+
onUnhandledRequest: ({ url, method }) => {
|
|
25
|
+
// Only warn about unhandled requests to our specific API paths
|
|
26
|
+
const pathname = new URL(url).pathname;
|
|
27
|
+
if (pathname.startsWith('/rpc/')) {
|
|
28
|
+
console.warn(`Unhandled ${method} request to ${url}.`);
|
|
29
|
+
}
|
|
30
|
+
// Bypass all other requests (fonts, static assets, etc.)
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
// Mock marketplace SDK config for Storybook
|
|
35
|
+
const mockSdkConfig = {
|
|
36
|
+
projectAccessKey: 'storybook-test-key',
|
|
37
|
+
projectId: '1',
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
// Get wagmi config based on localStorage
|
|
41
|
+
const getWagmiConfig = () => {
|
|
42
|
+
if (typeof window === 'undefined') {
|
|
43
|
+
return wagmiConfig; // Default for SSR
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
const storedConnector = localStorage.getItem('storybook-connector');
|
|
47
|
+
const connectorType = storedConnector || 'auto';
|
|
48
|
+
|
|
49
|
+
switch (connectorType) {
|
|
50
|
+
case 'waas':
|
|
51
|
+
console.log('Using WaaS connector configuration');
|
|
52
|
+
return wagmiConfigEmbedded;
|
|
53
|
+
case 'sequence':
|
|
54
|
+
console.log('Using Sequence connector configuration');
|
|
55
|
+
return wagmiConfigSequence;
|
|
56
|
+
default:
|
|
57
|
+
console.log('Using standard mock connector configuration');
|
|
58
|
+
return wagmiConfig;
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
const preview: Preview = {
|
|
63
|
+
parameters: {
|
|
64
|
+
backgrounds: {
|
|
65
|
+
options: {
|
|
66
|
+
dark: { name: 'Dark', value: '#333' },
|
|
67
|
+
light: { name: 'Light', value: '#F7F9F2' },
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
controls: {
|
|
71
|
+
matchers: {
|
|
72
|
+
color: /(background|color)$/i,
|
|
73
|
+
date: /Date$/i,
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
initialGlobals: {
|
|
78
|
+
backgrounds: { value: 'dark' },
|
|
79
|
+
},
|
|
80
|
+
loaders: [mswLoader],
|
|
81
|
+
decorators: [
|
|
82
|
+
(Story) => {
|
|
83
|
+
const currentWagmiConfig = getWagmiConfig();
|
|
84
|
+
|
|
85
|
+
return (
|
|
86
|
+
<WagmiProvider config={currentWagmiConfig}>
|
|
87
|
+
<QueryClientProvider client={testQueryClient}>
|
|
88
|
+
<SequenceConnectProvider
|
|
89
|
+
config={sequenceConnectConfig.connectConfig}
|
|
90
|
+
>
|
|
91
|
+
<MarketplaceProvider config={mockSdkConfig}>
|
|
92
|
+
<ConnectionStatus />
|
|
93
|
+
<div style={{ padding: '1rem', minHeight: '100vh' }}>
|
|
94
|
+
<Story />
|
|
95
|
+
</div>
|
|
96
|
+
<ModalProvider />
|
|
97
|
+
</MarketplaceProvider>
|
|
98
|
+
</SequenceConnectProvider>
|
|
99
|
+
</QueryClientProvider>
|
|
100
|
+
</WagmiProvider>
|
|
101
|
+
);
|
|
102
|
+
},
|
|
103
|
+
],
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
export default preview;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { setProjectAnnotations } from '@storybook/react-vite';
|
|
2
|
+
import * as projectAnnotations from './preview';
|
|
3
|
+
|
|
4
|
+
// This is an important step to apply the right configuration when testing your stories.
|
|
5
|
+
// More info at: https://storybook.js.org/docs/api/portable-stories/portable-stories-vitest#setprojectannotations
|
|
6
|
+
setProjectAnnotations([projectAnnotations]);
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,128 @@
|
|
|
1
1
|
# @0xsequence/marketplace-sdk
|
|
2
2
|
|
|
3
|
+
## 1.0.0
|
|
4
|
+
|
|
5
|
+
🎉 **Production Release** - Sequence Marketplace SDK 1.0! 🎉
|
|
6
|
+
|
|
7
|
+
#### Complete Marketplace Solution
|
|
8
|
+
- **Primary Sales (Shop)**: Full support for Sequence sales contracts (ERC721 v0 and ERC1155 v0 and v1)
|
|
9
|
+
- **Secondary Sales (Market)**: Comprehensive listing and offer management
|
|
10
|
+
|
|
11
|
+
### 🚀 New features
|
|
12
|
+
- Support for Sequence sales contracts (ERC721 v0 and ERC1155 v0 and v1)
|
|
13
|
+
- **New `useProcessStep` hook**: For transaction marketplace api transaction step handling
|
|
14
|
+
- **New buy checkout flow UI**: New checkout flow for buying collectibles, from @0xsequence/checkout
|
|
15
|
+
- Custom wallet class replaced with wagmi hooks and new hooks for wallet operations (useEnsureCorrectChain, useConnectorMetadata, useProcessStep), see breaking changes below
|
|
16
|
+
- All fetching hooks now have a separated query function that can be used with other data fetching libraries or SSR/SSG frameworks
|
|
17
|
+
- All fetching hooks only fetch data when all required parameters are provided
|
|
18
|
+
- Modal style isolation with shadow DOM, preventing global styles from leaking into the document body
|
|
19
|
+
- useSearchTokenMetadata now have an option to only return token metadata for minted tokens `onlyMinted: true`
|
|
20
|
+
- MarketplaceConfig is by now by default never invalidated, allow fetching only serverside
|
|
21
|
+
|
|
22
|
+
- **UI/UX Improvements**:
|
|
23
|
+
- Added optional action buttons to buy flow success modal
|
|
24
|
+
- Fixed ERC1155 quantity modal decimal precision handling
|
|
25
|
+
- Fixed collectible card image opacity issues
|
|
26
|
+
- Improved media display with object-contain for collectible cards
|
|
27
|
+
|
|
28
|
+
### ⚠️ Breaking Changes
|
|
29
|
+
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.
|
|
30
|
+
`useShopCollectibleSaleData` hook has been removed. Instead, use `useErc721SaleDetails` and `useErc1155SaleDetails` hooks leveraging marketplace-api
|
|
31
|
+
- **Wallet**: Complete removal of custom wallet client in favor of wagmi hooks
|
|
32
|
+
- Replace `wallet.address` with `useAccount()` hook from wagmi
|
|
33
|
+
- Replace `wallet.isWaaS` with `useConnectorMetadata().isWaaS`
|
|
34
|
+
- Replace `wallet.kind` with `useConnectorMetadata().walletKind`
|
|
35
|
+
- Replace `wallet.switchChain` with `useEnsureCorrectChain` hook
|
|
36
|
+
- Replace `wallet.signTransactionStep` and `wallet.transferStep` with `useProcessStep` hook
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
### 🐛 Bug Fixes
|
|
40
|
+
- Fixed ERC1155 quantity modal decimal handling with proper min/max calculations
|
|
41
|
+
- Fixed pagination issues with minted ERC721 sale tokens
|
|
42
|
+
- Resolved potential state management race conditions in action modals
|
|
43
|
+
- Fixed decimal handling in quantity inputs
|
|
44
|
+
- Fixed collectible card image opacity issues
|
|
45
|
+
- Fixed ERC721 sale contract quantity tracking for V1 contracts
|
|
46
|
+
- Fixed negative remaining supply display in shop cards
|
|
47
|
+
- Improved error handling when quantity values are 0
|
|
48
|
+
- Fixed token approval reset when transaction steps don't exist
|
|
49
|
+
- Auto fee selection for embedded wallets bug fix, now only applies for cancelling orders
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
### 🔧 Internal Improvements
|
|
53
|
+
|
|
54
|
+
#### Code Organization
|
|
55
|
+
- Reorganized hooks into logical subdirectories (data, transactions, ui, config)
|
|
56
|
+
- Removed duplicate hooks and consolidated functionality
|
|
57
|
+
- Increased test coverage
|
|
58
|
+
- Some internal hooks have been renamed for consistency
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
## 0.10.0
|
|
62
|
+
|
|
63
|
+
### New Features
|
|
64
|
+
|
|
65
|
+
**Alternative Wallet integration Support**
|
|
66
|
+
- Added support for using any wallet connection library (e.g., Privy, Rainbowkit, Dynamic Labs etc.) instead of Sequence Connect
|
|
67
|
+
- You can now provide a custom `openConnectModal` function to the `MarketplaceProvider` to integrate with your preferred wallet connection flow.
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
Example with any wallet provider:
|
|
71
|
+
```tsx
|
|
72
|
+
import { MarketplaceProvider } from '@0xsequence/marketplace-sdk/react';
|
|
73
|
+
import { useConnectModal } from '@my-wallet-provider/connect-modal';
|
|
74
|
+
|
|
75
|
+
function App() {
|
|
76
|
+
const { openConnectModal } = useConnectModal();
|
|
77
|
+
|
|
78
|
+
return (
|
|
79
|
+
<MarketplaceProvider
|
|
80
|
+
config={sdkConfig}
|
|
81
|
+
openConnectModal={openConnectModal}
|
|
82
|
+
>
|
|
83
|
+
{/* Your marketplace app */}
|
|
84
|
+
</MarketplaceProvider>
|
|
85
|
+
);
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
See the [Alternative Wallet Integration Playground](https://github.com/0xsequence/marketplace-sdk/tree/master/playgrounds/alternative-wallets) for a complete example with Dynamic Labs
|
|
90
|
+
|
|
91
|
+
**Enhanced Media Component**
|
|
92
|
+
- Added `shouldListenForLoad` prop for controlling asset load event handling
|
|
93
|
+
- Introduced `mediaClassName` prop for controlling the inner media element
|
|
94
|
+
- Improved asset loading behavior with conditional handling
|
|
95
|
+
|
|
96
|
+
**Shop & Market Improvements**
|
|
97
|
+
- Added `ShopActions` component for handling collectible purchase interactions
|
|
98
|
+
- Enhanced `CollectibleDetails` to conditionally display information based on marketplace type
|
|
99
|
+
- Improved ERC1155 sale item handling - buy button now hidden when out of stock
|
|
100
|
+
- Added support for unlimited supply display in shop components
|
|
101
|
+
|
|
102
|
+
### API Updates
|
|
103
|
+
|
|
104
|
+
**New Hooks & Queries**
|
|
105
|
+
- `useGetCountOfPrimarySaleItems` - Now uses `useQuery` instead of `useInfiniteQuery`
|
|
106
|
+
- Added `contractAddress` parameter to `TokenBalancesParams` for more precise balance queries
|
|
107
|
+
|
|
108
|
+
**Analytics & Tracking**
|
|
109
|
+
- Enhanced buy modal tracking to track cart abandonment
|
|
110
|
+
|
|
111
|
+
### Developer Experience
|
|
112
|
+
|
|
113
|
+
**Testing & Documentation**
|
|
114
|
+
- Expanded test coverage for critical components
|
|
115
|
+
- Added JSDoc documentation improvements
|
|
116
|
+
|
|
117
|
+
**Build & Configuration**
|
|
118
|
+
- Fixed SSR issues with React Day Picker in React-Router V7
|
|
119
|
+
|
|
120
|
+
### Bug Fixes
|
|
121
|
+
|
|
122
|
+
- Fixed ERC1155 quantity modal to use `maxUint256` for infinity value
|
|
123
|
+
- Resolved React state update issues in various components
|
|
124
|
+
- Fixed missing contract type errors
|
|
125
|
+
|
|
3
126
|
## 0.9.0
|
|
4
127
|
|
|
5
128
|
### Patch Changes
|
|
@@ -7,47 +130,51 @@
|
|
|
7
130
|
**⚠️ Breaking Changes **
|
|
8
131
|
|
|
9
132
|
**Hook Parameter Type Updates**
|
|
133
|
+
|
|
10
134
|
- Updated hook parameter types for consistency:
|
|
11
|
-
- `useCollection`: `UseCollectionArgs` → `UseCollectionParams`
|
|
135
|
+
- `useCollection`: `UseCollectionArgs` → `UseCollectionParams`
|
|
12
136
|
- `useHighestOffer`: `UseHighestOfferArgs` → `UseHighestOfferParams`
|
|
13
137
|
- `useLowestListing`: `UseLowestListingArgs` → `UseLowestListingParams`
|
|
14
138
|
- `useFloorOrder`: `UseFloorOrderArgs` → `UseFloorOrderParams`
|
|
15
139
|
|
|
16
140
|
**Count Hook Return Types**
|
|
141
|
+
|
|
17
142
|
- All count hooks now consistently return `number` instead of `{ count: number }`
|
|
18
143
|
- Affected hooks: `useCountListingsForCollectible`, `useCountOffersForCollectible`, `useCountOfCollectables`
|
|
19
144
|
- Migration: Replace `data?.count` with `data` directly
|
|
20
145
|
|
|
21
|
-
|
|
22
146
|
**Shop Integration & Primary Sales Enhancements**
|
|
147
|
+
|
|
23
148
|
- Enhanced shop integration with improved primary sales support
|
|
24
149
|
- Added `useCountOfPrimarySaleItems` hook for returning the total number of primary sale items
|
|
25
150
|
- Added `useGetTokenRanges` hook for fetching token ID ranges from indexer
|
|
26
151
|
- Improved 721 and 1155 sale controls with better quantity tracking
|
|
27
152
|
|
|
28
153
|
**Hook System Overhaul**
|
|
154
|
+
|
|
29
155
|
- Migrated 20+ hooks to new consistent fetching pattern
|
|
30
|
-
- Exported all fetching function in a separate file, allowing them to be used with other loaders and during prerendering (SSR)
|
|
156
|
+
- Exported all fetching function in a separate file, allowing them to be used with other loaders and during prerendering (SSR)
|
|
31
157
|
- Added comprehensive JSDoc documentation with usage examples
|
|
32
158
|
- Enhanced TypeScript types and parameter validation across all hooks
|
|
33
159
|
- Improved error handling and query optimization
|
|
34
160
|
- Added support for most react query options https://tanstack.com/query/latest/docs/framework/react/reference/useQuery
|
|
35
161
|
|
|
36
|
-
**API & Configuration Updates**
|
|
162
|
+
**API & Configuration Updates**
|
|
163
|
+
|
|
37
164
|
- Support for granular service environment configurations with manual URL overrides
|
|
38
165
|
|
|
39
166
|
**UI/UX Enhancements**
|
|
167
|
+
|
|
40
168
|
- Fixed Safari detection in Media component for better SSR compatibility
|
|
41
|
-
- Improved loading states across all components
|
|
169
|
+
- Improved loading states across all components
|
|
42
170
|
- Enhanced collectible card rendering for both minted and unminted items
|
|
43
171
|
|
|
44
|
-
|
|
45
172
|
**Misc**
|
|
173
|
+
|
|
46
174
|
- Fixed grayed-out media display in collectible cards
|
|
47
175
|
- Upgraded all dependencies to latest versions
|
|
48
176
|
- Extensive code cleanup: removed unused exports, comments, and TODOs
|
|
49
177
|
|
|
50
|
-
|
|
51
178
|
### Patch Changes
|
|
52
179
|
|
|
53
180
|
## 0.8.12
|
|
@@ -365,4 +492,4 @@ SSR config do not require passing query client anymore, and leverages an interna
|
|
|
365
492
|
|
|
366
493
|
### Minor Changes
|
|
367
494
|
|
|
368
|
-
- Buy flow cleanup, various fixes
|
|
495
|
+
- Buy flow cleanup, various fixes
|