@0xsequence/marketplace-sdk 0.0.0-20250513233135

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 (524) hide show
  1. package/.changeset/README.md +8 -0
  2. package/.changeset/config.json +11 -0
  3. package/.changeset/eight-boxes-grab.md +10 -0
  4. package/.changeset/famous-snails-camp.md +5 -0
  5. package/.changeset/huge-tigers-wash.md +5 -0
  6. package/.changeset/huge-towns-flash.md +5 -0
  7. package/.changeset/salty-clubs-decide.md +12 -0
  8. package/.ctirc +32 -0
  9. package/CHANGELOG.md +116 -0
  10. package/README.md +40 -0
  11. package/dist/alien_swap-2B65TDGT.js +6 -0
  12. package/dist/alien_swap-2B65TDGT.js.map +1 -0
  13. package/dist/aqua-xyz-WMYQLAIS.js +6 -0
  14. package/dist/aqua-xyz-WMYQLAIS.js.map +1 -0
  15. package/dist/aura-V22RV5OG.js +6 -0
  16. package/dist/aura-V22RV5OG.js.map +1 -0
  17. package/dist/blur-GE5QOMCM.js +6 -0
  18. package/dist/blur-GE5QOMCM.js.map +1 -0
  19. package/dist/chunk-3TLVYBXF.js +324 -0
  20. package/dist/chunk-3TLVYBXF.js.map +1 -0
  21. package/dist/chunk-5C6ZZ6WX.js +130 -0
  22. package/dist/chunk-5C6ZZ6WX.js.map +1 -0
  23. package/dist/chunk-5O44EPXZ.js +207 -0
  24. package/dist/chunk-5O44EPXZ.js.map +1 -0
  25. package/dist/chunk-6CTFVBKU.js +1 -0
  26. package/dist/chunk-6CTFVBKU.js.map +1 -0
  27. package/dist/chunk-DWTLVJAW.js +42 -0
  28. package/dist/chunk-DWTLVJAW.js.map +1 -0
  29. package/dist/chunk-FGNS7KE7.js +38 -0
  30. package/dist/chunk-FGNS7KE7.js.map +1 -0
  31. package/dist/chunk-FUM4OGOQ.js +1027 -0
  32. package/dist/chunk-FUM4OGOQ.js.map +1 -0
  33. package/dist/chunk-JXHQN3PR.js +32 -0
  34. package/dist/chunk-JXHQN3PR.js.map +1 -0
  35. package/dist/chunk-LCL3RAIT.js +81 -0
  36. package/dist/chunk-LCL3RAIT.js.map +1 -0
  37. package/dist/chunk-LECCEZAO.js +11 -0
  38. package/dist/chunk-LECCEZAO.js.map +1 -0
  39. package/dist/chunk-Q3ECVC4F.js +811 -0
  40. package/dist/chunk-Q3ECVC4F.js.map +1 -0
  41. package/dist/chunk-RN32ZWTO.js +14 -0
  42. package/dist/chunk-RN32ZWTO.js.map +1 -0
  43. package/dist/chunk-S3J4O3WT.js +126 -0
  44. package/dist/chunk-S3J4O3WT.js.map +1 -0
  45. package/dist/chunk-XDIMTKUV.js +1532 -0
  46. package/dist/chunk-XDIMTKUV.js.map +1 -0
  47. package/dist/chunk-XU2Z7WQK.js +9453 -0
  48. package/dist/chunk-XU2Z7WQK.js.map +1 -0
  49. package/dist/chunk-XX4EVWBF.js +1292 -0
  50. package/dist/chunk-XX4EVWBF.js.map +1 -0
  51. package/dist/chunk-YGOUZBGX.js +432 -0
  52. package/dist/chunk-YGOUZBGX.js.map +1 -0
  53. package/dist/chunk-YWGFI4PN.js +217 -0
  54. package/dist/chunk-YWGFI4PN.js.map +1 -0
  55. package/dist/coinbase-NLHJMGAP.js +6 -0
  56. package/dist/coinbase-NLHJMGAP.js.map +1 -0
  57. package/dist/create-config-BNjkar9e.d.ts +8 -0
  58. package/dist/element-2LGTYYSP.js +6 -0
  59. package/dist/element-2LGTYYSP.js.map +1 -0
  60. package/dist/foundation-BPN66ZTN.js +6 -0
  61. package/dist/foundation-BPN66ZTN.js.map +1 -0
  62. package/dist/get-query-client-D46hbjk6.d.ts +5 -0
  63. package/dist/index-gOzDu7UB.d.ts +62 -0
  64. package/dist/index.css +2700 -0
  65. package/dist/index.css.map +1 -0
  66. package/dist/index.d.ts +28 -0
  67. package/dist/index.js +105 -0
  68. package/dist/index.js.map +1 -0
  69. package/dist/listTokenMetadata-DPr2Vk-o.d.ts +203 -0
  70. package/dist/looks-rare-MZRSOPT4.js +6 -0
  71. package/dist/looks-rare-MZRSOPT4.js.map +1 -0
  72. package/dist/magic-eden-PUBL6KWW.js +6 -0
  73. package/dist/magic-eden-PUBL6KWW.js.map +1 -0
  74. package/dist/manifold-GA445YJ6.js +6 -0
  75. package/dist/manifold-GA445YJ6.js.map +1 -0
  76. package/dist/marketplace.gen-BU6T6f0m.d.ts +1072 -0
  77. package/dist/marketplaceConfig-k0Cc7oBD.d.ts +17 -0
  78. package/dist/mintify-UMC5PTKC.js +6 -0
  79. package/dist/mintify-UMC5PTKC.js.map +1 -0
  80. package/dist/nftx-AX3CY3IE.js +6 -0
  81. package/dist/nftx-AX3CY3IE.js.map +1 -0
  82. package/dist/okx-GNVLAE2R.js +6 -0
  83. package/dist/okx-GNVLAE2R.js.map +1 -0
  84. package/dist/open-sea-KI43GVEB.js +6 -0
  85. package/dist/open-sea-KI43GVEB.js.map +1 -0
  86. package/dist/rarible-2J3MMZJ7.js +6 -0
  87. package/dist/rarible-2J3MMZJ7.js.map +1 -0
  88. package/dist/react/_internal/api/index.d.ts +85 -0
  89. package/dist/react/_internal/api/index.js +146 -0
  90. package/dist/react/_internal/api/index.js.map +1 -0
  91. package/dist/react/_internal/databeat/index.css +2768 -0
  92. package/dist/react/_internal/databeat/index.css.map +1 -0
  93. package/dist/react/_internal/databeat/index.d.ts +69 -0
  94. package/dist/react/_internal/databeat/index.js +26 -0
  95. package/dist/react/_internal/databeat/index.js.map +1 -0
  96. package/dist/react/_internal/index.d.ts +23 -0
  97. package/dist/react/_internal/index.js +172 -0
  98. package/dist/react/_internal/index.js.map +1 -0
  99. package/dist/react/_internal/wagmi/index.d.ts +18 -0
  100. package/dist/react/_internal/wagmi/index.js +14 -0
  101. package/dist/react/_internal/wagmi/index.js.map +1 -0
  102. package/dist/react/hooks/index.css +2768 -0
  103. package/dist/react/hooks/index.css.map +1 -0
  104. package/dist/react/hooks/index.d.ts +3861 -0
  105. package/dist/react/hooks/index.js +163 -0
  106. package/dist/react/hooks/index.js.map +1 -0
  107. package/dist/react/hooks/options/index.d.ts +7 -0
  108. package/dist/react/hooks/options/index.js +18 -0
  109. package/dist/react/hooks/options/index.js.map +1 -0
  110. package/dist/react/index.css +2768 -0
  111. package/dist/react/index.css.map +1 -0
  112. package/dist/react/index.d.ts +37 -0
  113. package/dist/react/index.js +198 -0
  114. package/dist/react/index.js.map +1 -0
  115. package/dist/react/queries/index.d.ts +26 -0
  116. package/dist/react/queries/index.js +40 -0
  117. package/dist/react/queries/index.js.map +1 -0
  118. package/dist/react/ssr/index.d.ts +21 -0
  119. package/dist/react/ssr/index.js +32 -0
  120. package/dist/react/ssr/index.js.map +1 -0
  121. package/dist/react/ui/components/marketplace-collectible-card/index.css +2768 -0
  122. package/dist/react/ui/components/marketplace-collectible-card/index.css.map +1 -0
  123. package/dist/react/ui/components/marketplace-collectible-card/index.d.ts +10 -0
  124. package/dist/react/ui/components/marketplace-collectible-card/index.js +24 -0
  125. package/dist/react/ui/components/marketplace-collectible-card/index.js.map +1 -0
  126. package/dist/react/ui/components/marketplace-logos/index.d.ts +26 -0
  127. package/dist/react/ui/components/marketplace-logos/index.js +45 -0
  128. package/dist/react/ui/components/marketplace-logos/index.js.map +1 -0
  129. package/dist/react/ui/icons/index.d.ts +2 -0
  130. package/dist/react/ui/icons/index.js +13 -0
  131. package/dist/react/ui/icons/index.js.map +1 -0
  132. package/dist/react/ui/index.css +2768 -0
  133. package/dist/react/ui/index.css.map +1 -0
  134. package/dist/react/ui/index.d.ts +170 -0
  135. package/dist/react/ui/index.js +40 -0
  136. package/dist/react/ui/index.js.map +1 -0
  137. package/dist/react/ui/modals/_internal/components/actionModal/index.css +2768 -0
  138. package/dist/react/ui/modals/_internal/components/actionModal/index.css.map +1 -0
  139. package/dist/react/ui/modals/_internal/components/actionModal/index.d.ts +38 -0
  140. package/dist/react/ui/modals/_internal/components/actionModal/index.js +30 -0
  141. package/dist/react/ui/modals/_internal/components/actionModal/index.js.map +1 -0
  142. package/dist/sdk-config-lXiWvcLL.d.ts +126 -0
  143. package/dist/sequence-TGLUFEPQ.js +6 -0
  144. package/dist/sequence-TGLUFEPQ.js.map +1 -0
  145. package/dist/services-CV8PHbz1.d.ts +20 -0
  146. package/dist/sudo-swap-M2O6E3TE.js +6 -0
  147. package/dist/sudo-swap-M2O6E3TE.js.map +1 -0
  148. package/dist/super-rare-UU2U4LIN.js +6 -0
  149. package/dist/super-rare-UU2U4LIN.js.map +1 -0
  150. package/dist/types/index.d.ts +5 -0
  151. package/dist/types/index.js +45 -0
  152. package/dist/types/index.js.map +1 -0
  153. package/dist/types-CJ7fD2yW.d.ts +16 -0
  154. package/dist/types-ZceqpKcn.d.ts +68 -0
  155. package/dist/types-_9Zw70U5.d.ts +63 -0
  156. package/dist/utils/abi/index.d.ts +3 -0
  157. package/dist/utils/abi/index.js +26 -0
  158. package/dist/utils/abi/index.js.map +1 -0
  159. package/dist/utils/abi/marketplace/index.d.ts +805 -0
  160. package/dist/utils/abi/marketplace/index.js +11 -0
  161. package/dist/utils/abi/marketplace/index.js.map +1 -0
  162. package/dist/utils/abi/primary-sale/index.d.ts +1054 -0
  163. package/dist/utils/abi/primary-sale/index.js +9 -0
  164. package/dist/utils/abi/primary-sale/index.js.map +1 -0
  165. package/dist/utils/abi/token/index.d.ts +1125 -0
  166. package/dist/utils/abi/token/index.js +11 -0
  167. package/dist/utils/abi/token/index.js.map +1 -0
  168. package/dist/utils/index.d.ts +91 -0
  169. package/dist/utils/index.js +56 -0
  170. package/dist/utils/index.js.map +1 -0
  171. package/dist/x2y2-3W5BBMZC.js +6 -0
  172. package/dist/x2y2-3W5BBMZC.js.map +1 -0
  173. package/dist/zora-6EY6FUH6.js +6 -0
  174. package/dist/zora-6EY6FUH6.js.map +1 -0
  175. package/eslint/use-client.js +452 -0
  176. package/eslint.config.mjs +31 -0
  177. package/package.json +116 -0
  178. package/postcss.config.mjs +5 -0
  179. package/src/consts.ts +7 -0
  180. package/src/index.css +121 -0
  181. package/src/index.ts +5 -0
  182. package/src/react/__tests__/provider.test.tsx +77 -0
  183. package/src/react/_internal/api/__mocks__/builder.msw.ts +151 -0
  184. package/src/react/_internal/api/__mocks__/indexer.msw.ts +199 -0
  185. package/src/react/_internal/api/__mocks__/marketplace.msw.ts +387 -0
  186. package/src/react/_internal/api/__mocks__/metadata.msw.ts +184 -0
  187. package/src/react/_internal/api/builder-api.ts +32 -0
  188. package/src/react/_internal/api/builder.gen.ts +207 -0
  189. package/src/react/_internal/api/get-query-client.ts +32 -0
  190. package/src/react/_internal/api/index.ts +6 -0
  191. package/src/react/_internal/api/laos-api.ts +103 -0
  192. package/src/react/_internal/api/marketplace-api.ts +32 -0
  193. package/src/react/_internal/api/marketplace.gen.ts +2181 -0
  194. package/src/react/_internal/api/query-keys.ts +84 -0
  195. package/src/react/_internal/api/services.ts +109 -0
  196. package/src/react/_internal/api/zod-schema.ts +678 -0
  197. package/src/react/_internal/consts.ts +1 -0
  198. package/src/react/_internal/databeat/index.ts +62 -0
  199. package/src/react/_internal/databeat/types.ts +71 -0
  200. package/src/react/_internal/get-provider.ts +6 -0
  201. package/src/react/_internal/index.ts +5 -0
  202. package/src/react/_internal/logger.ts +66 -0
  203. package/src/react/_internal/types.ts +89 -0
  204. package/src/react/_internal/utils.ts +53 -0
  205. package/src/react/_internal/wagmi/__tests__/create-config.test.ts +192 -0
  206. package/src/react/_internal/wagmi/create-config.ts +83 -0
  207. package/src/react/_internal/wagmi/get-connectors.ts +206 -0
  208. package/src/react/_internal/wagmi/index.ts +2 -0
  209. package/src/react/_internal/wallet/__tests__/wallet.test.ts +416 -0
  210. package/src/react/_internal/wallet/useWallet.ts +52 -0
  211. package/src/react/_internal/wallet/wallet.ts +313 -0
  212. package/src/react/hooks/__tests__/__snapshots__/useMarketplaceConfig.test.tsx.snap +94 -0
  213. package/src/react/hooks/__tests__/__snapshots__/useRoyaltyPercentage.test.tsx.snap +8 -0
  214. package/src/react/hooks/__tests__/useAutoSelectFeeOption.test.tsx +256 -0
  215. package/src/react/hooks/__tests__/useBalanceOfCollectible.test.tsx +141 -0
  216. package/src/react/hooks/__tests__/useCancelOrder.test.tsx +314 -0
  217. package/src/react/hooks/__tests__/useCancelTransactionSteps.test.tsx +265 -0
  218. package/src/react/hooks/__tests__/useCollectible.test.tsx +119 -0
  219. package/src/react/hooks/__tests__/useCollection.test.tsx +99 -0
  220. package/src/react/hooks/__tests__/useCollectionBalanceDetails.test.tsx +167 -0
  221. package/src/react/hooks/__tests__/useCollectionDetails.test.tsx +83 -0
  222. package/src/react/hooks/__tests__/useCollectionDetailsPolling.test.tsx +129 -0
  223. package/src/react/hooks/__tests__/useComparePrices.test.tsx +214 -0
  224. package/src/react/hooks/__tests__/useConvertPriceToUSD.test.tsx +172 -0
  225. package/src/react/hooks/__tests__/useCountListingsForCollectible.test.tsx +107 -0
  226. package/src/react/hooks/__tests__/useCountOfCollectables.test.tsx +128 -0
  227. package/src/react/hooks/__tests__/useCountOffersForCollectible.test.tsx +107 -0
  228. package/src/react/hooks/__tests__/useCurrencies.test.tsx +181 -0
  229. package/src/react/hooks/__tests__/useCurrency.test.tsx +125 -0
  230. package/src/react/hooks/__tests__/useCurrencyBalance.test.tsx +79 -0
  231. package/src/react/hooks/__tests__/useFilters.test.tsx +126 -0
  232. package/src/react/hooks/__tests__/useFloorOrder.test.tsx +100 -0
  233. package/src/react/hooks/__tests__/useGenerateCancelTransaction.test.tsx +133 -0
  234. package/src/react/hooks/__tests__/useGenerateListingTransaction.test.tsx +175 -0
  235. package/src/react/hooks/__tests__/useGenerateOfferTransaction.test.tsx +219 -0
  236. package/src/react/hooks/__tests__/useGenerateSellTransaction.test.tsx +148 -0
  237. package/src/react/hooks/__tests__/useHighestOffer.test.tsx +117 -0
  238. package/src/react/hooks/__tests__/useInventory.test.tsx +293 -0
  239. package/src/react/hooks/__tests__/useListBalances.test.tsx +100 -0
  240. package/src/react/hooks/__tests__/useListCollectibleActivities.test.tsx +194 -0
  241. package/src/react/hooks/__tests__/useListCollectibles.test.tsx +232 -0
  242. package/src/react/hooks/__tests__/useListCollectiblesPaginated.test.tsx +216 -0
  243. package/src/react/hooks/__tests__/useListCollectionActivities.test.tsx +229 -0
  244. package/src/react/hooks/__tests__/useListCollections.test.tsx +148 -0
  245. package/src/react/hooks/__tests__/useListListingsForCollectible.test.tsx +139 -0
  246. package/src/react/hooks/__tests__/useListOffersForCollectible.test.tsx +139 -0
  247. package/src/react/hooks/__tests__/useLowestListing.test.tsx +146 -0
  248. package/src/react/hooks/__tests__/useMarketplaceConfig.test.tsx +96 -0
  249. package/src/react/hooks/__tests__/useRoyalty.test.tsx +51 -0
  250. package/src/react/hooks/index.ts +42 -0
  251. package/src/react/hooks/options/collectionOptions.ts +41 -0
  252. package/src/react/hooks/options/index.ts +2 -0
  253. package/src/react/hooks/use1155SaleDetailsBatch.tsx +100 -0
  254. package/src/react/hooks/useAutoSelectFeeOption.tsx +206 -0
  255. package/src/react/hooks/useBalanceOfCollectible.tsx +42 -0
  256. package/src/react/hooks/useCancelOrder.tsx +102 -0
  257. package/src/react/hooks/useCancelTransactionSteps.tsx +245 -0
  258. package/src/react/hooks/useCheckoutOptions.tsx +65 -0
  259. package/src/react/hooks/useCollectible.tsx +54 -0
  260. package/src/react/hooks/useCollection.tsx +17 -0
  261. package/src/react/hooks/useCollectionBalanceDetails.tsx +86 -0
  262. package/src/react/hooks/useCollectionDetails.tsx +35 -0
  263. package/src/react/hooks/useCollectionDetailsPolling.tsx +60 -0
  264. package/src/react/hooks/useComparePrices.tsx +99 -0
  265. package/src/react/hooks/useConfig.tsx +14 -0
  266. package/src/react/hooks/useConvertPriceToUSD.tsx +99 -0
  267. package/src/react/hooks/useCountListingsForCollectible.tsx +63 -0
  268. package/src/react/hooks/useCountOfCollectables.tsx +76 -0
  269. package/src/react/hooks/useCountOffersForCollectible.tsx +63 -0
  270. package/src/react/hooks/useCurrencies.tsx +77 -0
  271. package/src/react/hooks/useCurrency.tsx +73 -0
  272. package/src/react/hooks/useCurrencyBalance.tsx +51 -0
  273. package/src/react/hooks/useFilterState.tsx +181 -0
  274. package/src/react/hooks/useFilters.tsx +143 -0
  275. package/src/react/hooks/useFloorOrder.tsx +42 -0
  276. package/src/react/hooks/useGenerateCancelTransaction.tsx +47 -0
  277. package/src/react/hooks/useGenerateListingTransaction.tsx +61 -0
  278. package/src/react/hooks/useGenerateOfferTransaction.tsx +67 -0
  279. package/src/react/hooks/useGenerateSellTransaction.tsx +47 -0
  280. package/src/react/hooks/useGetReceiptFromHash.tsx +32 -0
  281. package/src/react/hooks/useGetTokenSuppliesMap.ts +28 -0
  282. package/src/react/hooks/useHighestOffer.tsx +8 -0
  283. package/src/react/hooks/useInventory.tsx +15 -0
  284. package/src/react/hooks/useList1155shopCardData.ts +115 -0
  285. package/src/react/hooks/useListBalances.tsx +39 -0
  286. package/src/react/hooks/useListCollectibleActivities.tsx +58 -0
  287. package/src/react/hooks/useListCollectibles.tsx +39 -0
  288. package/src/react/hooks/useListCollectiblesPaginated.tsx +74 -0
  289. package/src/react/hooks/useListCollectionActivities.tsx +58 -0
  290. package/src/react/hooks/useListCollections.tsx +88 -0
  291. package/src/react/hooks/useListListingsForCollectible.tsx +60 -0
  292. package/src/react/hooks/useListMarketCardData.ts +152 -0
  293. package/src/react/hooks/useListOffersForCollectible.tsx +59 -0
  294. package/src/react/hooks/useListTokenMetadata.ts +19 -0
  295. package/src/react/hooks/useLowestListing.tsx +8 -0
  296. package/src/react/hooks/useMarketplaceConfig.tsx +10 -0
  297. package/src/react/hooks/useRoyalty.tsx +42 -0
  298. package/src/react/hooks/useTransferTokens.tsx +82 -0
  299. package/src/react/hooks/util/optimisticCancelUpdates.ts +115 -0
  300. package/src/react/index.ts +6 -0
  301. package/src/react/provider.tsx +43 -0
  302. package/src/react/queries/balanceOfCollectible.ts +79 -0
  303. package/src/react/queries/getTokenSupplies.ts +38 -0
  304. package/src/react/queries/highestOffer.ts +58 -0
  305. package/src/react/queries/index.ts +8 -0
  306. package/src/react/queries/inventory.ts +303 -0
  307. package/src/react/queries/listBalances.ts +91 -0
  308. package/src/react/queries/listCollectibles.ts +105 -0
  309. package/src/react/queries/listTokenMetadata.ts +38 -0
  310. package/src/react/queries/lowestListing.ts +52 -0
  311. package/src/react/queries/marketplaceConfig.ts +101 -0
  312. package/src/react/ssr/__tests__/__snapshots__/create-ssr-client.test.ts.snap +94 -0
  313. package/src/react/ssr/__tests__/create-ssr-client.test.ts +45 -0
  314. package/src/react/ssr/create-ssr-client.ts +35 -0
  315. package/src/react/ssr/index.ts +1 -0
  316. package/src/react/ui/components/ModelViewer.tsx +54 -0
  317. package/src/react/ui/components/_internals/action-button/ActionButton.tsx +96 -0
  318. package/src/react/ui/components/_internals/action-button/__tests__/ActionButtonBody.test.tsx +66 -0
  319. package/src/react/ui/components/_internals/action-button/__tests__/NonOwnerActions.test.tsx +80 -0
  320. package/src/react/ui/components/_internals/action-button/__tests__/OwnerActions.test.tsx +73 -0
  321. package/src/react/ui/components/_internals/action-button/__tests__/useActionButtonLogic.test.tsx +77 -0
  322. package/src/react/ui/components/_internals/action-button/components/ActionButtonBody.tsx +52 -0
  323. package/src/react/ui/components/_internals/action-button/components/NonOwnerActions.tsx +129 -0
  324. package/src/react/ui/components/_internals/action-button/components/OwnerActions.tsx +83 -0
  325. package/src/react/ui/components/_internals/action-button/hooks/useActionButtonLogic.ts +96 -0
  326. package/src/react/ui/components/_internals/action-button/store.ts +47 -0
  327. package/src/react/ui/components/_internals/custom-select/CustomSelect.tsx +122 -0
  328. package/src/react/ui/components/_internals/custom-select/__tests__/CustomSelect.test.tsx +155 -0
  329. package/src/react/ui/components/_internals/pill/Pill.tsx +11 -0
  330. package/src/react/ui/components/_internals/pill/__tests__/Pill.test.tsx +23 -0
  331. package/src/react/ui/components/marketplace-collectible-card/CollectibleCard.tsx +75 -0
  332. package/src/react/ui/components/marketplace-collectible-card/Footer.tsx +264 -0
  333. package/src/react/ui/components/marketplace-collectible-card/MarketplaceCollectibleCard.tsx +187 -0
  334. package/src/react/ui/components/marketplace-collectible-card/MarketplaceCollectibleCardSkeleton.tsx +24 -0
  335. package/src/react/ui/components/marketplace-collectible-card/__tests__/Footer.test.tsx +231 -0
  336. package/src/react/ui/components/marketplace-collectible-card/__tests__/MarketplaceCollectibleCard.test.tsx +161 -0
  337. package/src/react/ui/components/marketplace-collectible-card/__tests__/Media.test.tsx +224 -0
  338. package/src/react/ui/components/marketplace-collectible-card/index.ts +2 -0
  339. package/src/react/ui/components/marketplace-collectible-card/types.ts +95 -0
  340. package/src/react/ui/components/marketplace-logos/index.ts +23 -0
  341. package/src/react/ui/components/marketplace-logos/marketplace-logos.tsx +112 -0
  342. package/src/react/ui/components/media/Media.tsx +204 -0
  343. package/src/react/ui/components/media/MediaSkeleton.tsx +14 -0
  344. package/src/react/ui/components/media/types.ts +16 -0
  345. package/src/react/ui/components/media/utils.ts +45 -0
  346. package/src/react/ui/icons/BellIcon.tsx +40 -0
  347. package/src/react/ui/icons/CalendarIcon.tsx +37 -0
  348. package/src/react/ui/icons/CartIcon.tsx +52 -0
  349. package/src/react/ui/icons/InfoIcon.tsx +44 -0
  350. package/src/react/ui/icons/iconVariants.ts +16 -0
  351. package/src/react/ui/icons/index.ts +4 -0
  352. package/src/react/ui/images/chess-tile.png +0 -0
  353. package/src/react/ui/images/marketplaces/alien_swap.png +0 -0
  354. package/src/react/ui/images/marketplaces/aqua-xyz.png +0 -0
  355. package/src/react/ui/images/marketplaces/aura.png +0 -0
  356. package/src/react/ui/images/marketplaces/blur.png +0 -0
  357. package/src/react/ui/images/marketplaces/coinbase.png +0 -0
  358. package/src/react/ui/images/marketplaces/element.png +0 -0
  359. package/src/react/ui/images/marketplaces/foundation.png +0 -0
  360. package/src/react/ui/images/marketplaces/looks-rare.png +0 -0
  361. package/src/react/ui/images/marketplaces/magic-eden.png +0 -0
  362. package/src/react/ui/images/marketplaces/manifold.png +0 -0
  363. package/src/react/ui/images/marketplaces/mintify.png +0 -0
  364. package/src/react/ui/images/marketplaces/nftx.png +0 -0
  365. package/src/react/ui/images/marketplaces/okx.png +0 -0
  366. package/src/react/ui/images/marketplaces/open-sea.png +0 -0
  367. package/src/react/ui/images/marketplaces/rarible.png +0 -0
  368. package/src/react/ui/images/marketplaces/sequence.png +0 -0
  369. package/src/react/ui/images/marketplaces/sudo-swap.png +0 -0
  370. package/src/react/ui/images/marketplaces/super-rare.png +0 -0
  371. package/src/react/ui/images/marketplaces/x2y2.png +0 -0
  372. package/src/react/ui/images/marketplaces/zora.png +0 -0
  373. package/src/react/ui/index.ts +11 -0
  374. package/src/react/ui/modals/BuyModal/ERC1155QuantityModal.tsx +187 -0
  375. package/src/react/ui/modals/BuyModal/Modal.tsx +226 -0
  376. package/src/react/ui/modals/BuyModal/__tests__/Modal.test.tsx +107 -0
  377. package/src/react/ui/modals/BuyModal/__tests__/Modal1155.test.tsx +251 -0
  378. package/src/react/ui/modals/BuyModal/__tests__/store.test.ts +105 -0
  379. package/src/react/ui/modals/BuyModal/hooks/__tests__/useCheckoutOptions.test.tsx +127 -0
  380. package/src/react/ui/modals/BuyModal/hooks/__tests__/useFees.test.tsx +136 -0
  381. package/src/react/ui/modals/BuyModal/hooks/useCheckoutOptions.ts +87 -0
  382. package/src/react/ui/modals/BuyModal/hooks/useERC1155Checkout.ts +66 -0
  383. package/src/react/ui/modals/BuyModal/hooks/useFees.ts +48 -0
  384. package/src/react/ui/modals/BuyModal/hooks/useLoadData.ts +90 -0
  385. package/src/react/ui/modals/BuyModal/hooks/usePaymentModalParams.ts +221 -0
  386. package/src/react/ui/modals/BuyModal/index.tsx +10 -0
  387. package/src/react/ui/modals/BuyModal/store.ts +136 -0
  388. package/src/react/ui/modals/CreateListingModal/Modal.tsx +271 -0
  389. package/src/react/ui/modals/CreateListingModal/__tests__/Modal.test.tsx +107 -0
  390. package/src/react/ui/modals/CreateListingModal/hooks/useCreateListing.tsx +90 -0
  391. package/src/react/ui/modals/CreateListingModal/hooks/useGetTokenApproval.ts +87 -0
  392. package/src/react/ui/modals/CreateListingModal/hooks/useTransactionSteps.tsx +282 -0
  393. package/src/react/ui/modals/CreateListingModal/index.tsx +15 -0
  394. package/src/react/ui/modals/CreateListingModal/store.ts +99 -0
  395. package/src/react/ui/modals/MakeOfferModal/Modal.tsx +292 -0
  396. package/src/react/ui/modals/MakeOfferModal/__tests__/Modal.test.tsx +149 -0
  397. package/src/react/ui/modals/MakeOfferModal/hooks/useGetTokenApproval.tsx +82 -0
  398. package/src/react/ui/modals/MakeOfferModal/hooks/useMakeOffer.tsx +81 -0
  399. package/src/react/ui/modals/MakeOfferModal/hooks/useTransactionSteps.tsx +273 -0
  400. package/src/react/ui/modals/MakeOfferModal/index.tsx +13 -0
  401. package/src/react/ui/modals/MakeOfferModal/store.ts +94 -0
  402. package/src/react/ui/modals/SellModal/Modal.tsx +216 -0
  403. package/src/react/ui/modals/SellModal/__tests__/Modal.test.tsx +103 -0
  404. package/src/react/ui/modals/SellModal/hooks/useGetTokenApproval.tsx +75 -0
  405. package/src/react/ui/modals/SellModal/hooks/useSell.tsx +71 -0
  406. package/src/react/ui/modals/SellModal/hooks/useTransactionSteps.tsx +265 -0
  407. package/src/react/ui/modals/SellModal/index.tsx +11 -0
  408. package/src/react/ui/modals/SellModal/store.ts +62 -0
  409. package/src/react/ui/modals/SellModal/utils.ts +38 -0
  410. package/src/react/ui/modals/SuccessfulPurchaseModal/__tests__/Modal.test.tsx +144 -0
  411. package/src/react/ui/modals/SuccessfulPurchaseModal/_store.ts +72 -0
  412. package/src/react/ui/modals/SuccessfulPurchaseModal/index.tsx +148 -0
  413. package/src/react/ui/modals/TransferModal/_store.ts +72 -0
  414. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/_components/TokenQuantityInput.tsx +58 -0
  415. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/_components/TransferButton.tsx +56 -0
  416. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/_components/WalletAddressInput.tsx +50 -0
  417. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/index.tsx +142 -0
  418. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/useHandleTransfer.tsx +88 -0
  419. package/src/react/ui/modals/TransferModal/_views/followWalletInstructions/index.tsx +31 -0
  420. package/src/react/ui/modals/TransferModal/index.tsx +134 -0
  421. package/src/react/ui/modals/TransferModal/messages.ts +14 -0
  422. package/src/react/ui/modals/_internal/components/actionModal/ActionModal.test.tsx +292 -0
  423. package/src/react/ui/modals/_internal/components/actionModal/ActionModal.tsx +147 -0
  424. package/src/react/ui/modals/_internal/components/actionModal/ErrorModal.tsx +35 -0
  425. package/src/react/ui/modals/_internal/components/actionModal/LoadingModal.tsx +32 -0
  426. package/src/react/ui/modals/_internal/components/actionModal/index.ts +2 -0
  427. package/src/react/ui/modals/_internal/components/actionModal/store.ts +24 -0
  428. package/src/react/ui/modals/_internal/components/alertMessage/index.tsx +26 -0
  429. package/src/react/ui/modals/_internal/components/calendar/index.tsx +59 -0
  430. package/src/react/ui/modals/_internal/components/calendarDropdown/index.tsx +114 -0
  431. package/src/react/ui/modals/_internal/components/calendarDropdown/overrides.css +77 -0
  432. package/src/react/ui/modals/_internal/components/consts.ts +16 -0
  433. package/src/react/ui/modals/_internal/components/currencyImage/index.tsx +46 -0
  434. package/src/react/ui/modals/_internal/components/currencyOptionsSelect/__tests__/index.test.tsx +54 -0
  435. package/src/react/ui/modals/_internal/components/currencyOptionsSelect/index.tsx +88 -0
  436. package/src/react/ui/modals/_internal/components/expirationDateSelect/index.tsx +116 -0
  437. package/src/react/ui/modals/_internal/components/floorPriceText/__tests__/FloorPriceText.test.tsx +199 -0
  438. package/src/react/ui/modals/_internal/components/floorPriceText/index.tsx +88 -0
  439. package/src/react/ui/modals/_internal/components/priceInput/__tests__/PriceInput.test.tsx +55 -0
  440. package/src/react/ui/modals/_internal/components/priceInput/index.tsx +148 -0
  441. package/src/react/ui/modals/_internal/components/priceInput/types.ts +4 -0
  442. package/src/react/ui/modals/_internal/components/quantityInput/__tests__/index.test.tsx +212 -0
  443. package/src/react/ui/modals/_internal/components/quantityInput/index.tsx +166 -0
  444. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/__tests__/ActionButtons.test.tsx +72 -0
  445. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/__tests__/BalanceIndicator.test.tsx +50 -0
  446. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/__tests__/SelectWaasFeeOptions.test.tsx +193 -0
  447. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/_components/ActionButtons.tsx +60 -0
  448. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/_components/BalanceIndicator.tsx +30 -0
  449. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/index.tsx +126 -0
  450. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/store.ts +25 -0
  451. package/src/react/ui/modals/_internal/components/selectWaasFeeOptions/useWaasFeeOptionManager.tsx +74 -0
  452. package/src/react/ui/modals/_internal/components/switchChainModal/__tests__/SwitchChainModal.test.tsx +113 -0
  453. package/src/react/ui/modals/_internal/components/switchChainModal/index.tsx +122 -0
  454. package/src/react/ui/modals/_internal/components/switchChainModal/store.ts +42 -0
  455. package/src/react/ui/modals/_internal/components/timeAgo/index.tsx +29 -0
  456. package/src/react/ui/modals/_internal/components/tokenPreview/index.tsx +62 -0
  457. package/src/react/ui/modals/_internal/components/transaction-footer/index.tsx +67 -0
  458. package/src/react/ui/modals/_internal/components/transactionDetails/index.tsx +85 -0
  459. package/src/react/ui/modals/_internal/components/transactionHeader/index.tsx +36 -0
  460. package/src/react/ui/modals/_internal/components/transactionPreview/consts.ts +32 -0
  461. package/src/react/ui/modals/_internal/components/transactionPreview/index.tsx +136 -0
  462. package/src/react/ui/modals/_internal/components/transactionPreview/useTransactionPreviewTitle.tsx +20 -0
  463. package/src/react/ui/modals/_internal/components/transactionStatusModal/__tests__/TransactionStatusModal.test.tsx +141 -0
  464. package/src/react/ui/modals/_internal/components/transactionStatusModal/__tests__/utils.test.ts +220 -0
  465. package/src/react/ui/modals/_internal/components/transactionStatusModal/hooks/useTransactionStatus.ts +65 -0
  466. package/src/react/ui/modals/_internal/components/transactionStatusModal/index.tsx +172 -0
  467. package/src/react/ui/modals/_internal/components/transactionStatusModal/store.ts +83 -0
  468. package/src/react/ui/modals/_internal/components/transactionStatusModal/util/getFormattedType.ts +23 -0
  469. package/src/react/ui/modals/_internal/components/transactionStatusModal/util/getMessage.ts +46 -0
  470. package/src/react/ui/modals/_internal/components/transactionStatusModal/util/getTitle.ts +52 -0
  471. package/src/react/ui/modals/_internal/components/waasFeeOptionsSelect/WaasFeeOptionsSelect.tsx +102 -0
  472. package/src/react/ui/modals/_internal/hooks/useSelectWaasFeeOptions.ts +53 -0
  473. package/src/react/ui/modals/_internal/stores/accountModal.ts +3 -0
  474. package/src/react/ui/modals/_internal/types.ts +14 -0
  475. package/src/react/ui/modals/modal-provider.tsx +26 -0
  476. package/src/types/api-types.ts +47 -0
  477. package/src/types/custom.d.ts +1 -0
  478. package/src/types/index.ts +9 -0
  479. package/src/types/messages.ts +43 -0
  480. package/src/types/sdk-config.ts +20 -0
  481. package/src/types/types.ts +21 -0
  482. package/src/types/waas-types.ts +38 -0
  483. package/src/utils/__tests__/address.test.ts +65 -0
  484. package/src/utils/__tests__/date.test.ts +31 -0
  485. package/src/utils/__tests__/getMarketplaceDetails.test.ts +134 -0
  486. package/src/utils/__tests__/price.test.ts +42 -0
  487. package/src/utils/_internal/error/base.ts +32 -0
  488. package/src/utils/_internal/error/config.ts +16 -0
  489. package/src/utils/_internal/error/context.ts +13 -0
  490. package/src/utils/_internal/error/transaction.ts +411 -0
  491. package/src/utils/abi/index.ts +3 -0
  492. package/src/utils/abi/marketplace/EIP2981.ts +15 -0
  493. package/src/utils/abi/marketplace/index.ts +3 -0
  494. package/src/utils/abi/marketplace/sequence-marketplace-v1.ts +463 -0
  495. package/src/utils/abi/marketplace/sequence-marketplace-v2.ts +802 -0
  496. package/src/utils/abi/primary-sale/index.ts +2 -0
  497. package/src/utils/abi/primary-sale/sequence-1155-sales-contract.ts +450 -0
  498. package/src/utils/abi/primary-sale/sequence-721-sales-contract.ts +352 -0
  499. package/src/utils/abi/token/ERC1155.ts +324 -0
  500. package/src/utils/abi/token/ERC20.ts +185 -0
  501. package/src/utils/abi/token/ERC721.ts +506 -0
  502. package/src/utils/abi/token/index.ts +3 -0
  503. package/src/utils/abi/token/sequence-erc1155-items.ts +454 -0
  504. package/src/utils/address.ts +26 -0
  505. package/src/utils/cn.ts +6 -0
  506. package/src/utils/date.ts +2 -0
  507. package/src/utils/decode/erc20.ts +24 -0
  508. package/src/utils/fetchContentType.ts +108 -0
  509. package/src/utils/getMarketplaceDetails.ts +111 -0
  510. package/src/utils/getSequenceMarketRequestId.ts +32 -0
  511. package/src/utils/index.ts +7 -0
  512. package/src/utils/network.ts +5 -0
  513. package/src/utils/networkconfigToWagmiChain.ts +17 -0
  514. package/src/utils/price.ts +131 -0
  515. package/test/const.ts +69 -0
  516. package/test/globalSetup.ts +16 -0
  517. package/test/index.ts +1 -0
  518. package/test/mocks/wallet.ts +63 -0
  519. package/test/setup.ts +38 -0
  520. package/test/test-utils.tsx +203 -0
  521. package/tsconfig.json +10 -0
  522. package/tsconfig.tsbuildinfo +1 -0
  523. package/tsup.config.ts +23 -0
  524. package/vitest.config.js +21 -0
