@0xsequence/marketplace-sdk 0.8.4 → 0.8.5

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.
Files changed (56) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/{chunk-25CAMYCG.js → chunk-BB2PTJHI.js} +22 -20
  3. package/dist/chunk-BB2PTJHI.js.map +1 -0
  4. package/dist/{chunk-VBRJ2OPM.js → chunk-EZFCQZHU.js} +2 -2
  5. package/dist/{chunk-VF3LWBQB.js → chunk-KCLMSSPS.js} +6 -6
  6. package/dist/{chunk-XUNDLCEH.js → chunk-LDZZUYG7.js} +2 -2
  7. package/dist/{chunk-HRL2TMXU.js → chunk-SFSFIGHM.js} +44 -34
  8. package/dist/{chunk-HRL2TMXU.js.map → chunk-SFSFIGHM.js.map} +1 -1
  9. package/dist/{chunk-44YGZVBS.js → chunk-ZVTG6US2.js} +2 -2
  10. package/dist/index.css +4 -4
  11. package/dist/index.css.map +1 -1
  12. package/dist/index.js +6 -6
  13. package/dist/react/_internal/databeat/index.js +5 -5
  14. package/dist/react/_internal/index.d.ts +1 -1
  15. package/dist/react/_internal/index.js +3 -1
  16. package/dist/react/_internal/wagmi/index.d.ts +3 -2
  17. package/dist/react/_internal/wagmi/index.js +3 -1
  18. package/dist/react/hooks/index.js +4 -4
  19. package/dist/react/hooks/options/index.js +2 -2
  20. package/dist/react/index.js +7 -7
  21. package/dist/react/queries/index.js +1 -1
  22. package/dist/react/ssr/index.js +1 -1
  23. package/dist/react/ui/components/collectible-card/index.d.ts +3 -2
  24. package/dist/react/ui/components/collectible-card/index.js +7 -7
  25. package/dist/react/ui/icons/index.js +2 -2
  26. package/dist/react/ui/index.js +7 -7
  27. package/dist/react/ui/modals/_internal/components/actionModal/index.js +5 -5
  28. package/dist/types/index.js +1 -1
  29. package/dist/utils/abi/index.js +5 -5
  30. package/dist/utils/index.js +6 -6
  31. package/package.json +19 -19
  32. package/src/react/_internal/wagmi/__tests__/create-config.test.ts +1 -11
  33. package/src/react/_internal/wagmi/get-connectors.ts +27 -24
  34. package/src/react/ui/components/_internals/action-button/__tests__/ActionButtonBody.test.tsx +27 -94
  35. package/src/react/ui/components/_internals/action-button/__tests__/NonOwnerActions.test.tsx +59 -0
  36. package/src/react/ui/components/_internals/action-button/__tests__/OwnerActions.test.tsx +73 -0
  37. package/src/react/ui/components/_internals/action-button/__tests__/useActionButtonLogic.test.tsx +77 -0
  38. package/src/react/ui/components/_internals/action-button/components/ActionButtonBody.tsx +3 -2
  39. package/src/react/ui/components/_internals/action-button/hooks/useActionButtonLogic.ts +4 -3
  40. package/src/react/ui/components/collectible-card/CollectibleAsset.tsx +1 -0
  41. package/src/react/ui/components/collectible-card/CollectibleCard.tsx +18 -12
  42. package/src/react/ui/components/collectible-card/__tests__/CollectibleAsset.test.tsx +200 -0
  43. package/src/react/ui/components/collectible-card/__tests__/CollectibleCard.test.tsx +92 -123
  44. package/src/react/ui/components/collectible-card/__tests__/Footer.test.tsx +136 -0
  45. package/src/react/ui/modals/BuyModal/__tests__/Modal.test.tsx +2 -8
  46. package/src/react/ui/modals/SellModal/__tests__/Modal.test.tsx +72 -135
  47. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/__tests__/ActionButtons.test.tsx +72 -0
  48. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/__tests__/BalanceIndicator.test.tsx +50 -0
  49. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/__tests__/SelectWaasFeeOptions.test.tsx +193 -0
  50. package/test/test-utils.tsx +12 -22
  51. package/dist/chunk-25CAMYCG.js.map +0 -1
  52. package/src/react/ui/components/_internals/action-button/__tests__/ActionButton.test.tsx +0 -107
  53. /package/dist/{chunk-VBRJ2OPM.js.map → chunk-EZFCQZHU.js.map} +0 -0
  54. /package/dist/{chunk-VF3LWBQB.js.map → chunk-KCLMSSPS.js.map} +0 -0
  55. /package/dist/{chunk-XUNDLCEH.js.map → chunk-LDZZUYG7.js.map} +0 -0
  56. /package/dist/{chunk-44YGZVBS.js.map → chunk-ZVTG6US2.js.map} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # @0xsequence/marketplace-sdk
