@0xsequence/marketplace-sdk 0.9.0 → 0.10.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/main.ts +63 -0
- package/.storybook/preview.ts +24 -0
- package/.storybook/vitest.setup.ts +6 -0
- package/CHANGELOG.md +77 -8
- package/dist/{CalendarIcon-DbQ7Vxcw.js → CalendarIcon-CqsuAuCm.js} +4 -51
- package/dist/CalendarIcon-CqsuAuCm.js.map +1 -0
- package/dist/{CollectibleCard-C8Ae64Ab.d.ts → CollectibleCard-Dd-CG6dE.d.ts} +8 -7
- package/dist/InfoIcon-v0w_Lu7t.js +53 -0
- package/dist/InfoIcon-v0w_Lu7t.js.map +1 -0
- package/dist/{_internal-BgWcRIak.js → _internal-C75gOSNo.js} +2 -10
- package/dist/_internal-C75gOSNo.js.map +1 -0
- package/dist/actionModal-CMUeVsFX.js +116 -0
- package/dist/actionModal-CMUeVsFX.js.map +1 -0
- package/dist/{alien_swap-B_76IMma.js → alien_swap-CYv6YlOF.js} +1 -1
- package/dist/{alien_swap-B_76IMma.js.map → alien_swap-CYv6YlOF.js.map} +1 -1
- package/dist/{api-DTIan01C.js → api-BiMGqWdz.js} +17 -34
- package/dist/api-BiMGqWdz.js.map +1 -0
- package/dist/{aqua-xyz-CMN_TFY5.js → aqua-xyz-Bzn5baeH.js} +1 -1
- package/dist/{aqua-xyz-CMN_TFY5.js.map → aqua-xyz-Bzn5baeH.js.map} +1 -1
- package/dist/{aura-Cye_TuHj.js → aura-DzIWh8WT.js} +1 -1
- package/dist/{aura-Cye_TuHj.js.map → aura-DzIWh8WT.js.map} +1 -1
- package/dist/base-DqaJPvfN.js +22 -0
- package/dist/base-DqaJPvfN.js.map +1 -0
- package/dist/{blur-DWDMyMpK.js → blur-DSH-Cbpj.js} +1 -1
- package/dist/{blur-DWDMyMpK.js.map → blur-DSH-Cbpj.js.map} +1 -1
- package/dist/{coinbase-ByA_XRB0.js → coinbase-Df8URNxq.js} +1 -1
- package/dist/{coinbase-ByA_XRB0.js.map → coinbase-Df8URNxq.js.map} +1 -1
- package/dist/{new-marketplace-types-Bfis0U4J.d.ts → create-config-DKJ-F0jc.d.ts} +402 -41
- package/dist/{wagmi-CDzEQbfk.js → create-config-fQ-jbJD1.js} +20 -10
- package/dist/create-config-fQ-jbJD1.js.map +1 -0
- package/dist/{element-b77CyXIZ.js → element-Cx6uJu5N.js} +1 -1
- package/dist/{element-b77CyXIZ.js.map → element-Cx6uJu5N.js.map} +1 -1
- package/dist/{foundation-DbOrKP9Y.js → foundation-D6U4aRLN.js} +1 -1
- package/dist/{foundation-DbOrKP9Y.js.map → foundation-D6U4aRLN.js.map} +1 -1
- package/dist/get-provider-CYYHfrlg.js +10 -0
- package/dist/get-provider-CYYHfrlg.js.map +1 -0
- package/dist/get-query-client-D19vvfJo.js +23 -0
- package/dist/get-query-client-D19vvfJo.js.map +1 -0
- package/dist/hooks-4pxIbLbM.js +4044 -0
- package/dist/hooks-4pxIbLbM.js.map +1 -0
- package/dist/{index-BL9RUSEK.d.ts → index-136YrWDH.d.ts} +1 -1
- package/dist/{index-D5v5iluA.d.ts → index-BAhaEfqY.d.ts} +1 -1
- package/dist/index-BKBin-rq.d.ts +979 -0
- package/dist/{index-BQsgAvtX.d.ts → index-BUWB_RXp.d.ts} +776 -570
- package/dist/{index-21LE7OhL.d.ts → index-BhVFc2rX.d.ts} +6 -3
- package/dist/{index-DXMfTZ1F.d.ts → index-C5aqo8xu.d.ts} +1 -1
- package/dist/{index-ByznONYE.d.ts → index-CKrYP7ot.d.ts} +20 -48
- package/dist/{index-DaE5ZNHb.d.ts → index-CUwMH7Ht.d.ts} +5 -5
- package/dist/{index-CLy8y5hm.d.ts → index-Cu70Lw-w.d.ts} +1 -1
- package/dist/index.css +414 -1
- package/dist/index.d.ts +8 -10
- package/dist/index.js +13 -9
- package/dist/{looks-rare-C1VqNcSM.js → looks-rare-ChBRBY-p.js} +1 -1
- package/dist/{looks-rare-C1VqNcSM.js.map → looks-rare-ChBRBY-p.js.map} +1 -1
- package/dist/{magic-eden-ea_AGCZr.js → magic-eden-D5U7N1xL.js} +1 -1
- package/dist/{magic-eden-ea_AGCZr.js.map → magic-eden-D5U7N1xL.js.map} +1 -1
- package/dist/{manifold-8y8J2sjT.js → manifold-CtLF52zU.js} +1 -1
- package/dist/{manifold-8y8J2sjT.js.map → manifold-CtLF52zU.js.map} +1 -1
- package/dist/{marketplace-nwnZv9Cb.js → marketplace-DmFiyBoS.js} +1 -1
- package/dist/{marketplace-nwnZv9Cb.js.map → marketplace-DmFiyBoS.js.map} +1 -1
- package/dist/{marketplace-logos-CSeGcPW4.js → marketplace-logos-Cd6W-qOq.js} +21 -21
- package/dist/{marketplace-logos-CSeGcPW4.js.map → marketplace-logos-Cd6W-qOq.js.map} +1 -1
- package/dist/{marketplace.gen-BSDIX7NZ.js → marketplace.gen-HpnpL5xU.js} +3 -3
- package/dist/marketplace.gen-HpnpL5xU.js.map +1 -0
- package/dist/{marketplaceConfig-C6X1SUik.js → marketplaceConfig-GQTTmihy.js} +3 -3
- package/dist/marketplaceConfig-GQTTmihy.js.map +1 -0
- package/dist/{mintify-LA68TzWg.js → mintify-Bi3Bce68.js} +1 -1
- package/dist/{mintify-LA68TzWg.js.map → mintify-Bi3Bce68.js.map} +1 -1
- package/dist/network-CGD0oKtS.js +15 -0
- package/dist/network-CGD0oKtS.js.map +1 -0
- package/dist/{nftx-D3Tc8nzd.js → nftx-BDQZjtkX.js} +1 -1
- package/dist/{nftx-D3Tc8nzd.js.map → nftx-BDQZjtkX.js.map} +1 -1
- package/dist/{okx-hbqg6oIJ.js → okx-D4meadLe.js} +1 -1
- package/dist/{okx-hbqg6oIJ.js.map → okx-D4meadLe.js.map} +1 -1
- package/dist/{open-sea-BccuK8-t.js → open-sea-DN0hgfVw.js} +1 -1
- package/dist/{open-sea-BccuK8-t.js.map → open-sea-DN0hgfVw.js.map} +1 -1
- package/dist/{primary-sale-C55ALnfQ.js → primary-sale-CmWxSfFQ.js} +1 -1
- package/dist/{primary-sale-C55ALnfQ.js.map → primary-sale-CmWxSfFQ.js.map} +1 -1
- package/dist/provider-DPGUA10G.js +125 -0
- package/dist/provider-DPGUA10G.js.map +1 -0
- package/dist/{queries-CUU65uYZ.js → queries-Ce_2othB.js} +165 -7
- package/dist/queries-Ce_2othB.js.map +1 -0
- package/dist/{rarible-BgTwwj9g.js → rarible-B0xlD88A.js} +1 -1
- package/dist/{rarible-BgTwwj9g.js.map → rarible-B0xlD88A.js.map} +1 -1
- package/dist/react/_internal/api/index.d.ts +2 -4
- package/dist/react/_internal/api/index.js +7 -4
- package/dist/react/_internal/databeat/index.d.ts +2 -73
- package/dist/react/_internal/databeat/index.js +4 -21
- package/dist/react/_internal/index.d.ts +2 -7
- package/dist/react/_internal/index.js +11 -6
- package/dist/react/_internal/wagmi/index.d.ts +2 -4
- package/dist/react/_internal/wagmi/index.js +5 -3
- package/dist/react/hooks/index.d.ts +12 -17
- package/dist/react/hooks/index.js +23 -19
- package/dist/react/hooks/options/index.d.ts +2 -3
- package/dist/react/hooks/options/index.js +12 -7
- package/dist/react/index.d.ts +12 -17
- package/dist/react/index.js +28 -19
- package/dist/react/queries/index.d.ts +9 -8
- package/dist/react/queries/index.js +20 -15
- package/dist/react/ssr/index.d.ts +7 -9
- package/dist/react/ssr/index.js +11 -6
- package/dist/react/ssr/index.js.map +1 -1
- package/dist/react/ui/components/marketplace-collectible-card/index.d.ts +3 -8
- package/dist/react/ui/components/marketplace-collectible-card/index.js +27 -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 +11 -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 +13 -9
- package/dist/react/ui/index.d.ts +3 -8
- package/dist/react/ui/index.js +27 -18
- package/dist/react/ui/modals/_internal/components/actionModal/index.d.ts +2 -2
- package/dist/react/ui/modals/_internal/components/actionModal/index.js +23 -18
- package/dist/{react-DAIicQPT.js → react-DP0M2Wfm.js} +799 -4306
- package/dist/react-DP0M2Wfm.js.map +1 -0
- package/dist/{react-BbHBl6gg.css → react-DeDyTgo7.css} +1 -1
- package/dist/{react-BbHBl6gg.css.map → react-DeDyTgo7.css.map} +1 -1
- package/dist/{sequence-Do3kzb4J.js → sequence-BIrOVRXO.js} +1 -1
- package/dist/{sequence-Do3kzb4J.js.map → sequence-BIrOVRXO.js.map} +1 -1
- package/dist/{sudo-swap-B6vPKxBz.js → sudo-swap-BPMon-M5.js} +1 -1
- package/dist/{sudo-swap-B6vPKxBz.js.map → sudo-swap-BPMon-M5.js.map} +1 -1
- package/dist/{super-rare-eCm1SE6O.js → super-rare-kPN6Ua8i.js} +1 -1
- package/dist/{super-rare-eCm1SE6O.js.map → super-rare-kPN6Ua8i.js.map} +1 -1
- package/dist/{token-Da4TdyUk.js → token-CHSBPYVG.js} +1 -1
- package/dist/{token-Da4TdyUk.js.map → token-CHSBPYVG.js.map} +1 -1
- package/dist/{transaction-CcVViHEL.js → transaction-CnctdNzS.js} +3 -21
- package/dist/transaction-CnctdNzS.js.map +1 -0
- package/dist/types/index.d.ts +2 -3
- package/dist/types/index.js +2 -2
- package/dist/{types-DwWE6xOF.js → types-Yw2ywj6j.js} +1 -1
- package/dist/{types-DwWE6xOF.js.map → types-Yw2ywj6j.js.map} +1 -1
- package/dist/utils/abi/index.d.ts +4 -4
- package/dist/utils/abi/index.js +4 -4
- package/dist/utils/abi/marketplace/index.d.ts +1 -1
- package/dist/utils/abi/marketplace/index.js +1 -1
- package/dist/utils/abi/primary-sale/index.d.ts +1 -1
- package/dist/utils/abi/primary-sale/index.js +1 -1
- package/dist/utils/abi/token/index.d.ts +1 -1
- package/dist/utils/abi/token/index.js +1 -1
- package/dist/utils/index.d.ts +7 -8
- package/dist/utils/index.js +12 -9
- package/dist/{utils-CW2NA5KG.js → utils-9RXDgcBl.js} +4 -11
- package/dist/utils-9RXDgcBl.js.map +1 -0
- package/dist/{utils-BPYfgDSL.js → utils-DjVJ9tov.js} +5 -6
- package/dist/utils-DjVJ9tov.js.map +1 -0
- package/dist/wagmi-Do_KW5ke.js +0 -0
- package/dist/{x2y2-DD17tT91.js → x2y2-BLz-_Q2O.js} +1 -1
- package/dist/{x2y2-DD17tT91.js.map → x2y2-BLz-_Q2O.js.map} +1 -1
- package/dist/{zora-BpSG9UzS.js → zora-UGhKs-aL.js} +1 -1
- package/dist/{zora-BpSG9UzS.js.map → zora-UGhKs-aL.js.map} +1 -1
- package/eslint.config.mjs +4 -0
- package/package.json +27 -14
- package/postcss.config.mjs +6 -0
- package/src/index.css +5 -4
- package/src/index.ts +1 -0
- package/src/react/__tests__/provider.test.tsx +4 -3
- 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/__tests__/laos-api.test.ts +756 -0
- 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 +22 -0
- package/src/react/_internal/databeat/utils.ts +26 -0
- package/src/react/_internal/utils.ts +4 -4
- package/src/react/_internal/wagmi/create-config.ts +28 -13
- package/src/react/_internal/wallet/wallet.ts +4 -4
- package/src/react/hooks/__tests__/useBalanceOfCollectible.laos.test.tsx +367 -0
- package/src/react/hooks/__tests__/useCheckoutOptions.test.tsx +158 -0
- package/src/react/hooks/__tests__/useCheckoutOptionsSalesContract.test.tsx +42 -65
- package/src/react/hooks/__tests__/useCollectionBalanceDetails.test.tsx +17 -0
- package/src/react/hooks/__tests__/useCollectionDetailsPolling.test.tsx +11 -3
- package/src/react/hooks/__tests__/useConvertPriceToUSD.test.tsx +3 -3
- package/src/react/hooks/__tests__/useCurrencyBalance.test.tsx +7 -3
- package/src/react/hooks/__tests__/useFilters.test.tsx +2 -2
- package/src/react/hooks/__tests__/useGetTokenRanges.test.tsx +111 -0
- package/src/react/hooks/__tests__/useListTokenMetadata.test.tsx +83 -57
- package/src/react/hooks/__tests__/useTransferTokens.test.tsx +469 -0
- package/src/react/hooks/index.ts +3 -1
- package/src/react/hooks/useCheckoutOptions.tsx +96 -0
- package/src/react/hooks/useCheckoutOptionsSalesContract.tsx +98 -57
- package/src/react/hooks/useCollectionBalanceDetails.tsx +95 -68
- package/src/react/hooks/useCollectionDetailsPolling.tsx +3 -7
- package/src/react/hooks/useComparePrices.tsx +90 -82
- package/src/react/hooks/useConvertPriceToUSD.tsx +85 -71
- package/src/react/hooks/useCurrencyBalance.tsx +132 -46
- package/src/react/hooks/useERC721SaleMintedTokens.tsx +8 -5
- package/src/react/hooks/useFilters.tsx +154 -111
- package/src/react/hooks/useGetCountOfPrimarySaleItems.tsx +48 -0
- package/src/react/hooks/useGetTokenRanges.tsx +83 -22
- package/src/react/hooks/useList1155ShopCardData.tsx +2 -0
- package/src/react/hooks/useList721ShopCardData.tsx +12 -7
- package/src/react/hooks/useListCollections.tsx +25 -25
- package/src/react/hooks/useListMarketCardData.tsx +2 -1
- package/src/react/hooks/useListPrimarySaleItems.tsx +66 -0
- package/src/react/hooks/useListTokenMetadata.ts +71 -0
- package/src/react/hooks/useOpenConnectModal.tsx +9 -0
- package/src/react/hooks/useTokenSaleDetailsBatch.tsx +3 -7
- package/src/react/hooks/useTokenSupplies.ts +81 -0
- package/src/react/hooks/useTransferTokens.tsx +2 -2
- package/src/react/provider.tsx +73 -9
- 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/queries/filters.ts +138 -0
- package/src/react/queries/getTokenRanges.ts +62 -0
- package/src/react/queries/index.ts +3 -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 +1 -1
- package/src/react/queries/primarySaleItems.ts +85 -0
- package/src/react/queries/primarySaleItemsCount.ts +64 -0
- package/src/react/queries/tokenSupplies.ts +93 -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 +22 -4
- package/src/react/ui/components/_internals/action-button/components/ActionButtonBody.tsx +5 -4
- package/src/react/ui/components/_internals/action-button/components/NonOwnerActions.tsx +3 -0
- package/src/react/ui/components/_internals/action-button/components/OwnerActions.tsx +4 -4
- package/src/react/ui/components/_internals/action-button/hooks/useActionButtonLogic.ts +13 -8
- 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/types.ts +4 -3
- package/src/react/ui/components/marketplace-collectible-card/utils/supplyStatus.ts +4 -7
- package/src/react/ui/components/marketplace-collectible-card/variants/ShopCard.tsx +5 -1
- 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/modals/BuyModal/__tests__/BuyModalRouter.test.tsx +15 -0
- package/src/react/ui/modals/BuyModal/__tests__/ERC1155ShopModal.test.tsx +6 -0
- 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/ERC1155QuantityModal.tsx +15 -8
- package/src/react/ui/modals/BuyModal/components/ERC1155ShopModal.tsx +3 -0
- package/src/react/ui/modals/BuyModal/hooks/__tests__/useERC1155Checkout.test.tsx +30 -27
- package/src/react/ui/modals/BuyModal/hooks/useCheckoutOptions.ts +2 -2
- package/src/react/ui/modals/BuyModal/hooks/useERC1155Checkout.ts +11 -2
- package/src/react/ui/modals/BuyModal/hooks/useERC721SalePaymentParams.ts +1 -1
- package/src/react/ui/modals/BuyModal/hooks/usePaymentModalParams.ts +7 -0
- package/src/react/ui/modals/BuyModal/index.tsx +9 -1
- package/src/react/ui/modals/BuyModal/store.ts +26 -0
- package/src/react/ui/modals/CreateListingModal/Modal.tsx +28 -11
- package/src/react/ui/modals/CreateListingModal/store.ts +3 -3
- package/src/react/ui/modals/MakeOfferModal/Modal.tsx +30 -13
- package/src/react/ui/modals/MakeOfferModal/store.ts +3 -3
- package/src/react/ui/modals/SellModal/Modal.tsx +11 -8
- 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 +402 -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 +39 -47
- 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 +19 -10
- package/src/react/ui/modals/TransferModal/index.tsx +28 -31
- 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/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 +5 -2
- package/src/react/ui/modals/_internal/components/currencyOptionsSelect/index.tsx +23 -17
- package/src/react/ui/modals/_internal/components/expirationDateSelect/index.tsx +10 -10
- package/src/react/ui/modals/_internal/components/floorPriceText/__tests__/FloorPriceText.test.tsx +6 -6
- package/src/react/ui/modals/_internal/components/priceInput/__tests__/PriceInput.test.tsx +13 -5
- package/src/react/ui/modals/_internal/components/priceInput/index.tsx +41 -26
- package/src/react/ui/modals/_internal/components/quantityInput/__tests__/index.test.tsx +68 -59
- package/src/react/ui/modals/_internal/components/quantityInput/index.tsx +155 -20
- package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/__tests__/SelectWaasFeeOptions.test.tsx +339 -40
- 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 +29 -13
- 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/index.tsx +32 -20
- package/src/react/ui/modals/_internal/components/transactionStatusModal/store.ts +91 -62
- package/src/react/ui/modals/_internal/components/waasFeeOptionsSelect/WaasFeeOptionsSelect.tsx +43 -44
- package/src/react/ui/modals/_internal/types.ts +2 -2
- package/src/types/sdk-config.ts +6 -1
- package/src/utils/network.ts +15 -0
- package/test/test-utils.tsx +2 -0
- package/vitest.shims.d.ts +2 -0
- package/vitest.storybook.config.js +33 -0
- package/dist/CalendarIcon-DbQ7Vxcw.js.map +0 -1
- package/dist/_internal-BgWcRIak.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-BUVWziLP.d.ts +0 -60
- 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-dUb6wb4Y.d.ts +0 -22
- package/dist/marketplace.gen-BSDIX7NZ.js.map +0 -1
- package/dist/marketplaceConfig-C6X1SUik.js.map +0 -1
- package/dist/queries-CUU65uYZ.js.map +0 -1
- 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/hooks/__tests__/useGetTokenSuppliesMap.test.tsx +0 -104
- package/src/react/hooks/useGetTokenSuppliesMap.tsx +0 -73
- package/src/react/hooks/useListPrimarySaleItems.ts +0 -102
- 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/quantityInput/QuantityInputBase.tsx +0 -166
- package/src/react/ui/modals/_internal/stores/accountModal.ts +0 -3
- /package/dist/{abi-BKyRjVcZ.js → abi-BMvgNbKQ.js} +0 -0
- /package/dist/{index-C39K_8SG.d.ts → index-CD2bj_xW.d.ts} +0 -0
- /package/dist/{options-B4QN7Xou.js → options-BBBR8u_4.js} +0 -0
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/react-vite';
|
|
2
|
+
import Pill from './Pill';
|
|
3
|
+
|
|
4
|
+
const meta: Meta<typeof Pill> = {
|
|
5
|
+
title: 'Internals/Pill',
|
|
6
|
+
component: Pill,
|
|
7
|
+
parameters: {
|
|
8
|
+
layout: 'centered',
|
|
9
|
+
docs: {
|
|
10
|
+
description: {
|
|
11
|
+
component: `
|
|
12
|
+
The Pill component displays text in a rounded, styled container. Commonly used for tags, labels, and status indicators.
|
|
13
|
+
`,
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
argTypes: {
|
|
18
|
+
text: {
|
|
19
|
+
control: 'text',
|
|
20
|
+
description: 'The text content to display inside the pill',
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
decorators: [
|
|
24
|
+
(Story) => (
|
|
25
|
+
<div style={{ padding: '1rem' }}>
|
|
26
|
+
<Story />
|
|
27
|
+
</div>
|
|
28
|
+
),
|
|
29
|
+
],
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export default meta;
|
|
33
|
+
type Story = StoryObj<typeof Pill>;
|
|
34
|
+
|
|
35
|
+
export const Default: Story = {
|
|
36
|
+
args: {
|
|
37
|
+
text: 'Default Pill',
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export const Short: Story = {
|
|
42
|
+
args: {
|
|
43
|
+
text: 'Tag',
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
export const Long: Story = {
|
|
48
|
+
args: {
|
|
49
|
+
text: 'This is a longer pill text',
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
export const WithNumbers: Story = {
|
|
54
|
+
args: {
|
|
55
|
+
text: '123',
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
export const Status: Story = {
|
|
60
|
+
args: {
|
|
61
|
+
text: 'Active',
|
|
62
|
+
},
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
export const WithEmoji: Story = {
|
|
66
|
+
args: {
|
|
67
|
+
text: '🎮 Gaming',
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
// Showcase multiple pills
|
|
72
|
+
export const PillShowcase: Story = {
|
|
73
|
+
render: () => (
|
|
74
|
+
<div className="flex flex-wrap gap-2">
|
|
75
|
+
<Pill text="Short" />
|
|
76
|
+
<Pill text="Medium Length" />
|
|
77
|
+
<Pill text="Active" />
|
|
78
|
+
<Pill text="123" />
|
|
79
|
+
<Pill text="🎮 Gaming" />
|
|
80
|
+
<Pill text="Web3" />
|
|
81
|
+
</div>
|
|
82
|
+
),
|
|
83
|
+
};
|
|
@@ -19,6 +19,11 @@ const formatPrice = (amount: string, currency: Currency): React.ReactNode => {
|
|
|
19
19
|
amount,
|
|
20
20
|
currency.decimals,
|
|
21
21
|
);
|
|
22
|
+
const isFree = amount === '0';
|
|
23
|
+
|
|
24
|
+
if (isFree) {
|
|
25
|
+
return <Text>Free</Text>;
|
|
26
|
+
}
|
|
22
27
|
|
|
23
28
|
if (isUnderflow) {
|
|
24
29
|
return (
|
|
@@ -58,6 +63,7 @@ type FooterProps = {
|
|
|
58
63
|
balance?: string;
|
|
59
64
|
quantityInitial: string | undefined;
|
|
60
65
|
quantityRemaining: string | undefined;
|
|
66
|
+
unlimitedSupply?: boolean;
|
|
61
67
|
marketplaceType: MarketplaceType;
|
|
62
68
|
salePriceAmount?: string;
|
|
63
69
|
salePriceCurrency?: Currency;
|
|
@@ -74,6 +80,7 @@ export const Footer = ({
|
|
|
74
80
|
balance,
|
|
75
81
|
quantityInitial,
|
|
76
82
|
quantityRemaining,
|
|
83
|
+
unlimitedSupply,
|
|
77
84
|
marketplaceType,
|
|
78
85
|
salePriceAmount,
|
|
79
86
|
salePriceCurrency,
|
|
@@ -166,9 +173,9 @@ export const Footer = ({
|
|
|
166
173
|
|
|
167
174
|
{isShop && (
|
|
168
175
|
<SaleDetailsPill
|
|
169
|
-
quantityInitial={quantityInitial}
|
|
170
176
|
quantityRemaining={quantityRemaining}
|
|
171
177
|
collectionType={type as ContractType}
|
|
178
|
+
unlimitedSupply={unlimitedSupply}
|
|
172
179
|
/>
|
|
173
180
|
)}
|
|
174
181
|
|
|
@@ -209,18 +216,18 @@ const TokenTypeBalancePill = ({
|
|
|
209
216
|
};
|
|
210
217
|
|
|
211
218
|
const SaleDetailsPill = ({
|
|
212
|
-
quantityInitial,
|
|
213
219
|
quantityRemaining,
|
|
214
220
|
collectionType,
|
|
221
|
+
unlimitedSupply,
|
|
215
222
|
}: {
|
|
216
|
-
quantityInitial: string | undefined;
|
|
217
223
|
quantityRemaining: string | undefined;
|
|
218
224
|
collectionType: ContractType;
|
|
225
|
+
unlimitedSupply?: boolean;
|
|
219
226
|
}) => {
|
|
220
227
|
const supplyText = getSupplyStatusText({
|
|
221
|
-
quantityInitial,
|
|
222
228
|
quantityRemaining,
|
|
223
229
|
collectionType,
|
|
230
|
+
unlimitedSupply,
|
|
224
231
|
});
|
|
225
232
|
|
|
226
233
|
return (
|
package/src/react/ui/components/marketplace-collectible-card/components/ActionButtonWrapper.tsx
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import type {
|
|
3
|
+
import type { Address } from 'viem';
|
|
4
4
|
import type {
|
|
5
5
|
CollectibleCardAction,
|
|
6
6
|
MarketplaceType,
|
|
@@ -11,7 +11,7 @@ import { ActionButton } from '../../_internals/action-button/ActionButton';
|
|
|
11
11
|
interface ActionButtonWrapperProps {
|
|
12
12
|
show: boolean;
|
|
13
13
|
chainId: number;
|
|
14
|
-
collectionAddress:
|
|
14
|
+
collectionAddress: Address;
|
|
15
15
|
tokenId: string;
|
|
16
16
|
orderbookKind?: OrderbookKind;
|
|
17
17
|
action: CollectibleCardAction;
|
|
@@ -22,14 +22,15 @@ interface ActionButtonWrapperProps {
|
|
|
22
22
|
action: CollectibleCardAction.BUY | CollectibleCardAction.OFFER,
|
|
23
23
|
) => void;
|
|
24
24
|
marketplaceType: MarketplaceType;
|
|
25
|
-
salesContractAddress?:
|
|
25
|
+
salesContractAddress?: Address;
|
|
26
26
|
prioritizeOwnerActions?: boolean;
|
|
27
27
|
salePrice?: {
|
|
28
28
|
amount: string;
|
|
29
|
-
currencyAddress:
|
|
29
|
+
currencyAddress: Address;
|
|
30
30
|
};
|
|
31
31
|
quantityDecimals?: number;
|
|
32
32
|
quantityRemaining?: number;
|
|
33
|
+
unlimitedSupply?: boolean;
|
|
33
34
|
}
|
|
34
35
|
|
|
35
36
|
export function ActionButtonWrapper({
|
|
@@ -49,6 +50,7 @@ export function ActionButtonWrapper({
|
|
|
49
50
|
salePrice,
|
|
50
51
|
quantityDecimals,
|
|
51
52
|
quantityRemaining,
|
|
53
|
+
unlimitedSupply,
|
|
52
54
|
}: ActionButtonWrapperProps) {
|
|
53
55
|
if (!show) return null;
|
|
54
56
|
|
|
@@ -70,6 +72,7 @@ export function ActionButtonWrapper({
|
|
|
70
72
|
salePrice={salePrice}
|
|
71
73
|
quantityDecimals={quantityDecimals}
|
|
72
74
|
quantityRemaining={quantityRemaining}
|
|
75
|
+
unlimitedSupply={unlimitedSupply}
|
|
73
76
|
/>
|
|
74
77
|
</div>
|
|
75
78
|
);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Address
|
|
1
|
+
import type { Address } from 'viem';
|
|
2
2
|
import type { CollectibleCardAction, MarketplaceType } from '../../../../types';
|
|
3
3
|
import type {
|
|
4
4
|
CollectibleOrder,
|
|
@@ -12,7 +12,7 @@ import type {
|
|
|
12
12
|
type MarketplaceCardBaseProps = {
|
|
13
13
|
collectibleId: string;
|
|
14
14
|
chainId: number;
|
|
15
|
-
collectionAddress:
|
|
15
|
+
collectionAddress: Address;
|
|
16
16
|
collectionType?: ContractType;
|
|
17
17
|
assetSrcPrefixUrl?: string;
|
|
18
18
|
cardLoading?: boolean;
|
|
@@ -21,7 +21,7 @@ type MarketplaceCardBaseProps = {
|
|
|
21
21
|
|
|
22
22
|
// Properties specific to Shop card
|
|
23
23
|
type ShopCardSpecificProps = {
|
|
24
|
-
salesContractAddress:
|
|
24
|
+
salesContractAddress: Address;
|
|
25
25
|
tokenMetadata: TokenMetadata;
|
|
26
26
|
salePrice:
|
|
27
27
|
| {
|
|
@@ -34,6 +34,7 @@ type ShopCardSpecificProps = {
|
|
|
34
34
|
quantityDecimals: number | undefined;
|
|
35
35
|
quantityInitial: string | undefined;
|
|
36
36
|
quantityRemaining: string | undefined;
|
|
37
|
+
unlimitedSupply?: boolean; // it's useful for 1155 tokens
|
|
37
38
|
};
|
|
38
39
|
|
|
39
40
|
// Properties specific to marketplace and inventory cards
|
|
@@ -1,18 +1,15 @@
|
|
|
1
1
|
import { ContractType } from '../../../../_internal';
|
|
2
2
|
|
|
3
3
|
export const getSupplyStatusText = ({
|
|
4
|
-
quantityInitial,
|
|
5
4
|
quantityRemaining,
|
|
6
5
|
collectionType,
|
|
6
|
+
unlimitedSupply,
|
|
7
7
|
}: {
|
|
8
|
-
quantityInitial: string | undefined;
|
|
9
8
|
quantityRemaining: string | undefined;
|
|
10
9
|
collectionType: ContractType;
|
|
10
|
+
unlimitedSupply?: boolean;
|
|
11
11
|
}): string => {
|
|
12
|
-
|
|
13
|
-
quantityInitial === Number.POSITIVE_INFINITY.toString();
|
|
14
|
-
|
|
15
|
-
if (hasUnlimitedSupplyCap) {
|
|
12
|
+
if (unlimitedSupply) {
|
|
16
13
|
return 'Unlimited Supply';
|
|
17
14
|
}
|
|
18
15
|
|
|
@@ -25,7 +22,7 @@ export const getSupplyStatusText = ({
|
|
|
25
22
|
|
|
26
23
|
if (
|
|
27
24
|
collectionType === ContractType.ERC1155 &&
|
|
28
|
-
!
|
|
25
|
+
!unlimitedSupply &&
|
|
29
26
|
quantityRemaining === '0'
|
|
30
27
|
) {
|
|
31
28
|
return 'Out of stock';
|
|
@@ -22,6 +22,7 @@ export function ShopCard({
|
|
|
22
22
|
quantityDecimals,
|
|
23
23
|
quantityInitial,
|
|
24
24
|
quantityRemaining,
|
|
25
|
+
unlimitedSupply,
|
|
25
26
|
}: ShopCollectibleCardProps) {
|
|
26
27
|
const { data: saleCurrency, isLoading: saleCurrencyLoading } = useCurrency({
|
|
27
28
|
chainId,
|
|
@@ -47,7 +48,8 @@ export function ShopCard({
|
|
|
47
48
|
const showActionButton =
|
|
48
49
|
salesContractAddress &&
|
|
49
50
|
collectionType === ContractType.ERC1155 &&
|
|
50
|
-
|
|
51
|
+
(unlimitedSupply ||
|
|
52
|
+
(quantityRemaining !== undefined && Number(quantityRemaining) > 0));
|
|
51
53
|
|
|
52
54
|
const action = CollectibleCardAction.BUY;
|
|
53
55
|
|
|
@@ -75,6 +77,7 @@ export function ShopCard({
|
|
|
75
77
|
decimals={tokenMetadata.decimals}
|
|
76
78
|
quantityInitial={quantityInitial}
|
|
77
79
|
quantityRemaining={quantityRemaining}
|
|
80
|
+
unlimitedSupply={unlimitedSupply}
|
|
78
81
|
marketplaceType={marketplaceType}
|
|
79
82
|
salePriceAmount={salePrice?.amount}
|
|
80
83
|
salePriceCurrency={saleCurrency}
|
|
@@ -96,6 +99,7 @@ export function ShopCard({
|
|
|
96
99
|
? Number(quantityRemaining)
|
|
97
100
|
: undefined
|
|
98
101
|
}
|
|
102
|
+
unlimitedSupply={unlimitedSupply}
|
|
99
103
|
/>
|
|
100
104
|
</BaseCard>
|
|
101
105
|
);
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/react-vite';
|
|
2
|
+
import {
|
|
3
|
+
AlienSwapLogo,
|
|
4
|
+
AquaXyzLogo,
|
|
5
|
+
AuraLogo,
|
|
6
|
+
BlurLogo,
|
|
7
|
+
CoinbaseLogo,
|
|
8
|
+
ElementLogo,
|
|
9
|
+
FoundationLogo,
|
|
10
|
+
LooksRareLogo,
|
|
11
|
+
MagicEdenLogo,
|
|
12
|
+
ManifoldLogo,
|
|
13
|
+
MintifyLogo,
|
|
14
|
+
NftxLogo,
|
|
15
|
+
OkxLogo,
|
|
16
|
+
OpenSeaLogo,
|
|
17
|
+
RaribleLogo,
|
|
18
|
+
SequenceLogo,
|
|
19
|
+
SudoSwapLogo,
|
|
20
|
+
SuperRareLogo,
|
|
21
|
+
X2y2Logo,
|
|
22
|
+
ZoraLogo,
|
|
23
|
+
} from './marketplace-logos';
|
|
24
|
+
|
|
25
|
+
const meta: Meta<typeof OpenSeaLogo> = {
|
|
26
|
+
title: 'Components/Marketplace Logos',
|
|
27
|
+
component: OpenSeaLogo,
|
|
28
|
+
parameters: {
|
|
29
|
+
layout: 'centered',
|
|
30
|
+
docs: {
|
|
31
|
+
description: {
|
|
32
|
+
component: `
|
|
33
|
+
Marketplace logo components that lazy-load marketplace brand images. Each logo is optimized for performance with lazy loading and proper fallbacks.
|
|
34
|
+
`,
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
argTypes: {
|
|
39
|
+
width: {
|
|
40
|
+
control: 'number',
|
|
41
|
+
description: 'Logo width',
|
|
42
|
+
},
|
|
43
|
+
height: {
|
|
44
|
+
control: 'number',
|
|
45
|
+
description: 'Logo height',
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
decorators: [
|
|
49
|
+
(Story) => (
|
|
50
|
+
<div style={{ padding: '1rem' }}>
|
|
51
|
+
<Story />
|
|
52
|
+
</div>
|
|
53
|
+
),
|
|
54
|
+
],
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
export default meta;
|
|
58
|
+
type Story = StoryObj<typeof OpenSeaLogo>;
|
|
59
|
+
|
|
60
|
+
export const OpenSea: Story = {
|
|
61
|
+
args: {
|
|
62
|
+
width: 64,
|
|
63
|
+
height: 64,
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
export const Sequence: Story = {
|
|
68
|
+
render: (args) => <SequenceLogo {...args} />,
|
|
69
|
+
args: {
|
|
70
|
+
width: 64,
|
|
71
|
+
height: 64,
|
|
72
|
+
},
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
export const Blur: Story = {
|
|
76
|
+
render: (args) => <BlurLogo {...args} />,
|
|
77
|
+
args: {
|
|
78
|
+
width: 64,
|
|
79
|
+
height: 64,
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
export const MagicEden: Story = {
|
|
84
|
+
render: (args) => <MagicEdenLogo {...args} />,
|
|
85
|
+
args: {
|
|
86
|
+
width: 64,
|
|
87
|
+
height: 64,
|
|
88
|
+
},
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
export const LooksRare: Story = {
|
|
92
|
+
render: (args) => <LooksRareLogo {...args} />,
|
|
93
|
+
args: {
|
|
94
|
+
width: 64,
|
|
95
|
+
height: 64,
|
|
96
|
+
},
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
export const SmallSize: Story = {
|
|
100
|
+
args: {
|
|
101
|
+
width: 32,
|
|
102
|
+
height: 32,
|
|
103
|
+
},
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
export const LargeSize: Story = {
|
|
107
|
+
args: {
|
|
108
|
+
width: 128,
|
|
109
|
+
height: 128,
|
|
110
|
+
},
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
// Showcase all marketplace logos
|
|
114
|
+
export const AllMarketplaceLogos: Story = {
|
|
115
|
+
render: () => (
|
|
116
|
+
<div className="grid grid-cols-5 gap-4 p-4">
|
|
117
|
+
<div className="flex flex-col items-center gap-2">
|
|
118
|
+
<AlienSwapLogo width={48} height={48} />
|
|
119
|
+
<span className="text-xs">AlienSwap</span>
|
|
120
|
+
</div>
|
|
121
|
+
<div className="flex flex-col items-center gap-2">
|
|
122
|
+
<AquaXyzLogo width={48} height={48} />
|
|
123
|
+
<span className="text-xs">AquaXyz</span>
|
|
124
|
+
</div>
|
|
125
|
+
<div className="flex flex-col items-center gap-2">
|
|
126
|
+
<AuraLogo width={48} height={48} />
|
|
127
|
+
<span className="text-xs">Aura</span>
|
|
128
|
+
</div>
|
|
129
|
+
<div className="flex flex-col items-center gap-2">
|
|
130
|
+
<BlurLogo width={48} height={48} />
|
|
131
|
+
<span className="text-xs">Blur</span>
|
|
132
|
+
</div>
|
|
133
|
+
<div className="flex flex-col items-center gap-2">
|
|
134
|
+
<CoinbaseLogo width={48} height={48} />
|
|
135
|
+
<span className="text-xs">Coinbase</span>
|
|
136
|
+
</div>
|
|
137
|
+
<div className="flex flex-col items-center gap-2">
|
|
138
|
+
<ElementLogo width={48} height={48} />
|
|
139
|
+
<span className="text-xs">Element</span>
|
|
140
|
+
</div>
|
|
141
|
+
<div className="flex flex-col items-center gap-2">
|
|
142
|
+
<FoundationLogo width={48} height={48} />
|
|
143
|
+
<span className="text-xs">Foundation</span>
|
|
144
|
+
</div>
|
|
145
|
+
<div className="flex flex-col items-center gap-2">
|
|
146
|
+
<LooksRareLogo width={48} height={48} />
|
|
147
|
+
<span className="text-xs">LooksRare</span>
|
|
148
|
+
</div>
|
|
149
|
+
<div className="flex flex-col items-center gap-2">
|
|
150
|
+
<MagicEdenLogo width={48} height={48} />
|
|
151
|
+
<span className="text-xs">MagicEden</span>
|
|
152
|
+
</div>
|
|
153
|
+
<div className="flex flex-col items-center gap-2">
|
|
154
|
+
<ManifoldLogo width={48} height={48} />
|
|
155
|
+
<span className="text-xs">Manifold</span>
|
|
156
|
+
</div>
|
|
157
|
+
<div className="flex flex-col items-center gap-2">
|
|
158
|
+
<MintifyLogo width={48} height={48} />
|
|
159
|
+
<span className="text-xs">Mintify</span>
|
|
160
|
+
</div>
|
|
161
|
+
<div className="flex flex-col items-center gap-2">
|
|
162
|
+
<NftxLogo width={48} height={48} />
|
|
163
|
+
<span className="text-xs">NFTX</span>
|
|
164
|
+
</div>
|
|
165
|
+
<div className="flex flex-col items-center gap-2">
|
|
166
|
+
<OkxLogo width={48} height={48} />
|
|
167
|
+
<span className="text-xs">OKX</span>
|
|
168
|
+
</div>
|
|
169
|
+
<div className="flex flex-col items-center gap-2">
|
|
170
|
+
<OpenSeaLogo width={48} height={48} />
|
|
171
|
+
<span className="text-xs">OpenSea</span>
|
|
172
|
+
</div>
|
|
173
|
+
<div className="flex flex-col items-center gap-2">
|
|
174
|
+
<RaribleLogo width={48} height={48} />
|
|
175
|
+
<span className="text-xs">Rarible</span>
|
|
176
|
+
</div>
|
|
177
|
+
<div className="flex flex-col items-center gap-2">
|
|
178
|
+
<SequenceLogo width={48} height={48} />
|
|
179
|
+
<span className="text-xs">Sequence</span>
|
|
180
|
+
</div>
|
|
181
|
+
<div className="flex flex-col items-center gap-2">
|
|
182
|
+
<SudoSwapLogo width={48} height={48} />
|
|
183
|
+
<span className="text-xs">SudoSwap</span>
|
|
184
|
+
</div>
|
|
185
|
+
<div className="flex flex-col items-center gap-2">
|
|
186
|
+
<SuperRareLogo width={48} height={48} />
|
|
187
|
+
<span className="text-xs">SuperRare</span>
|
|
188
|
+
</div>
|
|
189
|
+
<div className="flex flex-col items-center gap-2">
|
|
190
|
+
<X2y2Logo width={48} height={48} />
|
|
191
|
+
<span className="text-xs">X2Y2</span>
|
|
192
|
+
</div>
|
|
193
|
+
<div className="flex flex-col items-center gap-2">
|
|
194
|
+
<ZoraLogo width={48} height={48} />
|
|
195
|
+
<span className="text-xs">Zora</span>
|
|
196
|
+
</div>
|
|
197
|
+
</div>
|
|
198
|
+
),
|
|
199
|
+
};
|