@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 @@
|
|
|
1
|
+
{"version":3,"file":"transaction-CnctdNzS.js","names":["currentChainId: number","targetChainId: number","stepId: string","cause?: Error","hash: string","contractType: string | undefined","configName: string"],"sources":["../src/utils/_internal/error/transaction.ts"],"sourcesContent":["import type { Address } from 'viem';\nimport { BaseError } from './base';\n\nexport type TransactionErrorType<name extends string = 'TransactionError'> =\n\tBaseError & { name: name };\n\nexport class TransactionError extends BaseError {\n\toverride name = 'TransactionError';\n}\n\nexport class ChainSwitchError extends TransactionError {\n\toverride name = 'ChainSwitchError';\n\tconstructor(currentChainId: number, targetChainId: number) {\n\t\tsuper(\n\t\t\t`Failed to switch network from ${currentChainId} to ${targetChainId}`,\n\t\t\t{\n\t\t\t\tdetails:\n\t\t\t\t\t'The user may have rejected the network switch or there might be a network connectivity issue.',\n\t\t\t},\n\t\t);\n\t}\n}\n\nexport class ChainSwitchUserRejectedError extends TransactionError {\n\toverride name = 'ChainSwitchUserRejectedError';\n\tconstructor() {\n\t\tsuper('User rejected chain switch', {\n\t\t\tdetails: 'The user rejected the chain switch request.',\n\t\t});\n\t}\n}\n\nexport class TransactionExecutionError extends TransactionError {\n\toverride name = 'TransactionExecutionError';\n\tconstructor(stepId: string, cause?: Error) {\n\t\tsuper(`Failed to execute transaction step: ${stepId}`, {\n\t\t\tdetails:\n\t\t\t\tcause?.message ||\n\t\t\t\t'The transaction may have been rejected or failed during execution.',\n\t\t\tcause,\n\t\t});\n\t}\n}\n\nexport class TransactionSignatureError extends TransactionError {\n\toverride name = 'TransactionSignatureError';\n\tconstructor(stepId: string, cause?: Error) {\n\t\tsuper(`Failed to sign transaction step: ${stepId}`, {\n\t\t\tdetails:\n\t\t\t\tcause?.message ||\n\t\t\t\t'The signature request may have been rejected by the user.',\n\t\t\tcause,\n\t\t});\n\t}\n}\n\nexport class NoWalletConnectedError extends TransactionError {\n\toverride name = 'NoWalletConnectedError';\n\tconstructor() {\n\t\tsuper('No wallet connected', {\n\t\t\tdetails: 'Please connect your wallet before attempting this transaction.',\n\t\t});\n\t}\n}\n\nexport class NoMarketplaceConfigError extends TransactionError {\n\toverride name = 'NoMarketplaceConfigError';\n\tconstructor() {\n\t\tsuper('Marketplace configuration not found', {\n\t\t\tdetails:\n\t\t\t\t'The marketplace configuration is missing or invalid. This could be due to an initialization error.',\n\t\t});\n\t}\n}\n\nexport class UserRejectedRequestError extends TransactionError {\n\toverride name = 'UserRejectedRequestError';\n\tconstructor() {\n\t\tsuper('User rejected the request', {\n\t\t\tdetails: 'The user cancelled or rejected the transaction request.',\n\t\t});\n\t}\n}\n\nexport class InsufficientFundsError extends TransactionError {\n\toverride name = 'InsufficientFundsError';\n\tconstructor(cause?: Error) {\n\t\tsuper('Insufficient funds for transaction', {\n\t\t\tdetails:\n\t\t\t\t'The wallet does not have enough funds to complete this transaction.',\n\t\t\tcause,\n\t\t});\n\t}\n}\n\nexport class SignatureExecutionError extends TransactionError {\n\toverride name = 'SignatureExecutionError';\n\tconstructor(signature: string, cause?: Error) {\n\t\tsuper(`Failed to execute signature: ${signature}`, {\n\t\t\tdetails: cause?.message || 'The execution of the signature failed.',\n\t\t\tcause,\n\t\t});\n\t}\n}\n\nexport class StepExecutionError extends TransactionError {\n\toverride name = 'StepExecutionError';\n\tconstructor(stepId: string, cause?: Error) {\n\t\tsuper(`Failed to execute step ${stepId})`, {\n\t\t\tdetails: cause?.message || 'The step execution failed unexpectedly.',\n\t\t\tcause,\n\t\t});\n\t}\n}\n\nexport class StepGenerationError extends TransactionError {\n\toverride name = 'StepGenerationError';\n\tconstructor(transactionType: string, cause?: Error) {\n\t\tsuper(`Failed to generate steps for ${transactionType}`, {\n\t\t\tdetails:\n\t\t\t\tcause?.message || 'Could not generate the required transaction steps.',\n\t\t\tcause,\n\t\t});\n\t}\n}\n\nexport class PaymentModalError extends TransactionError {\n\toverride name = 'PaymentModalError';\n\tconstructor(cause?: Error) {\n\t\tsuper('Payment modal operation failed', {\n\t\t\tdetails:\n\t\t\t\tcause?.message || 'The payment modal operation was unsuccessful.',\n\t\t\tcause,\n\t\t});\n\t}\n}\n\nexport class InvalidStepError extends TransactionError {\n\toverride name = 'InvalidStepError';\n\tconstructor(stepId: string, reason: string) {\n\t\tsuper(`Invalid step configuration for ${stepId}`, {\n\t\t\tdetails: reason,\n\t\t});\n\t}\n}\n\nexport class TransactionConfirmationError extends TransactionError {\n\toverride name = 'TransactionConfirmationError';\n\tconstructor(hash: string, cause?: Error) {\n\t\tsuper(`Failed to confirm transaction ${hash}`, {\n\t\t\tdetails:\n\t\t\t\tcause?.message ||\n\t\t\t\t'The transaction could not be confirmed on the network.',\n\t\t\tcause,\n\t\t});\n\t}\n}\n\nexport class OrderNotFoundError extends TransactionError {\n\toverride name = 'OrderNotFoundError';\n\tconstructor(orderId: string) {\n\t\tsuper(`Order ${orderId} not found`, {\n\t\t\tdetails: 'The requested order could not be found in the marketplace.',\n\t\t});\n\t}\n}\n\nexport class MissingStepDataError extends TransactionError {\n\toverride name = 'MissingStepDataError';\n\tconstructor() {\n\t\tsuper('Step is missing required data', {\n\t\t\tdetails:\n\t\t\t\t'The transaction step is missing required \"to\" or \"signature\" data.',\n\t\t});\n\t}\n}\n\nexport class MissingSignatureDataError extends TransactionError {\n\toverride name = 'MissingSignatureDataError';\n\tconstructor() {\n\t\tsuper('Step is missing signature data', {\n\t\t\tdetails:\n\t\t\t\t'The signature step is missing required signature data configuration.',\n\t\t});\n\t}\n}\n\nexport class InvalidSignatureStepError extends TransactionError {\n\toverride name = 'InvalidSignatureStepError';\n\tconstructor(stepId: string) {\n\t\tsuper(`Invalid signature step type: ${stepId}`, {\n\t\t\tdetails: 'The signature step type is not supported.',\n\t\t});\n\t}\n}\n\nexport class MissingPostStepError extends TransactionError {\n\toverride name = 'MissingPostStepError';\n\tconstructor() {\n\t\tsuper('Missing post step configuration', {\n\t\t\tdetails:\n\t\t\t\t'The signature step is missing required post-step configuration.',\n\t\t});\n\t}\n}\n\nexport class UnexpectedStepsError extends TransactionError {\n\toverride name = 'UnexpectedStepsError';\n\tconstructor() {\n\t\tsuper('Unexpected steps found', {\n\t\t\tdetails: 'The transaction contains more steps than expected.',\n\t\t});\n\t}\n}\n\nexport class NoExecutionStepError extends TransactionError {\n\toverride name = 'NoExecutionStepError';\n\tconstructor() {\n\t\tsuper('No execution step found', {\n\t\t\tdetails: 'The transaction is missing the required execution step.',\n\t\t});\n\t}\n}\n\nexport class NoStepsFoundError extends TransactionError {\n\toverride name = 'NoStepsFoundError';\n\tconstructor() {\n\t\tsuper('No steps found', {\n\t\t\tdetails: 'The transaction contains no steps to execute.',\n\t\t});\n\t}\n}\n\nexport class UnknownTransactionTypeError extends TransactionError {\n\toverride name = 'UnknownTransactionTypeError';\n\tconstructor(type: string) {\n\t\tsuper(`Unknown transaction type: ${type}`, {\n\t\t\tdetails: 'The specified transaction type is not supported.',\n\t\t});\n\t}\n}\n\nexport class InvalidContractTypeError extends TransactionError {\n\toverride name = 'InvalidContractTypeError';\n\tconstructor(contractType: string | undefined) {\n\t\tsuper(`Invalid contract type: ${contractType}`, {\n\t\t\tdetails: 'The contract type must be either ERC721 or ERC1155.',\n\t\t});\n\t}\n}\n\nexport class CollectionNotFoundError extends TransactionError {\n\toverride name = 'CollectionNotFoundError';\n\tconstructor(collectionAddress: string) {\n\t\tsuper(`Collection not found: ${collectionAddress}`, {\n\t\t\tdetails:\n\t\t\t\t'The specified collection address could not be found in the marketplace configuration.',\n\t\t});\n\t}\n}\n\nexport class InvalidCurrencyOptionsError extends TransactionError {\n\toverride name = 'InvalidCurrencyOptionsError';\n\tconstructor(currencyOptions: Address[]) {\n\t\tsuper(`Invalid currency options: ${currencyOptions}`, {\n\t\t\tdetails:\n\t\t\t\t'The currency options must be an array of valid currency contract addresses.',\n\t\t});\n\t}\n}\n\nexport class ProjectNotFoundError extends TransactionError {\n\toverride name = 'ProjectNotFoundError';\n\tconstructor(projectId: string, url: string) {\n\t\tsuper('Project not found', {\n\t\t\tdetails: `Project id: ${projectId} not found at ${url}`,\n\t\t});\n\t}\n}\n\nexport class MarketplaceConfigFetchError extends TransactionError {\n\toverride name = 'MarketplaceConfigFetchError';\n\tconstructor(message: string) {\n\t\tsuper('Failed to fetch marketplace config', {\n\t\t\tdetails: message,\n\t\t});\n\t}\n}\n\nexport class MissingConfigError extends TransactionError {\n\toverride name = 'MissingConfigError';\n\tconstructor(configName: string) {\n\t\tsuper(`Missing required config: ${configName}`, {\n\t\t\tdetails: 'A required configuration parameter is missing.',\n\t\t});\n\t}\n}\n\nexport class TransactionValidationError extends TransactionError {\n\toverride name = 'TransactionValidationError';\n\tconstructor(reason: string) {\n\t\tsuper('Transaction validation failed', {\n\t\t\tdetails: reason,\n\t\t});\n\t}\n}\n\nexport class ChainIdUnavailableError extends TransactionError {\n\toverride name = 'ChainIdUnavailableError';\n\tconstructor() {\n\t\tsuper('Chain ID is not available', {\n\t\t\tdetails: 'Could not determine the current chain ID from the wallet.',\n\t\t});\n\t}\n}\n\nexport class TransactionReceiptError extends TransactionError {\n\toverride name = 'TransactionReceiptError';\n\tconstructor(hash: string, cause?: Error) {\n\t\tsuper(`Failed to get transaction receipt for ${hash}`, {\n\t\t\tdetails:\n\t\t\t\tcause?.message ||\n\t\t\t\t'Could not retrieve the transaction receipt from the network.',\n\t\t\tcause,\n\t\t});\n\t}\n}\n\nexport class PaymentModalTransactionError extends TransactionError {\n\toverride name = 'PaymentModalTransactionError';\n\tconstructor(hash: string, cause?: Error) {\n\t\tsuper(`Payment modal transaction failed for ${hash}`, {\n\t\t\tdetails:\n\t\t\t\tcause?.message ||\n\t\t\t\t'The transaction initiated from the payment modal failed.',\n\t\t\tcause,\n\t\t});\n\t}\n}\n\nexport class CheckoutOptionsError extends TransactionError {\n\toverride name = 'CheckoutOptionsError';\n\tconstructor(cause?: Error) {\n\t\tsuper('Failed to get checkout options', {\n\t\t\tdetails:\n\t\t\t\tcause?.message ||\n\t\t\t\t'Could not retrieve the checkout options from the marketplace.',\n\t\t\tcause,\n\t\t});\n\t}\n}\n\nexport class OrdersFetchError extends TransactionError {\n\toverride name = 'OrdersFetchError';\n\tconstructor(orderId: string, cause?: Error) {\n\t\tsuper(`Failed to fetch order ${orderId}`, {\n\t\t\tdetails:\n\t\t\t\tcause?.message ||\n\t\t\t\t'Could not retrieve the order details from the marketplace.',\n\t\t\tcause,\n\t\t});\n\t}\n}\n\nexport class WalletInstanceNotFoundError extends TransactionError {\n\toverride name = 'WalletInstanceNotFoundError';\n\tconstructor() {\n\t\tsuper('Wallet instance not found', {\n\t\t\tdetails: 'The wallet instance is undefined',\n\t\t});\n\t}\n}\n\nexport class SalesContractError extends TransactionError {\n\toverride name = 'SalesContractError';\n\tconstructor(contractAddress: string, method?: string, cause?: Error) {\n\t\tsuper(`Sales contract operation failed: ${contractAddress}`, {\n\t\t\tdetails: `Failed to interact with sales contract${\n\t\t\t\tmethod ? ` on method: ${method}` : ''\n\t\t\t}. ${cause?.message || 'Contract may be paused or misconfigured.'}`,\n\t\t\tcause,\n\t\t});\n\t}\n}\n\nexport class QuantityValidationError extends TransactionError {\n\toverride name = 'QuantityValidationError';\n\tconstructor(provided: number, available: number, tokenId?: string) {\n\t\tsuper(`Invalid quantity: ${provided}`, {\n\t\t\tdetails: `Requested quantity (${provided}) exceeds available supply (${available})${\n\t\t\t\ttokenId ? ` for token ${tokenId}` : ''\n\t\t\t}.`,\n\t\t});\n\t}\n}\n\nexport class ShopDataValidationError extends TransactionError {\n\toverride name = 'ShopDataValidationError';\n\tconstructor(missingField: string) {\n\t\tsuper(`Invalid shop configuration: missing ${missingField}`, {\n\t\t\tdetails: `The shop is missing required field: ${missingField}. Check your marketplace configuration.`,\n\t\t});\n\t}\n}\n\nexport type TransactionErrorTypes =\n\t| ChainIdUnavailableError\n\t| TransactionReceiptError\n\t| PaymentModalTransactionError\n\t| CheckoutOptionsError\n\t| OrdersFetchError\n\t| TransactionConfirmationError\n\t| TransactionValidationError\n\t| MissingConfigError\n\t| MarketplaceConfigFetchError\n\t| ProjectNotFoundError\n\t| CollectionNotFoundError\n\t| InvalidCurrencyOptionsError\n\t| InvalidContractTypeError\n\t| UnknownTransactionTypeError\n\t| NoStepsFoundError\n\t| NoExecutionStepError\n\t| UnexpectedStepsError\n\t| MissingPostStepError\n\t| InvalidSignatureStepError\n\t| MissingSignatureDataError\n\t| MissingStepDataError\n\t| OrderNotFoundError\n\t| TransactionConfirmationError\n\t| InvalidStepError\n\t| PaymentModalError\n\t| StepGenerationError\n\t| StepExecutionError\n\t| UserRejectedRequestError\n\t| NoMarketplaceConfigError\n\t| InsufficientFundsError\n\t| ChainSwitchUserRejectedError\n\t| ChainSwitchError\n\t| TransactionSignatureError\n\t| TransactionExecutionError\n\t| NoWalletConnectedError\n\t| TransactionError\n\t| WalletInstanceNotFoundError\n\t| SalesContractError\n\t| QuantityValidationError\n\t| ShopDataValidationError;\n"],"mappings":";;;AAMA,IAAa,mBAAb,cAAsC,UAAU;CAC/C,AAAS,OAAO;AAChB;AAED,IAAa,mBAAb,cAAsC,iBAAiB;CACtD,AAAS,OAAO;CAChB,YAAYA,gBAAwBC,eAAuB;AAC1D,SACE,gCAAgC,eAAe,MAAM,cAAc,GACpE,EACC,SACC,gGACD,EACD;CACD;AACD;AAED,IAAa,+BAAb,cAAkD,iBAAiB;CAClE,AAAS,OAAO;CAChB,cAAc;AACb,QAAM,8BAA8B,EACnC,SAAS,8CACT,EAAC;CACF;AACD;AAED,IAAa,4BAAb,cAA+C,iBAAiB;CAC/D,AAAS,OAAO;CAChB,YAAYC,QAAgBC,OAAe;AAC1C,SAAO,sCAAsC,OAAO,GAAG;GACtD,SACC,OAAO,WACP;GACD;EACA,EAAC;CACF;AACD;AAED,IAAa,4BAAb,cAA+C,iBAAiB;CAC/D,AAAS,OAAO;CAChB,YAAYD,QAAgBC,OAAe;AAC1C,SAAO,mCAAmC,OAAO,GAAG;GACnD,SACC,OAAO,WACP;GACD;EACA,EAAC;CACF;AACD;AAED,IAAa,yBAAb,cAA4C,iBAAiB;CAC5D,AAAS,OAAO;CAChB,cAAc;AACb,QAAM,uBAAuB,EAC5B,SAAS,iEACT,EAAC;CACF;AACD;AAYD,IAAa,2BAAb,cAA8C,iBAAiB;CAC9D,AAAS,OAAO;CAChB,cAAc;AACb,QAAM,6BAA6B,EAClC,SAAS,0DACT,EAAC;CACF;AACD;AAgED,IAAa,+BAAb,cAAkD,iBAAiB;CAClE,AAAS,OAAO;CAChB,YAAYC,MAAcD,OAAe;AACxC,SAAO,gCAAgC,KAAK,GAAG;GAC9C,SACC,OAAO,WACP;GACD;EACA,EAAC;CACF;AACD;AAsFD,IAAa,2BAAb,cAA8C,iBAAiB;CAC9D,AAAS,OAAO;CAChB,YAAYE,cAAkC;AAC7C,SAAO,yBAAyB,aAAa,GAAG,EAC/C,SAAS,sDACT,EAAC;CACF;AACD;AAwCD,IAAa,qBAAb,cAAwC,iBAAiB;CACxD,AAAS,OAAO;CAChB,YAAYC,YAAoB;AAC/B,SAAO,2BAA2B,WAAW,GAAG,EAC/C,SAAS,iDACT,EAAC;CACF;AACD;AAoED,IAAa,8BAAb,cAAiD,iBAAiB;CACjE,AAAS,OAAO;CAChB,cAAc;AACb,QAAM,6BAA6B,EAClC,SAAS,mCACT,EAAC;CACF;AACD"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import { Activity, AdditionalFee, ApiConfig, Asset, CheckoutOptions, CheckoutOptionsItem, CheckoutOptionsMarketplaceOrder, Collectible, CollectibleCardAction, CollectibleOrder, CollectibleStatus, CollectiblesFilter, Collection, CollectionConfig, CollectionFilterSettings, CollectionLastSynced, CollectionStatus, ContractType, CreateReq, Currency, Domain, EcosystemWalletSettings, Env, FeeBreakdown, Filter, FilterCondition, GetOrdersInput, MarketCollection, MarketPage, MarketplaceConfig, MarketplaceKind, MarketplaceSocials, MarketplaceType, MarketplaceWallet, MarketplaceWalletEcosystem, MarketplaceWalletEmbedded, MarketplaceWalletOptions, MarketplaceWalletWaasSettings, MetadataFilterRule, Order, OrderData, OrderFilter, OrderSide, OrderStatus, OrderbookKind, Page, PostRequest, Price, Project, ProjectStatus, PropertyFilter, PropertyType, SdkConfig, ShopCollection, ShopPage, Signature, SortBy, SortOrder, SourceKind, Step, StepType, TokenMetadata, TransactionCrypto, WalletKind } from "../
|
|
2
|
-
|
|
3
|
-
export { Activity, AdditionalFee, ApiConfig, Asset, CheckoutOptions, CheckoutOptionsItem, CheckoutOptionsMarketplaceOrder, Collectible, CollectibleCardAction, CollectibleOrder, CollectibleStatus, CollectiblesFilter, Collection, CollectionConfig, CollectionFilterSettings, CollectionLastSynced, CollectionStatus, ContractType, CreateReq, Currency, Domain, EcosystemWalletSettings, Env, FeeBreakdown, Filter, FilterCondition, GetOrdersInput, MarketCollection, MarketPage, MarketplaceConfig, MarketplaceKind, MarketplaceSocials, MarketplaceType, MarketplaceWallet, MarketplaceWalletEcosystem, MarketplaceWalletEmbedded, MarketplaceWalletOptions, MarketplaceWalletWaasSettings, MetadataFilterRule, Order, OrderData, OrderFilter, OrderSide, OrderStatus, OrderbookKind, Page, PostRequest, Price, Project, ProjectStatus, PropertyFilter, PropertyType, SdkConfig, ShopCollection, ShopPage, Signature, SortBy, SortOrder, SourceKind, Step, StepType, TokenMetadata, TransactionCrypto, WalletKind, fetchMarketplaceConfig, marketplaceConfigOptions };
|
|
1
|
+
import { Activity, AdditionalFee, ApiConfig, Asset, CheckoutOptions, CheckoutOptionsItem, CheckoutOptionsMarketplaceOrder, Collectible, CollectibleCardAction, CollectibleOrder, CollectibleStatus, CollectiblesFilter, Collection, CollectionConfig, CollectionFilterSettings, CollectionLastSynced, CollectionStatus, ContractType, CreateReq, Currency, Domain, EcosystemWalletSettings, Env, FeeBreakdown, Filter, FilterCondition, GetOrdersInput, MarketCollection, MarketPage, MarketplaceConfig, MarketplaceKind, MarketplaceSdkContext, MarketplaceSocials, MarketplaceType, MarketplaceWallet, MarketplaceWalletEcosystem, MarketplaceWalletEmbedded, MarketplaceWalletOptions, MarketplaceWalletWaasSettings, MetadataFilterRule, Order, OrderData, OrderFilter, OrderSide, OrderStatus, OrderbookKind, Page, PostRequest, Price, Project, ProjectStatus, PropertyFilter, PropertyType, SdkConfig, ShopCollection, ShopPage, Signature, SortBy, SortOrder, SourceKind, Step, StepType, TokenMetadata, TransactionCrypto, WalletKind, fetchMarketplaceConfig, marketplaceConfigOptions } from "../create-config-DKJ-F0jc.js";
|
|
2
|
+
export { Activity, AdditionalFee, ApiConfig, Asset, CheckoutOptions, CheckoutOptionsItem, CheckoutOptionsMarketplaceOrder, Collectible, CollectibleCardAction, CollectibleOrder, CollectibleStatus, CollectiblesFilter, Collection, CollectionConfig, CollectionFilterSettings, CollectionLastSynced, CollectionStatus, ContractType, CreateReq, Currency, Domain, EcosystemWalletSettings, Env, FeeBreakdown, Filter, FilterCondition, GetOrdersInput, MarketCollection, MarketPage, MarketplaceConfig, MarketplaceKind, MarketplaceSdkContext, MarketplaceSocials, MarketplaceType, MarketplaceWallet, MarketplaceWalletEcosystem, MarketplaceWalletEmbedded, MarketplaceWalletOptions, MarketplaceWalletWaasSettings, MetadataFilterRule, Order, OrderData, OrderFilter, OrderSide, OrderStatus, OrderbookKind, Page, PostRequest, Price, Project, ProjectStatus, PropertyFilter, PropertyType, SdkConfig, ShopCollection, ShopPage, Signature, SortBy, SortOrder, SourceKind, Step, StepType, TokenMetadata, TransactionCrypto, WalletKind, fetchMarketplaceConfig, marketplaceConfigOptions };
|
package/dist/types/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FilterCondition } from "../builder.gen-B9wR2nvF.js";
|
|
2
|
-
import { CollectibleStatus, CollectionStatus, ContractType, MarketplaceKind, OrderSide, OrderStatus, OrderbookKind, ProjectStatus, PropertyType, SortOrder, SourceKind, StepType, TransactionCrypto, WalletKind } from "../marketplace.gen-
|
|
3
|
-
import { CollectibleCardAction } from "../types-
|
|
2
|
+
import { CollectibleStatus, CollectionStatus, ContractType, MarketplaceKind, OrderSide, OrderStatus, OrderbookKind, ProjectStatus, PropertyType, SortOrder, SourceKind, StepType, TransactionCrypto, WalletKind } from "../marketplace.gen-HpnpL5xU.js";
|
|
3
|
+
import { CollectibleCardAction } from "../types-Yw2ywj6j.js";
|
|
4
4
|
|
|
5
5
|
export { CollectibleCardAction, CollectibleStatus, CollectionStatus, ContractType, FilterCondition, MarketplaceKind, OrderSide, OrderStatus, OrderbookKind, ProjectStatus, PropertyType, SortOrder, SourceKind, StepType, TransactionCrypto, WalletKind };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types-
|
|
1
|
+
{"version":3,"file":"types-Yw2ywj6j.js","names":[],"sources":["../src/types/types.ts"],"sourcesContent":["import type { Currency } from './api-types';\nimport type { MarketplaceConfig } from './new-marketplace-types';\n\nexport * from './new-marketplace-types';\n\nexport type Price = {\n\tamountRaw: string;\n\tcurrency: Currency;\n};\n\nexport type MarketplaceType = 'market' | 'shop';\n\nexport enum CollectibleCardAction {\n\tBUY = 'Buy',\n\tSELL = 'Sell',\n\tLIST = 'Create listing',\n\tOFFER = 'Make an offer',\n\tTRANSFER = 'Transfer',\n}\n\nexport type MarketCollection =\n\tMarketplaceConfig['market']['collections'][number];\n\nexport type ShopCollection = MarketplaceConfig['shop']['collections'][number];\n\n// export type Order = Omit<APIOrder, 'priceAmount' | 'priceAmountNet'> & {\n// \tpriceAmount: bigint;\n// \tpriceAmountNet: bigint;\n// };\n"],"mappings":";AAYA,IAAY,0EAAL;AACN;AACA;AACA;AACA;AACA;;AACA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { EIP2981_ABI, SequenceMarketplaceV1_ABI, SequenceMarketplaceV2_ABI } from "../../index-
|
|
2
|
-
import { ERC1155_SALES_CONTRACT_ABI, ERC721_SALE_ABI } from "../../index-
|
|
3
|
-
import { ERC1155_ABI, ERC20_ABI, ERC721_ABI, SEQUENCE_1155_ITEMS_ABI } from "../../index-
|
|
4
|
-
import "../../index-
|
|
1
|
+
import { EIP2981_ABI, SequenceMarketplaceV1_ABI, SequenceMarketplaceV2_ABI } from "../../index-BAhaEfqY.js";
|
|
2
|
+
import { ERC1155_SALES_CONTRACT_ABI, ERC721_SALE_ABI } from "../../index-Cu70Lw-w.js";
|
|
3
|
+
import { ERC1155_ABI, ERC20_ABI, ERC721_ABI, SEQUENCE_1155_ITEMS_ABI } from "../../index-136YrWDH.js";
|
|
4
|
+
import "../../index-DvpBZgor.js";
|
|
5
5
|
export { EIP2981_ABI, ERC1155_ABI, ERC1155_SALES_CONTRACT_ABI, ERC20_ABI, ERC721_ABI, ERC721_SALE_ABI, SEQUENCE_1155_ITEMS_ABI, SequenceMarketplaceV1_ABI, SequenceMarketplaceV2_ABI };
|
package/dist/utils/abi/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { EIP2981_ABI, SequenceMarketplaceV1_ABI, SequenceMarketplaceV2_ABI } from "../../marketplace-
|
|
2
|
-
import { ERC1155_SALES_CONTRACT_ABI, ERC721_SALE_ABI } from "../../primary-sale-
|
|
3
|
-
import { ERC1155_ABI, ERC20_ABI, ERC721_ABI, SEQUENCE_1155_ITEMS_ABI } from "../../token-
|
|
4
|
-
import "../../abi-
|
|
1
|
+
import { EIP2981_ABI, SequenceMarketplaceV1_ABI, SequenceMarketplaceV2_ABI } from "../../marketplace-DmFiyBoS.js";
|
|
2
|
+
import { ERC1155_SALES_CONTRACT_ABI, ERC721_SALE_ABI } from "../../primary-sale-CmWxSfFQ.js";
|
|
3
|
+
import { ERC1155_ABI, ERC20_ABI, ERC721_ABI, SEQUENCE_1155_ITEMS_ABI } from "../../token-CHSBPYVG.js";
|
|
4
|
+
import "../../abi-BMvgNbKQ.js";
|
|
5
5
|
|
|
6
6
|
export { EIP2981_ABI, ERC1155_ABI, ERC1155_SALES_CONTRACT_ABI, ERC20_ABI, ERC721_ABI, ERC721_SALE_ABI, SEQUENCE_1155_ITEMS_ABI, SequenceMarketplaceV1_ABI, SequenceMarketplaceV2_ABI };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { EIP2981_ABI, SequenceMarketplaceV1_ABI, SequenceMarketplaceV2_ABI } from "../../../index-
|
|
1
|
+
import { EIP2981_ABI, SequenceMarketplaceV1_ABI, SequenceMarketplaceV2_ABI } from "../../../index-BAhaEfqY.js";
|
|
2
2
|
export { EIP2981_ABI, SequenceMarketplaceV1_ABI, SequenceMarketplaceV2_ABI };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { EIP2981_ABI, SequenceMarketplaceV1_ABI, SequenceMarketplaceV2_ABI } from "../../../marketplace-
|
|
1
|
+
import { EIP2981_ABI, SequenceMarketplaceV1_ABI, SequenceMarketplaceV2_ABI } from "../../../marketplace-DmFiyBoS.js";
|
|
2
2
|
|
|
3
3
|
export { EIP2981_ABI, SequenceMarketplaceV1_ABI, SequenceMarketplaceV2_ABI };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { ERC1155_SALES_CONTRACT_ABI, ERC721_SALE_ABI } from "../../../index-
|
|
1
|
+
import { ERC1155_SALES_CONTRACT_ABI, ERC721_SALE_ABI } from "../../../index-Cu70Lw-w.js";
|
|
2
2
|
export { ERC1155_SALES_CONTRACT_ABI, ERC721_SALE_ABI };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { ERC1155_ABI, ERC20_ABI, ERC721_ABI, SEQUENCE_1155_ITEMS_ABI } from "../../../index-
|
|
1
|
+
import { ERC1155_ABI, ERC20_ABI, ERC721_ABI, SEQUENCE_1155_ITEMS_ABI } from "../../../index-136YrWDH.js";
|
|
2
2
|
export { ERC1155_ABI, ERC20_ABI, ERC721_ABI, SEQUENCE_1155_ITEMS_ABI };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { ERC1155_ABI, ERC20_ABI, ERC721_ABI, SEQUENCE_1155_ITEMS_ABI } from "../../../token-
|
|
1
|
+
import { ERC1155_ABI, ERC20_ABI, ERC721_ABI, SEQUENCE_1155_ITEMS_ABI } from "../../../token-CHSBPYVG.js";
|
|
2
2
|
|
|
3
3
|
export { ERC1155_ABI, ERC20_ABI, ERC721_ABI, SEQUENCE_1155_ITEMS_ABI };
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import "../
|
|
2
|
-
import "../index-
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
import "../index-
|
|
7
|
-
|
|
8
|
-
export { EIP2981_ABI, ERC1155_ABI, ERC1155_SALES_CONTRACT_ABI, ERC20_ABI, ERC721_ABI, ERC721_SALE_ABI, SEQUENCE_1155_ITEMS_ABI, SequenceMarketplaceV1_ABI, SequenceMarketplaceV2_ABI, calculateEarningsAfterFees, calculatePriceDifferencePercentage, cn, compareAddress, formatPrice, formatPriceWithFee, getMarketplaceDetails, getPresentableChainName, networkToWagmiChain, truncateEnd, truncateMiddle };
|
|
1
|
+
import "../create-config-DKJ-F0jc.js";
|
|
2
|
+
import { EIP2981_ABI, SequenceMarketplaceV1_ABI, SequenceMarketplaceV2_ABI } from "../index-BAhaEfqY.js";
|
|
3
|
+
import { ERC1155_SALES_CONTRACT_ABI, ERC721_SALE_ABI } from "../index-Cu70Lw-w.js";
|
|
4
|
+
import { ERC1155_ABI, ERC20_ABI, ERC721_ABI, SEQUENCE_1155_ITEMS_ABI } from "../index-136YrWDH.js";
|
|
5
|
+
import "../index-DvpBZgor.js";
|
|
6
|
+
import { calculateEarningsAfterFees, calculatePriceDifferencePercentage, cn, compareAddress, formatPrice, formatPriceWithFee, getMarketplaceDetails, getNetwork, getPresentableChainName, networkToWagmiChain, truncateEnd, truncateMiddle } from "../index-BhVFc2rX.js";
|
|
7
|
+
export { EIP2981_ABI, ERC1155_ABI, ERC1155_SALES_CONTRACT_ABI, ERC20_ABI, ERC721_ABI, ERC721_SALE_ABI, SEQUENCE_1155_ITEMS_ABI, SequenceMarketplaceV1_ABI, SequenceMarketplaceV2_ABI, calculateEarningsAfterFees, calculatePriceDifferencePercentage, cn, compareAddress, formatPrice, formatPriceWithFee, getMarketplaceDetails, getNetwork, getPresentableChainName, networkToWagmiChain, truncateEnd, truncateMiddle };
|
package/dist/utils/index.js
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import "../builder.gen-B9wR2nvF.js";
|
|
2
|
-
import "../
|
|
3
|
-
import "../
|
|
4
|
-
import
|
|
5
|
-
import {
|
|
6
|
-
import
|
|
7
|
-
import "../
|
|
8
|
-
import {
|
|
9
|
-
import "../
|
|
2
|
+
import "../base-DqaJPvfN.js";
|
|
3
|
+
import "../transaction-CnctdNzS.js";
|
|
4
|
+
import "../marketplace.gen-HpnpL5xU.js";
|
|
5
|
+
import { getNetwork, getPresentableChainName } from "../network-CGD0oKtS.js";
|
|
6
|
+
import "../types-Yw2ywj6j.js";
|
|
7
|
+
import { EIP2981_ABI, SequenceMarketplaceV1_ABI, SequenceMarketplaceV2_ABI } from "../marketplace-DmFiyBoS.js";
|
|
8
|
+
import { ERC1155_SALES_CONTRACT_ABI, ERC721_SALE_ABI } from "../primary-sale-CmWxSfFQ.js";
|
|
9
|
+
import { ERC1155_ABI, ERC20_ABI, ERC721_ABI, SEQUENCE_1155_ITEMS_ABI } from "../token-CHSBPYVG.js";
|
|
10
|
+
import "../abi-BMvgNbKQ.js";
|
|
11
|
+
import { calculateEarningsAfterFees, calculatePriceDifferencePercentage, cn, compareAddress, formatPrice, formatPriceWithFee, getMarketplaceDetails, networkToWagmiChain, truncateEnd, truncateMiddle } from "../utils-9RXDgcBl.js";
|
|
12
|
+
import "../marketplace-logos-Cd6W-qOq.js";
|
|
10
13
|
|
|
11
|
-
export { EIP2981_ABI, ERC1155_ABI, ERC1155_SALES_CONTRACT_ABI, ERC20_ABI, ERC721_ABI, ERC721_SALE_ABI, SEQUENCE_1155_ITEMS_ABI, SequenceMarketplaceV1_ABI, SequenceMarketplaceV2_ABI, calculateEarningsAfterFees, calculatePriceDifferencePercentage, cn, compareAddress, formatPrice, formatPriceWithFee, getMarketplaceDetails, getPresentableChainName, networkToWagmiChain, truncateEnd, truncateMiddle };
|
|
14
|
+
export { EIP2981_ABI, ERC1155_ABI, ERC1155_SALES_CONTRACT_ABI, ERC20_ABI, ERC721_ABI, ERC721_SALE_ABI, SEQUENCE_1155_ITEMS_ABI, SequenceMarketplaceV1_ABI, SequenceMarketplaceV2_ABI, calculateEarningsAfterFees, calculatePriceDifferencePercentage, cn, compareAddress, formatPrice, formatPriceWithFee, getMarketplaceDetails, getNetwork, getPresentableChainName, networkToWagmiChain, truncateEnd, truncateMiddle };
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { MarketplaceKind } from "./marketplace.gen-
|
|
2
|
-
import { AlienSwapLogo, BlurLogo, LooksRareLogo, MagicEdenLogo, MintifyLogo, OpenSeaLogo, SequenceLogo, X2y2Logo } from "./marketplace-logos-
|
|
3
|
-
import { networks } from "@0xsequence/network";
|
|
1
|
+
import { MarketplaceKind } from "./marketplace.gen-HpnpL5xU.js";
|
|
2
|
+
import { AlienSwapLogo, BlurLogo, LooksRareLogo, MagicEdenLogo, MintifyLogo, OpenSeaLogo, SequenceLogo, X2y2Logo } from "./marketplace-logos-Cd6W-qOq.js";
|
|
4
3
|
import { clsx } from "clsx";
|
|
5
4
|
import { twMerge } from "tailwind-merge";
|
|
6
5
|
import * as dn from "dnum";
|
|
@@ -91,12 +90,6 @@ function getRootDomain(url) {
|
|
|
91
90
|
return parts[parts.length - 2] || parts[0];
|
|
92
91
|
}
|
|
93
92
|
|
|
94
|
-
//#endregion
|
|
95
|
-
//#region src/utils/network.ts
|
|
96
|
-
const getPresentableChainName = (chainId) => {
|
|
97
|
-
return networks[chainId]?.title ?? "Unknown Network";
|
|
98
|
-
};
|
|
99
|
-
|
|
100
93
|
//#endregion
|
|
101
94
|
//#region src/utils/networkconfigToWagmiChain.ts
|
|
102
95
|
const networkToWagmiChain = (network) => ({
|
|
@@ -212,5 +205,5 @@ const formatPriceWithFee = (amount, decimals, feePercentage) => {
|
|
|
212
205
|
};
|
|
213
206
|
|
|
214
207
|
//#endregion
|
|
215
|
-
export { calculateEarningsAfterFees, calculatePriceDifferencePercentage, cn, compareAddress, formatPrice, formatPriceWithFee, getMarketplaceDetails,
|
|
216
|
-
//# sourceMappingURL=utils-
|
|
208
|
+
export { calculateEarningsAfterFees, calculatePriceDifferencePercentage, cn, compareAddress, formatPrice, formatPriceWithFee, getMarketplaceDetails, networkToWagmiChain, truncateEnd, truncateMiddle };
|
|
209
|
+
//# sourceMappingURL=utils-9RXDgcBl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils-9RXDgcBl.js","names":["address: string","text: string | undefined","truncateAt: number","MARKETPLACES: Record<string, Marketplace>","KIND_TO_MARKETPLACE: Partial<\n\tRecord<MarketplaceKind, keyof typeof MARKETPLACES>\n>","url: string","network: NetworkConfig","amount: bigint","decimals: number","fees: number[]","feePercentage: number"],"sources":["../src/utils/address.ts","../src/utils/cn.ts","../src/utils/getMarketplaceDetails.ts","../src/utils/networkconfigToWagmiChain.ts","../src/utils/price.ts"],"sourcesContent":["export const truncateMiddle = (\n\taddress: string,\n\tminPrefix = 20,\n\tminSuffix = 3,\n): string => {\n\tif (minPrefix + minSuffix >= 40) {\n\t\treturn address;\n\t}\n\treturn `${address.substring(0, 2 + minPrefix)}…${address.substring(address.length - minSuffix)}`;\n};\n\nexport const truncateEnd = (text: string | undefined, truncateAt: number) => {\n\tif (!text) return '';\n\n\tlet finalText = text;\n\n\tif (text.length >= truncateAt) {\n\t\tfinalText = `${text.slice(0, truncateAt)}...`;\n\t}\n\n\treturn finalText;\n};\n\nexport const compareAddress = (a = '', b = '') => {\n\treturn a.toLowerCase() === b.toLowerCase();\n};\n","import { type ClassValue, clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]) {\n\treturn twMerge(clsx(inputs));\n}\n","import type { Image } from '@0xsequence/design-system';\nimport type { ComponentType } from 'react';\nimport {\n\tAlienSwapLogo,\n\tBlurLogo,\n\tLooksRareLogo,\n\tMagicEdenLogo,\n\tMintifyLogo,\n\tOpenSeaLogo,\n\tSequenceLogo,\n\tX2y2Logo,\n} from '../react/ui/components/marketplace-logos';\nimport { MarketplaceKind } from '../types';\n\ninterface Marketplace {\n\tlogo: ComponentType<React.ComponentProps<typeof Image>>;\n\tdisplayName: string;\n}\n\nconst MARKETPLACES: Record<string, Marketplace> = {\n\tsequence: {\n\t\tlogo: SequenceLogo,\n\t\tdisplayName: 'Sequence',\n\t},\n\topensea: {\n\t\tlogo: OpenSeaLogo,\n\t\tdisplayName: 'OpenSea',\n\t},\n\tmagiceden: {\n\t\tlogo: MagicEdenLogo,\n\t\tdisplayName: 'Magic Eden',\n\t},\n\tmintify: {\n\t\tlogo: MintifyLogo,\n\t\tdisplayName: 'Mintify',\n\t},\n\tlooksrare: {\n\t\tlogo: LooksRareLogo,\n\t\tdisplayName: 'Looks Rare',\n\t},\n\tx2y2: {\n\t\tlogo: X2y2Logo,\n\t\tdisplayName: 'X2Y2',\n\t},\n\tblur: {\n\t\tlogo: BlurLogo,\n\t\tdisplayName: 'Blur',\n\t},\n\talienswap: {\n\t\tlogo: AlienSwapLogo,\n\t\tdisplayName: 'AlienSwap',\n\t},\n} as const;\n\nconst KIND_TO_MARKETPLACE: Partial<\n\tRecord<MarketplaceKind, keyof typeof MARKETPLACES>\n> = {\n\t[MarketplaceKind.sequence_marketplace_v1]: 'sequence',\n\t[MarketplaceKind.sequence_marketplace_v2]: 'sequence',\n\t[MarketplaceKind.opensea]: 'opensea',\n\t[MarketplaceKind.mintify]: 'mintify',\n\t[MarketplaceKind.looks_rare]: 'looksrare',\n\t[MarketplaceKind.x2y2]: 'x2y2',\n\t[MarketplaceKind.blur]: 'blur',\n\t[MarketplaceKind.magic_eden]: 'magiceden',\n};\n\ntype MarketplaceDetailsProp = {\n\toriginName: string;\n\tkind: MarketplaceKind;\n};\n\n// TODO: add support for more marketplaces and improve detection of marketplace\nexport function getMarketplaceDetails({\n\toriginName,\n\tkind,\n}: MarketplaceDetailsProp) {\n\tif (\n\t\tkind === MarketplaceKind.sequence_marketplace_v1 ||\n\t\tkind === MarketplaceKind.sequence_marketplace_v2\n\t) {\n\t\treturn MARKETPLACES.sequence;\n\t}\n\n\tlet name = originName.toLowerCase();\n\n\ttry {\n\t\t//Check if the name can be parsed as a url\n\t\tnew URL(name);\n\t\t// if it can we are naively trying to extract the root domain\n\t\tname = getRootDomain(name) || name;\n\t} catch {}\n\n\tname = name.replace(/ /g, '');\n\n\tconst details = MARKETPLACES[name];\n\n\tif (details) {\n\t\treturn details;\n\t}\n\n\tif (KIND_TO_MARKETPLACE[kind]) {\n\t\treturn MARKETPLACES[KIND_TO_MARKETPLACE[kind]];\n\t}\n}\n\nfunction getRootDomain(url: string) {\n\tconst domain = url.replace(/^(https?:\\/\\/)?(www\\.)?/, '');\n\tconst parts = domain.split('.');\n\treturn parts[parts.length - 2] || parts[0];\n}\n","import type { NetworkConfig } from '@0xsequence/network';\nimport type { Chain } from 'viem';\n\nexport const networkToWagmiChain = (network: NetworkConfig): Chain => ({\n\t...network,\n\tid: Number(network.chainId),\n\tname: network.name,\n\tnativeCurrency: { ...network.nativeToken },\n\trpcUrls: {\n\t\tdefault: {\n\t\t\thttp: [network.rpcUrl],\n\t\t},\n\t\tpublic: {\n\t\t\thttp: [network.rpcUrl],\n\t\t},\n\t},\n});\n","import * as dn from 'dnum';\nimport { formatUnits } from 'viem';\n\ntype CalculatePriceDifferencePercentageArgs = {\n\tinputPriceRaw: bigint;\n\tbasePriceRaw: bigint;\n\tdecimals: number;\n};\n\n/**\n * Calculates the percentage difference between two prices\n * @param args - Object containing input price, base price, and decimals\n * @returns The percentage difference as a string with 2 decimal places\n * @example\n * ```ts\n * const diff = calculatePriceDifferencePercentage({\n * inputPriceRaw: 1000000n,\n * basePriceRaw: 900000n,\n * decimals: 6\n * }); // Returns \"11.11\"\n * ```\n */\nexport const calculatePriceDifferencePercentage = ({\n\tinputPriceRaw,\n\tbasePriceRaw,\n\tdecimals,\n}: CalculatePriceDifferencePercentageArgs) => {\n\tconst inputPrice = Number(formatUnits(inputPriceRaw, decimals));\n\tconst basePrice = Number(formatUnits(basePriceRaw, decimals));\n\tconst difference = inputPrice - basePrice;\n\tconst percentageDifference = (difference / basePrice) * 100;\n\n\treturn percentageDifference.toFixed(2);\n};\n\n/**\n * Formats a raw price amount with the specified number of decimal places\n * @param amount - The raw price amount as a bigint\n * @param decimals - Number of decimal places to format to\n * @returns Formatted price string with proper decimal and thousands separators\n * @example\n * ```ts\n * const formatted = formatPrice(1000000n, 6); // Returns \"1.000000\"\n * ```\n */\nexport const formatPrice = (amount: bigint, decimals: number): string => {\n\tconst formattedUnits = Number(formatUnits(amount, decimals));\n\treturn formattedUnits.toLocaleString('en-US', {\n\t\tminimumFractionDigits: 0,\n\t\tmaximumFractionDigits: decimals,\n\t});\n};\n\n/**\n * Calculates the final earnings amount after applying multiple fee percentages\n * @param amount - The raw amount as a bigint (e.g., from a blockchain transaction)\n * @param decimals - The number of decimal places for the currency (e.g., 18 for ETH, 6 for USDC)\n * @param fees - Array of fee percentages to apply (e.g., [2.5, 1.0] for 2.5% and 1% fees)\n * @returns Formatted string representing the final earnings after all fees are applied\n * @throws Will return '0' if there's an error in calculation\n * @example\n * ```ts\n * const earnings = calculateEarningsAfterFees(\n * 1000000000000000000n, // 1 ETH\n * 18, // ETH decimals\n * [2.5, 1.0] // 2.5% and 1% fees\n * ); // Returns \"0.96525\" (1 ETH after 2.5% and 1% fees)\n * ```\n */\nexport const calculateEarningsAfterFees = (\n\tamount: bigint,\n\tdecimals: number,\n\tfees: number[],\n): string => {\n\ttry {\n\t\tconst decimalAmount = Number(formatUnits(amount, decimals));\n\t\tlet earnings = dn.from(decimalAmount.toString(), decimals);\n\n\t\tfor (const fee of fees) {\n\t\t\tif (fee > 0) {\n\t\t\t\tconst feeMultiplier = dn.from((1 - fee / 100).toString(), decimals);\n\t\t\t\tearnings = dn.multiply(earnings, feeMultiplier);\n\t\t\t}\n\t\t}\n\n\t\treturn dn.format(earnings, {\n\t\t\tdigits: decimals,\n\t\t\ttrailingZeros: false,\n\t\t\tlocale: 'en-US',\n\t\t});\n\t} catch (error) {\n\t\tconsole.error('Error calculating earnings after fees:', error);\n\t\treturn '0';\n\t}\n};\n\n/**\n * Formats a price amount with fee applied\n * @param amount - The raw price amount as a bigint\n * @param decimals - Number of decimal places for the currency\n * @param feePercentage - Fee percentage to apply (e.g., 3.5 for 3.5%)\n * @returns Formatted price string with fee applied and proper decimal/thousands separators\n * @example\n * ```ts\n * const priceWithFee = formatPriceWithFee(1000000n, 6, 3.5); // Returns \"1.035\"\n * ```\n */\nexport const formatPriceWithFee = (\n\tamount: bigint,\n\tdecimals: number,\n\tfeePercentage: number,\n): string => {\n\ttry {\n\t\tconst decimalAmount = Number(formatUnits(amount, decimals));\n\t\tconst price = dn.from(decimalAmount.toString(), decimals);\n\t\tconst feeMultiplier = dn.from(\n\t\t\t(1 + feePercentage / 100).toString(),\n\t\t\tdecimals,\n\t\t);\n\t\tconst totalPrice = dn.multiply(price, feeMultiplier);\n\n\t\treturn dn.format(totalPrice, {\n\t\t\tdigits: decimals,\n\t\t\ttrailingZeros: false,\n\t\t\tlocale: 'en-US',\n\t\t});\n\t} catch (error) {\n\t\tconsole.error('Error formatting price with fee:', error);\n\t\treturn '0';\n\t}\n};\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ContractType } from "./marketplace.gen-
|
|
1
|
+
import { ContractType } from "./marketplace.gen-HpnpL5xU.js";
|
|
2
2
|
import { formatUnits } from "viem";
|
|
3
3
|
|
|
4
4
|
//#region src/react/ui/components/marketplace-collectible-card/utils/formatPrice.ts
|
|
@@ -30,15 +30,14 @@ const formatPriceNumber = (amount, decimals) => {
|
|
|
30
30
|
|
|
31
31
|
//#endregion
|
|
32
32
|
//#region src/react/ui/components/marketplace-collectible-card/utils/supplyStatus.ts
|
|
33
|
-
const getSupplyStatusText = ({
|
|
34
|
-
|
|
35
|
-
if (hasUnlimitedSupplyCap) return "Unlimited Supply";
|
|
33
|
+
const getSupplyStatusText = ({ quantityRemaining, collectionType, unlimitedSupply }) => {
|
|
34
|
+
if (unlimitedSupply) return "Unlimited Supply";
|
|
36
35
|
if (collectionType === ContractType.ERC721 && quantityRemaining === void 0) return "Out of stock";
|
|
37
|
-
if (collectionType === ContractType.ERC1155 && !
|
|
36
|
+
if (collectionType === ContractType.ERC1155 && !unlimitedSupply && quantityRemaining === "0") return "Out of stock";
|
|
38
37
|
if (quantityRemaining && Number(quantityRemaining) > 0) return `Supply: ${quantityRemaining}`;
|
|
39
38
|
return "Out of stock";
|
|
40
39
|
};
|
|
41
40
|
|
|
42
41
|
//#endregion
|
|
43
42
|
export { OVERFLOW_PRICE, UNDERFLOW_PRICE, formatPriceNumber, getSupplyStatusText };
|
|
44
|
-
//# sourceMappingURL=utils-
|
|
43
|
+
//# sourceMappingURL=utils-DjVJ9tov.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils-DjVJ9tov.js","names":["amount: string","decimals: number"],"sources":["../src/react/ui/components/marketplace-collectible-card/utils/formatPrice.ts","../src/react/ui/components/marketplace-collectible-card/utils/supplyStatus.ts"],"sourcesContent":["import { formatUnits } from 'viem';\n\nexport const OVERFLOW_PRICE = 100000000;\nexport const UNDERFLOW_PRICE = 0.0001;\n\nexport const formatPriceNumber = (\n\tamount: string,\n\tdecimals: number,\n): {\n\tformattedNumber: string;\n\tisUnderflow: boolean;\n\tisOverflow: boolean;\n} => {\n\tconst formattedPrice = formatUnits(BigInt(amount), decimals);\n\tconst numericPrice = Number.parseFloat(formattedPrice);\n\n\tif (numericPrice < UNDERFLOW_PRICE) {\n\t\treturn {\n\t\t\tformattedNumber: UNDERFLOW_PRICE.toString(),\n\t\t\tisUnderflow: true,\n\t\t\tisOverflow: false,\n\t\t};\n\t}\n\n\tif (numericPrice > OVERFLOW_PRICE) {\n\t\treturn {\n\t\t\tformattedNumber: OVERFLOW_PRICE.toLocaleString('en-US', {\n\t\t\t\tmaximumFractionDigits: 2,\n\t\t\t}),\n\t\t\tisUnderflow: false,\n\t\t\tisOverflow: true,\n\t\t};\n\t}\n\n\tconst maxDecimals = numericPrice < 0.01 ? 6 : 4;\n\n\treturn {\n\t\tformattedNumber: numericPrice.toLocaleString('en-US', {\n\t\t\tminimumFractionDigits: 0,\n\t\t\tmaximumFractionDigits: maxDecimals,\n\t\t}),\n\t\tisUnderflow: false,\n\t\tisOverflow: false,\n\t};\n};\n","import { ContractType } from '../../../../_internal';\n\nexport const getSupplyStatusText = ({\n\tquantityRemaining,\n\tcollectionType,\n\tunlimitedSupply,\n}: {\n\tquantityRemaining: string | undefined;\n\tcollectionType: ContractType;\n\tunlimitedSupply?: boolean;\n}): string => {\n\tif (unlimitedSupply) {\n\t\treturn 'Unlimited Supply';\n\t}\n\n\tif (\n\t\tcollectionType === ContractType.ERC721 &&\n\t\tquantityRemaining === undefined\n\t) {\n\t\treturn 'Out of stock';\n\t}\n\n\tif (\n\t\tcollectionType === ContractType.ERC1155 &&\n\t\t!unlimitedSupply &&\n\t\tquantityRemaining === '0'\n\t) {\n\t\treturn 'Out of stock';\n\t}\n\n\tif (quantityRemaining && Number(quantityRemaining) > 0) {\n\t\treturn `Supply: ${quantityRemaining}`;\n\t}\n\n\treturn 'Out of stock';\n};\n"],"mappings":";;;;AAEA,MAAa,iBAAiB;AAC9B,MAAa,kBAAkB;AAE/B,MAAa,oBAAoB,CAChCA,QACAC,aAKI;CACJ,MAAM,iBAAiB,YAAY,OAAO,OAAO,EAAE,SAAS;CAC5D,MAAM,eAAe,OAAO,WAAW,eAAe;AAEtD,KAAI,eAAe,gBAClB,QAAO;EACN,iBAAiB,gBAAgB,UAAU;EAC3C,aAAa;EACb,YAAY;CACZ;AAGF,KAAI,eAAe,eAClB,QAAO;EACN,iBAAiB,eAAe,eAAe,SAAS,EACvD,uBAAuB,EACvB,EAAC;EACF,aAAa;EACb,YAAY;CACZ;CAGF,MAAM,cAAc,eAAe,MAAO,IAAI;AAE9C,QAAO;EACN,iBAAiB,aAAa,eAAe,SAAS;GACrD,uBAAuB;GACvB,uBAAuB;EACvB,EAAC;EACF,aAAa;EACb,YAAY;CACZ;AACD;;;;AC1CD,MAAa,sBAAsB,CAAC,EACnC,mBACA,gBACA,iBAKA,KAAa;AACb,KAAI,gBACH,QAAO;AAGR,KACC,mBAAmB,aAAa,UAChC,6BAEA,QAAO;AAGR,KACC,mBAAmB,aAAa,YAC/B,mBACD,sBAAsB,IAEtB,QAAO;AAGR,KAAI,qBAAqB,OAAO,kBAAkB,GAAG,EACpD,SAAQ,UAAU,kBAAkB;AAGrC,QAAO;AACP"}
|
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"x2y2-DD17tT91.js","names":[],"sources":["../src/react/ui/images/marketplaces/x2y2.png"],"sourcesContent":["\"data:image/png;base64,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\""],"mappings":";mBAAA"}
|
|
1
|
+
{"version":3,"file":"x2y2-BLz-_Q2O.js","names":[],"sources":["../src/react/ui/images/marketplaces/x2y2.png"],"sourcesContent":["\"data:image/png;base64,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\""],"mappings":";mBAAA"}
|