2
2
 
3
+ ## 0.8.5
4
+
5
+ ### Patch Changes
6
+
7
+ - Ignore embedded connectors if ecosystem connector is enabled
8
+ - CollectibleCard prop `lowestListing` renamed to `collectible` and `balanceIsLoading` is mandatory
9
+ - Improved test coverage and misc fixes
10
+
3
11
  ## 0.8.4
4
12
 
5
13
  ### Patch Changes
@@ -88,8 +88,12 @@ function getConnectors({
88
88
  const connectors = commonConnectors(marketplaceConfig, sdkConfig);
89
89
  if (walletType === "UNIVERSAL" /* UNIVERSAL */) {
90
90
  connectors.push(...getUniversalWalletConfigs(sdkConfig, marketplaceConfig));
91
+ } else if (walletType === "EMBEDDED" /* EMBEDDED */) {
92
+ connectors.push(...getWaasConnectors(sdkConfig));
93
+ } else if (walletType === "ECOSYSTEM" /* ECOSYSTEM */) {
94
+ connectors.push(getEcosystemConnector(marketplaceConfig, sdkConfig));
91
95
  } else {
92
- connectors.push(...getWaasConnectors(marketplaceConfig, sdkConfig));
96
+ throw new Error("Invalid wallet type");
93
97
  }
94
98
  return getConnectWallets(sdkConfig.projectAccessKey, connectors);
95
99
  }
@@ -137,7 +141,7 @@ function getUniversalWalletConfigs(config, marketplaceConfig) {
137
141
  twitch(sequenceWalletOptions)
138
142
  ];
139
143
  }
140
- function getWaasConnectors(marketplaceConfig, sdkConfig) {
144
+ function getWaasConnectors(sdkConfig) {
141
145
  const { projectAccessKey } = sdkConfig;
142
146
  const waasConfigKey = sdkConfig.wallet?.embedded?.waasConfigKey;
143
147
  if (!waasConfigKey) throw new MissingConfigError("waasConfigKey");
@@ -170,27 +174,24 @@ function getWaasConnectors(marketplaceConfig, sdkConfig) {
170
174
  })
171
175
  );
172
176
  }
173
- const walletType = marketplaceConfig.walletOptions.walletType;
174
- if (walletType === "ECOSYSTEM" /* ECOSYSTEM */) {
175
- const ecosystemOptions = marketplaceConfig.walletOptions.ecosystem;
176
- if (!ecosystemOptions) throw new MissingConfigError("ecosystem");
177
- const { walletAppName, walletUrl, logoDarkUrl, logoLightUrl } = ecosystemOptions;
178
- wallets.push(
179
- ecosystemWallet({
180
- projectAccessKey: sdkConfig.projectAccessKey,
181
- walletUrl,
182
- name: walletAppName,
183
- defaultNetwork: DEFAULT_NETWORK,
184
- logoDark: getEcosystemLogo(logoDarkUrl, walletAppName),
185
- logoLight: getEcosystemLogo(logoLightUrl, walletAppName)
186
- })
187
- );
188
- }
189
177
  return wallets;
190
178
  }
179
+ function getEcosystemConnector(marketplaceConfig, sdkConfig) {
180
+ const ecosystemOptions = marketplaceConfig.walletOptions.ecosystem;
181
+ if (!ecosystemOptions) throw new MissingConfigError("ecosystem");
182
+ const { walletAppName, walletUrl, logoDarkUrl, logoLightUrl } = ecosystemOptions;
183
+ return ecosystemWallet({
184
+ projectAccessKey: sdkConfig.projectAccessKey,
185
+ walletUrl,
186
+ name: walletAppName,
187
+ defaultNetwork: DEFAULT_NETWORK,
188
+ logoDark: getEcosystemLogo(logoDarkUrl, walletAppName),
189
+ logoLight: getEcosystemLogo(logoLightUrl, walletAppName)
190
+ });
191
+ }
191
192
  function getEcosystemLogo(url, name) {
192
193
  if (!url) return () => null;
193
- const Logo = () => React.createElement("img", { src: url, alt: name });
194
+ const Logo = () => React.createElement("img", { src: url, alt: name, width: 32, height: 32 });
194
195
  Logo.displayName = "EcosystemLogo";
195
196
  return Logo;
196
197
  }