@@ -0,0 +1,452 @@
1
+ /**
2
+ * ESLint v9 Compatible React Server Components Plugin
3
+ * Based on https://github.com/roginfarrer/eslint-plugin-react-server-components
4
+ */
5
+
6
+ import Components from 'eslint-plugin-react/lib/util/Components.js';
7
+ import componentUtil from 'eslint-plugin-react/lib/util/componentUtil.js';
8
+ import globals from 'globals';
9
+
10
+ const reactEvents = [
11
+ 'onCopy',
12
+ 'onCopyCapture',
13
+ 'onCut',
14
+ 'onCutCapture',
15
+ 'onPaste',
16
+ 'onPasteCapture',
17
+ 'onCompositionEnd',
18
+ 'onCompositionEndCapture',
19
+ 'onCompositionStart',
20
+ 'onCompositionStartCapture',
21
+ 'onCompositionUpdate',
22
+ 'onCompositionUpdateCapture',
23
+ 'onFocus',
24
+ 'onFocusCapture',
25
+ 'onBlur',
26
+ 'onBlurCapture',
27
+ 'onChange',
28
+ 'onChangeCapture',
29
+ 'onBeforeInput',
30
+ 'onBeforeInputCapture',
31
+ 'onInput',
32
+ 'onInputCapture',
33
+ 'onReset',
34
+ 'onResetCapture',
35
+ 'onSubmit',
36
+ 'onSubmitCapture',
37
+ 'onInvalid',
38
+ 'onInvalidCapture',
39
+ 'onLoad',
40
+ 'onLoadCapture',
41
+ 'onKeyDown',
42
+ 'onKeyDownCapture',
43
+ 'onKeyPress',
44
+ 'onKeyPressCapture',
45
+ 'onKeyUp',
46
+ 'onKeyUpCapture',
47
+ 'onAbort',
48
+ 'onAbortCapture',
49
+ 'onCanPlay',
50
+ 'onCanPlayCapture',
51
+ 'onCanPlayThrough',
52
+ 'onCanPlayThroughCapture',
53
+ 'onDurationChange',
54
+ 'onDurationChangeCapture',
55
+ 'onEmptied',
56
+ 'onEmptiedCapture',
57
+ 'onEncrypted',
58
+ 'onEncryptedCapture',
59
+ 'onEnded',
60
+ 'onEndedCapture',
61
+ 'onLoadedData',
62
+ 'onLoadedDataCapture',
63
+ 'onLoadedMetadata',
64
+ 'onLoadedMetadataCapture',
65
+ 'onLoadStart',
66
+ 'onLoadStartCapture',
67
+ 'onPause',
68
+ 'onPauseCapture',
69
+ 'onPlay',
70
+ 'onPlayCapture',
71
+ 'onPlaying',
72
+ 'onPlayingCapture',
73
+ 'onProgress',
74
+ 'onProgressCapture',
75
+ 'onRateChange',
76
+ 'onRateChangeCapture',
77
+ 'onResize',
78
+ 'onResizeCapture',
79
+ 'onSeeked',
80
+ 'onSeekedCapture',
81
+ 'onSeeking',
82
+ 'onSeekingCapture',
83
+ 'onStalled',
84
+ 'onStalledCapture',
85
+ 'onSuspend',
86
+ 'onSuspendCapture',
87
+ 'onTimeUpdate',
88
+ 'onTimeUpdateCapture',
89
+ 'onVolumeChange',
90
+ 'onVolumeChangeCapture',
91
+ 'onWaiting',
92
+ 'onWaitingCapture',
93
+ 'onAuxClick',
94
+ 'onAuxClickCapture',
95
+ 'onClick',
96
+ 'onClickCapture',
97
+ 'onContextMenu',
98
+ 'onContextMenuCapture',
99
+ 'onDoubleClick',
100
+ 'onDoubleClickCapture',
101
+ 'onDrag',
102
+ 'onDragCapture',
103
+ 'onDragEnd',
104
+ 'onDragEndCapture',
105
+ 'onDragEnter',
106
+ 'onDragEnterCapture',
107
+ 'onDragExit',
108
+ 'onDragExitCapture',
109
+ 'onDragLeave',
110
+ 'onDragLeaveCapture',
111
+ 'onDragOver',
112
+ 'onDragOverCapture',
113
+ 'onDragStart',
114
+ 'onDragStartCapture',
115
+ 'onDrop',
116
+ 'onDropCapture',
117
+ 'onMouseDown',
118
+ 'onMouseDownCapture',
119
+ 'onMouseEnter',
120
+ 'onMouseLeave',
121
+ 'onMouseMove',
122
+ 'onMouseMoveCapture',
123
+ 'onMouseOut',
124
+ 'onMouseOutCapture',
125
+ 'onMouseOver',
126
+ 'onMouseOverCapture',
127
+ 'onMouseUp',
128
+ 'onMouseUpCapture',
129
+ 'onSelect',
130
+ 'onSelectCapture',
131
+ 'onTouchCancel',
132
+ 'onTouchCancelCapture',
133
+ 'onTouchEnd',
134
+ 'onTouchEndCapture',
135
+ 'onTouchMove',
136
+ 'onTouchMoveCapture',
137
+ 'onTouchStart',
138
+ 'onTouchStartCapture',
139
+ 'onPointerDown',
140
+ 'onPointerDownCapture',
141
+ 'onPointerMove',
142
+ 'onPointerMoveCapture',
143
+ 'onPointerUp',
144
+ 'onPointerUpCapture',
145
+ 'onPointerCancel',
146
+ 'onPointerCancelCapture',
147
+ 'onPointerEnter',
148
+ 'onPointerEnterCapture',
149
+ 'onPointerLeave',
150
+ 'onPointerLeaveCapture',
151
+ 'onPointerOver',
152
+ 'onPointerOverCapture',
153
+ 'onPointerOut',
154
+ 'onPointerOutCapture',
155
+ 'onGotPointerCapture',
156
+ 'onGotPointerCaptureCapture',
157
+ 'onLostPointerCapture',
158
+ 'onLostPointerCaptureCapture',
159
+ 'onScroll',
160
+ 'onScrollCapture',
161
+ 'onWheel',
162
+ 'onWheelCapture',
163
+ 'onAnimationStart',
164
+ 'onAnimationStartCapture',
165
+ 'onAnimationEnd',
166
+ 'onAnimationEndCapture',
167
+ 'onAnimationIteration',
168
+ 'onAnimationIterationCapture',
169
+ 'onTransitionEnd',
170
+ 'onTransitionEndCapture',
171
+ ];
172
+
173
+ const useClientRegex = /^('|")use client('|")/;
174
+ const browserOnlyGlobals = Object.keys(globals.browser).reduce((acc, curr) => {
175
+ if (curr in globals.browser && !(curr in globals.node)) {
176
+ acc.add(curr);
177
+ }
178
+ return acc;
179
+ }, /* @__PURE__ */ new Set());
180
+
181
+ // Create the ClientComponents rule using the object-style (required in v9)
182
+ const ClientComponents = {
183
+ meta: {
184
+ docs: {
185
+ description:
186
+ "Enforce components are appropriately labeled with 'use client'.",
187
+ recommended: true,
188
+ },
189
+ type: 'problem',
190
+ hasSuggestions: true,
191
+ fixable: 'code',
192
+ schema: [
193
+ {
194
+ type: 'object',
195
+ properties: {
196
+ allowedServerHooks: { type: 'array', items: { type: 'string' } },
197
+ },
198
+ additionalProperties: false,
199
+ },
200
+ ],
201
+ messages: {
202
+ addUseClientHooks:
203
+ '{{hook}} only works in Client Components. Add the "use client" directive at the top of the file to use it.',
204
+ addUseClientBrowserAPI:
205
+ 'Browser APIs only work in Client Components. Add the "use client" directive at the top of the file to use it.',
206
+ addUseClientCallbacks:
207
+ 'Functions can only be passed as props to Client Components. Add the "use client" directive at the top of the file to use it.',
208
+ addUseClientClassComponent:
209
+ 'React Class Components can only be used in Client Components. Add the "use client" directive at the top of the file.',
210
+ removeUseClient:
211
+ "This file does not require the 'use client' directive, and it should be removed.",
212
+ },
213
+ },
214
+ create: Components.detect((context, _, util) => {
215
+ let hasReported = false;
216
+ const instances = [];
217
+ let isClientComponent = false;
218
+ const sourceCode = context.sourceCode;
219
+ const options = context.options?.[0] || {};
220
+ let parentNode;
221
+ function isClientOnlyHook(name) {
222
+ return (
223
+ // `useId` is the only hook that's allowed in server components
224
+ name !== 'useId' &&
225
+ !(options.allowedServerHooks || []).includes(name) &&
226
+ /^use[A-Z]/.test(name)
227
+ );
228
+ }
229
+ function reportMissingDirective(messageId, expression, data) {
230
+ if (isClientComponent || hasReported) {
231
+ return;
232
+ }
233
+ hasReported = true;
234
+ context.report({
235
+ node: expression,
236
+ messageId,
237
+ data,
238
+ *fix(fixer) {
239
+ const firstToken = sourceCode.getFirstToken(parentNode.body[0]);
240
+ if (firstToken) {
241
+ const isFirstLine = firstToken.loc.start.line === 1;
242
+ yield fixer.insertTextBefore(
243
+ firstToken,
244
+ `${isFirstLine ? '' : '\n'}'use client';
245
+
246
+ `,
247
+ );
248
+ }
249
+ },
250
+ });
251
+ }
252
+ const reactImports = {
253
+ namespace: [],
254
+ };
255
+ const undeclaredReferences = /* @__PURE__ */ new Set();
256
+ return {
257
+ Program(node) {
258
+ for (const block of node.body) {
259
+ if (
260
+ block.type === 'ExpressionStatement' &&
261
+ block.expression.type === 'Literal' &&
262
+ block.expression.value === 'use client'
263
+ ) {
264
+ isClientComponent = true;
265
+ }
266
+ }
267
+ parentNode = node;
268
+ const scope = sourceCode.getScope(node);
269
+ // biome-ignore lint/complexity/noForEach: <explanation>
270
+ scope.through.forEach((reference) => {
271
+ undeclaredReferences.add(reference.identifier.name);
272
+ });
273
+ },
274
+ ImportDeclaration(node) {
275
+ if (node.source.value === 'react') {
276
+ // biome-ignore lint/complexity/noForEach: <explanation>
277
+ node.specifiers
278
+ .filter((spec) => spec.type === 'ImportSpecifier')
279
+ .forEach((spac) => {
280
+ const spec = spac;
281
+ reactImports[spec.local.name] = spec.imported.name;
282
+ });
283
+ const namespace = node.specifiers.find(
284
+ (spec) =>
285
+ spec.type === 'ImportDefaultSpecifier' ||
286
+ spec.type === 'ImportNamespaceSpecifier',
287
+ );
288
+ if (namespace) {
289
+ reactImports.namespace = [
290
+ ...reactImports.namespace,
291
+ namespace.local.name,
292
+ ];
293
+ }
294
+ }
295
+ },
296
+ NewExpression(node) {
297
+ const name = node.callee.name;
298
+ if (undeclaredReferences.has(name) && browserOnlyGlobals.has(name)) {
299
+ instances.push(name);
300
+ reportMissingDirective('addUseClientBrowserAPI', node);
301
+ }
302
+ },
303
+ CallExpression(expression) {
304
+ let name = '';
305
+ if (
306
+ expression.callee.type === 'Identifier' &&
307
+ 'name' in expression.callee
308
+ ) {
309
+ name = expression.callee.name;
310
+ } else if (
311
+ expression.callee.type === 'MemberExpression' &&
312
+ 'name' in expression.callee.property
313
+ ) {
314
+ name = expression.callee.property.name;
315
+ }
316
+ if (
317
+ isClientOnlyHook(name) && // Is in a function...
318
+ sourceCode.getScope(expression).type === 'function' && // But only if that function is a component
319
+ Boolean(util.getParentComponent(expression))
320
+ ) {
321
+ instances.push(name);
322
+ reportMissingDirective('addUseClientHooks', expression.callee, {
323
+ hook: name,
324
+ });
325
+ }
326
+ },
327
+ MemberExpression(node) {
328
+ const name = node.object.name;
329
+ const scopeType = sourceCode.getScope(node).type;
330
+ if (
331
+ undeclaredReferences.has(name) &&
332
+ browserOnlyGlobals.has(name) &&
333
+ (scopeType === 'module' || !!util.getParentComponent(node))
334
+ ) {
335
+ instances.push(name);
336
+ reportMissingDirective('addUseClientBrowserAPI', node.object);
337
+ }
338
+ },
339
+ ExpressionStatement(node) {
340
+ const expression = node.expression;
341
+ if (!expression.callee) {
342
+ return;
343
+ }
344
+ if (
345
+ expression.callee &&
346
+ isClientOnlyHook(expression.callee.name) &&
347
+ Boolean(util.getParentComponent(expression))
348
+ ) {
349
+ instances.push(expression.callee.name);
350
+ reportMissingDirective('addUseClientHooks', expression.callee, {
351
+ hook: expression.callee.name,
352
+ });
353
+ }
354
+ },
355
+ JSXOpeningElement(node) {
356
+ const scope = sourceCode.getScope(node);
357
+ const fnsInScope = [];
358
+ //biome-ignore lint/complexity/noForEach: <explanation>
359
+ scope.variables.forEach((variable) => {
360
+ //biome-ignore lint/complexity/noForEach: <explanation>
361
+ variable.defs.forEach((def) => {
362
+ if (isFunction(def)) {
363
+ fnsInScope.push(variable.name);
364
+ }
365
+ });
366
+ });
367
+ //biome-ignore lint/complexity/noForEach: <explanation>
368
+ scope.upper?.set.forEach((variable) => {
369
+ //biome-ignore lint/complexity/noForEach: <explanation>
370
+ variable.defs.forEach((def) => {
371
+ if (isFunction(def)) {
372
+ fnsInScope.push(variable.name);
373
+ }
374
+ });
375
+ });
376
+ for (const attribute of node.attributes) {
377
+ if (
378
+ attribute.type === 'JSXSpreadAttribute' ||
379
+ attribute.value?.type !== 'JSXExpressionContainer'
380
+ ) {
381
+ continue;
382
+ }
383
+ if (reactEvents.includes(attribute.name.name)) {
384
+ reportMissingDirective('addUseClientCallbacks', attribute.name);
385
+ }
386
+ if (
387
+ attribute.value?.expression.type === 'ArrowFunctionExpression' ||
388
+ attribute.value?.expression.type === 'FunctionExpression' ||
389
+ (attribute.value.expression.type === 'Identifier' &&
390
+ fnsInScope.includes(attribute.value.expression.name))
391
+ ) {
392
+ reportMissingDirective('addUseClientCallbacks', attribute);
393
+ }
394
+ }
395
+ },
396
+ ClassDeclaration(node) {
397
+ if (componentUtil.isES6Component(node, context)) {
398
+ instances.push(node.id?.name);
399
+ reportMissingDirective('addUseClientClassComponent', node);
400
+ }
401
+ },
402
+ 'ExpressionStatement:exit'(node) {
403
+ const value = 'value' in node.expression ? node.expression.value : '';
404
+ if (typeof value !== 'string' || !useClientRegex.test(value)) {
405
+ return;
406
+ }
407
+ if (instances.length === 0 && isClientComponent) {
408
+ context.report({
409
+ node,
410
+ messageId: 'removeUseClient',
411
+ fix(fixer) {
412
+ return fixer.remove(node);
413
+ },
414
+ });
415
+ }
416
+ },
417
+ };
418
+ }),
419
+ };
420
+
421
+ function isFunction(def) {
422
+ if (def.type === 'FunctionName') {
423
+ return true;
424
+ }
425
+ if (def.node.init && def.node.init.type === 'ArrowFunctionExpression') {
426
+ return true;
427
+ }
428
+ return false;
429
+ }
430
+
431
+ const plugin = {
432
+ meta: {
433
+ name: 'react-server-components',
434
+ },
435
+ rules: {
436
+ 'use-client': ClientComponents,
437
+ },
438
+ configs: {},
439
+ };
440
+
441
+ Object.assign(plugin.configs, {
442
+ recommended: {
443
+ plugins: {
444
+ 'react-server-components': plugin,
445
+ },
446
+ rules: {
447
+ 'react-server-components/use-client': 'error',
448
+ },
449
+ },
450
+ });
451
+
452
+ export default plugin;
@@ -0,0 +1,31 @@
1
+ import pluginJs from '@eslint/js';
2
+ import biome from 'eslint-config-biome';
3
+ import pluginReact from 'eslint-plugin-react';
4
+ import reactHooks from 'eslint-plugin-react-hooks';
5
+ import globals from 'globals';
6
+ import tseslint from 'typescript-eslint';
7
+ import rscPlugin from './eslint/use-client.js';
8
+
9
+ /** @type {import('eslint').Linter.Config[]} */
10
+ export default [
11
+ { files: ['**/*.{js,mjs,cjs,ts,jsx,tsx}'] },
12
+ {
13
+ languageOptions: { globals: { ...globals.browser, ...globals.node } },
14
+ settings: { react: { version: 'detect' } },
15
+ },
16
+ pluginJs.configs.recommended,
17
+ ...tseslint.configs.recommended,
18
+ pluginReact.configs.flat.recommended,
19
+ reactHooks.configs['recommended-latest'],
20
+ rscPlugin.configs.recommended,
21
+ biome,
22
+ {
23
+ rules: {
24
+ // "react-server-components/use-client": "error",
25
+ 'react/react-in-jsx-scope': 'off',
26
+ '@typescript-eslint/ban-ts-comment': 'off',
27
+ '@typescript-eslint/no-unused-vars': 'off',
28
+ '@typescript-eslint/no-non-null-asserted-optional-chain': 'off',
29
+ },
30
+ },
31
+ ];
package/package.json ADDED
@@ -0,0 +1,116 @@
1
+ {
2
+ "name": "@0xsequence/marketplace-sdk",
3
+ "private": false,
4
+ "version": "0.0.0-20250513233135",
5
+ "type": "module",
6
+ "sideEffects": [
7
+ "**/*.css"
8
+ ],
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "default": "./dist/index.js"
13
+ },
14
+ "./react": {
15
+ "types": "./dist/react/index.d.ts",
16
+ "default": "./dist/react/index.js"
17
+ },
18
+ "./react/hooks": {
19
+ "types": "./dist/react/hooks/index.d.ts",
20
+ "default": "./dist/react/hooks/index.js"
21
+ },
22
+ "./react/queries": {
23
+ "types": "./dist/react/queries/index.d.ts",
24
+ "default": "./dist/react/queries/index.js"
25
+ },
26
+ "./react/ssr": {
27
+ "types": "./dist/react/ssr/index.d.ts",
28
+ "default": "./dist/react/ssr/index.js"
29
+ },
30
+ "./marketplace-logos": {
31
+ "types": "./dist/react/ui/components/marketplace-logos/index.d.ts",
32
+ "default": "./dist/react/ui/components/marketplace-logos/index.js"
33
+ },
34
+ "./styles/index.css": {
35
+ "default": "./dist/index.css"
36
+ },
37
+ "./styles/preset": {
38
+ "default": "./dist/index.css"
39
+ }
40
+ },
41
+ "dependencies": {
42
+ "@databeat/tracker": "^0.9.3",
43
+ "@legendapp/state": "^3.0.0-beta.30",
44
+ "@tailwindcss/postcss": "^4.0.15",
45
+ "@xstate/store": "^3.4.3",
46
+ "class-variance-authority": "^0.7.1",
47
+ "clsx": "^2.1.1",
48
+ "date-fns": "^4.1.0",
49
+ "dnum": "^2.14.0",
50
+ "nuqs": "^2.4.3",
51
+ "react-day-picker": "^9.6.7",
52
+ "tailwind-merge": "^3.0.2",
53
+ "zod": "^3.24.2"
54
+ },
55
+ "peerDependencies": {
56
+ "0xsequence": "^2.3.8",
57
+ "@0xsequence/api": "^2.3.8",
58
+ "@0xsequence/checkout": "^5.2.2",
59
+ "@0xsequence/connect": "^5.2.2",
60
+ "@0xsequence/design-system": "^2.1.12",
61
+ "@0xsequence/indexer": "^2.3.8",
62
+ "@0xsequence/metadata": "^2.3.8",
63
+ "@0xsequence/network": "^2.3.8",
64
+ "@tanstack/react-query": "^5.74.3",
65
+ "react": "^19.1.0",
66
+ "react-dom": "^19.1.0",
67
+ "viem": "^2.27.0",
68
+ "wagmi": "^2.14.16",
69
+ "@google/model-viewer": "^4.1.0"
70
+ },
71
+ "devDependencies": {
72
+ "@biomejs/biome": "^1.9.4",
73
+ "@changesets/cli": "^2.29.0",
74
+ "@eslint/js": "^9.23.0",
75
+ "@testing-library/jest-dom": "6.4.7",
76
+ "@testing-library/react": "^16.2.0",
77
+ "@types/react": "^19.1.2",
78
+ "@types/react-dom": "^19.1.2",
79
+ "@vitest/coverage-v8": "3.0.9",
80
+ "ctix": "^2.7.1",
81
+ "esbuild-plugin-preserve-directives": "^0.0.11",
82
+ "eslint": "^9.23.0",
83
+ "eslint-config-biome": "^1.9.4",
84
+ "eslint-plugin-react": "^7.37.4",
85
+ "eslint-plugin-react-hooks": "^5.2.0",
86
+ "globals": "^16.0.0",
87
+ "happy-dom": "^17.4.4",
88
+ "jsdom": "^26.0.0",
89
+ "msw": "^2.7.3",
90
+ "postcss": "^8.5.3",
91
+ "prool": "^0.0.23",
92
+ "tailwindcss": "^4.1.4",
93
+ "tsup": "^8.4.0",
94
+ "typescript": "^5.8.3",
95
+ "typescript-eslint": "^8.27.0",
96
+ "vite-tsconfig-paths": "^5.1.4",
97
+ "vitest": "^3.0.9"
98
+ },
99
+ "scripts": {
100
+ "build": "tsc -b && tsup",
101
+ "format": "biome format --write .",
102
+ "format:check": "biome format .",
103
+ "biome:check": "biome check . --write",
104
+ "check": "tsc --noEmit",
105
+ "lint": "biome lint --write .",
106
+ "lint:check": "biome lint .",
107
+ "barrel": "ctix build",
108
+ "test": "vitest",
109
+ "test:update": "vitest --update",
110
+ "coverage": "vitest run --coverage",
111
+ "eslint": "eslint .",
112
+ "eslint:fix": "eslint --fix .",
113
+ "changeset": "changeset",
114
+ "version": "changeset version"
115
+ }
116
+ }
@@ -0,0 +1,5 @@
1
+ export default {
2
+ plugins: {
3
+ '@tailwindcss/postcss': {},
4
+ },
5
+ };
package/src/consts.ts ADDED
@@ -0,0 +1,7 @@
1
+ export const SEQUENCE_MARKET_V1_ADDRESS =
2
+ '0xB537a160472183f2150d42EB1c3DD6684A55f74c';
3
+
4
+ export const SEQUENCE_MARKET_V2_ADDRESS =
5
+ '0xfdb42A198a932C8D3B506Ffa5e855bC4b348a712';
6
+
7
+ export const DEFAULT_MARKETPLACE_FEE_PERCENTAGE = 2.5;