@0xsequence/marketplace-sdk 0.8.7 → 0.8.9

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 (141) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/dist/chunk-2PSNAIAT.js +1 -0
  3. package/dist/chunk-2PSNAIAT.js.map +1 -0
  4. package/dist/{chunk-7FVZD2LL.js → chunk-4XLXOEXQ.js} +2 -2
  5. package/dist/{chunk-5HEZNTSU.js → chunk-D7RVSZAQ.js} +131 -83
  6. package/dist/chunk-D7RVSZAQ.js.map +1 -0
  7. package/dist/chunk-DWTLVJAW.js +42 -0
  8. package/dist/chunk-DWTLVJAW.js.map +1 -0
  9. package/dist/{chunk-YAUZLETY.js → chunk-G3447GIP.js} +37 -18
  10. package/dist/chunk-G3447GIP.js.map +1 -0
  11. package/dist/{chunk-O6GWM7C3.js → chunk-HHYNOPPI.js} +2 -2
  12. package/dist/{chunk-Y6AOCO3Q.js → chunk-I2BYHDFE.js} +419 -161
  13. package/dist/chunk-I2BYHDFE.js.map +1 -0
  14. package/dist/{chunk-KTT27YUN.js → chunk-KGM2WLSP.js} +12 -156
  15. package/dist/chunk-KGM2WLSP.js.map +1 -0
  16. package/dist/chunk-MAD64DLJ.js +81 -0
  17. package/dist/chunk-MAD64DLJ.js.map +1 -0
  18. package/dist/chunk-N7BPFK46.js +1 -0
  19. package/dist/chunk-N7BPFK46.js.map +1 -0
  20. package/dist/chunk-NX52D7NX.js +135 -0
  21. package/dist/chunk-NX52D7NX.js.map +1 -0
  22. package/dist/chunk-O34GCB47.js +32 -0
  23. package/dist/chunk-O34GCB47.js.map +1 -0
  24. package/dist/{chunk-Q2DA477S.js → chunk-YALXP2PW.js} +3 -3
  25. package/dist/{chunk-A6V7XDY4.js → chunk-YBOFRP65.js} +2 -2
  26. package/dist/{create-config-CdooE7aU.d.ts → create-config-DwrnzwpM.d.ts} +2 -2
  27. package/dist/{index-ClKHzm0B.d.ts → index-DGsVBflk.d.ts} +3 -12
  28. package/dist/index.css +83 -35
  29. package/dist/index.css.map +1 -1
  30. package/dist/index.d.ts +13 -4
  31. package/dist/index.js +13 -5
  32. package/dist/{lowestListing-kFyrUGha.d.ts → lowestListing-BQHIuvNF.d.ts} +2 -2
  33. package/dist/{marketplace.gen-BU6T6f0m.d.ts → marketplace.gen-DQzWciwC.d.ts} +1 -1
  34. package/dist/marketplaceConfig-B4Fdsmxu.d.ts +17 -0
  35. package/dist/react/_internal/api/index.d.ts +3 -3
  36. package/dist/react/_internal/api/index.js +4 -3
  37. package/dist/react/_internal/databeat/index.d.ts +2 -1
  38. package/dist/react/_internal/databeat/index.js +11 -7
  39. package/dist/react/_internal/index.d.ts +6 -6
  40. package/dist/react/_internal/index.js +13 -10
  41. package/dist/react/_internal/wagmi/index.d.ts +6 -5
  42. package/dist/react/_internal/wagmi/index.js +2 -2
  43. package/dist/react/hooks/index.d.ts +9 -8
  44. package/dist/react/hooks/index.js +10 -6
  45. package/dist/react/hooks/options/index.d.ts +4 -4
  46. package/dist/react/hooks/options/index.js +7 -4
  47. package/dist/react/index.css +2696 -0
  48. package/dist/react/index.css.map +1 -1
  49. package/dist/react/index.d.ts +9 -9
  50. package/dist/react/index.js +18 -11
  51. package/dist/react/queries/index.d.ts +3 -3
  52. package/dist/react/queries/index.js +6 -3
  53. package/dist/react/ssr/index.d.ts +3 -3
  54. package/dist/react/ssr/index.js +6 -3
  55. package/dist/react/ssr/index.js.map +1 -1
  56. package/dist/react/ui/components/collectible-card/index.css +2696 -0
  57. package/dist/react/ui/components/collectible-card/index.css.map +1 -1
  58. package/dist/react/ui/components/collectible-card/index.d.ts +23 -2
  59. package/dist/react/ui/components/collectible-card/index.js +16 -9
  60. package/dist/react/ui/icons/index.js +5 -2
  61. package/dist/react/ui/index.css +2696 -0
  62. package/dist/react/ui/index.css.map +1 -1
  63. package/dist/react/ui/index.d.ts +3 -2
  64. package/dist/react/ui/index.js +16 -9
  65. package/dist/react/ui/modals/_internal/components/actionModal/index.js +11 -7
  66. package/dist/sdk-config-txlivEKe.d.ts +133 -0
  67. package/dist/{services-9ApY0U-o.d.ts → services-BI_w8Eq4.d.ts} +4 -4
  68. package/dist/types/index.d.ts +5 -4
  69. package/dist/types/index.js +9 -6
  70. package/dist/{types-DsTwmKG-.d.ts → types-isjvwapz.d.ts} +3 -3
  71. package/dist/utils/index.d.ts +1 -1
  72. package/dist/utils/index.js +5 -2
  73. package/package.json +6 -5
  74. package/src/index.ts +1 -0
  75. package/src/react/{hooks/options/__mocks__/marketplaceConfig.msw.ts → _internal/api/__mocks__/builder.msw.ts} +70 -63
  76. package/src/react/_internal/api/__mocks__/metadata.msw.ts +30 -10
  77. package/src/react/_internal/api/builder-api.ts +32 -0
  78. package/src/react/_internal/api/builder.gen.ts +215 -0
  79. package/src/react/_internal/api/services.ts +9 -2
  80. package/src/react/_internal/databeat/types.ts +1 -0
  81. package/src/react/_internal/wagmi/__tests__/create-config.test.ts +16 -41
  82. package/src/react/_internal/wagmi/create-config.ts +3 -16
  83. package/src/react/_internal/wagmi/get-connectors.ts +31 -21
  84. package/src/react/_internal/wallet/__tests__/wallet.test.ts +30 -0
  85. package/src/react/_internal/wallet/wallet.ts +25 -2
  86. package/src/react/hooks/__tests__/__snapshots__/useMarketplaceConfig.test.tsx.snap +96 -0
  87. package/src/react/hooks/__tests__/useCollection.test.tsx +4 -5
  88. package/src/react/hooks/__tests__/useCurrencies.test.tsx +1 -1
  89. package/src/react/hooks/__tests__/useInventory.test.tsx +15 -16
  90. package/src/react/hooks/__tests__/useListCollections.test.tsx +18 -163
  91. package/src/react/hooks/__tests__/useMarketplaceConfig.test.tsx +10 -11
  92. package/src/react/hooks/options/index.ts +1 -1
  93. package/src/react/hooks/useAutoSelectFeeOption.tsx +1 -0
  94. package/src/react/hooks/useMarketplaceConfig.tsx +2 -2
  95. package/src/react/queries/marketplaceConfig.ts +101 -0
  96. package/src/react/ssr/__tests__/__snapshots__/create-ssr-client.test.ts.snap +1 -0
  97. package/src/react/ssr/create-ssr-client.ts +1 -1
  98. package/src/react/ui/components/ModelViewer.tsx +54 -0
  99. package/src/react/ui/components/_internals/custom-select/CustomSelect.tsx +0 -1
  100. package/src/react/ui/components/collectible-card/CollectibleCard.tsx +7 -3
  101. package/src/react/ui/components/collectible-card/__tests__/CollectibleAsset.test.tsx +76 -46
  102. package/src/react/ui/components/collectible-card/collectible-asset/CollectibleAsset.tsx +174 -0
  103. package/src/react/ui/components/collectible-card/collectible-asset/CollectibleAssetSkeleton.tsx +14 -0
  104. package/src/react/ui/components/collectible-card/collectible-asset/utils.ts +40 -0
  105. package/src/react/ui/components/collectible-card/index.ts +1 -0
  106. package/src/react/ui/index.ts +1 -0
  107. package/src/react/ui/modals/BuyModal/hooks/usePaymentModalParams.ts +6 -1
  108. package/src/react/ui/modals/BuyModal/store.ts +1 -0
  109. package/src/react/ui/modals/CreateListingModal/hooks/useTransactionSteps.tsx +20 -2
  110. package/src/react/ui/modals/MakeOfferModal/hooks/useTransactionSteps.tsx +17 -1
  111. package/src/react/ui/modals/SellModal/hooks/useTransactionSteps.tsx +4 -0
  112. package/src/react/ui/modals/SuccessfulPurchaseModal/index.tsx +9 -7
  113. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/_components/TokenQuantityInput.tsx +1 -1
  114. package/src/react/ui/modals/TransferModal/_views/enterWalletAddress/_components/WalletAddressInput.tsx +1 -1
  115. package/src/react/ui/modals/_internal/components/actionModal/ActionModal.test.tsx +7 -2
  116. package/src/react/ui/modals/_internal/components/priceInput/index.tsx +1 -1
  117. package/src/react/ui/modals/_internal/components/quantityInput/index.tsx +1 -2
  118. package/src/react/ui/modals/_internal/components/waasFeeOptionsSelect/WaasFeeOptionsSelect.tsx +0 -1
  119. package/src/types/index.ts +7 -1
  120. package/src/types/sdk-config.ts +4 -9
  121. package/src/utils/fetchContentType.ts +104 -0
  122. package/src/utils/getSequenceMarketRequestId.ts +32 -0
  123. package/test/mocks/wallet.ts +3 -1
  124. package/test/test-utils.tsx +1 -1
  125. package/tsconfig.tsbuildinfo +1 -1
  126. package/dist/builder-types-D5HgAUWR.d.ts +0 -82
  127. package/dist/chunk-5HEZNTSU.js.map +0 -1
  128. package/dist/chunk-KTT27YUN.js.map +0 -1
  129. package/dist/chunk-N7E37ENQ.js +0 -58
  130. package/dist/chunk-N7E37ENQ.js.map +0 -1
  131. package/dist/chunk-Y6AOCO3Q.js.map +0 -1
  132. package/dist/chunk-YAUZLETY.js.map +0 -1
  133. package/dist/sdk-config-DIzJk_tI.d.ts +0 -26
  134. package/src/react/hooks/options/__tests__/marketplaceConfigOptions.test.tsx +0 -134
  135. package/src/react/hooks/options/marketplaceConfigOptions.ts +0 -71
  136. package/src/react/ui/components/collectible-card/CollectibleAsset.tsx +0 -139
  137. package/src/types/builder-types.ts +0 -88
  138. /package/dist/{chunk-7FVZD2LL.js.map → chunk-4XLXOEXQ.js.map} +0 -0
  139. /package/dist/{chunk-O6GWM7C3.js.map → chunk-HHYNOPPI.js.map} +0 -0
  140. /package/dist/{chunk-Q2DA477S.js.map → chunk-YALXP2PW.js.map} +0 -0
  141. /package/dist/{chunk-A6V7XDY4.js.map → chunk-YBOFRP65.js.map} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,37 @@
