@0xsequence/marketplace-sdk 0.5.2 → 0.5.4
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/dist/builder-types-Jl3Ymws8.d.ts +73 -0
- package/dist/{chunk-XP3WY5AX.js → chunk-7C7ADZ2H.js} +3 -3
- package/dist/{chunk-XP3WY5AX.js.map → chunk-7C7ADZ2H.js.map} +1 -1
- package/dist/{chunk-FCF57DZI.js → chunk-7FN62HOP.js} +5 -9
- package/dist/chunk-7FN62HOP.js.map +1 -0
- package/dist/chunk-DZKPDV63.js +27 -0
- package/dist/chunk-DZKPDV63.js.map +1 -0
- package/dist/{chunk-ZUEQGPLO.js → chunk-J6F5QOW5.js} +2 -2
- package/dist/{chunk-ZUEQGPLO.js.map → chunk-J6F5QOW5.js.map} +1 -1
- package/dist/{chunk-I37CRQ4S.js → chunk-JWNONWD6.js} +259 -173
- package/dist/chunk-JWNONWD6.js.map +1 -0
- package/dist/{chunk-LJAB3S6U.js → chunk-TFRAOS7F.js} +22 -13
- package/dist/chunk-TFRAOS7F.js.map +1 -0
- package/dist/{chunk-MKGSGTQC.js → chunk-TLNRD4BQ.js} +3 -3
- package/dist/{chunk-5NORRVPM.js → chunk-UZIAX32Y.js} +1 -1
- package/dist/{chunk-5NORRVPM.js.map → chunk-UZIAX32Y.js.map} +1 -1
- package/dist/chunk-WGGZEQHL.js +56 -0
- package/dist/chunk-WGGZEQHL.js.map +1 -0
- package/dist/{chunk-MWDG7UTB.js → chunk-ZBLU3Q22.js} +1 -1
- package/dist/{chunk-MSTTVFVQ.js → chunk-ZGVCOQ4I.js} +383 -283
- package/dist/chunk-ZGVCOQ4I.js.map +1 -0
- package/dist/{create-config-BXvwUh55.d.ts → create-config-DOUq8Day.d.ts} +2 -2
- package/dist/index.css +1 -1
- package/dist/index.d.ts +5 -4
- package/dist/index.js +10 -6
- package/dist/{sdk-config-B32_2bG3.d.ts → marketplace.gen-D0ADxbfH.d.ts} +1 -24
- package/dist/react/_internal/api/index.d.ts +3 -2
- package/dist/react/_internal/databeat/index.css +82 -0
- package/dist/react/_internal/databeat/index.css.map +1 -0
- package/dist/react/_internal/databeat/index.d.ts +68 -0
- package/dist/react/_internal/databeat/index.js +26 -0
- package/dist/react/_internal/databeat/index.js.map +1 -0
- package/dist/react/_internal/index.d.ts +6 -5
- package/dist/react/_internal/index.js +6 -6
- package/dist/react/_internal/wagmi/index.d.ts +4 -4
- package/dist/react/_internal/wagmi/index.js +1 -1
- package/dist/react/hooks/index.d.ts +367 -22
- package/dist/react/hooks/index.js +9 -7
- package/dist/react/index.css +1 -1
- package/dist/react/index.css.map +1 -1
- package/dist/react/index.d.ts +7 -6
- package/dist/react/index.js +15 -12
- package/dist/react/ssr/index.d.ts +54 -41
- package/dist/react/ssr/index.js +5 -9
- package/dist/react/ssr/index.js.map +1 -1
- package/dist/react/ui/components/collectible-card/index.css +1 -1
- package/dist/react/ui/components/collectible-card/index.css.map +1 -1
- package/dist/react/ui/components/collectible-card/index.d.ts +4 -3
- package/dist/react/ui/components/collectible-card/index.js +9 -8
- package/dist/react/ui/components/marketplace-logos/index.js +1 -1
- package/dist/react/ui/index.css +1 -1
- package/dist/react/ui/index.css.map +1 -1
- package/dist/react/ui/index.d.ts +4 -3
- package/dist/react/ui/index.js +9 -8
- package/dist/react/ui/modals/_internal/components/actionModal/index.d.ts +4 -3
- package/dist/react/ui/modals/_internal/components/actionModal/index.js +6 -6
- package/dist/react/ui/styles/index.d.ts +1 -1
- package/dist/sdk-config-xWkdBdrL.d.ts +24 -0
- package/dist/{services-BRBVE0mm.d.ts → services-Dd2MoBTM.d.ts} +2 -1
- package/dist/styles/index.css +1 -1
- package/dist/styles/index.css.map +1 -1
- package/dist/styles/index.d.ts +1 -1
- package/dist/styles/index.js +1 -1
- package/dist/types/index.d.ts +4 -5
- package/dist/types/index.js +9 -5
- package/dist/{types-Yto6KrTN.d.ts → types-vOfhbBkR.d.ts} +3 -2
- package/dist/utils/index.d.ts +4 -3
- package/dist/utils/index.js +4 -4
- package/package.json +12 -10
- package/src/react/_internal/api/__mocks__/indexer.msw.ts +197 -0
- package/src/react/_internal/api/__mocks__/marketplace.msw.ts +140 -1
- package/src/react/_internal/api/__mocks__/metadata.msw.ts +162 -0
- package/src/react/_internal/databeat/index.ts +63 -0
- package/src/react/_internal/databeat/types.ts +70 -0
- package/src/react/_internal/test/mocks/publicClient.ts +39 -0
- package/src/react/_internal/test/mocks/wagmi.ts +61 -0
- package/src/react/_internal/test/mocks/wallet.ts +61 -0
- package/src/react/_internal/test/setup.ts +28 -0
- package/src/react/_internal/test-utils.tsx +31 -2
- package/src/react/_internal/wagmi/__tests__/create-config.test.ts +53 -20
- package/src/react/_internal/wagmi/create-config.ts +3 -4
- package/src/react/_internal/wagmi/embedded.ts +1 -4
- package/src/react/_internal/wagmi/universal.ts +1 -4
- package/src/react/_internal/wallet/wallet.ts +1 -0
- package/src/react/hooks/__tests__/useAutoSelectFeeOption.test.tsx +314 -0
- package/src/react/hooks/__tests__/useBalanceOfCollectible.test.tsx +148 -0
- package/src/react/hooks/__tests__/useCancelOrder.test.tsx +410 -0
- package/src/react/hooks/__tests__/useCancelTransactionSteps.test.tsx +269 -0
- package/src/react/hooks/__tests__/useCollectible.test.tsx +120 -0
- package/src/react/hooks/__tests__/useCollection.test.tsx +101 -0
- package/src/react/hooks/__tests__/useCollectionBalanceDetails.test.tsx +175 -0
- package/src/react/hooks/__tests__/useCollectionDetails.test.tsx +82 -0
- package/src/react/hooks/__tests__/useCollectionDetailsPolling.test.tsx +133 -0
- package/src/react/hooks/__tests__/useCountListingsForCollectible.test.tsx +108 -0
- package/src/react/hooks/__tests__/useCountOfCollectables.test.tsx +129 -0
- package/src/react/hooks/__tests__/useCountOffersForCollectible.test.tsx +108 -0
- package/src/react/hooks/__tests__/useCurrencies.test.tsx +176 -0
- package/src/react/hooks/__tests__/useCurrency.test.tsx +153 -0
- package/src/react/hooks/__tests__/useCurrencyBalance.test.tsx +111 -0
- package/src/react/hooks/__tests__/useFilters.test.tsx +127 -0
- package/src/react/hooks/__tests__/useFloorOrder.test.tsx +101 -0
- package/src/react/hooks/__tests__/useGenerateBuyTransaction.test.tsx +173 -0
- package/src/react/hooks/__tests__/useGenerateCancelTransaction.test.tsx +207 -0
- package/src/react/hooks/__tests__/useGenerateListingTransaction.test.tsx +207 -0
- package/src/react/hooks/__tests__/useGenerateOfferTransaction.test.tsx +205 -0
- package/src/react/hooks/__tests__/useGenerateSellTransaction.test.tsx +181 -0
- package/src/react/hooks/__tests__/useHighestOffer.test.tsx +118 -0
- package/src/react/hooks/__tests__/useListBalances.test.tsx +136 -0
- package/src/react/hooks/__tests__/useListCollectibleActivities.test.tsx +200 -0
- package/src/react/hooks/__tests__/useListCollectibles.test.tsx +232 -0
- package/src/react/hooks/__tests__/useListCollectiblesPaginated.test.tsx +217 -0
- package/src/react/hooks/__tests__/useListCollectionActivities.test.tsx +235 -0
- package/src/react/hooks/__tests__/useListCollections.test.tsx +296 -0
- package/src/react/hooks/__tests__/useListListingsForCollectible.test.tsx +140 -0
- package/src/react/hooks/__tests__/useListOffersForCollectible.test.tsx +140 -0
- package/src/react/hooks/__tests__/useLowestListing.test.tsx +148 -0
- package/src/react/hooks/__tests__/useMarketplaceConfig.test.tsx +106 -0
- package/src/react/hooks/__tests__/useRoyaltyPercentage.test.tsx +129 -0
- package/src/react/hooks/index.ts +1 -1
- package/src/react/hooks/options/__mocks__/marketplaceConfig.msw.ts +66 -10
- package/src/react/hooks/options/__tests__/marketplaceConfigOptions.test.tsx +2 -11
- package/src/react/hooks/options/marketplaceConfigOptions.ts +8 -3
- package/src/react/hooks/useAutoSelectFeeOption.tsx +4 -3
- package/src/react/hooks/useCancelTransactionSteps.tsx +17 -9
- package/src/react/hooks/useCollectionDetailsPolling.tsx +1 -1
- package/src/react/hooks/useCurrencies.tsx +29 -28
- package/src/react/hooks/useFilters.tsx +75 -2
- package/src/react/hooks/useGenerateBuyTransaction.tsx +13 -5
- package/src/react/hooks/useListCollectibleActivities.tsx +1 -0
- package/src/react/hooks/useListCollectibles.tsx +1 -0
- package/src/react/hooks/useListCollectiblesPaginated.tsx +78 -0
- package/src/react/hooks/useListCollectionActivities.tsx +1 -0
- package/src/react/hooks/useListCollections.tsx +2 -2
- package/src/react/ui/components/_internals/custom-select/__tests__/CustomSelect.test.tsx +6 -2
- package/src/react/ui/components/collectible-card/CollectibleCard.tsx +1 -1
- package/src/react/ui/components/collectible-card/Footer.tsx +9 -5
- package/src/react/ui/modals/BuyModal/Modal.tsx +9 -4
- package/src/react/ui/modals/BuyModal/__tests__/Modal.test.tsx +0 -1
- package/src/react/ui/modals/BuyModal/__tests__/store.test.ts +4 -2
- package/src/react/ui/modals/BuyModal/hooks/__tests__/useBuyCollectable.test.tsx +1 -24
- package/src/react/ui/modals/BuyModal/hooks/__tests__/useCheckoutOptions.test.tsx +152 -210
- package/src/react/ui/modals/BuyModal/hooks/__tests__/useFees.test.tsx +19 -49
- package/src/react/ui/modals/BuyModal/hooks/useFees.ts +6 -6
- package/src/react/ui/modals/BuyModal/modals/Modal1155.tsx +4 -2
- package/src/react/ui/modals/BuyModal/modals/__tests__/Modal1155.test.tsx +161 -52
- package/src/react/ui/modals/BuyModal/store.ts +7 -0
- package/src/react/ui/modals/CreateListingModal/Modal.tsx +1 -3
- package/src/react/ui/modals/CreateListingModal/__tests__/Modal.test.tsx +59 -227
- package/src/react/ui/modals/CreateListingModal/hooks/useCreateListing.tsx +2 -1
- package/src/react/ui/modals/CreateListingModal/hooks/useTransactionSteps.tsx +47 -7
- package/src/react/ui/modals/MakeOfferModal/Modal.tsx +1 -8
- package/src/react/ui/modals/MakeOfferModal/__tests__/Modal.test.tsx +41 -118
- package/src/react/ui/modals/MakeOfferModal/hooks/useMakeOffer.tsx +2 -1
- package/src/react/ui/modals/MakeOfferModal/hooks/useTransactionSteps.tsx +34 -6
- package/src/react/ui/modals/SellModal/Modal.tsx +3 -1
- package/src/react/ui/modals/SellModal/__tests__/Modal.test.tsx +4 -3
- package/src/react/ui/modals/SellModal/hooks/useGetTokenApproval.tsx +33 -31
- package/src/react/ui/modals/SellModal/hooks/useSell.tsx +11 -7
- package/src/react/ui/modals/SellModal/hooks/useTransactionSteps.tsx +58 -16
- package/src/react/ui/modals/SuccessfulPurchaseModal/__tests__/Modal.test.tsx +0 -1
- package/src/react/ui/modals/_internal/components/actionModal/ErrorModal.tsx +4 -2
- package/src/react/ui/modals/_internal/components/currencyOptionsSelect/__tests__/index.test.tsx +129 -57
- package/src/react/ui/modals/_internal/components/currencyOptionsSelect/index.tsx +1 -3
- package/src/react/ui/modals/_internal/components/priceInput/__tests__/index.test.tsx +1 -3
- package/src/react/ui/modals/_internal/components/transactionDetails/index.tsx +2 -2
- package/src/react/ui/modals/_internal/components/transactionStatusModal/__tests__/TransactionStatusModal.test.tsx +8 -8
- package/src/react/ui/modals/_internal/components/transactionStatusModal/hooks/useTransactionStatus.ts +1 -0
- package/src/types/builder-types.ts +79 -0
- package/src/types/index.ts +1 -1
- package/src/utils/__tests__/get-public-rpc-client.test.ts +2 -0
- package/src/utils/getMarketplaceDetails.ts +2 -2
- package/tsconfig.tsbuildinfo +1 -1
- package/vitest.config.js +2 -1
- package/dist/chunk-FCF57DZI.js.map +0 -1
- package/dist/chunk-I37CRQ4S.js.map +0 -1
- package/dist/chunk-LJAB3S6U.js.map +0 -1
- package/dist/chunk-MSTTVFVQ.js.map +0 -1
- package/dist/chunk-RK6KYMZM.js +0 -18
- package/dist/chunk-RK6KYMZM.js.map +0 -1
- package/dist/marketplace-config-znEu4L0K.d.ts +0 -60
- package/src/react/hooks/useCurrencyOptions.tsx +0 -16
- package/src/types/marketplace-config.ts +0 -67
- /package/dist/{chunk-MKGSGTQC.js.map → chunk-TLNRD4BQ.js.map} +0 -0
- /package/dist/{chunk-MWDG7UTB.js.map → chunk-ZBLU3Q22.js.map} +0 -0
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { O as OrderbookKind } from './marketplace.gen-D0ADxbfH.js';
|
|
2
|
+
|
|
3
|
+
declare enum MarketplaceWallet {
|
|
4
|
+
UNIVERSAL = "UNIVERSAL",
|
|
5
|
+
EMBEDDED = "EMBEDDED"
|
|
6
|
+
}
|
|
7
|
+
declare enum FilterCondition {
|
|
8
|
+
ENTIRE_KEY = "ENTIRE_KEY",
|
|
9
|
+
SPECIFIC_VALUE = "SPECIFIC_VALUE"
|
|
10
|
+
}
|
|
11
|
+
declare enum MarketplaceType {
|
|
12
|
+
AMM = "AMM",
|
|
13
|
+
P2P = "P2P",
|
|
14
|
+
SEQUENCE = "SEQUENCE",
|
|
15
|
+
ORDERBOOK = "ORDERBOOK"
|
|
16
|
+
}
|
|
17
|
+
interface MarketplaceWalletOptions {
|
|
18
|
+
walletType: MarketplaceWallet;
|
|
19
|
+
oidcIssuers: {
|
|
20
|
+
[key: string]: string;
|
|
21
|
+
};
|
|
22
|
+
connectors: Array<string>;
|
|
23
|
+
includeEIP6963Wallets: boolean;
|
|
24
|
+
}
|
|
25
|
+
interface MetadataFilterRule {
|
|
26
|
+
key: string;
|
|
27
|
+
condition: FilterCondition;
|
|
28
|
+
value?: string;
|
|
29
|
+
}
|
|
30
|
+
interface CollectionFilterSettings {
|
|
31
|
+
filterOrder: Array<string>;
|
|
32
|
+
exclusions: Array<MetadataFilterRule>;
|
|
33
|
+
}
|
|
34
|
+
interface MarketplaceCollection {
|
|
35
|
+
marketplaceType: MarketplaceType;
|
|
36
|
+
chainId: number;
|
|
37
|
+
address: string;
|
|
38
|
+
exchanges: Array<string>;
|
|
39
|
+
bannerUrl: string;
|
|
40
|
+
feePercentage: number;
|
|
41
|
+
currencyOptions: Array<string>;
|
|
42
|
+
destinationMarketplace: OrderbookKind;
|
|
43
|
+
filterSettings?: CollectionFilterSettings;
|
|
44
|
+
}
|
|
45
|
+
interface MarketplaceSocials {
|
|
46
|
+
twitter: string;
|
|
47
|
+
discord: string;
|
|
48
|
+
website: string;
|
|
49
|
+
tiktok: string;
|
|
50
|
+
instagram: string;
|
|
51
|
+
youtube: string;
|
|
52
|
+
}
|
|
53
|
+
interface MarketplaceSettings {
|
|
54
|
+
publisherId: string;
|
|
55
|
+
title: string;
|
|
56
|
+
shortDescription: string;
|
|
57
|
+
socials: MarketplaceSocials;
|
|
58
|
+
faviconUrl: string;
|
|
59
|
+
landingBannerUrl: string;
|
|
60
|
+
collections: Array<MarketplaceCollection>;
|
|
61
|
+
walletOptions: MarketplaceWalletOptions;
|
|
62
|
+
landingPageLayout: string;
|
|
63
|
+
logoUrl: string;
|
|
64
|
+
bannerUrl: string;
|
|
65
|
+
fontUrl?: string;
|
|
66
|
+
ogImage?: string;
|
|
67
|
+
}
|
|
68
|
+
interface MarketplaceConfig extends MarketplaceSettings {
|
|
69
|
+
cssString: string;
|
|
70
|
+
manifestUrl: string;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export { type CollectionFilterSettings as C, FilterCondition as F, MarketplaceWallet as M, MarketplaceType as a, type MarketplaceWalletOptions as b, type MetadataFilterRule as c, type MarketplaceCollection as d, type MarketplaceSocials as e, type MarketplaceSettings as f, type MarketplaceConfig as g };
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
OpenSeaLogo,
|
|
9
9
|
SequenceLogo,
|
|
10
10
|
X2y2Logo
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-ZBLU3Q22.js";
|
|
12
12
|
import {
|
|
13
13
|
MissingConfigError
|
|
14
14
|
} from "./chunk-WM4RGBFQ.js";
|
|
@@ -138,7 +138,7 @@ function getMarketplaceDetails({
|
|
|
138
138
|
originName,
|
|
139
139
|
kind
|
|
140
140
|
}) {
|
|
141
|
-
if (kind
|
|
141
|
+
if (kind === "sequence_marketplace_v1" /* sequence_marketplace_v1 */ || kind === "sequence_marketplace_v2" /* sequence_marketplace_v2 */) {
|
|
142
142
|
return MARKETPLACES.sequence;
|
|
143
143
|
}
|
|
144
144
|
let name = originName.toLowerCase();
|
|
@@ -171,4 +171,4 @@ export {
|
|
|
171
171
|
calculatePriceDifferencePercentage,
|
|
172
172
|
getMarketplaceDetails
|
|
173
173
|
};
|
|
174
|
-
//# sourceMappingURL=chunk-
|
|
174
|
+
//# sourceMappingURL=chunk-7C7ADZ2H.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils/address.ts","../src/utils/get-public-rpc-client.ts","../src/utils/network.ts","../src/utils/price.ts","../src/utils/getMarketplaceDetails.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 { allNetworks, findNetworkConfig } from '@0xsequence/network';\nimport { http, type PublicClient, createPublicClient } from 'viem';\nimport type { ChainId } from '../react/_internal';\nimport { MissingConfigError } from './_internal/error/transaction';\n\nexport const getPublicRpcClient = (chainId: ChainId): PublicClient => {\n\tif (chainId === undefined) {\n\t\tthrow new MissingConfigError(\n\t\t\t`Network configuration for chainId: ${chainId}`,\n\t\t);\n\t}\n\n\tconst network = findNetworkConfig(allNetworks, chainId);\n\n\tif (!network) {\n\t\tthrow new MissingConfigError(\n\t\t\t`Network configuration for chainId: ${chainId}`,\n\t\t);\n\t}\n\n\treturn createPublicClient({\n\t\tchain: {\n\t\t\t...network,\n\t\t\tid: Number(chainId),\n\t\t\tname: network.name,\n\t\t\tnativeCurrency: { ...network.nativeToken },\n\t\t\trpcUrls: {\n\t\t\t\tdefault: {\n\t\t\t\t\thttp: [network.rpcUrl],\n\t\t\t\t},\n\t\t\t\tpublic: {\n\t\t\t\t\thttp: [network.rpcUrl],\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tbatch: {\n\t\t\tmulticall: true,\n\t\t},\n\t\ttransport: http(),\n\t});\n};\n","import { networks, type ChainId as sequenceChainId } from '@0xsequence/network';\nimport type { ChainId } from '../react/_internal';\n\nexport const getPresentableChainName = (chainId: ChainId) => {\n\tconst id = Number(chainId) as sequenceChainId;\n\treturn networks[id]?.name;\n};\n","import { formatUnits } from 'viem';\n\ntype CalculatePriceDifferencePercentageArgs = {\n\tinputPriceRaw: bigint;\n\tbasePriceRaw: bigint;\n\tdecimals: number;\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","import { MarketplaceKind } from '../types';\nimport type { ComponentType } from 'react';\nimport type { Image } from '@0xsequence/design-system';\nimport {\n\tSequenceLogo,\n\tOpenSeaLogo,\n\tMagicEdenLogo,\n\tMintifyLogo,\n\tLooksRareLogo,\n\tX2y2Logo,\n\tBlurLogo,\n\tAlienSwapLogo,\n} from '../react/ui/components/marketplace-logos';\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};\n\ntype MarketplaceDetailsProp = {\n\toriginName: string;\n\tkind: MarketplaceKind;\n};\n\n// TODO: add suport for more marketplaces and improve detection of marketplace\nexport function getMarketplaceDetails({\n\toriginName,\n\tkind,\n}: MarketplaceDetailsProp) {\n\tif (\n\t\tkind
|
|
1
|
+
{"version":3,"sources":["../src/utils/address.ts","../src/utils/get-public-rpc-client.ts","../src/utils/network.ts","../src/utils/price.ts","../src/utils/getMarketplaceDetails.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 { allNetworks, findNetworkConfig } from '@0xsequence/network';\nimport { http, type PublicClient, createPublicClient } from 'viem';\nimport type { ChainId } from '../react/_internal';\nimport { MissingConfigError } from './_internal/error/transaction';\n\nexport const getPublicRpcClient = (chainId: ChainId): PublicClient => {\n\tif (chainId === undefined) {\n\t\tthrow new MissingConfigError(\n\t\t\t`Network configuration for chainId: ${chainId}`,\n\t\t);\n\t}\n\n\tconst network = findNetworkConfig(allNetworks, chainId);\n\n\tif (!network) {\n\t\tthrow new MissingConfigError(\n\t\t\t`Network configuration for chainId: ${chainId}`,\n\t\t);\n\t}\n\n\treturn createPublicClient({\n\t\tchain: {\n\t\t\t...network,\n\t\t\tid: Number(chainId),\n\t\t\tname: network.name,\n\t\t\tnativeCurrency: { ...network.nativeToken },\n\t\t\trpcUrls: {\n\t\t\t\tdefault: {\n\t\t\t\t\thttp: [network.rpcUrl],\n\t\t\t\t},\n\t\t\t\tpublic: {\n\t\t\t\t\thttp: [network.rpcUrl],\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tbatch: {\n\t\t\tmulticall: true,\n\t\t},\n\t\ttransport: http(),\n\t});\n};\n","import { networks, type ChainId as sequenceChainId } from '@0xsequence/network';\nimport type { ChainId } from '../react/_internal';\n\nexport const getPresentableChainName = (chainId: ChainId) => {\n\tconst id = Number(chainId) as sequenceChainId;\n\treturn networks[id]?.name;\n};\n","import { formatUnits } from 'viem';\n\ntype CalculatePriceDifferencePercentageArgs = {\n\tinputPriceRaw: bigint;\n\tbasePriceRaw: bigint;\n\tdecimals: number;\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","import { MarketplaceKind } from '../types';\nimport type { ComponentType } from 'react';\nimport type { Image } from '@0xsequence/design-system';\nimport {\n\tSequenceLogo,\n\tOpenSeaLogo,\n\tMagicEdenLogo,\n\tMintifyLogo,\n\tLooksRareLogo,\n\tX2y2Logo,\n\tBlurLogo,\n\tAlienSwapLogo,\n} from '../react/ui/components/marketplace-logos';\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};\n\ntype MarketplaceDetailsProp = {\n\toriginName: string;\n\tkind: MarketplaceKind;\n};\n\n// TODO: add suport 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"],"mappings":"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","names":[]}
|
|
@@ -30,9 +30,7 @@ function getWaasConnectors(marketplaceConfig, sdkConfig) {
|
|
|
30
30
|
const walletConnectProjectId = sdkConfig.wallet?.walletConnectProjectId;
|
|
31
31
|
const { googleClientId, appleClientId, appleRedirectURI } = sdkConfig.wallet?.embedded || {};
|
|
32
32
|
const { title: appName } = marketplaceConfig;
|
|
33
|
-
const walletOptions = marketplaceConfig.
|
|
34
|
-
connectors: ["coinbase", "walletconnect"]
|
|
35
|
-
};
|
|
33
|
+
const walletOptions = marketplaceConfig.walletOptions;
|
|
36
34
|
const wallets = [
|
|
37
35
|
emailWaas({
|
|
38
36
|
projectAccessKey,
|
|
@@ -113,9 +111,7 @@ function getUniversalConnectors(marketplaceConfig, config) {
|
|
|
113
111
|
}
|
|
114
112
|
function getWalletConfigs(marketplaceConfig, sequenceWalletOptions, walletConnectProjectId) {
|
|
115
113
|
const wallets = [];
|
|
116
|
-
const walletOptions = marketplaceConfig.
|
|
117
|
-
connectors: ["coinbase", "walletconnect"]
|
|
118
|
-
};
|
|
114
|
+
const walletOptions = marketplaceConfig.walletOptions;
|
|
119
115
|
wallets.push(sequence(sequenceWalletOptions));
|
|
120
116
|
if (walletOptions.connectors.includes("coinbase")) {
|
|
121
117
|
wallets.push(coinbaseWallet2({ appName: marketplaceConfig.title }));
|
|
@@ -141,12 +137,12 @@ var createWagmiConfig = (marketplaceConfig, sdkConfig, ssr) => {
|
|
|
141
137
|
const transports = getTransportConfigs(chains, sdkConfig.projectAccessKey);
|
|
142
138
|
const walletType = sdkConfig.wallet?.embedded?.waasConfigKey ? "waas" : "universal";
|
|
143
139
|
const connectors = walletType === "universal" ? getUniversalConnectors(marketplaceConfig, sdkConfig) : getWaasConnectors(marketplaceConfig, sdkConfig);
|
|
144
|
-
const
|
|
140
|
+
const multiInjectedProviderDiscovery = marketplaceConfig.walletOptions.includeEIP6963Wallets;
|
|
145
141
|
return createConfig({
|
|
146
142
|
connectors,
|
|
147
143
|
chains,
|
|
148
144
|
ssr,
|
|
149
|
-
multiInjectedProviderDiscovery
|
|
145
|
+
multiInjectedProviderDiscovery,
|
|
150
146
|
storage: ssr ? createStorage({
|
|
151
147
|
storage: cookieStorage
|
|
152
148
|
}) : void 0,
|
|
@@ -185,4 +181,4 @@ export {
|
|
|
185
181
|
getUniversalConnectors,
|
|
186
182
|
createWagmiConfig
|
|
187
183
|
};
|
|
188
|
-
//# sourceMappingURL=chunk-
|
|
184
|
+
//# sourceMappingURL=chunk-7FN62HOP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/react/_internal/wagmi/create-config.ts","../src/react/_internal/wagmi/embedded.ts","../src/react/_internal/consts.ts","../src/react/_internal/wagmi/universal.ts"],"sourcesContent":["import { getDefaultChains } from '@0xsequence/kit';\nimport { allNetworks, findNetworkConfig } from '@0xsequence/network';\nimport type { Chain, Transport } from 'viem';\nimport { polygon } from 'viem/chains';\nimport { http, cookieStorage, createConfig, createStorage } from 'wagmi';\nimport type { MarketplaceConfig, SdkConfig } from '../../../types';\nimport { getWaasConnectors } from './embedded';\nimport { getUniversalConnectors } from './universal';\n\nexport const createWagmiConfig = (\n\tmarketplaceConfig: MarketplaceConfig,\n\tsdkConfig: SdkConfig,\n\tssr?: boolean,\n) => {\n\tconst chains = getChainConfigs(marketplaceConfig);\n\tconst transports = getTransportConfigs(chains, sdkConfig.projectAccessKey);\n\n\tconst walletType = sdkConfig.wallet?.embedded?.waasConfigKey\n\t\t? 'waas'\n\t\t: 'universal';\n\n\tconst connectors =\n\t\twalletType === 'universal'\n\t\t\t? getUniversalConnectors(marketplaceConfig, sdkConfig)\n\t\t\t: getWaasConnectors(marketplaceConfig, sdkConfig);\n\n\tconst multiInjectedProviderDiscovery =\n\t\tmarketplaceConfig.walletOptions.includeEIP6963Wallets;\n\n\treturn createConfig({\n\t\tconnectors,\n\t\tchains,\n\t\tssr,\n\t\tmultiInjectedProviderDiscovery,\n\t\tstorage: ssr\n\t\t\t? createStorage({\n\t\t\t\t\tstorage: cookieStorage,\n\t\t\t\t})\n\t\t\t: undefined,\n\t\ttransports,\n\t});\n};\n\nfunction getChainConfigs(marketConfig: MarketplaceConfig): [Chain, ...Chain[]] {\n\tconst supportedChainIds = new Set(\n\t\tmarketConfig.collections.map((c) => c.chainId),\n\t);\n\n\t// Marketplace config does not specify any chains, use polygon as default\n\tif (supportedChainIds.size === 0) {\n\t\tsupportedChainIds.add(polygon.id); // Mainnet chain ID\n\t}\n\tconst chains = getDefaultChains([...supportedChainIds]);\n\n\treturn chains;\n}\n\nfunction getTransportConfigs(\n\tchains: [Chain, ...Chain[]],\n\tprojectAccessKey: string,\n): Record<number, Transport> {\n\treturn chains.reduce(\n\t\t(acc, chain) => {\n\t\t\tconst network = findNetworkConfig(allNetworks, chain.id);\n\t\t\tif (network) {\n\t\t\t\tlet rpcUrl = network.rpcUrl;\n\t\t\t\tif (!network.rpcUrl.endsWith(projectAccessKey))\n\t\t\t\t\trpcUrl = `${rpcUrl}/${projectAccessKey}`;\n\t\t\t\tacc[chain.id] = http(rpcUrl);\n\t\t\t}\n\t\t\treturn acc;\n\t\t},\n\t\t{} as Record<number, Transport>,\n\t);\n}\n","import {\n\ttype Wallet,\n\tappleWaas,\n\tcoinbaseWallet,\n\temailWaas,\n\tgetKitConnectWallets,\n\tgoogleWaas,\n\twalletConnect,\n} from '@0xsequence/kit';\nimport type { CreateConnectorFn } from 'wagmi';\nimport type { MarketplaceConfig, SdkConfig } from '../../../types';\nimport { MissingConfigError } from '../../../utils/_internal/error/transaction';\nimport { DEFAULT_NETWORK } from '../consts';\n\nexport function getWaasConnectors(\n\tmarketplaceConfig: MarketplaceConfig,\n\tsdkConfig: SdkConfig,\n): CreateConnectorFn[] {\n\tconst { projectAccessKey } = sdkConfig;\n\n\tconst waasConfigKey = sdkConfig.wallet?.embedded?.waasConfigKey;\n\n\tif (!waasConfigKey) throw new MissingConfigError('waasConfigKey');\n\n\tconst walletConnectProjectId = sdkConfig.wallet?.walletConnectProjectId;\n\tconst { googleClientId, appleClientId, appleRedirectURI } =\n\t\tsdkConfig.wallet?.embedded || {};\n\n\tconst { title: appName } = marketplaceConfig;\n\n\tconst walletOptions = marketplaceConfig.walletOptions;\n\n\tconst wallets: Wallet[] = [\n\t\temailWaas({\n\t\t\tprojectAccessKey,\n\t\t\twaasConfigKey,\n\t\t\tnetwork: DEFAULT_NETWORK,\n\t\t}),\n\t];\n\n\tif (walletOptions.connectors.includes('coinbase')) {\n\t\twallets.push(\n\t\t\tcoinbaseWallet({\n\t\t\t\tappName,\n\t\t\t}),\n\t\t);\n\t}\n\n\tif (\n\t\twalletConnectProjectId &&\n\t\twalletOptions.connectors.includes('walletconnect')\n\t) {\n\t\twallets.push(\n\t\t\twalletConnect({\n\t\t\t\tprojectId: walletConnectProjectId,\n\t\t\t}),\n\t\t);\n\t}\n\n\tif (googleClientId) {\n\t\twallets.push(\n\t\t\tgoogleWaas({\n\t\t\t\tprojectAccessKey,\n\t\t\t\tgoogleClientId,\n\t\t\t\twaasConfigKey,\n\t\t\t\tnetwork: DEFAULT_NETWORK,\n\t\t\t}),\n\t\t);\n\t}\n\n\tif (appleClientId) {\n\t\twallets.push(\n\t\t\tappleWaas({\n\t\t\t\tprojectAccessKey,\n\t\t\t\tappleClientId,\n\t\t\t\tappleRedirectURI,\n\t\t\t\twaasConfigKey,\n\t\t\t\tnetwork: DEFAULT_NETWORK,\n\t\t\t}),\n\t\t);\n\t}\n\n\treturn getKitConnectWallets(projectAccessKey, wallets);\n}\n","export const DEFAULT_NETWORK = 137;\n","import {\n\ttype SequenceOptions,\n\ttype Wallet,\n\tapple,\n\tcoinbaseWallet,\n\temail,\n\tfacebook,\n\tgetKitConnectWallets,\n\tgoogle,\n\tsequence,\n\ttwitch,\n\twalletConnect,\n} from '@0xsequence/kit';\nimport type { CreateConnectorFn } from 'wagmi';\nimport type { MarketplaceConfig, SdkConfig } from '../../../types';\nimport { DEFAULT_NETWORK } from '../consts';\n\nconst defaultNetwork = DEFAULT_NETWORK;\n\nexport function getUniversalConnectors(\n\tmarketplaceConfig: MarketplaceConfig,\n\tconfig: SdkConfig,\n): CreateConnectorFn[] {\n\tconst { projectAccessKey } = config;\n\tconst sequenceWalletOptions = {\n\t\tdefaultNetwork,\n\t\tconnect: {\n\t\t\tprojectAccessKey,\n\t\t\tapp: marketplaceConfig.title,\n\t\t\tsettings: {\n\t\t\t\tbannerUrl: marketplaceConfig.ogImage,\n\t\t\t},\n\t\t},\n\t};\n\tconst wallets = getWalletConfigs(\n\t\tmarketplaceConfig,\n\t\tsequenceWalletOptions,\n\t\tconfig.wallet?.walletConnectProjectId,\n\t);\n\tconst socialWallets = getSocialWalletConfigs(sequenceWalletOptions);\n\treturn getKitConnectWallets(projectAccessKey, [...socialWallets, ...wallets]);\n}\n\nfunction getWalletConfigs(\n\tmarketplaceConfig: MarketplaceConfig,\n\tsequenceWalletOptions: SequenceOptions,\n\twalletConnectProjectId?: string,\n): Wallet[] {\n\tconst wallets: Wallet[] = [];\n\n\tconst walletOptions = marketplaceConfig.walletOptions;\n\n\twallets.push(sequence(sequenceWalletOptions));\n\n\tif (walletOptions.connectors.includes('coinbase')) {\n\t\twallets.push(coinbaseWallet({ appName: marketplaceConfig.title }));\n\t}\n\n\tif (\n\t\twalletConnectProjectId &&\n\t\twalletOptions.connectors.includes('walletconnect')\n\t) {\n\t\twallets.push(walletConnect({ projectId: walletConnectProjectId }));\n\t}\n\n\treturn wallets;\n}\n\nfunction getSocialWalletConfigs(\n\tsequenceWalletOptions: SequenceOptions,\n): Wallet[] {\n\treturn [\n\t\temail(sequenceWalletOptions),\n\t\tfacebook(sequenceWalletOptions),\n\t\tgoogle(sequenceWalletOptions),\n\t\tapple(sequenceWalletOptions),\n\t\ttwitch(sequenceWalletOptions),\n\t] as const;\n}\n"],"mappings":"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","names":["coinbaseWallet","getKitConnectWallets","walletConnect","getKitConnectWallets","coinbaseWallet","walletConnect"]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
|
|
3
|
+
// src/types/builder-types.ts
|
|
4
|
+
var MarketplaceWallet = /* @__PURE__ */ ((MarketplaceWallet2) => {
|
|
5
|
+
MarketplaceWallet2["UNIVERSAL"] = "UNIVERSAL";
|
|
6
|
+
MarketplaceWallet2["EMBEDDED"] = "EMBEDDED";
|
|
7
|
+
return MarketplaceWallet2;
|
|
8
|
+
})(MarketplaceWallet || {});
|
|
9
|
+
var FilterCondition = /* @__PURE__ */ ((FilterCondition2) => {
|
|
10
|
+
FilterCondition2["ENTIRE_KEY"] = "ENTIRE_KEY";
|
|
11
|
+
FilterCondition2["SPECIFIC_VALUE"] = "SPECIFIC_VALUE";
|
|
12
|
+
return FilterCondition2;
|
|
13
|
+
})(FilterCondition || {});
|
|
14
|
+
var MarketplaceType = /* @__PURE__ */ ((MarketplaceType2) => {
|
|
15
|
+
MarketplaceType2["AMM"] = "AMM";
|
|
16
|
+
MarketplaceType2["P2P"] = "P2P";
|
|
17
|
+
MarketplaceType2["SEQUENCE"] = "SEQUENCE";
|
|
18
|
+
MarketplaceType2["ORDERBOOK"] = "ORDERBOOK";
|
|
19
|
+
return MarketplaceType2;
|
|
20
|
+
})(MarketplaceType || {});
|
|
21
|
+
|
|
22
|
+
export {
|
|
23
|
+
MarketplaceWallet,
|
|
24
|
+
FilterCondition,
|
|
25
|
+
MarketplaceType
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=chunk-DZKPDV63.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/types/builder-types.ts"],"sourcesContent":["import type { OrderbookKind } from '../react/_internal/api/marketplace.gen';\n\n// Manual copy of the types from builder\nexport enum MarketplaceWallet {\n\tUNIVERSAL = 'UNIVERSAL',\n\tEMBEDDED = 'EMBEDDED',\n}\n\nexport enum FilterCondition {\n\tENTIRE_KEY = 'ENTIRE_KEY',\n\tSPECIFIC_VALUE = 'SPECIFIC_VALUE',\n}\n\nexport enum MarketplaceType { // This is only used for marketplace v1\n\tAMM = 'AMM',\n\tP2P = 'P2P',\n\tSEQUENCE = 'SEQUENCE',\n\tORDERBOOK = 'ORDERBOOK',\n}\n\nexport interface MarketplaceWalletOptions {\n\twalletType: MarketplaceWallet;\n\toidcIssuers: { [key: string]: string };\n\tconnectors: Array<string>;\n\tincludeEIP6963Wallets: boolean;\n}\n\nexport interface MetadataFilterRule {\n\tkey: string;\n\tcondition: FilterCondition;\n\tvalue?: string;\n}\n\nexport interface CollectionFilterSettings {\n\tfilterOrder: Array<string>;\n\texclusions: Array<MetadataFilterRule>;\n}\n\nexport interface MarketplaceCollection {\n\tmarketplaceType: MarketplaceType;\n\tchainId: number;\n\taddress: string;\n\texchanges: Array<string>;\n\tbannerUrl: string;\n\tfeePercentage: number;\n\tcurrencyOptions: Array<string>;\n\tdestinationMarketplace: OrderbookKind;\n\tfilterSettings?: CollectionFilterSettings;\n}\n\nexport interface MarketplaceSocials {\n\ttwitter: string;\n\tdiscord: string;\n\twebsite: string;\n\ttiktok: string;\n\tinstagram: string;\n\tyoutube: string;\n}\n\nexport interface MarketplaceSettings {\n\tpublisherId: string;\n\ttitle: string;\n\tshortDescription: string;\n\tsocials: MarketplaceSocials;\n\tfaviconUrl: string;\n\tlandingBannerUrl: string;\n\tcollections: Array<MarketplaceCollection>;\n\twalletOptions: MarketplaceWalletOptions;\n\tlandingPageLayout: string;\n\tlogoUrl: string;\n\tbannerUrl: string;\n\tfontUrl?: string;\n\togImage?: string;\n}\n\nexport interface MarketplaceConfig extends MarketplaceSettings {\n\tcssString: string;\n\tmanifestUrl: string;\n}\n"],"mappings":";;;AAGO,IAAK,oBAAL,kBAAKA,uBAAL;AACN,EAAAA,mBAAA,eAAY;AACZ,EAAAA,mBAAA,cAAW;AAFA,SAAAA;AAAA,GAAA;AAKL,IAAK,kBAAL,kBAAKC,qBAAL;AACN,EAAAA,iBAAA,gBAAa;AACb,EAAAA,iBAAA,oBAAiB;AAFN,SAAAA;AAAA,GAAA;AAKL,IAAK,kBAAL,kBAAKC,qBAAL;AACN,EAAAA,iBAAA,SAAM;AACN,EAAAA,iBAAA,SAAM;AACN,EAAAA,iBAAA,cAAW;AACX,EAAAA,iBAAA,eAAY;AAJD,SAAAA;AAAA,GAAA;","names":["MarketplaceWallet","FilterCondition","MarketplaceType"]}
|
|
@@ -266,7 +266,7 @@ function getMarketplaceDetails({
|
|
|
266
266
|
originName,
|
|
267
267
|
kind
|
|
268
268
|
}) {
|
|
269
|
-
if (kind
|
|
269
|
+
if (kind === "sequence_marketplace_v1" /* sequence_marketplace_v1 */ || kind === "sequence_marketplace_v2" /* sequence_marketplace_v2 */) {
|
|
270
270
|
return MARKETPLACES.sequence;
|
|
271
271
|
}
|
|
272
272
|
let name = originName.toLowerCase();
|
|
@@ -299,4 +299,4 @@ export {
|
|
|
299
299
|
calculatePriceDifferencePercentage,
|
|
300
300
|
getMarketplaceDetails
|
|
301
301
|
};
|
|
302
|
-
//# sourceMappingURL=chunk-
|
|
302
|
+
//# sourceMappingURL=chunk-J6F5QOW5.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils/address.ts","../src/utils/get-public-rpc-client.ts","../src/utils/_internal/error/base.ts","../src/utils/_internal/error/transaction.ts","../src/utils/network.ts","../src/utils/price.ts","../src/react/ui/components/marketplace-logos/marketplace-logos.tsx","../src/utils/getMarketplaceDetails.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 { allNetworks, findNetworkConfig } from '@0xsequence/network';\nimport { http, type PublicClient, createPublicClient } from 'viem';\nimport type { ChainId } from '../react/_internal';\nimport { MissingConfigError } from './_internal/error/transaction';\n\nexport const getPublicRpcClient = (chainId: ChainId): PublicClient => {\n\tif (chainId === undefined) {\n\t\tthrow new MissingConfigError(\n\t\t\t`Network configuration for chainId: ${chainId}`,\n\t\t);\n\t}\n\n\tconst network = findNetworkConfig(allNetworks, chainId);\n\n\tif (!network) {\n\t\tthrow new MissingConfigError(\n\t\t\t`Network configuration for chainId: ${chainId}`,\n\t\t);\n\t}\n\n\treturn createPublicClient({\n\t\tchain: {\n\t\t\t...network,\n\t\t\tid: Number(chainId),\n\t\t\tname: network.name,\n\t\t\tnativeCurrency: { ...network.nativeToken },\n\t\t\trpcUrls: {\n\t\t\t\tdefault: {\n\t\t\t\t\thttp: [network.rpcUrl],\n\t\t\t\t},\n\t\t\t\tpublic: {\n\t\t\t\t\thttp: [network.rpcUrl],\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tbatch: {\n\t\t\tmulticall: true,\n\t\t},\n\t\ttransport: http(),\n\t});\n};\n","export type ErrorType<name extends string = 'Error'> = Error & { name: name };\n\nexport type Compute<type> = { [key in keyof type]: type[key] } & unknown;\n\ntype BaseErrorOptions = Compute<\n\t{ details?: string | undefined } | { cause: BaseError | Error }\n>;\n\nexport class BaseError extends Error {\n\tdetails: string;\n\tshortMessage: string;\n\n\tname = 'MarketplaceSdkBaseError';\n\n\tconstructor(shortMessage: string, options: BaseErrorOptions = {}) {\n\t\tsuper();\n\n\t\tconst details = 'details' in options ? options.details : '';\n\t\tthis.message = [\n\t\t\tshortMessage || 'An error occurred.',\n\t\t\t'',\n\t\t\t...(details ? [`Details: ${details}`] : []),\n\t\t].join('\\n');\n\n\t\tif ('cause' in options && options.cause) {\n\t\t\tthis.cause = options.cause;\n\t\t}\n\n\t\tthis.details = details || '';\n\t\tthis.shortMessage = shortMessage;\n\t}\n}\n","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 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","import { networks, type ChainId as sequenceChainId } from '@0xsequence/network';\nimport type { ChainId } from '../react/_internal';\n\nexport const getPresentableChainName = (chainId: ChainId) => {\n\tconst id = Number(chainId) as sequenceChainId;\n\treturn networks[id]?.name;\n};\n","import { formatUnits } from 'viem';\n\ntype CalculatePriceDifferencePercentageArgs = {\n\tinputPriceRaw: bigint;\n\tbasePriceRaw: bigint;\n\tdecimals: number;\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","import { type ComponentProps, lazy, Suspense } from 'react';\nimport { Image } from '@0xsequence/design-system';\n\n/* @__PURE__ */\nconst createMarketplaceLogo = (\n\timportFn: () => Promise<{ default: string }>,\n\talt: string,\n) => {\n\tconst LazyLogo = lazy(async () => {\n\t\tconst src = await importFn();\n\t\treturn {\n\t\t\tdefault: function MarketplaceLogo({\n\t\t\t\talt: altProp,\n\t\t\t\t...props\n\t\t\t}: ComponentProps<typeof Image>) {\n\t\t\t\treturn <Image src={src.default} alt={altProp || alt} {...props} />;\n\t\t\t},\n\t\t};\n\t});\n\n\treturn function MarketplaceLogo(props: ComponentProps<typeof Image>) {\n\t\treturn (\n\t\t\t<Suspense\n\t\t\t\tfallback={<div style={{ width: props.width, height: props.height }} />}\n\t\t\t>\n\t\t\t\t<LazyLogo {...props} />\n\t\t\t</Suspense>\n\t\t);\n\t};\n};\n\nexport const AlienSwapLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/alien_swap.png'),\n\t'AlienSwap Logo',\n);\nexport const AquaXyzLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/aqua-xyz.png'),\n\t'AquaXyz Logo',\n);\nexport const AuraLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/aura.png'),\n\t'Aura Logo',\n);\nexport const BlurLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/blur.png'),\n\t'Blur Logo',\n);\nexport const CoinbaseLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/coinbase.png'),\n\t'Coinbase Logo',\n);\nexport const ElementLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/element.png'),\n\t'Element Logo',\n);\nexport const FoundationLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/foundation.png'),\n\t'Foundation Logo',\n);\nexport const LooksRareLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/looks-rare.png'),\n\t'LooksRare Logo',\n);\nexport const MagicEdenLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/magic-eden.png'),\n\t'MagicEden Logo',\n);\nexport const ManifoldLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/manifold.png'),\n\t'Manifold Logo',\n);\nexport const MintifyLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/mintify.png'),\n\t'Mintify Logo',\n);\nexport const NftxLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/nftx.png'),\n\t'NFTX Logo',\n);\nexport const OkxLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/okx.png'),\n\t'OKX Logo',\n);\nexport const OpenSeaLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/open-sea.png'),\n\t'OpenSea Logo',\n);\nexport const RaribleLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/rarible.png'),\n\t'Rarible Logo',\n);\nexport const SequenceLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/sequence.png'),\n\t'Sequence Logo',\n);\nexport const SudoSwapLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/sudo-swap.png'),\n\t'SudoSwap Logo',\n);\nexport const SuperRareLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/super-rare.png'),\n\t'SuperRare Logo',\n);\nexport const X2y2Logo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/x2y2.png'),\n\t'X2Y2 Logo',\n);\nexport const ZoraLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/zora.png'),\n\t'Zora Logo',\n);\n","import { MarketplaceKind } from '../types';\nimport type { ComponentType } from 'react';\nimport type { Image } from '@0xsequence/design-system';\nimport {\n\tSequenceLogo,\n\tOpenSeaLogo,\n\tMagicEdenLogo,\n\tMintifyLogo,\n\tLooksRareLogo,\n\tX2y2Logo,\n\tBlurLogo,\n\tAlienSwapLogo,\n} from '../react/ui/components/marketplace-logos';\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};\n\ntype MarketplaceDetailsProp = {\n\toriginName: string;\n\tkind: MarketplaceKind;\n};\n\n// TODO: add suport 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"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/utils/address.ts","../src/utils/get-public-rpc-client.ts","../src/utils/_internal/error/base.ts","../src/utils/_internal/error/transaction.ts","../src/utils/network.ts","../src/utils/price.ts","../src/react/ui/components/marketplace-logos/marketplace-logos.tsx","../src/utils/getMarketplaceDetails.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 { allNetworks, findNetworkConfig } from '@0xsequence/network';\nimport { http, type PublicClient, createPublicClient } from 'viem';\nimport type { ChainId } from '../react/_internal';\nimport { MissingConfigError } from './_internal/error/transaction';\n\nexport const getPublicRpcClient = (chainId: ChainId): PublicClient => {\n\tif (chainId === undefined) {\n\t\tthrow new MissingConfigError(\n\t\t\t`Network configuration for chainId: ${chainId}`,\n\t\t);\n\t}\n\n\tconst network = findNetworkConfig(allNetworks, chainId);\n\n\tif (!network) {\n\t\tthrow new MissingConfigError(\n\t\t\t`Network configuration for chainId: ${chainId}`,\n\t\t);\n\t}\n\n\treturn createPublicClient({\n\t\tchain: {\n\t\t\t...network,\n\t\t\tid: Number(chainId),\n\t\t\tname: network.name,\n\t\t\tnativeCurrency: { ...network.nativeToken },\n\t\t\trpcUrls: {\n\t\t\t\tdefault: {\n\t\t\t\t\thttp: [network.rpcUrl],\n\t\t\t\t},\n\t\t\t\tpublic: {\n\t\t\t\t\thttp: [network.rpcUrl],\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tbatch: {\n\t\t\tmulticall: true,\n\t\t},\n\t\ttransport: http(),\n\t});\n};\n","export type ErrorType<name extends string = 'Error'> = Error & { name: name };\n\nexport type Compute<type> = { [key in keyof type]: type[key] } & unknown;\n\ntype BaseErrorOptions = Compute<\n\t{ details?: string | undefined } | { cause: BaseError | Error }\n>;\n\nexport class BaseError extends Error {\n\tdetails: string;\n\tshortMessage: string;\n\n\tname = 'MarketplaceSdkBaseError';\n\n\tconstructor(shortMessage: string, options: BaseErrorOptions = {}) {\n\t\tsuper();\n\n\t\tconst details = 'details' in options ? options.details : '';\n\t\tthis.message = [\n\t\t\tshortMessage || 'An error occurred.',\n\t\t\t'',\n\t\t\t...(details ? [`Details: ${details}`] : []),\n\t\t].join('\\n');\n\n\t\tif ('cause' in options && options.cause) {\n\t\t\tthis.cause = options.cause;\n\t\t}\n\n\t\tthis.details = details || '';\n\t\tthis.shortMessage = shortMessage;\n\t}\n}\n","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 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","import { networks, type ChainId as sequenceChainId } from '@0xsequence/network';\nimport type { ChainId } from '../react/_internal';\n\nexport const getPresentableChainName = (chainId: ChainId) => {\n\tconst id = Number(chainId) as sequenceChainId;\n\treturn networks[id]?.name;\n};\n","import { formatUnits } from 'viem';\n\ntype CalculatePriceDifferencePercentageArgs = {\n\tinputPriceRaw: bigint;\n\tbasePriceRaw: bigint;\n\tdecimals: number;\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","import { type ComponentProps, lazy, Suspense } from 'react';\nimport { Image } from '@0xsequence/design-system';\n\n/* @__PURE__ */\nconst createMarketplaceLogo = (\n\timportFn: () => Promise<{ default: string }>,\n\talt: string,\n) => {\n\tconst LazyLogo = lazy(async () => {\n\t\tconst src = await importFn();\n\t\treturn {\n\t\t\tdefault: function MarketplaceLogo({\n\t\t\t\talt: altProp,\n\t\t\t\t...props\n\t\t\t}: ComponentProps<typeof Image>) {\n\t\t\t\treturn <Image src={src.default} alt={altProp || alt} {...props} />;\n\t\t\t},\n\t\t};\n\t});\n\n\treturn function MarketplaceLogo(props: ComponentProps<typeof Image>) {\n\t\treturn (\n\t\t\t<Suspense\n\t\t\t\tfallback={<div style={{ width: props.width, height: props.height }} />}\n\t\t\t>\n\t\t\t\t<LazyLogo {...props} />\n\t\t\t</Suspense>\n\t\t);\n\t};\n};\n\nexport const AlienSwapLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/alien_swap.png'),\n\t'AlienSwap Logo',\n);\nexport const AquaXyzLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/aqua-xyz.png'),\n\t'AquaXyz Logo',\n);\nexport const AuraLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/aura.png'),\n\t'Aura Logo',\n);\nexport const BlurLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/blur.png'),\n\t'Blur Logo',\n);\nexport const CoinbaseLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/coinbase.png'),\n\t'Coinbase Logo',\n);\nexport const ElementLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/element.png'),\n\t'Element Logo',\n);\nexport const FoundationLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/foundation.png'),\n\t'Foundation Logo',\n);\nexport const LooksRareLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/looks-rare.png'),\n\t'LooksRare Logo',\n);\nexport const MagicEdenLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/magic-eden.png'),\n\t'MagicEden Logo',\n);\nexport const ManifoldLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/manifold.png'),\n\t'Manifold Logo',\n);\nexport const MintifyLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/mintify.png'),\n\t'Mintify Logo',\n);\nexport const NftxLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/nftx.png'),\n\t'NFTX Logo',\n);\nexport const OkxLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/okx.png'),\n\t'OKX Logo',\n);\nexport const OpenSeaLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/open-sea.png'),\n\t'OpenSea Logo',\n);\nexport const RaribleLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/rarible.png'),\n\t'Rarible Logo',\n);\nexport const SequenceLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/sequence.png'),\n\t'Sequence Logo',\n);\nexport const SudoSwapLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/sudo-swap.png'),\n\t'SudoSwap Logo',\n);\nexport const SuperRareLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/super-rare.png'),\n\t'SuperRare Logo',\n);\nexport const X2y2Logo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/x2y2.png'),\n\t'X2Y2 Logo',\n);\nexport const ZoraLogo = createMarketplaceLogo(\n\t() => import('../../images/marketplaces/zora.png'),\n\t'Zora Logo',\n);\n","import { MarketplaceKind } from '../types';\nimport type { ComponentType } from 'react';\nimport type { Image } from '@0xsequence/design-system';\nimport {\n\tSequenceLogo,\n\tOpenSeaLogo,\n\tMagicEdenLogo,\n\tMintifyLogo,\n\tLooksRareLogo,\n\tX2y2Logo,\n\tBlurLogo,\n\tAlienSwapLogo,\n} from '../react/ui/components/marketplace-logos';\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};\n\ntype MarketplaceDetailsProp = {\n\toriginName: string;\n\tkind: MarketplaceKind;\n};\n\n// TODO: add suport 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"],"mappings":"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","names":[]}
|