@@ -274,9 +275,10 @@ export {
274
275
  TransactionType,
275
276
  getConnectors,
276
277
  getWaasConnectors,
278
+ getEcosystemConnector,
277
279
  createWagmiConfig,
278
280
  MarketplaceWallet,
279
281
  FilterCondition,
280
282
  MarketplaceType
281
283
  };
282
- //# sourceMappingURL=chunk-25CAMYCG.js.map
284
+ //# sourceMappingURL=chunk-BB2PTJHI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/react/_internal/wagmi/create-config.ts","../src/react/_internal/consts.ts","../src/react/_internal/get-provider.ts","../src/react/_internal/types.ts","../src/types/builder-types.ts","../src/react/_internal/wagmi/get-connectors.ts"],"sourcesContent":["import { getDefaultChains } from '@0xsequence/connect';\nimport { allNetworks, findNetworkConfig } from '@0xsequence/network';\nimport type { Chain, Transport } from 'viem';\nimport { http, cookieStorage, createConfig, createStorage } from 'wagmi';\nimport {\n\ttype Env,\n\ttype MarketplaceConfig,\n\tMarketplaceWallet,\n\ttype SdkConfig,\n} from '../../../types';\nimport { DEFAULT_NETWORK } from '../consts';\nimport { getConnectors } from './get-connectors';\n\nexport const createWagmiConfig = (\n\tmarketplaceConfig: MarketplaceConfig,\n\tsdkConfig: SdkConfig,\n\tssr?: boolean,\n) => {\n\tconst chains = getChainConfigs(marketplaceConfig);\n\tconst nodeGatewayEnv = sdkConfig._internal?.nodeGatewayEnv ?? 'production';\n\tconst transports = getTransportConfigs(\n\t\tchains,\n\t\tsdkConfig.projectAccessKey,\n\t\tnodeGatewayEnv,\n\t);\n\n\tlet walletType = marketplaceConfig.walletOptions.walletType;\n\n\t// TODO: This will bring issues.. But we relay on the waasConfigKey to detect if the boilerplates should use\n\t// waas or universal.. we need to find a better way to do this..\n\tif (\n\t\tsdkConfig.wallet?.embedded?.waasConfigKey &&\n\t\twalletType !== MarketplaceWallet.ECOSYSTEM\n\t) {\n\t\twalletType = MarketplaceWallet.EMBEDDED;\n\t}\n\n\tconst connectors = getConnectors({\n\t\tmarketplaceConfig,\n\t\tsdkConfig,\n\t\twalletType,\n\t});\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\tif (supportedChainIds.size === 0) {\n\t\tsupportedChainIds.add(DEFAULT_NETWORK);\n\t}\n\n\tconst chains = getDefaultChains([...supportedChainIds]);\n\n\treturn chains;\n}\n\nfunction getTransportConfigs(\n\tchains: [Chain, ...Chain[]],\n\tprojectAccessKey: string,\n\tnodeGatewayEnv: Env,\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 (nodeGatewayEnv === 'development') {\n\t\t\t\t\trpcUrl = rpcUrl.replace('nodes.', 'dev-nodes.');\n\t\t\t\t}\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","export const DEFAULT_NETWORK = 137;\n","export const PROVIDER_ID = 'sdk-provider';\n\nexport function getProviderEl() {\n\tif (!globalThis.document) return null;\n\treturn document.getElementById(PROVIDER_ID);\n}\n","import type { Address } from 'viem';\nimport type { Chain } from 'viem';\nimport { z } from 'zod';\nimport type { ContractType, CreateReq } from '../../types';\nimport type { MarketplaceConfig, SdkConfig } from '../../types';\nimport type { MarketplaceKind, OrderbookKind } from './api';\n\nexport const QueryArgSchema = z\n\t.object({\n\t\tenabled: z.boolean().optional(),\n\t})\n\t.optional();\n\nexport type QueryArg = z.infer<typeof QueryArgSchema>;\n\nexport const CollectableIdSchema = z.string().or(z.number());\n\nexport const AddressSchema = z.string().transform((val, ctx) => {\n\tconst regex = /^0x[a-fA-F0-9]{40}$/;\n\n\tif (!regex.test(val)) {\n\t\tctx.addIssue({\n\t\t\tcode: z.ZodIssueCode.custom,\n\t\t\tmessage: `Invalid Address ${val}`,\n\t\t});\n\t}\n\n\treturn val as Address;\n});\n\nexport type CollectionType = ContractType.ERC1155 | ContractType.ERC721;\n\ntype TransactionStep = {\n\texist: boolean;\n\tisExecuting: boolean;\n\texecute: () => Promise<void>;\n};\n\nexport type TransactionSteps = {\n\tapproval: TransactionStep;\n\ttransaction: TransactionStep;\n};\n\nexport enum TransactionType {\n\tBUY = 'BUY',\n\tSELL = 'SELL',\n\tLISTING = 'LISTING',\n\tOFFER = 'OFFER',\n\tTRANSFER = 'TRANSFER',\n\tCANCEL = 'CANCEL',\n}\n\nexport interface TransactionConfig {\n\ttype: TransactionType;\n\tchainId: number;\n\tchains: readonly Chain[];\n\tcollectionAddress: string;\n\tsdkConfig: SdkConfig;\n\tmarketplaceConfig: MarketplaceConfig;\n\torderbookKind?: OrderbookKind;\n}\n\nexport interface BuyInput {\n\torderId: string;\n\tcollectableDecimals: number;\n\tmarketplace: MarketplaceKind;\n\tquantity: string;\n}\n\nexport interface SellInput {\n\torderId: string;\n\tmarketplace: MarketplaceKind;\n\tquantity?: string;\n}\n\nexport interface ListingInput {\n\tcontractType: ContractType;\n\tlisting: CreateReq;\n}\n\nexport interface OfferInput {\n\tcontractType: ContractType;\n\toffer: CreateReq;\n}\n\nexport interface CancelInput {\n\torderId: string;\n\tmarketplace: MarketplaceKind;\n}\n","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\tECOSYSTEM = 'ECOSYSTEM',\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 EcosystemWalletSettings {\n\twalletUrl: string;\n\twalletAppName: string;\n\tlogoLightUrl?: string;\n\tlogoDarkUrl?: string;\n}\nexport interface MarketplaceWalletOptions {\n\twalletType: MarketplaceWallet;\n\toidcIssuers: { [key: string]: string };\n\tconnectors: Array<string>;\n\tincludeEIP6963Wallets: boolean;\n\tecosystem?: EcosystemWalletSettings;\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\tisLAOSERC721?: boolean;\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","import {\n\ttype SequenceOptions,\n\ttype Wallet,\n\tapple,\n\tappleWaas,\n\tcoinbaseWallet,\n\tecosystemWallet,\n\temail,\n\temailWaas,\n\tfacebook,\n\tgetConnectWallets,\n\tgoogle,\n\tgoogleWaas,\n\tsequence,\n\ttwitch,\n\twalletConnect,\n} from '@0xsequence/connect';\nimport React, { type FunctionComponent } from 'react';\nimport type { CreateConnectorFn } from 'wagmi';\nimport {\n\ttype Env,\n\ttype MarketplaceConfig,\n\tMarketplaceWallet,\n\ttype SdkConfig,\n} from '../../../types';\nimport { MissingConfigError } from '../../../utils/_internal/error/transaction';\nimport { DEFAULT_NETWORK } from '../consts';\n\nexport function getConnectors({\n\tmarketplaceConfig,\n\tsdkConfig,\n\twalletType,\n}: {\n\tmarketplaceConfig: MarketplaceConfig;\n\tsdkConfig: SdkConfig;\n\twalletType: MarketplaceWallet;\n}): CreateConnectorFn[] {\n\tconst connectors = commonConnectors(marketplaceConfig, sdkConfig);\n\n\tif (walletType === MarketplaceWallet.UNIVERSAL) {\n\t\tconnectors.push(...getUniversalWalletConfigs(sdkConfig, marketplaceConfig));\n\t} else if (walletType === MarketplaceWallet.EMBEDDED) {\n\t\tconnectors.push(...getWaasConnectors(sdkConfig));\n\t} else if (walletType === MarketplaceWallet.ECOSYSTEM) {\n\t\tconnectors.push(getEcosystemConnector(marketplaceConfig, sdkConfig));\n\t} else {\n\t\tthrow new Error('Invalid wallet type');\n\t}\n\n\treturn getConnectWallets(sdkConfig.projectAccessKey, connectors);\n}\n\nfunction commonConnectors(\n\tmarketplaceConfig: MarketplaceConfig,\n\tsdkConfig: SdkConfig,\n) {\n\tconst wallets = [];\n\tconst { title: appName } = marketplaceConfig;\n\tconst walletOptions = marketplaceConfig.walletOptions;\n\tconst walletConnectProjectId = sdkConfig.wallet?.walletConnectProjectId;\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\treturn wallets;\n}\n\nfunction getUniversalWalletConfigs(\n\tconfig: SdkConfig,\n\tmarketplaceConfig: MarketplaceConfig,\n): Wallet[] {\n\tconst { projectAccessKey } = config;\n\tconst sequenceWalletEnv = config._internal?.sequenceWalletEnv || 'production';\n\n\tconst sequenceWalletOptions = {\n\t\twalletAppURL: getSequenceWalletURL(sequenceWalletEnv),\n\t\tdefaultNetwork: DEFAULT_NETWORK,\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} satisfies SequenceOptions;\n\n\treturn [\n\t\tsequence(sequenceWalletOptions),\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\nexport function getWaasConnectors(sdkConfig: SdkConfig): Wallet[] {\n\tconst { projectAccessKey } = sdkConfig;\n\n\tconst waasConfigKey = sdkConfig.wallet?.embedded?.waasConfigKey;\n\n\tif (!waasConfigKey) throw new MissingConfigError('waasConfigKey');\n\n\tconst { googleClientId, appleClientId, appleRedirectURI } =\n\t\tsdkConfig.wallet?.embedded || {};\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 (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 wallets;\n}\n\nexport function getEcosystemConnector(\n\tmarketplaceConfig: MarketplaceConfig,\n\tsdkConfig: SdkConfig,\n): Wallet {\n\tconst ecosystemOptions = marketplaceConfig.walletOptions.ecosystem;\n\tif (!ecosystemOptions) throw new MissingConfigError('ecosystem');\n\tconst { walletAppName, walletUrl, logoDarkUrl, logoLightUrl } =\n\t\tecosystemOptions;\n\n\treturn ecosystemWallet({\n\t\tprojectAccessKey: sdkConfig.projectAccessKey,\n\t\twalletUrl,\n\t\tname: walletAppName,\n\t\tdefaultNetwork: DEFAULT_NETWORK,\n\t\tlogoDark: getEcosystemLogo(logoDarkUrl, walletAppName),\n\t\tlogoLight: getEcosystemLogo(logoLightUrl, walletAppName),\n\t});\n}\n\nfunction getEcosystemLogo(\n\turl: string | undefined,\n\tname: string,\n): FunctionComponent {\n\tif (!url) return () => null;\n\tconst Logo = () =>\n\t\tReact.createElement('img', { src: url, alt: name, width: 32, height: 32 });\n\tLogo.displayName = 'EcosystemLogo';\n\treturn Logo;\n}\n\nfunction getSequenceWalletURL(env: Env) {\n\tswitch (env) {\n\t\tcase 'development':\n\t\t\treturn 'https://dev.sequence.app';\n\t\tcase 'production':\n\t\t\treturn 'https://sequence.app';\n\t\tcase 'next':\n\t\t\treturn 'https://next.sequence.app';\n\t}\n}\n"],"mappings":"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","names":["TransactionType","MarketplaceWallet","FilterCondition","MarketplaceType"]}
@@ -5,7 +5,7 @@ import {
5
5
  MODAL_OVERLAY_PROPS,
6
6
  useSwitchChainModal,
7
7
  useWallet
8
- } from "./chunk-VF3LWBQB.js";
8
+ } from "./chunk-KCLMSSPS.js";
9
9
 