1
1
  # @0xsequence/marketplace-sdk
2
2
 
3
+ ## 0.8.9
4
+
5
+ ### Patch Changes
6
+
7
+ - Fixed issues with input components while using sequence-design-system v2.1.12
8
+
9
+ ## 0.8.8
10
+
11
+ ### Patch Changes
12
+
13
+ - Improved metadata for analytics
14
+ - Better identification of asset file types (video, audio, image, 3D)
15
+ - Support for web-SDKs new "native-currency-address" config
16
+ - Removes the need to setup embedded wallet in the SDK config and retrieve wallet config from builder
17
+
18
+ ```diff
19
+ type SdkConfig = {
20
+ projectAccessKey: string;
21
+ projectId: string;
22
+ - wallet?: {
23
+ - walletConnectProjectId?: string;
24
+ - embedded?: {
25
+ - waasConfigKey: string;
26
+ - googleClientId?: string;
27
+ - appleClientId?: string;
28
+ - appleRedirectURI?: string;
29
+ - };
30
+ - };
31
+ + walletConnectProjectId?: string;
32
+ };
33
+ ```
34
+
3
35
  ## 0.8.7
4
36
 
5
37
  ### Patch Changes
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=chunk-2PSNAIAT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -4,7 +4,7 @@ import {
4
4
  collectableKeys,
5
5
  getIndexerClient,
6
6
  getMarketplaceClient
7
- } from "./chunk-KTT27YUN.js";
7
+ } from "./chunk-KGM2WLSP.js";
8
8
 
9
9
  // src/react/queries/balanceOfCollectible.ts
10
10
  import { queryOptions, skipToken } from "@tanstack/react-query";
@@ -408,4 +408,4 @@ export {
408
408
  fetchLowestListing,
409
409
  lowestListingOptions
410
410
  };
411
- //# sourceMappingURL=chunk-7FVZD2LL.js.map
411
+ //# sourceMappingURL=chunk-4XLXOEXQ.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  MissingConfigError
3
- } from "./chunk-KTT27YUN.js";
3
+ } from "./chunk-NX52D7NX.js";
4
4
 
5
5
  // src/react/_internal/wagmi/create-config.ts
6
6
  import { getDefaultChains } from "@0xsequence/connect";
@@ -10,59 +10,6 @@ import { http, cookieStorage, createConfig, createStorage } from "wagmi";
10
10
  // src/react/_internal/consts.ts
11
11
  var DEFAULT_NETWORK = 137;
12
12
 
13
- // src/react/_internal/get-provider.ts
14
- var PROVIDER_ID = "sdk-provider";
15
- function getProviderEl() {
16
- if (!globalThis.document) return null;
17
- return document.getElementById(PROVIDER_ID);
18
- }
19
-
20
- // src/react/_internal/types.ts
21
- import { z } from "zod";
22
- var QueryArgSchema = z.object({
23
- enabled: z.boolean().optional()
24
- }).optional();
25
- var CollectableIdSchema = z.string().or(z.number());
26
- var AddressSchema = z.string().transform((val, ctx) => {
27
- const regex = /^0x[a-fA-F0-9]{40}$/;
28
- if (!regex.test(val)) {
29
- ctx.addIssue({
30
- code: z.ZodIssueCode.custom,
31
- message: `Invalid Address ${val}`
32
- });
33
- }
34
- return val;
35
- });
36
- var TransactionType = /* @__PURE__ */ ((TransactionType2) => {
37
- TransactionType2["BUY"] = "BUY";
38
- TransactionType2["SELL"] = "SELL";
39
- TransactionType2["LISTING"] = "LISTING";
40
- TransactionType2["OFFER"] = "OFFER";
41
- TransactionType2["TRANSFER"] = "TRANSFER";
42
- TransactionType2["CANCEL"] = "CANCEL";
43
- return TransactionType2;
44
- })(TransactionType || {});
45
-
46
- // src/types/builder-types.ts
47
- var MarketplaceWallet = /* @__PURE__ */ ((MarketplaceWallet2) => {
48
- MarketplaceWallet2["UNIVERSAL"] = "UNIVERSAL";
49
- MarketplaceWallet2["EMBEDDED"] = "EMBEDDED";
50
- MarketplaceWallet2["ECOSYSTEM"] = "ECOSYSTEM";
51
- return MarketplaceWallet2;
52
- })(MarketplaceWallet || {});
53
- var FilterCondition = /* @__PURE__ */ ((FilterCondition2) => {
54
- FilterCondition2["ENTIRE_KEY"] = "ENTIRE_KEY";
55
- FilterCondition2["SPECIFIC_VALUE"] = "SPECIFIC_VALUE";
56
- return FilterCondition2;
57
- })(FilterCondition || {});
58
- var MarketplaceType = /* @__PURE__ */ ((MarketplaceType2) => {
59
- MarketplaceType2["AMM"] = "AMM";
60
- MarketplaceType2["P2P"] = "P2P";
61
- MarketplaceType2["SEQUENCE"] = "SEQUENCE";
62
- MarketplaceType2["ORDERBOOK"] = "ORDERBOOK";
63
- return MarketplaceType2;
64
- })(MarketplaceType || {});
65
-
66
13
  // src/react/_internal/wagmi/get-connectors.ts