10
10
  // src/react/ui/modals/_internal/components/actionModal/ActionModal.tsx
11
11
  import { Button, Modal, Spinner, Text } from "@0xsequence/design-system";
@@ -125,4 +125,4 @@ export {
125
125
  openModal,
126
126
  closeModal
127
127
  };
128
- //# sourceMappingURL=chunk-VBRJ2OPM.js.map
128
+ //# sourceMappingURL=chunk-EZFCQZHU.js.map
@@ -2,7 +2,7 @@
2
2
 
3
3
  import {
4
4
  collectionOptions
5
- } from "./chunk-XUNDLCEH.js";
5
+ } from "./chunk-LDZZUYG7.js";
6
6
  import {
7
7
  InfoIcon_default
8
8
  } from "./chunk-SJU6QZHM.js";
@@ -14,12 +14,12 @@ import {
14
14
  compareAddress,
15
15
  getPresentableChainName
16
16
  } from "./chunk-BGY4WXER.js";
17
- import {
18
- EIP2981_ABI
19
- } from "./chunk-XX4EVWBF.js";
20
17
  import {
21
18
  ERC1155_ABI
22
19
  } from "./chunk-FUM4OGOQ.js";
20
+ import {
21
+ EIP2981_ABI
22
+ } from "./chunk-XX4EVWBF.js";
23
23
  import {
24
24
  balanceOfCollectibleOptions,
25
25
  highestOfferOptions,
@@ -36,7 +36,7 @@ import {
36
36
  CollectableIdSchema,
37
37
  PROVIDER_ID,
38
38
  QueryArgSchema
39
- } from "./chunk-25CAMYCG.js";
39
+ } from "./chunk-BB2PTJHI.js";
40
40
  import {
41
41
  BaseError,
42
42
  ChainSwitchError,
@@ -2697,4 +2697,4 @@ export {
2697
2697
  collectionDetailsPollingOptions,
2698
2698
  useCollectionDetailsPolling
2699
2699
  };
2700
- //# sourceMappingURL=chunk-VF3LWBQB.js.map
2700
+ //# sourceMappingURL=chunk-KCLMSSPS.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  AddressSchema,
3
3
  QueryArgSchema
4
- } from "./chunk-25CAMYCG.js";
4
+ } from "./chunk-BB2PTJHI.js";
5
5
  import {
6
6
  collectionKeys,
7
7
  getMetadataClient
@@ -35,4 +35,4 @@ export {
35
35
  fetchCollection,
36
36
  collectionOptions
37
37
  };
38
- //# sourceMappingURL=chunk-XUNDLCEH.js.map
38
+ //# sourceMappingURL=chunk-LDZZUYG7.js.map
@@ -2,10 +2,10 @@
2
2
 
3
3
  import {
4
4
  ActionModal
5
- } from "./chunk-VBRJ2OPM.js";
5
+ } from "./chunk-EZFCQZHU.js";
6
6
  import {
7
7
  useAnalytics
8
- } from "./chunk-44YGZVBS.js";
8
+ } from "./chunk-ZVTG6US2.js";
9
9
  import {
10
10
  BellIcon_default,
11
11
  CalendarIcon_default,
@@ -33,7 +33,7 @@ import {
33
33
  useSwitchChainModal,
34
34
  useTransferTokens,
35
35
  useWallet
36
- } from "./chunk-VF3LWBQB.js";
36
+ } from "./chunk-KCLMSSPS.js";
37
37
  import {
38
38
  DEFAULT_MARKETPLACE_FEE_PERCENTAGE
39
39
  } from "./chunk-Y63BOO6M.js";
@@ -4801,7 +4801,6 @@ import { observer as observer18 } from "@legendapp/state/react";
4801
4801
  // src/react/ui/components/_internals/action-button/components/ActionButtonBody.tsx
4802
4802
  import { useOpenConnectModal } from "@0xsequence/connect";
4803
4803
  import { Button as Button8 } from "@0xsequence/design-system";
4804
- import { useAccount as useAccount8 } from "wagmi";
4805
4804
 
4806
4805
  // src/react/ui/components/_internals/action-button/store.ts
4807
4806
  import { observable as observable9 } from "@legendapp/state";
@@ -4838,7 +4837,8 @@ function ActionButtonBody({
4838
4837
  icon,
4839
4838
  action
4840
4839
  }) {
4841
- const { address } = useAccount8();
4840
+ const { wallet } = useWallet();
4841
+ const address = wallet?.address;
4842
4842
  const { setOpenConnectModal } = useOpenConnectModal();
4843
4843
  const handleClick = (e) => {
4844
4844
  e.preventDefault();
@@ -4978,21 +4978,21 @@ function OwnerActions({
4978
4978
 
4979
4979
  // src/react/ui/components/_internals/action-button/hooks/useActionButtonLogic.ts
4980
4980
  import { useEffect as useEffect11 } from "react";
4981
- import { useAccount as useAccount9 } from "wagmi";
4982
4981
  var useActionButtonLogic = ({
4983
4982
  tokenId,
4984
4983
  owned,
4985
4984
  action,
4986
4985
  onCannotPerformAction
4987
4986
  }) => {
4988
- const { address } = useAccount9();
4987
+ const { wallet } = useWallet();
4988
+ const address = wallet?.address;
4989
4989
  const actionsThatOwnersCannotPerform = [
4990
4990
  "Buy" /* BUY */,
4991
4991
  "Make an offer" /* OFFER */
4992
4992
  ];
4993
4993
  const pendingActionType = actionButtonStore.pendingAction.type.get();
4994
4994
  useEffect11(() => {
4995
- if (owned && actionButtonStore.pendingAction.get() && address && !actionsThatOwnersCannotPerform.includes(action) && actionButtonStore.pendingAction.get()?.collectibleId === tokenId) {
4995
+ if (owned && actionButtonStore.pendingAction.get() && address && actionsThatOwnersCannotPerform.includes(action) && actionButtonStore.pendingAction.get()?.collectibleId === tokenId) {
4996
4996
  onCannotPerformAction?.(
4997
4997
  pendingActionType
4998
4998
  );
@@ -5086,6 +5086,7 @@ function CollectibleAssetSkeleton() {
5086
5086
  return /* @__PURE__ */ jsx40(
5087
5087
  Skeleton10,
5088
5088
  {
5089
+ "data-testid": "collectible-asset-skeleton",
5089
5090
  size: "lg",
5090
5091
  className: "absolute inset-0 h-full w-full animate-shimmer",
5091
5092
  style: {
@@ -5299,22 +5300,29 @@ var TokenTypeBalancePill = ({
5299
5300
  // src/react/ui/components/collectible-card/CollectibleCard.tsx
5300
5301
  import { jsx as jsx42, jsxs as jsxs31 } from "react/jsx-runtime";
5301
5302
  function CollectibleSkeleton() {
5302
- return /* @__PURE__ */ jsxs31("div", { className: "w-card-width overflow-hidden rounded-xl border border-border-base focus-visible:border-border-focus focus-visible:shadow-none focus-visible:outline-focus active:border-border-focus active:shadow-none", children: [
5303
- /* @__PURE__ */ jsx42("div", { className: "relative aspect-square overflow-hidden bg-background-secondary", children: /* @__PURE__ */ jsx42(
5304
- Skeleton11,
5305
- {
5306
- size: "lg",
5307
- className: "absolute inset-0 h-full w-full animate-shimmer",
5308
- style: {
5309
- borderRadius: 0
5310
- }
5311
- }
5312
- ) }),
5313
- /* @__PURE__ */ jsxs31("div", { className: "mt-2 flex flex-col gap-2 px-4 pb-4", children: [
5314
- /* @__PURE__ */ jsx42(Skeleton11, { size: "lg", className: "animate-shimmer" }),
5315
- /* @__PURE__ */ jsx42(Skeleton11, { size: "sm", className: "animate-shimmer" })
5316
- ] })
5317
- ] });
5303
+ return /* @__PURE__ */ jsxs31(
5304
+ "div",
5305
+ {
5306
+ "data-testid": "collectible-card-skeleton",
5307
+ className: "w-card-width overflow-hidden rounded-xl border border-border-base focus-visible:border-border-focus focus-visible:shadow-none focus-visible:outline-focus active:border-border-focus active:shadow-none",
5308
+ children: [
5309
+ /* @__PURE__ */ jsx42("div", { className: "relative aspect-square overflow-hidden bg-background-secondary", children: /* @__PURE__ */ jsx42(
5310
+ Skeleton11,
5311
+ {
5312
+ size: "lg",
5313
+ className: "absolute inset-0 h-full w-full animate-shimmer",
5314
+ style: {
5315
+ borderRadius: 0
5316
+ }
5317
+ }
5318
+ ) }),
5319
+ /* @__PURE__ */ jsxs31("div", { className: "mt-2 flex flex-col gap-2 px-4 pb-4", children: [
5320
+ /* @__PURE__ */ jsx42(Skeleton11, { size: "lg", className: "animate-shimmer" }),
5321
+ /* @__PURE__ */ jsx42(Skeleton11, { size: "sm", className: "animate-shimmer" })
5322
+ ] })
5323
+ ]
5324
+ }
5325
+ );
5318
5326
  }
5319
5327
  function CollectibleCard({
5320
5328
  collectibleId,
@@ -5322,30 +5330,32 @@ function CollectibleCard({
5322
5330
  collectionAddress,
5323
5331
  orderbookKind,
5324
5332
  collectionType,
5325
- lowestListing,
5333
+ collectible,
5326
5334
  onCollectibleClick,
5327
5335
  onOfferClick,
5328
5336
  balance,
5337
+ balanceIsLoading,
5329
5338
  cardLoading,
5330
5339
  onCannotPerformAction,
5331
5340
  assetSrcPrefixUrl
5332
5341
  }) {
5333
- const collectibleMetadata = lowestListing?.metadata;
5334
- const highestOffer = lowestListing?.offer;
5342
+ const collectibleMetadata = collectible?.metadata;
5343
+ const highestOffer = collectible?.offer;
5335
5344
  const { data: lowestListingCurrency } = useCurrency({
5336
5345
  chainId,
5337
- currencyAddress: lowestListing?.order?.priceCurrencyAddress,
5346
+ currencyAddress: collectible?.listing?.priceCurrencyAddress,
5338
5347
  query: {
5339
- enabled: !!lowestListing?.order?.priceCurrencyAddress
5348
+ enabled: !!collectible?.listing?.priceCurrencyAddress
5340
5349
  }
5341
5350
  });
5342
5351
  if (cardLoading) {
5343
5352
  return /* @__PURE__ */ jsx42(CollectibleSkeleton, {});
5344
5353
  }
5345
- const action = balance ? highestOffer && "Sell" /* SELL */ || !lowestListing?.order && "Create listing" /* LIST */ || "Transfer" /* TRANSFER */ : lowestListing?.order && "Buy" /* BUY */ || "Make an offer" /* OFFER */;
5354
+ const action = balance ? highestOffer && "Sell" /* SELL */ || !collectible?.listing && "Create listing" /* LIST */ || "Transfer" /* TRANSFER */ : collectible?.listing && "Buy" /* BUY */ || "Make an offer" /* OFFER */;
5346
5355
  return /* @__PURE__ */ jsx42(
5347
5356
  "div",
5348
5357
  {
5358
+ "data-testid": "collectible-card",
5349
5359
  className: "w-card-width overflow-hidden rounded-xl border border-border-base bg-background-primary focus-visible:border-border-focus focus-visible:shadow-focus-ring focus-visible:outline-focus active:border-border-focus active:shadow-active-ring",
5350
5360
  onClick: () => onCollectibleClick?.(collectibleId),
5351
5361
  onKeyDown: (e) => {
@@ -5369,13 +5379,13 @@ function CollectibleCard({
5369
5379
  type: collectionType,
5370
5380
  onOfferClick: (e) => onOfferClick?.({ order: highestOffer, e }),
5371
5381
  highestOffer,
5372
- lowestListingPriceAmount: lowestListing?.order?.priceAmount,
5382
+ lowestListingPriceAmount: collectible?.listing?.priceAmount,
5373
5383
  lowestListingCurrency,
5374
5384
  balance,
5375
5385
  decimals: collectibleMetadata?.decimals
5376
5386
  }
5377
5387
  ),
5378
- (highestOffer || lowestListing) && /* @__PURE__ */ jsx42("div", { className: "-bottom-action-offset absolute flex w-full items-center justify-center bg-overlay-light p-2 backdrop-blur transition-transform duration-200 ease-in-out group-hover:translate-y-[-44px]", children: /* @__PURE__ */ jsx42(
5388
+ (highestOffer || collectible) && !balanceIsLoading && /* @__PURE__ */ jsx42("div", { className: "-bottom-action-offset absolute flex w-full items-center justify-center bg-overlay-light p-2 backdrop-blur transition-transform duration-200 ease-in-out group-hover:translate-y-[-44px]", children: /* @__PURE__ */ jsx42(
5379
5389
  ActionButton,
5380
5390
  {
5381
5391
  chainId,
@@ -5384,7 +5394,7 @@ function CollectibleCard({
5384
5394
  orderbookKind,
5385
5395
  action,
5386
5396
  highestOffer,
5387
- lowestListing: lowestListing?.order,
5397
+ lowestListing: collectible?.listing,
5388
5398
  owned: !!balance,
5389
5399
  onCannotPerformAction
5390
5400
  }
@@ -5404,4 +5414,4 @@ export {
5404
5414
  useSellModal,
5405
5415
  CollectibleCard
5406
5416
  };
5407
- //# sourceMappingURL=chunk-HRL2TMXU.js.map
5417
+ //# sourceMappingURL=chunk-SFSFIGHM.js.map