67
14
  import {
68
15
  apple,
@@ -80,6 +27,107 @@ import {
80
27
  walletConnect
81
28
  } from "@0xsequence/connect";
82
29
  import React from "react";
30
+
31
+ // src/react/_internal/api/builder.gen.ts
32
+ var MarketplaceWallet = /* @__PURE__ */ ((MarketplaceWallet2) => {
33
+ MarketplaceWallet2["UNIVERSAL"] = "UNIVERSAL";
34
+ MarketplaceWallet2["EMBEDDED"] = "EMBEDDED";
35
+ MarketplaceWallet2["ECOSYSTEM"] = "ECOSYSTEM";
36
+ return MarketplaceWallet2;
37
+ })(MarketplaceWallet || {});
38
+ var MarketplaceType = /* @__PURE__ */ ((MarketplaceType2) => {
39
+ MarketplaceType2["AMM"] = "AMM";
40
+ MarketplaceType2["P2P"] = "P2P";
41
+ MarketplaceType2["SEQUENCE"] = "SEQUENCE";
42
+ MarketplaceType2["ORDERBOOK"] = "ORDERBOOK";
43
+ return MarketplaceType2;
44
+ })(MarketplaceType || {});
45
+ var FilterCondition = /* @__PURE__ */ ((FilterCondition2) => {
46
+ FilterCondition2["ENTIRE_KEY"] = "ENTIRE_KEY";
47
+ FilterCondition2["SPECIFIC_VALUE"] = "SPECIFIC_VALUE";
48
+ return FilterCondition2;
49
+ })(FilterCondition || {});
50
+ var WebrpcRequestFailedError = class _WebrpcRequestFailedError extends Error {
51
+ name;
52
+ code;
53
+ message;
54
+ status;
55
+ cause;
56
+ constructor(name = "WebrpcRequestFailed", code = -1, message = `request failed`, status = 0, cause) {
57
+ super(message);
58
+ this.name = name;
59
+ this.code = code;
60
+ this.message = message;
61
+ this.status = status;
62
+ this.cause = cause;
63
+ Object.setPrototypeOf(this, _WebrpcRequestFailedError.prototype);
64
+ }
65
+ // biome-ignore lint/suspicious/noExplicitAny: <explanation>
66
+ static new(payload) {
67
+ return new _WebrpcRequestFailedError(
68
+ payload.name,
69
+ payload.code,
70
+ payload.msg || payload.message,
71
+ payload.status,
72
+ payload.cause
73
+ );
74
+ }
75
+ };
76
+ var createHTTPRequest = (body = {}, headers = {}, signal = null) => {
77
+ return {
78
+ method: "POST",
79
+ headers: {
80
+ Accept: "application/json",
81
+ "Content-Type": "application/json",
82
+ ...headers
83
+ },
84
+ body: JSON.stringify(body || {}),
85
+ mode: "cors",
86
+ signal: signal || null
87
+ };
88
+ };
89
+ var buildResponse = (res) => {
90
+ if (!res.ok) {
91
+ return res.json().then((errData) => {
92
+ throw WebrpcRequestFailedError.new(errData);
93
+ });
94
+ }
95
+ return res.json();
96
+ };
97
+ var API = class {
98
+ hostname;
99
+ fetch;
100
+ path = "/rpc/Builder/";
101
+ constructor(hostname, fetch) {
102
+ this.hostname = hostname;
103
+ this.fetch = fetch;
104
+ }
105
+ url(name) {
106
+ return this.hostname + this.path + name;
107
+ }
108
+ lookupMarketplaceConfig = (args, headers, signal) => {
109
+ return this.fetch(
110
+ this.url("LookupMarketplaceConfig"),
111
+ createHTTPRequest(args, headers, signal)
112
+ ).then(
113
+ (res) => {
114
+ return buildResponse(res).then((_data) => {
115
+ return {
116
+ projectId: _data.projectId,
117
+ settings: _data.settings
118
+ };
119
+ });
120
+ },
121
+ (error) => {
122
+ throw WebrpcRequestFailedError.new({
123
+ cause: `fetch(): ${error.message || ""}`
124
+ });
125
+ }
126
+ );
127
+ };
128
+ };
129
+
130
+ // src/react/_internal/wagmi/get-connectors.ts
83
131
  function getConnectors({
84
132
  marketplaceConfig,
85
133
  sdkConfig,
@@ -89,7 +137,7 @@ function getConnectors({
89
137
  if (walletType === "UNIVERSAL" /* UNIVERSAL */) {
90
138
  connectors.push(...getUniversalWalletConfigs(sdkConfig, marketplaceConfig));
91
139
  } else if (walletType === "EMBEDDED" /* EMBEDDED */) {
92
- connectors.push(...getWaasConnectors(sdkConfig));
140
+ connectors.push(...getWaasConnectors(sdkConfig, marketplaceConfig));
93
141
  } else if (walletType === "ECOSYSTEM" /* ECOSYSTEM */) {
94
142
  connectors.push(getEcosystemConnector(marketplaceConfig, sdkConfig));
95
143
  } else {
@@ -101,7 +149,7 @@ function commonConnectors(marketplaceConfig, sdkConfig) {
101
149
  const wallets = [];
102
150
  const { title: appName } = marketplaceConfig;
103
151
  const walletOptions = marketplaceConfig.walletOptions;
104
- const walletConnectProjectId = sdkConfig.wallet?.walletConnectProjectId;
152
+ const walletConnectProjectId = sdkConfig.walletConnectProjectId;
105
153
  if (walletOptions.connectors.includes("coinbase")) {
106
154
  wallets.push(
107
155
  coinbaseWallet({
@@ -141,18 +189,26 @@ function getUniversalWalletConfigs(config, marketplaceConfig) {
141
189
  twitch(sequenceWalletOptions)
142
190
  ];
143
191
  }
144
- function getWaasConnectors(sdkConfig) {
145
- const { projectAccessKey } = sdkConfig;
146
- const waasConfigKey = sdkConfig.wallet?.embedded?.waasConfigKey;
147
- if (!waasConfigKey) throw new MissingConfigError("waasConfigKey");
148
- const { googleClientId, appleClientId, appleRedirectURI } = sdkConfig.wallet?.embedded || {};
149
- const wallets = [
150
- emailWaas({
151
- projectAccessKey,
152
- waasConfigKey,
153
- network: DEFAULT_NETWORK
154
- })
155
- ];
192
+ function getWaasConnectors(config, marketplaceConfig) {
193
+ const { projectAccessKey } = config;
194
+ const waasConfigKey = marketplaceConfig.walletOptions.waas?.tenantKey;
195
+ if (!waasConfigKey)
196
+ throw new MissingConfigError(
197
+ "Embedded wallet config is missing, please check your access key"
198
+ );
199
+ const waasOptions = marketplaceConfig.walletOptions.oidcIssuers;
200
+ const googleClientId = waasOptions.google;
201
+ const appleClientId = waasOptions.apple;
202
+ const appleRedirectURI = globalThis.window ? `https://${globalThis.window?.location?.origin}${globalThis.window?.location?.pathname}` : void 0;
203
+ const wallets = [];
204
+ if (marketplaceConfig.walletOptions.waas?.emailEnabled) {
205
+ wallets.push(
206
+ emailWaas({
207
+ projectAccessKey,
208
+ waasConfigKey
209
+ })
210
+ );
211
+ }
156
212
  if (googleClientId) {
157
213
  wallets.push(
158
214
  googleWaas({
@@ -215,10 +271,7 @@ var createWagmiConfig = (marketplaceConfig, sdkConfig, ssr) => {
215
271
  sdkConfig.projectAccessKey,
216
272
  nodeGatewayEnv
217
273
  );
218
- let walletType = marketplaceConfig.walletOptions.walletType;
219
- if (sdkConfig.wallet?.embedded?.waasConfigKey && walletType !== "ECOSYSTEM" /* ECOSYSTEM */) {
220
- walletType = "EMBEDDED" /* EMBEDDED */;
221
- }
274
+ const walletType = marketplaceConfig.walletOptions.walletType;
222
275
  const connectors = getConnectors({
223
276
  marketplaceConfig,
224
277
  sdkConfig,
@@ -267,18 +320,13 @@ function getTransportConfigs(chains, projectAccessKey, nodeGatewayEnv) {
267
320
 
268
321
  export {
269
322
  DEFAULT_NETWORK,
270
- PROVIDER_ID,
271
- getProviderEl,
272
- QueryArgSchema,
273
- CollectableIdSchema,
274
- AddressSchema,
275
- TransactionType,
323
+ MarketplaceWallet,
324
+ MarketplaceType,
325
+ FilterCondition,
326
+ API,
276
327
  getConnectors,
277
328
  getWaasConnectors,
278
329
  getEcosystemConnector,
279
- createWagmiConfig,
280
- MarketplaceWallet,
281
- FilterCondition,
282
- MarketplaceType
330
+ createWagmiConfig
283
331
  };
284
- //# sourceMappingURL=chunk-5HEZNTSU.js.map
332
+ //# sourceMappingURL=chunk-D7RVSZAQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/react/_internal/wagmi/create-config.ts","../src/react/_internal/consts.ts","../src/react/_internal/wagmi/get-connectors.ts","../src/react/_internal/api/builder.gen.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 type { Env, SdkConfig } from '../../../types';\nimport type { MarketplaceConfig } from '../../queries/marketplaceConfig';\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\tconst walletType = marketplaceConfig.walletOptions.walletType;\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","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 type { Env, SdkConfig } from '../../../types';\nimport { MissingConfigError } from '../../../utils/_internal/error/transaction';\nimport type { MarketplaceConfig } from '../../queries/marketplaceConfig';\nimport { MarketplaceWallet } from '../api/builder.gen';\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, marketplaceConfig));\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.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(\n\tconfig: SdkConfig,\n\tmarketplaceConfig: MarketplaceConfig,\n): Wallet[] {\n\tconst { projectAccessKey } = config;\n\n\tconst waasConfigKey = marketplaceConfig.walletOptions.waas?.tenantKey;\n\n\tif (!waasConfigKey)\n\t\tthrow new MissingConfigError(\n\t\t\t'Embedded wallet config is missing, please check your access key',\n\t\t);\n\n\tconst waasOptions = marketplaceConfig.walletOptions.oidcIssuers;\n\tconst googleClientId = waasOptions.google;\n\tconst appleClientId = waasOptions.apple;\n\tconst appleRedirectURI = globalThis.window\n\t\t? `https://${globalThis.window?.location?.origin}${globalThis.window?.location?.pathname}`\n\t\t: undefined;\n\n\tconst wallets: Wallet[] = [];\n\n\tif (marketplaceConfig.walletOptions.waas?.emailEnabled) {\n\t\twallets.push(\n\t\t\temailWaas({\n\t\t\t\tprojectAccessKey,\n\t\t\t\twaasConfigKey,\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 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","// Importing OrderbookKind from marketplace.gen, to avoid multiple enums\nimport { OrderbookKind } from \"./marketplace.gen\";\n\n// Extracted from builder webrpc\n\nexport interface LookupMarketplaceConfigArgs {\n projectId?: number;\n hostname?: string;\n}\n\nexport interface LookupMarketplaceConfigReturn {\n settings: MarketplaceSettings;\n}\n\nexport interface MarketplaceSettings {\n projectId: number;\n publisherId: string;\n title: string;\n shortDescription: string;\n socials: MarketplaceSocials;\n faviconUrl: string;\n landingBannerUrl: string;\n collections: Array<MarketplaceCollection>;\n walletOptions: MarketplaceWalletOptions;\n landingPageLayout: string;\n logoUrl: string;\n bannerUrl: string;\n fontUrl?: string;\n ogImage?: string;\n accessKey?: string;\n}\n\nexport interface MarketplaceSocials {\n twitter: string;\n discord: string;\n website: string;\n tiktok: string;\n instagram: string;\n youtube: string;\n}\n\nexport interface MarketplaceCollection {\n marketplaceType: MarketplaceType;\n chainId: number;\n address: string;\n exchanges: Array<string>;\n bannerUrl: string;\n feePercentage: number;\n currencyOptions: Array<string>;\n destinationMarketplace: OrderbookKind;\n filterSettings?: CollectionFilterSettings;\n isLAOSERC721?: boolean;\n}\n\nexport interface CollectionFilterSettings {\n filterOrder: Array<string>;\n exclusions: Array<MetadataFilterRule>;\n}\n\nexport interface OpenIdProvider {\n iss: string;\n aud: Array<string>;\n}\nexport interface MetadataFilterRule {\n key: string;\n condition: FilterCondition;\n value?: string;\n}\n\nexport interface MarketplaceWalletWaasSettings {\n tenantKey: string;\n emailEnabled: boolean;\n providers: Array<OpenIdProvider>;\n}\n\nexport interface MarketplaceWalletOptions {\n walletType: MarketplaceWallet;\n oidcIssuers: { [key: string]: string };\n connectors: Array<string>;\n includeEIP6963Wallets: boolean;\n ecosystem?: EcosystemWalletSettings;\n waas?: MarketplaceWalletWaasSettings;\n}\n\nexport interface EcosystemWalletSettings {\n walletUrl: string;\n walletAppName: string;\n logoLightUrl?: string;\n logoDarkUrl?: string;\n}\n\nexport enum MarketplaceWallet {\n UNIVERSAL = \"UNIVERSAL\",\n EMBEDDED = \"EMBEDDED\",\n ECOSYSTEM = \"ECOSYSTEM\",\n}\n\nexport enum MarketplaceType {\n AMM = \"AMM\",\n P2P = \"P2P\",\n SEQUENCE = \"SEQUENCE\",\n ORDERBOOK = \"ORDERBOOK\",\n}\n\nexport enum FilterCondition {\n ENTIRE_KEY = \"ENTIRE_KEY\",\n SPECIFIC_VALUE = \"SPECIFIC_VALUE\",\n}\n\nexport type Fetch = (\n input: RequestInfo,\n init?: RequestInit\n) => Promise<Response>;\n\nexport class WebrpcRequestFailedError extends Error {\n name: string;\n code: number;\n message: string;\n status: number;\n cause?: string;\n\n constructor(\n name = \"WebrpcRequestFailed\",\n code = -1,\n message = `request failed`,\n status = 0,\n cause?: string\n ) {\n super(message);\n this.name = name;\n this.code = code;\n this.message = message;\n this.status = status;\n this.cause = cause;\n Object.setPrototypeOf(this, WebrpcRequestFailedError.prototype);\n }\n\n // biome-ignore lint/suspicious/noExplicitAny: <explanation>\n static new(payload: any): WebrpcRequestFailedError {\n return new WebrpcRequestFailedError(\n payload.name,\n payload.code,\n payload.msg || payload.message,\n payload.status,\n payload.cause\n );\n }\n}\n\nconst createHTTPRequest = (\n body: object = {},\n headers: object = {},\n signal: AbortSignal | null = null\n): object => {\n return {\n method: \"POST\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n ...headers,\n },\n body: JSON.stringify(body || {}),\n mode: \"cors\",\n signal: signal || null,\n };\n};\n\nconst buildResponse = (res: Response): Promise<any> => {\n if (!res.ok) {\n return res.json().then((errData) => {\n throw WebrpcRequestFailedError.new(errData);\n });\n }\n return res.json();\n};\n\nexport class API {\n protected hostname: string;\n protected fetch: Fetch;\n protected path = \"/rpc/Builder/\";\n\n constructor(hostname: string, fetch: Fetch) {\n this.hostname = hostname;\n this.fetch = fetch;\n }\n\n private url(name: string): string {\n return this.hostname + this.path + name;\n }\n\n lookupMarketplaceConfig = (\n args: LookupMarketplaceConfigArgs,\n headers?: object,\n signal?: AbortSignal\n ): Promise<LookupMarketplaceConfigReturn> => {\n return this.fetch(\n this.url(\"LookupMarketplaceConfig\"),\n createHTTPRequest(args, headers, signal)\n ).then(\n (res) => {\n return buildResponse(res).then((_data) => {\n return {\n projectId: <number>_data.projectId,\n settings: <MarketplaceSettings>_data.settings,\n };\n });\n },\n (error) => {\n throw WebrpcRequestFailedError.new({\n cause: `fetch(): ${error.message || \"\"}`,\n });\n }\n );\n };\n}\n"],"mappings":"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","names":["MarketplaceWallet","MarketplaceType","FilterCondition"]}
@@ -0,0 +1,42 @@
1
+ // src/react/_internal/get-provider.ts
2
+ var PROVIDER_ID = "sdk-provider";
3
+ function getProviderEl() {
4
+ if (!globalThis.document) return null;
5
+ return document.getElementById(PROVIDER_ID);
6
+ }
7
+
8
+ // src/react/_internal/types.ts
9
+ import { z } from "zod";
10
+ var QueryArgSchema = z.object({
11
+ enabled: z.boolean().optional()
12
+ }).optional();
13
+ var CollectableIdSchema = z.string().or(z.number());
14
+ var AddressSchema = z.string().transform((val, ctx) => {
15
+ const regex = /^0x[a-fA-F0-9]{40}$/;
16
+ if (!regex.test(val)) {
17
+ ctx.addIssue({
18
+ code: z.ZodIssueCode.custom,
19
+ message: `Invalid Address ${val}`
20
+ });
21
+ }
22
+ return val;
23
+ });
24
+ var TransactionType = /* @__PURE__ */ ((TransactionType2) => {
25
+ TransactionType2["BUY"] = "BUY";
26
+ TransactionType2["SELL"] = "SELL";
27
+ TransactionType2["LISTING"] = "LISTING";
28
+ TransactionType2["OFFER"] = "OFFER";
29
+ TransactionType2["TRANSFER"] = "TRANSFER";
30
+ TransactionType2["CANCEL"] = "CANCEL";
31
+ return TransactionType2;
32
+ })(TransactionType || {});
33
+
34
+ export {
35
+ PROVIDER_ID,
36
+ getProviderEl,
37
+ QueryArgSchema,
38
+ CollectableIdSchema,
39
+ AddressSchema,
40
+ TransactionType
41
+ };
42
+ //# sourceMappingURL=chunk-DWTLVJAW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/react/_internal/get-provider.ts","../src/react/_internal/types.ts"],"sourcesContent":["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"],"mappings":";AAAO,IAAM,cAAc;AAEpB,SAAS,gBAAgB;AAC/B,MAAI,CAAC,WAAW,SAAU,QAAO;AACjC,SAAO,SAAS,eAAe,WAAW;AAC3C;;;ACHA,SAAS,SAAS;AAKX,IAAM,iBAAiB,EAC5B,OAAO;AAAA,EACP,SAAS,EAAE,QAAQ,EAAE,SAAS;AAC/B,CAAC,EACA,SAAS;AAIJ,IAAM,sBAAsB,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC;AAEpD,IAAM,gBAAgB,EAAE,OAAO,EAAE,UAAU,CAAC,KAAK,QAAQ;AAC/D,QAAM,QAAQ;AAEd,MAAI,CAAC,MAAM,KAAK,GAAG,GAAG;AACrB,QAAI,SAAS;AAAA,MACZ,MAAM,EAAE,aAAa;AAAA,MACrB,SAAS,mBAAmB,GAAG;AAAA,IAChC,CAAC;AAAA,EACF;AAEA,SAAO;AACR,CAAC;AAeM,IAAK,kBAAL,kBAAKA,qBAAL;AACN,EAAAA,iBAAA,SAAM;AACN,EAAAA,iBAAA,UAAO;AACP,EAAAA,iBAAA,aAAU;AACV,EAAAA,iBAAA,WAAQ;AACR,EAAAA,iBAAA,cAAW;AACX,EAAAA,iBAAA,YAAS;AANE,SAAAA;AAAA,GAAA;","names":["TransactionType"]}
@@ -2,7 +2,7 @@
2
2
 
3
3
  import {
4
4
  collectionOptions
5
- } from "./chunk-Q2DA477S.js";
5
+ } from "./chunk-YALXP2PW.js";
6
6
  import {
7
7
  InfoIcon_default
8
8
  } from "./chunk-EODKQL6Y.js";
@@ -27,25 +27,21 @@ import {
27
27
  listBalancesOptions,
28
28
  listCollectiblesOptions,
29
29
  lowestListingOptions
30
- } from "./chunk-7FVZD2LL.js";
30
+ } from "./chunk-4XLXOEXQ.js";
31
31
  import {
32
32
  marketplaceConfigOptions
33
- } from "./chunk-N7E37ENQ.js";
33
+ } from "./chunk-MAD64DLJ.js";
34
34
  import {
35
35
  AddressSchema,
36
36
  CollectableIdSchema,
37
37
  PROVIDER_ID,
38
38
  QueryArgSchema
39
- } from "./chunk-5HEZNTSU.js";
39
+ } from "./chunk-DWTLVJAW.js";
40
40
  import {
41
- BaseError,
42
- ChainSwitchError,
43
- ChainSwitchUserRejectedError,
44
41
  CollectibleStatus,
45
42
  CollectionStatus,
46
43
  ContractType,
47
44
  MarketplaceKind,
48
- NoWalletConnectedError,
49
45
  OrderSide,
50
46
  OrderStatus,
51
47
  OrderbookKind,
@@ -54,15 +50,10 @@ import {
54
50
  SortOrder,
55
51
  SourceKind,
56
52
  StepType,
57
- TransactionConfirmationError,
58
53
  TransactionCrypto,
59
- TransactionExecutionError,
60
54
  TransactionNFTCheckoutProvider,
61
55
  TransactionOnRampProvider,
62
- TransactionSignatureError,
63
56
  TransactionSwapProvider,
64
- UserRejectedRequestError,
65
- WalletInstanceNotFoundError,
66
57
  WalletKind,
67
58
  balanceQueries,
68
59
  collectableKeys,
@@ -72,7 +63,18 @@ import {
72
63
  getMarketplaceClient,
73
64
  getMetadataClient,
74
65
  getQueryClient
75
- } from "./chunk-KTT27YUN.js";
66
+ } from "./chunk-KGM2WLSP.js";
67
+ import {
68
+ BaseError,
69
+ ChainSwitchError,
70
+ ChainSwitchUserRejectedError,
71
+ NoWalletConnectedError,
72
+ TransactionConfirmationError,
73
+ TransactionExecutionError,
74
+ TransactionSignatureError,
75
+ UserRejectedRequestError,
76
+ WalletInstanceNotFoundError
77
+ } from "./chunk-NX52D7NX.js";
76
78
 
77
79
  // src/react/hooks/useAutoSelectFeeOption.tsx
78
80
  import { zeroAddress } from "viem";
@@ -1743,7 +1745,9 @@ import {
1743
1745
 
1744
1746
  // src/react/_internal/wallet/wallet.ts
1745
1747
  import {
1748
+ BaseError as BaseError2,
1746
1749
  TransactionReceiptNotFoundError,
1750
+ UserRejectedRequestError as ViemUserRejectedRequestError,
1747
1751
  WaitForTransactionReceiptTimeoutError,
1748
1752
  custom,
1749
1753
  erc20Abi,
@@ -1873,8 +1877,15 @@ var wallet = ({
1873
1877
  message: stepItem.signature.value
1874
1878
  });
1875
1879
  }
1876
- } catch (error) {
1880
+ } catch (e) {
1881
+ const error = e;
1877
1882
  logger.error("Signature failed", error);
1883
+ if (error.cause instanceof BaseError2) {
1884
+ const viemError = error.cause;
1885
+ if (viemError instanceof ViemUserRejectedRequestError) {
1886
+ throw new UserRejectedRequestError();
1887
+ }
1888
+ }
1878
1889
  throw new TransactionSignatureError(stepItem.id, error);
1879
1890
  }
1880
1891
  },
@@ -1902,8 +1913,15 @@ var wallet = ({
1902
1913
  gas: hexToBigInt(stepItem.gas)
1903
1914
  }
1904
1915
  });
1905
- } catch (error) {
1916
+ } catch (e) {
1917
+ const error = e;
1906
1918
  logger.error("Transaction failed", error);
1919
+ if (error.cause instanceof BaseError2) {
1920
+ const viemError = error.cause;
1921
+ if (viemError instanceof ViemUserRejectedRequestError) {
1922
+ throw new UserRejectedRequestError();
1923
+ }
1924
+ }
1907
1925
  throw new TransactionExecutionError(stepItem.id, error);
1908
1926
  }
1909
1927
  },
@@ -1954,7 +1972,8 @@ var wallet = ({
1954
1972
  default:
1955
1973
  throw new Error("Unsupported contract type for approval checking");
1956
1974
  }
1957
- }
1975
+ },
1976
+ publicClient
1958
1977
  };
1959
1978
  return walletInstance;
1960
1979
  };
@@ -2858,4 +2877,4 @@ export {
2858
2877
  collectionDetailsPollingOptions,
2859
2878
  useCollectionDetailsPolling
2860
2879
  };
2861
- //# sourceMappingURL=chunk-YAUZLETY.js.map
2880
+ //# sourceMappingURL=chunk-G3447GIP.js.map