@imtbl/sdk 1.36.0 → 1.36.1-alpha
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/blockchain_data.js +2 -2
- package/dist/browser/checkout/{BridgeWidget-d624b1bd.js → BridgeWidget-235efe43.js} +1 -1
- package/dist/browser/checkout/{OnRampWidget-5abd1f62.js → OnRampWidget-3a89c146.js} +1 -1
- package/dist/browser/checkout/SaleWidget-4399a54a.js +1 -0
- package/dist/browser/checkout/{SpendingCapHero-22d5c9bb.js → SpendingCapHero-df8963ac.js} +1 -1
- package/dist/browser/checkout/{SwapWidget-f40f5b60.js → SwapWidget-a85e6e03.js} +1 -1
- package/dist/browser/checkout/{TopUpView-eb812fbe.js → TopUpView-f21628fb.js} +1 -1
- package/dist/browser/checkout/{WalletWidget-de3edac3.js → WalletWidget-987f1522.js} +1 -1
- package/dist/browser/checkout/{auto-track-382bdef3.js → auto-track-5ee23448.js} +1 -1
- package/dist/browser/checkout/{balance-7cbf0236.js → balance-7239bbb5.js} +1 -1
- package/dist/browser/checkout/{index-704af722.js → index-04bf2dbb.js} +1 -1
- package/dist/browser/checkout/index-0a7c3cbc.js +1 -0
- package/dist/browser/checkout/{index-df7e23e2.js → index-3a392928.js} +2 -2
- package/dist/browser/checkout/{index-c73df3b2.js → index-62c1f6d9.js} +1 -1
- package/dist/browser/checkout/{index-ba76afc7.js → index-82a2edf5.js} +1 -1
- package/dist/browser/checkout/{index-8bbe4eda.js → index-8645c324.js} +1 -1
- package/dist/browser/checkout/{index-bdae58ab.js → index-a0f1ffb1.js} +1 -1
- package/dist/browser/checkout/{index-04ed13fb.js → index-be41adcd.js} +1 -1
- package/dist/browser/checkout/{index.umd-669adf6e.js → index.umd-6032c84f.js} +1 -1
- package/dist/browser/checkout/{retry-746773e8.js → retry-ce7d1cfd.js} +1 -1
- package/dist/browser/checkout/sdk.js +4 -4
- package/dist/browser/checkout/widgets-esm.js +1 -1
- package/dist/browser/checkout/widgets.js +1 -1
- package/dist/checkout.js +4 -4
- package/dist/config.js +1 -1
- package/dist/index.browser.js +4 -4
- package/dist/index.browser.js.map +1 -1
- package/dist/index.cjs +608 -15
- package/dist/index.d.ts +139 -7
- package/dist/index.js +607 -16
- package/dist/minting_backend.d.ts +3528 -0
- package/dist/minting_backend.js +6596 -0
- package/dist/orderbook.js +1 -1
- package/dist/passport.js +4 -4
- package/dist/webhook.d.ts +11 -0
- package/dist/webhook.js +388 -0
- package/dist/x.js +3 -3
- package/package.json +9 -1
- package/dist/browser/checkout/SaleWidget-9e937008.js +0 -1
- package/dist/browser/checkout/index-96adfa1b.js +0 -1
package/dist/orderbook.js
CHANGED
|
@@ -132,7 +132,7 @@ const flattenProperties = (properties) => {
|
|
|
132
132
|
};
|
|
133
133
|
|
|
134
134
|
// WARNING: DO NOT CHANGE THE STRING BELOW. IT GETS REPLACED AT BUILD TIME.
|
|
135
|
-
const SDK_VERSION = '1.36.
|
|
135
|
+
const SDK_VERSION = '1.36.1-alpha';
|
|
136
136
|
const getFrameParentDomain = () => {
|
|
137
137
|
if (isNode()) {
|
|
138
138
|
return '';
|
package/dist/passport.js
CHANGED
|
@@ -11459,7 +11459,7 @@ class MultiRollupApiClients {
|
|
|
11459
11459
|
}
|
|
11460
11460
|
|
|
11461
11461
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
11462
|
-
const defaultHeaders$1 = { 'x-sdk-version': 'ts-immutable-sdk-1.36.
|
|
11462
|
+
const defaultHeaders$1 = { 'x-sdk-version': 'ts-immutable-sdk-1.36.1-alpha' };
|
|
11463
11463
|
const createConfig$1 = ({ basePath, headers, }) => {
|
|
11464
11464
|
if (!basePath.trim()) {
|
|
11465
11465
|
throw Error('basePath can not be empty');
|
|
@@ -11638,7 +11638,7 @@ const flattenProperties = (properties) => {
|
|
|
11638
11638
|
};
|
|
11639
11639
|
|
|
11640
11640
|
// WARNING: DO NOT CHANGE THE STRING BELOW. IT GETS REPLACED AT BUILD TIME.
|
|
11641
|
-
const SDK_VERSION = '1.36.
|
|
11641
|
+
const SDK_VERSION = '1.36.1-alpha';
|
|
11642
11642
|
const getFrameParentDomain = () => {
|
|
11643
11643
|
if (isNode()) {
|
|
11644
11644
|
return '';
|
|
@@ -12028,7 +12028,7 @@ const addKeysToHeadersOverride = (baseConfig, overrides) => {
|
|
|
12028
12028
|
/* eslint-disable @typescript-eslint/naming-convention */
|
|
12029
12029
|
class ApiConfiguration extends index$2.Configuration {
|
|
12030
12030
|
}
|
|
12031
|
-
const defaultHeaders = { 'x-sdk-version': 'ts-immutable-sdk-1.36.
|
|
12031
|
+
const defaultHeaders = { 'x-sdk-version': 'ts-immutable-sdk-1.36.1-alpha' };
|
|
12032
12032
|
/**
|
|
12033
12033
|
* @dev use createImmutableXConfiguration instead
|
|
12034
12034
|
*/
|
|
@@ -12067,7 +12067,7 @@ const createImmutableXConfiguration = ({ basePath, chainID, coreContractAddress,
|
|
|
12067
12067
|
chainID,
|
|
12068
12068
|
coreContractAddress,
|
|
12069
12069
|
registrationContractAddress,
|
|
12070
|
-
sdkVersion: 'ts-immutable-sdk-1.36.
|
|
12070
|
+
sdkVersion: 'ts-immutable-sdk-1.36.1-alpha',
|
|
12071
12071
|
baseConfig,
|
|
12072
12072
|
});
|
|
12073
12073
|
const production = ({ baseConfig }) => createImmutableXConfiguration({
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
declare enum Environment {
|
|
2
|
+
PRODUCTION = "production",
|
|
3
|
+
SANDBOX = "sandbox"
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
declare const init: (body: string | Record<string, unknown>, env: Environment, handlers: {
|
|
7
|
+
zkevmMintRequestUpdated: (event: any) => Promise<void>;
|
|
8
|
+
others?: ((event: any) => Promise<void>) | undefined;
|
|
9
|
+
}) => Promise<void>;
|
|
10
|
+
|
|
11
|
+
export { init };
|
package/dist/webhook.js
ADDED
|
@@ -0,0 +1,388 @@
|
|
|
1
|
+
import MessageValidator from 'sns-validator';
|
|
2
|
+
import axios from 'axios';
|
|
3
|
+
import { memorise } from 'lru-memorise';
|
|
4
|
+
import { getGlobalisedValue as getGlobalisedValue$1 } from 'global-const';
|
|
5
|
+
|
|
6
|
+
const isNode = () => typeof window === 'undefined';
|
|
7
|
+
const isBrowser = () => !isNode();
|
|
8
|
+
|
|
9
|
+
var Detail;
|
|
10
|
+
(function (Detail) {
|
|
11
|
+
Detail["RUNTIME_ID"] = "rid";
|
|
12
|
+
Detail["PASSPORT_CLIENT_ID"] = "passportClientId";
|
|
13
|
+
Detail["ENVIRONMENT"] = "env";
|
|
14
|
+
Detail["PUBLISHABLE_API_KEY"] = "pak";
|
|
15
|
+
Detail["IDENTITY"] = "uid";
|
|
16
|
+
Detail["DOMAIN"] = "domain";
|
|
17
|
+
Detail["SDK_VERSION"] = "sdkVersion";
|
|
18
|
+
})(Detail || (Detail = {}));
|
|
19
|
+
|
|
20
|
+
const IMTBL_API = 'https://api.immutable.com';
|
|
21
|
+
async function post(path, data) {
|
|
22
|
+
const client = axios.create({
|
|
23
|
+
baseURL: IMTBL_API,
|
|
24
|
+
});
|
|
25
|
+
const payload = JSON.stringify(data);
|
|
26
|
+
const body = {
|
|
27
|
+
payload: Buffer.from(payload).toString('base64'),
|
|
28
|
+
};
|
|
29
|
+
const response = await client.post(path, body);
|
|
30
|
+
return response.data;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Abstraction on localstorage
|
|
35
|
+
*/
|
|
36
|
+
const localStoragePrefix = '__IMX-';
|
|
37
|
+
const hasLocalstorage = () => isBrowser() && window.localStorage;
|
|
38
|
+
const parseItem = (payload) => {
|
|
39
|
+
// Try to parse, if can't be parsed assume string
|
|
40
|
+
// and return string
|
|
41
|
+
if (payload === null)
|
|
42
|
+
return undefined;
|
|
43
|
+
try {
|
|
44
|
+
return JSON.parse(payload);
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
// Assumes it's a string.
|
|
48
|
+
return payload;
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
const serialiseItem = (payload) => {
|
|
52
|
+
if (typeof payload === 'string') {
|
|
53
|
+
return payload;
|
|
54
|
+
}
|
|
55
|
+
return JSON.stringify(payload);
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* GenKey will take into account the namespace
|
|
59
|
+
* as well as if being run in the Link, it will tap into the link
|
|
60
|
+
* @param {string} key
|
|
61
|
+
* @returns key
|
|
62
|
+
*/
|
|
63
|
+
const genKey = (key) => `${localStoragePrefix}${key}`;
|
|
64
|
+
function getItem(key) {
|
|
65
|
+
if (hasLocalstorage()) {
|
|
66
|
+
return parseItem(window.localStorage.getItem(genKey(key)));
|
|
67
|
+
}
|
|
68
|
+
return undefined;
|
|
69
|
+
}
|
|
70
|
+
const setItem = (key, payload) => {
|
|
71
|
+
if (hasLocalstorage()) {
|
|
72
|
+
window.localStorage.setItem(genKey(key), serialiseItem(payload));
|
|
73
|
+
return true;
|
|
74
|
+
}
|
|
75
|
+
return false;
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
var Store;
|
|
79
|
+
(function (Store) {
|
|
80
|
+
Store["EVENTS"] = "events";
|
|
81
|
+
Store["RUNTIME"] = "runtime";
|
|
82
|
+
})(Store || (Store = {}));
|
|
83
|
+
// In memory storage for events and other data
|
|
84
|
+
let EVENT_STORE;
|
|
85
|
+
let RUNTIME_DETAILS;
|
|
86
|
+
// Initialise store and runtime
|
|
87
|
+
const initialise$1 = () => {
|
|
88
|
+
EVENT_STORE = getItem(Store.EVENTS) || [];
|
|
89
|
+
RUNTIME_DETAILS = getItem(Store.RUNTIME) || {};
|
|
90
|
+
};
|
|
91
|
+
initialise$1();
|
|
92
|
+
// Runtime Details
|
|
93
|
+
const storeDetail = (key, value) => {
|
|
94
|
+
RUNTIME_DETAILS = {
|
|
95
|
+
...RUNTIME_DETAILS,
|
|
96
|
+
[key]: value,
|
|
97
|
+
};
|
|
98
|
+
setItem(Store.RUNTIME, RUNTIME_DETAILS);
|
|
99
|
+
};
|
|
100
|
+
const getDetail$1 = (key) => {
|
|
101
|
+
// Handle the scenario where detail is a falsy value
|
|
102
|
+
if (RUNTIME_DETAILS[key] === undefined) {
|
|
103
|
+
return undefined;
|
|
104
|
+
}
|
|
105
|
+
return RUNTIME_DETAILS[key];
|
|
106
|
+
};
|
|
107
|
+
const getAllDetails = () => RUNTIME_DETAILS;
|
|
108
|
+
// Events
|
|
109
|
+
const getEvents = () => EVENT_STORE;
|
|
110
|
+
const addEvent = (event) => {
|
|
111
|
+
EVENT_STORE.push(event);
|
|
112
|
+
setItem(Store.EVENTS, EVENT_STORE);
|
|
113
|
+
};
|
|
114
|
+
const removeSentEvents = (numberOfEvents) => {
|
|
115
|
+
EVENT_STORE = EVENT_STORE.slice(numberOfEvents);
|
|
116
|
+
setItem(Store.EVENTS, EVENT_STORE);
|
|
117
|
+
};
|
|
118
|
+
const flattenProperties = (properties) => {
|
|
119
|
+
const propertyMap = [];
|
|
120
|
+
Object.entries(properties).forEach(([key, value]) => {
|
|
121
|
+
if (typeof key === 'string'
|
|
122
|
+
|| typeof value === 'string'
|
|
123
|
+
|| typeof value === 'number'
|
|
124
|
+
|| typeof value === 'boolean') {
|
|
125
|
+
propertyMap.push([key, value.toString()]);
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
return propertyMap;
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
// WARNING: DO NOT CHANGE THE STRING BELOW. IT GETS REPLACED AT BUILD TIME.
|
|
132
|
+
const SDK_VERSION = '1.36.1-alpha';
|
|
133
|
+
const getFrameParentDomain = () => {
|
|
134
|
+
if (isNode()) {
|
|
135
|
+
return '';
|
|
136
|
+
}
|
|
137
|
+
// If available for supported browsers (all except Firefox)
|
|
138
|
+
if (window.location.ancestorOrigins
|
|
139
|
+
&& window.location.ancestorOrigins.length > 0) {
|
|
140
|
+
return new URL(window.location.ancestorOrigins[0]).hostname;
|
|
141
|
+
}
|
|
142
|
+
// Fallback to using the referrer
|
|
143
|
+
return document.referrer ? new URL(window.document.referrer).hostname : '';
|
|
144
|
+
};
|
|
145
|
+
const runtimeHost = () => {
|
|
146
|
+
if (isNode()) {
|
|
147
|
+
return '';
|
|
148
|
+
}
|
|
149
|
+
let domain;
|
|
150
|
+
try {
|
|
151
|
+
if (window.self !== window.top) {
|
|
152
|
+
domain = getFrameParentDomain();
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
catch (error) {
|
|
156
|
+
// Do nothing
|
|
157
|
+
}
|
|
158
|
+
// Fallback to current domain if can't detect parent domain
|
|
159
|
+
if (!domain) {
|
|
160
|
+
domain = window.location.hostname;
|
|
161
|
+
}
|
|
162
|
+
return domain;
|
|
163
|
+
};
|
|
164
|
+
const getRuntimeDetails = () => {
|
|
165
|
+
storeDetail(Detail.SDK_VERSION, SDK_VERSION);
|
|
166
|
+
if (isNode()) {
|
|
167
|
+
return { browser: 'nodejs', sdkVersion: SDK_VERSION };
|
|
168
|
+
}
|
|
169
|
+
const domain = runtimeHost();
|
|
170
|
+
if (domain) {
|
|
171
|
+
storeDetail(Detail.DOMAIN, domain);
|
|
172
|
+
}
|
|
173
|
+
return {
|
|
174
|
+
sdkVersion: SDK_VERSION,
|
|
175
|
+
browser: window.navigator.userAgent,
|
|
176
|
+
domain,
|
|
177
|
+
tz: Intl.DateTimeFormat().resolvedOptions().timeZone,
|
|
178
|
+
screen: `${window.screen.width}x${window.screen.height}`,
|
|
179
|
+
};
|
|
180
|
+
};
|
|
181
|
+
let initialised = false;
|
|
182
|
+
const isInitialised = () => initialised;
|
|
183
|
+
const initialise = async () => {
|
|
184
|
+
initialised = true;
|
|
185
|
+
try {
|
|
186
|
+
const runtimeDetails = flattenProperties(getRuntimeDetails());
|
|
187
|
+
const existingRuntimeId = getDetail$1(Detail.RUNTIME_ID);
|
|
188
|
+
const body = {
|
|
189
|
+
version: 1,
|
|
190
|
+
data: {
|
|
191
|
+
runtimeDetails,
|
|
192
|
+
runtimeId: existingRuntimeId,
|
|
193
|
+
},
|
|
194
|
+
};
|
|
195
|
+
const response = await post('/v1/sdk/initialise', body);
|
|
196
|
+
// Get runtimeId and store it
|
|
197
|
+
const { runtimeId } = response;
|
|
198
|
+
storeDetail(Detail.RUNTIME_ID, runtimeId);
|
|
199
|
+
}
|
|
200
|
+
catch (error) {
|
|
201
|
+
initialised = false;
|
|
202
|
+
}
|
|
203
|
+
};
|
|
204
|
+
|
|
205
|
+
function errorBoundary(fn, fallbackResult) {
|
|
206
|
+
return (...args) => {
|
|
207
|
+
try {
|
|
208
|
+
// Execute the original function
|
|
209
|
+
const result = fn(...args);
|
|
210
|
+
if (result instanceof Promise) {
|
|
211
|
+
// Silent fail for now, in future
|
|
212
|
+
// we can send errors to a logging service
|
|
213
|
+
return result.catch(() => fallbackResult);
|
|
214
|
+
}
|
|
215
|
+
return result;
|
|
216
|
+
}
|
|
217
|
+
catch (error) {
|
|
218
|
+
// As above, fail silently for now
|
|
219
|
+
return fallbackResult;
|
|
220
|
+
}
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
function isTestEnvironmentFn() {
|
|
225
|
+
if (isBrowser()) {
|
|
226
|
+
return false;
|
|
227
|
+
}
|
|
228
|
+
if (typeof process === 'undefined') {
|
|
229
|
+
return false;
|
|
230
|
+
}
|
|
231
|
+
// Consider using `ci-info` package for better results, though might fail as not browser safe.
|
|
232
|
+
// Just use process.env.CI for now.
|
|
233
|
+
return process.env.JEST_WORKER_ID !== undefined;
|
|
234
|
+
}
|
|
235
|
+
const isTestEnvironment = errorBoundary(isTestEnvironmentFn, false);
|
|
236
|
+
|
|
237
|
+
const GLOBALISE_KEY = 'imtbl__metrics';
|
|
238
|
+
const MEMORISE_TIMEFRAME = 5000;
|
|
239
|
+
const MEMORISE_MAX = 1000;
|
|
240
|
+
const getGlobalisedValue = (key, value) => getGlobalisedValue$1(GLOBALISE_KEY, key, value);
|
|
241
|
+
const getGlobalisedCachedFunction = (key, fn) => {
|
|
242
|
+
// Some applications (esp backend, or frontends using the split bundles) can sometimes
|
|
243
|
+
// initialise the same request multiple times. This will prevent multiple of the
|
|
244
|
+
// same event,value from being reported in a 1 second period.
|
|
245
|
+
const memorisedFn = memorise(fn, {
|
|
246
|
+
lruOptions: { ttl: MEMORISE_TIMEFRAME, max: MEMORISE_MAX },
|
|
247
|
+
});
|
|
248
|
+
return getGlobalisedValue$1(GLOBALISE_KEY, key, memorisedFn);
|
|
249
|
+
};
|
|
250
|
+
|
|
251
|
+
const POLLING_FREQUENCY = 5000;
|
|
252
|
+
const trackFn = (moduleName, eventName, properties) => {
|
|
253
|
+
const event = {
|
|
254
|
+
event: `${moduleName}.${eventName}`,
|
|
255
|
+
time: new Date().toISOString(),
|
|
256
|
+
...(properties && { properties: flattenProperties(properties) }),
|
|
257
|
+
};
|
|
258
|
+
addEvent(event);
|
|
259
|
+
};
|
|
260
|
+
/**
|
|
261
|
+
* Track an event completion.
|
|
262
|
+
* @param moduleName Name of the module being tracked (for namespacing purposes), e.g. `passport`
|
|
263
|
+
* @param eventName Name of the event, use camelCase e.g. `clickItem`
|
|
264
|
+
* @param properties Other properties to be sent with the event
|
|
265
|
+
*
|
|
266
|
+
* e.g.
|
|
267
|
+
*
|
|
268
|
+
* ```ts
|
|
269
|
+
* track("passport", "performTransaction");
|
|
270
|
+
* track("passport", "performTransaction", { transationType: "transfer" });
|
|
271
|
+
* ```
|
|
272
|
+
*/
|
|
273
|
+
errorBoundary(getGlobalisedCachedFunction('track', trackFn));
|
|
274
|
+
// Sending events to the server
|
|
275
|
+
const flushFn = async () => {
|
|
276
|
+
// Don't flush if not initialised
|
|
277
|
+
if (isInitialised() === false) {
|
|
278
|
+
await initialise();
|
|
279
|
+
return;
|
|
280
|
+
}
|
|
281
|
+
const events = getEvents();
|
|
282
|
+
if (events.length === 0) {
|
|
283
|
+
return;
|
|
284
|
+
}
|
|
285
|
+
// Track events length here, incase
|
|
286
|
+
const numEvents = events.length;
|
|
287
|
+
// Get details and send it with the track request
|
|
288
|
+
const details = getAllDetails();
|
|
289
|
+
const metricsPayload = {
|
|
290
|
+
version: 1,
|
|
291
|
+
data: {
|
|
292
|
+
events,
|
|
293
|
+
details,
|
|
294
|
+
},
|
|
295
|
+
};
|
|
296
|
+
const response = await post('/v1/sdk/metrics', metricsPayload);
|
|
297
|
+
if (response instanceof Error) {
|
|
298
|
+
return;
|
|
299
|
+
}
|
|
300
|
+
// Clear events if successfully posted
|
|
301
|
+
removeSentEvents(numEvents);
|
|
302
|
+
};
|
|
303
|
+
const flush = errorBoundary(flushFn);
|
|
304
|
+
// Flush events every 5 seconds
|
|
305
|
+
const flushPoll = async () => {
|
|
306
|
+
await flush();
|
|
307
|
+
setTimeout(flushPoll, POLLING_FREQUENCY);
|
|
308
|
+
};
|
|
309
|
+
let flushingStarted = false;
|
|
310
|
+
const startFlushing = () => {
|
|
311
|
+
if (flushingStarted) {
|
|
312
|
+
return;
|
|
313
|
+
}
|
|
314
|
+
flushingStarted = true;
|
|
315
|
+
flushPoll();
|
|
316
|
+
};
|
|
317
|
+
// This will get initialised when module is imported.
|
|
318
|
+
if (!isTestEnvironment()) {
|
|
319
|
+
errorBoundary(getGlobalisedValue('startFlushing', startFlushing))();
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
const setEnvironmentFn = (env) => {
|
|
323
|
+
storeDetail(Detail.ENVIRONMENT, env);
|
|
324
|
+
};
|
|
325
|
+
errorBoundary(getGlobalisedValue('setEnvironment', setEnvironmentFn));
|
|
326
|
+
const setPassportClientIdFn = (passportClientId) => {
|
|
327
|
+
storeDetail(Detail.PASSPORT_CLIENT_ID, passportClientId);
|
|
328
|
+
};
|
|
329
|
+
errorBoundary(getGlobalisedValue('setPassportClientId', setPassportClientIdFn));
|
|
330
|
+
const setPublishableApiKeyFn = (publishableApiKey) => {
|
|
331
|
+
storeDetail(Detail.PUBLISHABLE_API_KEY, publishableApiKey);
|
|
332
|
+
};
|
|
333
|
+
errorBoundary(getGlobalisedValue('setPublishableApiKey', setPublishableApiKeyFn));
|
|
334
|
+
errorBoundary(getGlobalisedValue('getDetail', getDetail$1));
|
|
335
|
+
|
|
336
|
+
var Environment;
|
|
337
|
+
(function (Environment) {
|
|
338
|
+
Environment["PRODUCTION"] = "production";
|
|
339
|
+
Environment["SANDBOX"] = "sandbox";
|
|
340
|
+
})(Environment || (Environment = {}));
|
|
341
|
+
var KeyHeaders;
|
|
342
|
+
(function (KeyHeaders) {
|
|
343
|
+
KeyHeaders["API_KEY"] = "x-immutable-api-key";
|
|
344
|
+
KeyHeaders["PUBLISHABLE_KEY"] = "x-immutable-publishable-key";
|
|
345
|
+
KeyHeaders["RATE_LIMITING_KEY"] = "x-api-key";
|
|
346
|
+
})(KeyHeaders || (KeyHeaders = {}));
|
|
347
|
+
|
|
348
|
+
const validator = new MessageValidator();
|
|
349
|
+
const allowedTopicArnPrefix = {
|
|
350
|
+
[Environment.PRODUCTION]: 'arn:aws:sns:us-east-2:362750628221:',
|
|
351
|
+
[Environment.SANDBOX]: 'arn:aws:sns:us-east-2:783421985614:'
|
|
352
|
+
};
|
|
353
|
+
const init = async (body, env, handlers) => {
|
|
354
|
+
const msg = await new Promise((resolve, reject) => {
|
|
355
|
+
validator.validate(body, (err, message) => {
|
|
356
|
+
if (err) {
|
|
357
|
+
return reject(err);
|
|
358
|
+
}
|
|
359
|
+
// check for topic arn prefix
|
|
360
|
+
if (!message.TopicArn.startsWith(allowedTopicArnPrefix[env])) {
|
|
361
|
+
throw new Error('Invalid topic arn');
|
|
362
|
+
}
|
|
363
|
+
if (message?.Type === 'SubscriptionConfirmation') {
|
|
364
|
+
fetch(message.SubscribeURL).then(() => {
|
|
365
|
+
resolve(message);
|
|
366
|
+
}).catch((e) => {
|
|
367
|
+
reject(e);
|
|
368
|
+
});
|
|
369
|
+
}
|
|
370
|
+
return resolve(message);
|
|
371
|
+
});
|
|
372
|
+
});
|
|
373
|
+
if (msg.Type === 'Notification') {
|
|
374
|
+
const event = JSON.parse(msg.Message);
|
|
375
|
+
switch (event.event_name) {
|
|
376
|
+
case 'imtbl_zkevm_mint_request_updated':
|
|
377
|
+
await handlers.zkevmMintRequestUpdated(event);
|
|
378
|
+
break;
|
|
379
|
+
default:
|
|
380
|
+
if (handlers.others) {
|
|
381
|
+
await handlers.others(event);
|
|
382
|
+
}
|
|
383
|
+
break;
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
};
|
|
387
|
+
|
|
388
|
+
export { init };
|
package/dist/x.js
CHANGED
|
@@ -9003,7 +9003,7 @@ const flattenProperties = (properties) => {
|
|
|
9003
9003
|
};
|
|
9004
9004
|
|
|
9005
9005
|
// WARNING: DO NOT CHANGE THE STRING BELOW. IT GETS REPLACED AT BUILD TIME.
|
|
9006
|
-
const SDK_VERSION = '1.36.
|
|
9006
|
+
const SDK_VERSION = '1.36.1-alpha';
|
|
9007
9007
|
const getFrameParentDomain = () => {
|
|
9008
9008
|
if (isNode()) {
|
|
9009
9009
|
return '';
|
|
@@ -9269,7 +9269,7 @@ const addKeysToHeadersOverride = (baseConfig, overrides) => {
|
|
|
9269
9269
|
/* eslint-disable @typescript-eslint/naming-convention */
|
|
9270
9270
|
class ApiConfiguration extends index$2.Configuration {
|
|
9271
9271
|
}
|
|
9272
|
-
const defaultHeaders = { 'x-sdk-version': 'ts-immutable-sdk-1.36.
|
|
9272
|
+
const defaultHeaders = { 'x-sdk-version': 'ts-immutable-sdk-1.36.1-alpha' };
|
|
9273
9273
|
/**
|
|
9274
9274
|
* @dev use createImmutableXConfiguration instead
|
|
9275
9275
|
*/
|
|
@@ -9308,7 +9308,7 @@ const createImmutableXConfiguration = ({ basePath, chainID, coreContractAddress,
|
|
|
9308
9308
|
chainID,
|
|
9309
9309
|
coreContractAddress,
|
|
9310
9310
|
registrationContractAddress,
|
|
9311
|
-
sdkVersion: 'ts-immutable-sdk-1.36.
|
|
9311
|
+
sdkVersion: 'ts-immutable-sdk-1.36.1-alpha',
|
|
9312
9312
|
baseConfig,
|
|
9313
9313
|
});
|
|
9314
9314
|
const production = ({ baseConfig }) => createImmutableXConfiguration({
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@imtbl/sdk",
|
|
3
3
|
"description": "Immutable Unified SDK",
|
|
4
|
-
"version": "1.36.
|
|
4
|
+
"version": "1.36.1-alpha",
|
|
5
5
|
"author": "Immutable",
|
|
6
6
|
"browser": "./dist/index.browser.js",
|
|
7
7
|
"bugs": "https://github.com/immutable/ts-immutable-sdk/issues",
|
|
@@ -122,6 +122,14 @@
|
|
|
122
122
|
"./x": {
|
|
123
123
|
"types": "./dist/x.d.ts",
|
|
124
124
|
"import": "./dist/x.js"
|
|
125
|
+
},
|
|
126
|
+
"./webhook": {
|
|
127
|
+
"types": "./dist/webhook.d.ts",
|
|
128
|
+
"import": "./dist/webhook.js"
|
|
129
|
+
},
|
|
130
|
+
"./minting_backend": {
|
|
131
|
+
"types": "./dist/minting_backend.d.ts",
|
|
132
|
+
"import": "./dist/minting_backend.js"
|
|
125
133
|
}
|
|
126
134
|
},
|
|
127
135
|
"files": [
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j as e,_ as t,u as n,r as a,m as r,am as o,an as s,ao as i,ap as c,aq as d,k as l,ar as u,a as p,x as m,as as E,at as f,V as y,p as T,au as C,U as g,l as I,$ as A,t as h,E as S,av as R,aw as v,ax as _,ay as O,az as b,aA as w,a0 as D,n as k,aB as N,aC as P,a4 as L,ak as M,M as F,aD as x,aE as U,aF as W,N as B,a3 as V,H as Y,aG as H,aH as j,y as G,aI as q,F as z,d as K,aJ as X,aK as $,a7 as Z,a8 as J,aL as Q,aM as ee,aN as te,aO as ne,aP as ae,J as re,Y as oe,aQ as se,aR as ie,q as ce,aS as de,aT as le,A as ue,z as pe,I as me,aU as Ee,aV as fe,aW as ye,aX as Te,aY as Ce,aZ as ge,a_ as Ie,a$ as Ae,b0 as he,B as Se,o as Re,b1 as ve,ai as _e,aj as Oe,b2 as be}from"./index-df7e23e2.js";import{u as we,O as De}from"./OnRampWidget-5abd1f62.js";import{f as ke,C as Ne,a as Pe,T as Le,b as Me}from"./TopUpView-eb812fbe.js";import{F as Fe}from"./balance-7cbf0236.js";import xe from"./BridgeWidget-d624b1bd.js";import Ue from"./SwapWidget-f40f5b60.js";import"./SpendingCapHero-22d5c9bb.js";import"./retry-746773e8.js";var We=["size","weight","rc","sx","testId","children","domRef","className"];function Be(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function Ve(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Be(Object(n),!0).forEach((function(t){l(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Be(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Ye="base.color.text.caption.primary",He="medium";function je(l){var u=l.size,p=void 0===u?He:u,m=l.weight,E=void 0===m?"regular":m,f=l.rc,y=void 0===f?e("span",{}):f,T=l.sx,C=void 0===T?{}:T,g=l.testId,I=l.children,A=l.domRef,h=l.className,S=t(l,We),R=n(),v=a.useMemo((function(){var e,t;return r(s(C,Ye),o({themeProps:R,size:p,weight:E}),null!==(e=null===(t=R.components)||void 0===t||null===(t=t.Caption)||void 0===t?void 0:t.sxOverride)&&void 0!==e?e:{},C)}),[C,R,p,E]),_=i(v),O=c(p,He,Object.keys(R.base.text.caption));return d(y,Ve(Ve(Ve(Ve({},S),g?{"data-testid":g}:{}),A?{ref:A}:{}),{},{css:_,children:I,className:"".concat(null!=h?h:""," Caption Caption--").concat(O)}))}je.displayName="Caption";var Ge,qe,ze,Ke,Xe,$e=["sx","radius"];function Ze(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function Je(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ze(Object(n),!0).forEach((function(t){l(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ze(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Qe(n){var a=n.sx,o=void 0===a?{}:a,s=n.radius,i=void 0===s?"50px":s,c=t(n,$e);return e(p,Je(Je({},c),{},{sx:r(u,{brad:"50%",w:i,h:i},o)}))}!function(e){e.PAYMENT_METHODS="PAYMENT_METHODS",e.PAY_WITH_COINS="PAY_WITH_COINS",e.PAY_WITH_CARD="PAY_WITH_CARD",e.ORDER_SUMMARY="ORDER_SUMMARY",e.SALE_SUCCESS="SALE_SUCCESS",e.SALE_FAIL="SALE_FAIL"}(Ge||(Ge={})),function(e){e.INIT="INIT",e.REVIEW_ORDER="REVIEW_ORDER",e.EXECUTE_FUNDING_ROUTE="EXECUTE_FUNDING_ROUTE"}(qe||(qe={})),function(e){e.DEFAULT="DEFAULT_ERROR",e.INVALID_PARAMETERS="INVALID_PARAMETERS",e.TRANSACTION_FAILED="TRANSACTION_FAILED",e.SERVICE_BREAKDOWN="SERVICE_BREAKDOWN",e.PRODUCT_NOT_FOUND="PRODUCT_NOT_FOUND",e.INSUFFICIENT_STOCK="INSUFFICIENT_STOCK",e.TRANSAK_FAILED="TRANSAK_FAILED",e.WALLET_FAILED="WALLET_FAILED",e.WALLET_REJECTED="WALLET_REJECTED",e.WALLET_REJECTED_NO_FUNDS="WALLET_REJECTED_NO_FUNDS",e.WALLET_POPUP_BLOCKED="WALLET_POPUP_BLOCKED",e.FUNDING_ROUTE_EXECUTE_ERROR="FUNDING_ROUTE_EXECUTE_ERROR"}(ze||(ze={})),function(e){e.CRYPTO="crypto",e.FIAT="fiat"}(Ke||(Ke={})),function(e){e.SUFFICIENT="SUFFICIENT"}(Xe||(Xe={}));const et={[m.SANDBOX]:"https://api.sandbox.immutable.com/v1/primary-sales",[m.PRODUCTION]:"https://api.immutable.com/v1/primary-sales"},tt=e=>e.map((({method:e,hash:t})=>`${e}: ${t}`)).join(" | "),nt=e=>e.split(/[_\s-]+/).map((e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase())).join(""),at=e=>e.replace(/[^\u0000-\u00FF]/g,""),rt=e=>{if(!e)return"";let t=e.trim().toLowerCase();if(t.startsWith("0x")&&(t=t.slice(2)),!/^[0-9a-f]+$/i.test(t))throw new Error("Invalid hexadecimal input");let n="";for(let e=0;e<t.length;e+=2){const a=parseInt(t.substr(e,2),16);n+=String.fromCharCode(a)}return n};var ot;!function(e){e.CONTRACT_ADDRESS="contract_address",e.CURRENCY_SYMBOL="currency_symbol"}(ot||(ot={}));const st=e=>{const{provider:t,items:n,environment:r,environmentId:o,waitFulfillmentSettlements:s}=e,[i,c]=a.useState(void 0),[d,l]=a.useState(void 0),[u,p]=a.useState({done:!1,transactions:[]}),[m,y]=a.useState([]),T=()=>p((e=>({...e,done:!0}))),C=()=>p({done:!1,transactions:[]}),g=a.useCallback((async(e,n,a,r)=>{let o;try{const c=t?.getSigner(),d=await(t?.getGasPrice()),l=await(c?.sendTransaction({to:e,data:n,gasPrice:d,gasLimit:a}));return i={method:r,hash:l?.hash},p((e=>({...e,transactions:[...e.transactions,i]}))),s&&await(l?.wait()),o=l?.hash||"",[o,void 0]}catch(e){const t=`${e?.reason||e?.message||""}`.toLowerCase();o=e?.transactionHash;let n=ze.WALLET_FAILED;return t.includes("failed")&&t.includes("open confirmation")&&(n=ze.WALLET_POPUP_BLOCKED),t.includes("rejected")&&t.includes("user")&&(n=ze.WALLET_REJECTED),t.includes("failed to submit")&&t.includes("highest gas limit")&&(n=ze.WALLET_REJECTED_NO_FUNDS),(t.includes("status failed")||t.includes("transaction failed"))&&(n=ze.TRANSACTION_FAILED),c({type:n,data:{error:e}}),[void 0,e]}var i}),[t]);return{sign:a.useCallback((async(e,a)=>{try{const s=t?.getSigner(),i={recipient_address:await(s?.getAddress())||"",payment_type:e,currency_filter:ot.CONTRACT_ADDRESS,currency_value:a,products:n.map((e=>({product_id:e.productId,quantity:e.qty})))},d=`${et[r]}/${o}/order/sign`,u=await fetch(d,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(i)}),{ok:p,status:m}=u;if(!p){const{code:e}=await u.json();let t;switch(m){case 400:t=ze.SERVICE_BREAKDOWN;break;case 404:t="insufficient_stock"===e?ze.INSUFFICIENT_STOCK:ze.PRODUCT_NOT_FOUND;break;case 429:case 500:t=ze.DEFAULT;break;default:throw new Error("Unknown error")}return void c({type:t})}const E=await u.json(),f=E.order.products.map((e=>e.detail.map((({token_id:e})=>e)))).flat(),T=((e,t)=>{const{order:n,transactions:a}=e;return{order:{currency:{name:n.currency.name,erc20Address:n.currency.erc20_address},products:n.products.map((e=>((e,t,n)=>({productId:e.product_id,image:n?.image||"",qty:n?.qty||1,name:n?.name||"",description:n?.description||"",currency:t,contractType:e.contract_type,collectionAddress:e.collection_address,amount:e.detail.map((({amount:e})=>e)),tokenId:e.detail.map((({token_id:e})=>e))}))(e,n.currency.name,t.find((t=>t.productId===e.product_id))))).reduce(((e,t)=>{const n=e.findIndex((e=>e.name===t.name));return-1===n&&e.push({...t}),n>-1&&(e[n].amount=[...e[n].amount,...t.amount],e[n].tokenId=[...e[n].tokenId,...t.tokenId]),e}),[]),totalAmount:Number(n.total_amount)},transactions:a.map((e=>({tokenAddress:e.contract_address,gasEstimate:e.gas_estimate,methodCall:e.method_call,params:{reference:e.params.reference||"",amount:e.params.amount||0,spender:e.params.spender||""},rawData:e.raw_data}))),transactionId:rt(a.find((e=>e.method_call.startsWith("execute")))?.params.reference||"")}})(E,n);return y(f),l(T),T}catch(e){c({type:ze.DEFAULT,data:{error:e}})}}),[n,o,r,t]),signResponse:d,signError:i,execute:async(e,n,a)=>{if(!e||!t)return c({type:ze.DEFAULT,data:{reason:"No sign data"}}),[];let r=!0;const o=[],s=await(async(e,t)=>{try{const n=t.getSigner(),a=await n.getAddress(),r=e.find((e=>e.methodCall.startsWith("approve")));if(!r||!n||!a)return e;const o=new E(r.tokenAddress,["function allowance(address,address) view returns (uint256)"],n),s=await(n?.call({to:r.tokenAddress,data:o.interface.encodeFunctionData("allowance",[a,r.params.spender])})),i=f.from(s),c=r.params.amount?f.from(r.params.amount):f.from(0);if(i.gte(f.from("0"))&&i.gte(c))return e.filter((e=>e.methodCall!==r.methodCall))}catch{}return e})(e.transactions,t);for(const e of s){const{tokenAddress:t,rawData:s,methodCall:i,gasEstimate:c}=e,[d,l]=await g(t,s,c,i);if(l||!d){r=!1,a(l,o);break}o.push({method:i,hash:d}),n({method:i,hash:d})}return(r?T:C)(),o},executeResponse:u,tokenIds:m}},it={config:{contractId:""},currencies:[],products:{},totalAmount:{}},ct=({items:e,environment:t,environmentId:n,provider:r,preferredCurrency:o})=>{const[s,i]=a.useState(),c=a.useRef(!1),[d,l]=a.useState(""),[u,p]=a.useState(it),[m,E]=a.useState(void 0),f=e=>{E({type:ze.SERVICE_BREAKDOWN,data:{reason:"Error fetching settlement currencies",error:e}})};return a.useEffect((()=>{e?.length&&r&&(async()=>{try{const t=new URLSearchParams,n=e.map((({productId:e,qty:t})=>({id:e,qty:t})));t.append("products",btoa(JSON.stringify(n)));const a=r.getSigner(),o=await a.getAddress();t.append("wallet_address",o),l(t.toString())}catch(e){f(e)}})()}),[e,r]),a.useEffect((()=>{t&&n&&d&&(async()=>{if(!c.current)try{c.current=!0;const e=`${et[t]}/${n}/order/quote?${d}`,a=await fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}});if(!a.ok)throw new Error(`${a.status} - ${a.statusText}`);const r=(({config:e,currencies:t,products:n,total_amount:a})=>({config:{contractId:e.contract_id},currencies:t.map((({erc20_address:e,exchange_id:t,...n})=>({...n,address:e,exchangeId:t}))),products:Object.entries(n).reduce(((e,[t,{product_id:n,...a}])=>({...e,[t]:{productId:t,...a}})),{}),totalAmount:a}))(await a.json());p(r)}catch(e){f(e)}finally{c.current=!1}})()}),[t,n,d]),a.useEffect((()=>{if(0===u.currencies.length)return;const e=(o?u.currencies.find((e=>e.name===o)):void 0)||u.currencies.find((e=>e.base))||u.currencies?.[0];i(e)}),[u]),{orderQuote:u,selectedCurrency:s,orderQuoteError:m}},dt=a.createContext({items:[],collectionName:"",provider:void 0,checkout:void 0,environmentId:"",environment:m.SANDBOX,recipientAddress:"",recipientEmail:"",sign:()=>Promise.resolve(void 0),execute:()=>Promise.resolve([]),signResponse:void 0,signError:void 0,executeResponse:void 0,passport:void 0,isPassportWallet:!1,showCreditCardWarning:!1,setShowCreditCardWarning:()=>{},paymentMethod:void 0,setPaymentMethod:()=>{},goBackToPaymentMethods:()=>{},goToErrorView:()=>{},goToSuccessView:()=>{},config:{},fundingRoutes:[],disabledPaymentTypes:[],invalidParameters:!1,fromTokenAddress:"",orderQuote:it,signTokenIds:[],excludePaymentTypes:[],preferredCurrency:void 0,selectedCurrency:void 0,waitFulfillmentSettlements:!0});dt.displayName="SaleSaleContext";const lt=1;function ut(t){const{children:n,value:{config:r,environment:o,environmentId:s,items:i,provider:c,checkout:d,passport:l,collectionName:u,excludePaymentTypes:p,preferredCurrency:m,waitFulfillmentSettlements:E}}=t,f=a.useRef(0),{viewDispatch:g}=a.useContext(y),[{recipientEmail:I,recipientAddress:A},h]=a.useState({recipientEmail:"",recipientAddress:""}),[S,R]=a.useState(!1),[v,_]=a.useState(void 0),O=e=>{if(e===C.CREDIT&&!S)return _(void 0),void R(!0);_(e),R(!1)},[b]=a.useState([]),[w,D]=a.useState([]),[k,N]=a.useState(!1),{selectedCurrency:P,orderQuote:L,orderQuoteError:M}=ct({items:i,provider:c,environmentId:s,environment:r.environment,preferredCurrency:m}),F=P?.address||"",x=a.useCallback(((e,t)=>{O(e),g({payload:{type:T.UPDATE_VIEW,view:{type:Ge.PAYMENT_METHODS,data:t}}})}),[]);a.useEffect((()=>{(async()=>{const e=c?.getSigner(),t=await(e?.getAddress())||"",n=(await(l?.getUserInfo()))?.email||"";h({recipientEmail:n,recipientAddress:t})})()}),[c]);const{sign:U,execute:W,signResponse:B,signError:V,executeResponse:Y,tokenIds:H}=st({items:i,provider:c,fromTokenAddress:F,recipientAddress:A,environmentId:s,environment:o,waitFulfillmentSettlements:E}),j=a.useCallback((async(e,t,n)=>{const a=t||F;if(!a||!a.startsWith("0x"))return void N(!0);const r=await U(e,a);return r?(n?.(r),r):void 0}),[U,F]),G=a.useCallback(((e,t={})=>{f.current+=1,f.current>lt&&(f.current=0,O(void 0)),g({payload:{type:T.UPDATE_VIEW,view:{type:Ge.SALE_FAIL,data:{...t,errorType:e,paymentMethod:v,transactions:Y.transactions}}}})}),[v,O,Y]),q=a.useCallback((e=>{g({payload:{type:T.UPDATE_VIEW,view:{type:Ge.SALE_SUCCESS,data:{paymentMethod:v,transactions:Y.transactions,tokenIds:H,...e}}}})}),[[v,Y,H]]);a.useEffect((()=>{V&&G(V.type,V.data)}),[V]),a.useEffect((()=>{M&&G(M.type,M.data)}),[M]),a.useEffect((()=>{!(!i||0===i.length)&&u&&s||N(!0)}),[i,u,s]),a.useEffect((()=>{p?.length<=0||D(p)}),[p]);const z=a.useMemo((()=>({config:r,items:i,fromTokenAddress:F,sign:j,signResponse:B,signError:V,execute:W,executeResponse:Y,environmentId:s,collectionName:u,environment:o,provider:c,checkout:d,recipientAddress:A,recipientEmail:I,showCreditCardWarning:S,setShowCreditCardWarning:R,paymentMethod:v,setPaymentMethod:O,goBackToPaymentMethods:x,goToErrorView:G,goToSuccessView:q,isPassportWallet:!!c?.provider?.isPassport,fundingRoutes:b,disabledPaymentTypes:w,invalidParameters:k,orderQuote:L,signTokenIds:H,excludePaymentTypes:p,selectedCurrency:P,waitFulfillmentSettlements:E})),[r,o,s,i,F,u,c,d,A,I,B,V,Y,S,R,v,x,G,q,j,b,w,k,L,H,p,P,E]);return e(dt.Provider,{value:z,children:n})}function pt(){return a.useContext(dt)}const mt={[m.SANDBOX]:"https://global-stg.transak.com",[m.PRODUCTION]:"https://global.transak.com/"},Et={[m.SANDBOX]:"https://api-stg.transak.com",[m.PRODUCTION]:"https://api.transak.com"},ft={[m.SANDBOX]:"STAGING",[m.PRODUCTION]:"PRODUCTION"},yt={[m.SANDBOX]:"d14b44fb-0f84-4db5-affb-e044040d724b",[m.PRODUCTION]:"ad1bca70-d917-4628-bb0f-5609537498bc"},Tt=e=>{const{contractId:t,environment:n,transakParams:r,onError:o}=e,[s,i]=a.useState(""),c=a.useCallback((async()=>{try{const{calldata:e,nftData:a,estimatedGasLimit:o,cryptoCurrencyCode:s,...i}=r,c=a?.slice(0,1).map((e=>({...e,imageURL:at(e.imageURL),nftName:at(e.nftName)}))),d={contractId:t,cryptoCurrencyCode:s,calldata:e,nftData:c,estimatedGasLimit:(o>0?o:"30000000").toString()},l=`${Et[n]}/cryptocoverage/api/v1/public/one-click-protocol/nft-transaction-id`,u=await fetch(l,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(d)});if(!u.ok)throw new Error("Failed to get NFT transaction ID");const{id:p}=await u.json(),m=`${mt[n]}?`;return`${m}${new URLSearchParams({apiKey:yt[n],environment:ft[n],isNFT:"true",nftTransactionId:p,themeColor:"0D0D0D",...i}).toString()}`}catch{o?.()}return""}),[t,n,r,o]);return a.useEffect((()=>{(async()=>{const e=await c();i(e)})()}),[]),{iframeSrc:s}};function Ct(t){const{id:n,type:r,email:o,walletAddress:s,isPassportWallet:i,nftData:c,calldata:d,cryptoCurrencyCode:l,estimatedGasLimit:u,exchangeScreenTitle:p,partnerOrderId:m,onOpen:E,onInit:f,onOrderCreated:y,onOrderProcessing:T,onOrderCompleted:C,onOrderFailed:I,onFailedToLoad:A,failedToLoadTimeoutInMs:h,environment:S,contractId:R}=t,v=a.useRef(null),{onLoad:_,initialised:O}=we({userJourney:g.SALE,ref:v,walletAddress:s,isPassportWallet:i,onOpen:E,onOrderCreated:y,onOrderProcessing:T,onOrderCompleted:C,onOrderFailed:I,onInit:f,failedToLoadTimeoutInMs:h,onFailedToLoad:A}),{iframeSrc:b}=Tt({type:r,contractId:R,environment:S,transakParams:{nftData:c,calldata:d,cryptoCurrencyCode:l,estimatedGasLimit:u,exchangeScreenTitle:p,email:o,walletAddress:s,partnerOrderId:m},onError:A});return e("iframe",{id:n,ref:v,src:b,title:"Transak-Iframe",allow:"camera;microphone;fullscreen;payment",style:{height:"100%",width:"100%",border:"none",position:"absolute",top:0,left:0,opacity:O?1:0,transition:"opacity 0.5s ease-out"},onLoad:_,onError:()=>A?.()})}function gt(t){const{t:n}=I(),{onInit:r,onOpen:o,onOrderCreated:s,onOrderProcessing:i,onOrderCompleted:c,onOrderFailed:d}=t,{recipientEmail:l,recipientAddress:u,isPassportWallet:p,signResponse:m,goToErrorView:E,environment:f,orderQuote:y}=pt(),T=m?.transactions.find((e=>e.methodCall.startsWith("execute")));if(!m||!T)return null;const C=a.useMemo((()=>m.order.products.map((e=>({collectionAddress:e.collectionAddress,imageURL:e.image,nftName:e.name,price:e.amount,quantity:e.qty,tokenID:e.tokenId,nftType:e.contractType||"ERC721"})))),[m]);return e(Ct,{id:"transak-iframe",type:"nft-checkout",email:l,walletAddress:u,isPassportWallet:p,exchangeScreenTitle:n("views.PAY_WITH_CARD.screenTitle"),nftData:C,calldata:T.rawData,cryptoCurrencyCode:m.order.currency.name,estimatedGasLimit:T.gasEstimate,partnerOrderId:T.params.reference,onInit:r,onOpen:o,onOrderCreated:s,onOrderProcessing:i,onOrderCompleted:c,onOrderFailed:d,onFailedToLoad:()=>{E(ze.TRANSAK_FAILED)},environment:f,contractId:y.config.contractId})}const It=(e,t)=>({type:e.type,token:e.token,amount:e.fundsRequired.formattedAmount,balance:e.userBalance.formattedBalance,fiat:{symbol:"USD",balance:A(e.userBalance.formattedBalance,e.token.symbol,t),amount:A(e.fundsRequired.formattedAmount,e.token.symbol,t)}}),At=()=>{const{track:e,page:t}=h(),{recipientAddress:n,signResponse:r,paymentMethod:o}=pt(),{eventTargetState:{eventTarget:s}}=a.useContext(S),i=Ge.PAYMENT_METHODS,c={location:"web",userJourney:g.SALE},d={userId:n,paymentMethod:o},l={amount:r?.order.totalAmount,currency:r?.order.currency.name};return{track:e,page:t,sendPageView:(e,n)=>{t({...c,screen:nt(e),action:"Viewed",extras:{...n}})},sendCloseEvent:(t=i,n="Button",a="Pressed")=>{e({...c,screen:nt(t),control:"Close",controlType:n,action:a,extras:{...d}}),R(s)},sendSuccessEvent:(t=i,n=[],a=[],r={})=>{e({...c,screen:nt(t),control:"Success",controlType:"Event",action:"Succeeded",extras:{...r,...d,transactions:tt(n),...l,paymentMethod:o,tokenIds:a}}),v(s,o,n,a,r.transactionId)},sendFailedEvent:(t,n,a=[],r=i,u={})=>{e({...c,screen:nt(r||i),control:"Fail",controlType:"Event",action:"Failed",extras:{...u,transactions:tt(a),...n,...l,...d,paymentMethod:o,reason:t}}),_(s,t,n,o,a,u.transactionId)},sendTransactionSuccessEvent:e=>{O(s,o,[e])},sendOrderCreated:(t,n)=>{e({...c,screen:nt(t),control:"OrderCreated",controlType:"Event",extras:{...n}})},sendSelectedPaymentMethod:(t,n)=>{e({...c,screen:nt(n),control:"Select",controlType:"MenuItem",extras:{paymentMethod:t}}),b(s,t)},sendSelectedPaymentToken:(t,n,a)=>{const r=It(n,a);e({...c,screen:nt(t),control:"Select",controlType:"MenuItem",extras:{...r}}),w(s,r)},sendProceedToPay:(t,n,a,r="Button",o="Pressed")=>{e({...c,screen:nt(t),control:"ProceedToPay",controlType:r,action:o,extras:{...d,...It(n,a)}})},sendViewFeesEvent:(t,n="Button",a="Pressed")=>{e({...c,screen:nt(t),control:"ViewFees",controlType:n,action:a,extras:{...d}})}}};function ht(){const{sendPageView:t}=At(),[n,r]=a.useState(!1),{goBackToPaymentMethods:o,goToErrorView:s,signResponse:i,signTokenIds:c}=pt(),{sendOrderCreated:d,sendCloseEvent:l,sendSuccessEvent:u}=At(),{t:m}=I(),E=(e={})=>{const{id:t,status:n,cryptoAmount:a,cryptoCurrency:r,fiatAmount:o,fiatAmountInUsd:s,amountPaid:d,totalFeeInFiat:p,paymentOptionId:m,userId:E,userKycType:f,walletAddress:y,nftAssetInfo:T}=e,{nftDataBase64:C,quantity:g}=T||{},I={orderId:t,orderStatus:n,cryptoAmount:a,cryptoCurrency:r,fiatAmount:o,fiatAmountInUsd:s,amountPaid:d,totalFeeInFiat:p,paymentOption:m,userId:E,userKycType:f,walletAddress:y,nftDataBase64:C,quantity:g,signData:i,transactionId:i?.transactionId};u(Ge.SALE_SUCCESS,[],c,I),l(Ge.SALE_SUCCESS)};return a.useEffect((()=>t(Ge.PAY_WITH_CARD)),[]),e(L,{header:n&&e(D,{onCloseButtonClick:()=>o()}),children:k(P,{children:[e(N,{visible:!n,children:e(N.Content,{children:e(N.Content.LoopingText,{text:[m("views.PAY_WITH_CARD.loading")]})})}),e(p,{style:{display:"block",position:"relative",maxWidth:"420px",height:"565px",borderRadius:"1%",overflow:"hidden",margin:"0 auto",width:"100%"},children:e(gt,{onInit:()=>r(!0),onOrderFailed:()=>{s(ze.TRANSAK_FAILED)},onOrderCompleted:E,onOrderCreated:(e={})=>{const{id:t,status:n,cryptoAmount:a,cryptoCurrency:r,fiatAmount:o,fiatAmountInUsd:s,amountPaid:c,totalFeeInFiat:l,paymentOptionId:u,userId:p,userKycType:m,walletAddress:E,nftAssetInfo:f}=e,{nftDataBase64:y,quantity:T}=f||{};d(Ge.PAY_WITH_CARD,{orderId:t,orderStatus:n,cryptoAmount:a,cryptoCurrency:r,fiatAmount:o,fiatAmountInUsd:s,amountPaid:c,totalFeeInFiat:l,paymentOption:u,userId:p,userKycType:m,walletAddress:E,nftDataBase64:y,quantity:T,signData:i,transactionId:i?.transactionId})},onOrderProcessing:E})})]})})}function St(){const{t:t}=I(),n=a.useRef(!1),{sendPageView:r,sendTransactionSuccessEvent:o,sendFailedEvent:s,sendCloseEvent:i,sendSuccessEvent:c}=At(),{execute:d,signResponse:l,executeResponse:u,signTokenIds:p}=pt(),m=u?.transactions.length||0;let E=[t("views.PAYMENT_METHODS.loading.ready1"),t("views.PAYMENT_METHODS.loading.ready2"),t("views.PAYMENT_METHODS.loading.ready3")];m>=1&&(E=[t("views.PAYMENT_METHODS.loading.processing1"),t("views.PAYMENT_METHODS.loading.processing2"),t("views.PAYMENT_METHODS.loading.processing3")]);return a.useEffect((()=>{void 0!==l&&!1===n.current&&(n.current=!0,(async()=>{d(l,(e=>{o(e)}),((e,t)=>{const n={transactionId:l?.transactionId};s(e.toString(),e,t,void 0,n)}))})())}),[l]),a.useEffect((()=>{if(!0===u?.done){const e={transactionId:l?.transactionId};c(Ge.SALE_SUCCESS,u?.transactions,p,e),i(Ge.SALE_SUCCESS)}}),[u]),a.useEffect((()=>r(Ge.PAY_WITH_COINS)),[]),e(M,{loadingText:E})}function Rt({type:t,onClick:n,disabled:a=!1,caption:r,size:o,rc:s=e("span",{})}){const{t:i}=I(),c={[C.CRYPTO]:"Coins",[C.DEBIT]:"BankCard",[C.CREDIT]:"BankCard"};return k(F,{rc:s,size:o||"medium",sx:{marginBottom:"base.spacing.x1",userSelect:"none",...a&&{filter:"opacity(0.5)",cursor:"not-allowed !important"}},...{disabled:a,emphasized:!0,onClick:a?void 0:()=>n(t)},children:[e(F.FramedIcon,{icon:c[t]}),e(F.Label,{size:"medium",children:i(`views.PAYMENT_METHODS.options.${t}.heading`)}),!a&&e(F.IntentIcon,{}),e(F.Caption,{children:r||i(`views.PAYMENT_METHODS.options.${t}.${a?"disabledCaption":"caption"}`)})]})}const vt=[C.CRYPTO,C.DEBIT,C.CREDIT];function _t(t){const{disabledOptions:n=[],paymentOptions:a,onClick:r,captions:o,size:s}=t,i=a||vt;return e(p,{testId:"payment-options-list",sx:{width:"100%",display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start"},rc:e(x.div,{variants:U,initial:"hidden",animate:"show"}),children:i.map(((t,a)=>e(Rt,{type:t,size:s,onClick:r,disabled:n.includes(t),caption:o?.[t],rc:e(x.div,{custom:a,variants:W})},`payment-type-${t}`)))})}function Ot(){const{t:t}=I(),{viewDispatch:n}=a.useContext(y),{sign:r,goToErrorView:o,paymentMethod:s,setPaymentMethod:i,disabledPaymentTypes:c,invalidParameters:d}=pt(),{sendPageView:l,sendCloseEvent:u,sendSelectedPaymentMethod:m}=At();return a.useEffect((()=>{s&&m(s,Ge.PAYMENT_METHODS),s&&[C.DEBIT,C.CREDIT].includes(s)&&(r(Ke.FIAT,void 0,(()=>{n({payload:{type:T.UPDATE_VIEW,view:{type:Ge.PAY_WITH_CARD}}})})),n({payload:{type:T.UPDATE_VIEW,view:{type:B.LOADING_VIEW,data:{loadingText:t("views.PAYMENT_METHODS.loading.ready1")}}}})),s&&s===C.CRYPTO&&n({payload:{type:T.UPDATE_VIEW,view:{type:Ge.ORDER_SUMMARY,subView:qe.INIT}}})}),[s]),a.useEffect((()=>l(Ge.PAYMENT_METHODS)),[]),a.useEffect((()=>{d&&o(ze.INVALID_PARAMETERS)}),[d]),e(L,{testId:"payment-methods",header:e(D,{onCloseButtonClick:()=>u(Ge.PAYMENT_METHODS)}),footer:e(V,{}),children:k(p,{sx:{display:"flex",flexDirection:"column",paddingX:"base.spacing.x2",paddingY:"base.spacing.x8",rowGap:"base.spacing.x4"},children:[e(Y,{size:"small",sx:{paddingX:"base.spacing.x4"},children:t("views.PAYMENT_METHODS.header.heading")}),e(p,{sx:{paddingX:"base.spacing.x2"},children:e(_t,{disabledOptions:c,onClick:e=>{i(e)}})})]})})}function bt({biomeTheme:t,transactionHash:n,blockExplorerLink:r,errorType:o=ze.DEFAULT}){const{t:s}=I(),{goBackToPaymentMethods:i}=pt(),{eventTargetState:{eventTarget:c}}=a.useContext(S),d=()=>{R(c)},l={[ze.TRANSACTION_FAILED]:{onActionClick:i,onSecondaryActionClick:n?()=>{window.open(r)}:d,statusType:H.FAILURE,statusIconStyles:{fill:t.color.status.destructive.dim}},[ze.SERVICE_BREAKDOWN]:{onSecondaryActionClick:d,statusType:H.INFORMATION,statusIconStyles:{fill:t.color.status.fatal.dim}},[ze.PRODUCT_NOT_FOUND]:{onSecondaryActionClick:d,statusType:H.INFORMATION,statusIconStyles:{fill:t.color.status.fatal.dim}},[ze.INSUFFICIENT_STOCK]:{onSecondaryActionClick:d,statusType:H.INFORMATION,statusIconStyles:{fill:t.color.status.fatal.dim}},[ze.TRANSAK_FAILED]:{onActionClick:i,onSecondaryActionClick:d,statusType:H.INFORMATION},[ze.WALLET_FAILED]:{onActionClick:i,onSecondaryActionClick:d,statusType:H.INFORMATION,statusIconStyles:{fill:t.color.status.fatal.dim}},[ze.WALLET_REJECTED_NO_FUNDS]:{onActionClick:i,onSecondaryActionClick:d,statusType:H.INFORMATION},[ze.WALLET_REJECTED]:{onActionClick:()=>{i(C.CRYPTO)},onSecondaryActionClick:d,statusType:H.INFORMATION},[ze.WALLET_POPUP_BLOCKED]:{onActionClick:()=>{i(C.CRYPTO)},onSecondaryActionClick:d,statusType:H.INFORMATION},[ze.FUNDING_ROUTE_EXECUTE_ERROR]:{onActionClick:i,onSecondaryActionClick:d,statusType:H.INFORMATION},[ze.INVALID_PARAMETERS]:{onSecondaryActionClick:d,statusType:H.ALERT,statusIconStyles:{fill:t.color.status.attention.dim,transform:"none"}},[ze.DEFAULT]:{onActionClick:i,onSecondaryActionClick:d,statusType:H.INFORMATION}};return e(j,{...(()=>{const e=l[o]||{},a=o===ze.TRANSACTION_FAILED&&n?s(`views.SALE_FAIL.errors.${o}.secondaryAction`):s(`views.SALE_FAIL.errors.${ze.DEFAULT}.secondaryAction`);return{testId:"fail-view",statusText:s(`views.SALE_FAIL.errors.${o}.description`),actionText:s(`views.SALE_FAIL.errors.${o}.primaryAction`),onActionClick:e?.onActionClick,secondaryActionText:a,onSecondaryActionClick:e?.onSecondaryActionClick,onCloseClick:d,statusType:e.statusType,statusIconStyles:{transform:"rotate(180deg)",fill:t.color.status.guidance.dim,...e.statusIconStyles}}})()})}function wt({balance:t,conversions:n,canOpen:a,onClick:r,onProceed:o,loading:s,priceDisplay:i}){const{t:c}=I(),{environment:d,config:{theme:l}}=pt(),{token:u,userBalance:p,fundsRequired:m}=t.fundingItem,E=A(m.formattedAmount,u.symbol,n,""),f=A(p.formattedBalance,u.symbol,n,"");return k(X,{sx:{w:"100%",bradtl:"base.borderRadius.x6",bradtr:"base.borderRadius.x6",px:"base.spacing.x4",pb:"base.spacing.x6",bg:"base.color.neutral.800",border:"0px solid transparent",borderTopWidth:"base.border.size.100",borderTopColor:"base.color.translucent.emphasis.400"},children:[k(F,{size:"medium",children:[e(F.FramedImage,{alt:u.name,circularFrame:!0,imageUrl:u.icon,defaultImageUrl:G(d,l)}),e(F.Label,{children:c(`views.ORDER_SUMMARY.orderReview.payWith.${t.type}`,{symbol:u.symbol})}),e(F.Caption,{rc:e(Y,{size:"xSmall"}),children:`${c("views.ORDER_SUMMARY.orderReview.balance",{amount:q(z(p.formattedBalance))})} ${f?c("views.ORDER_SUMMARY.currency.fiat",{amount:q(z(f))}):""}`}),i&&e(F.PriceDisplay,{use:e(Y,{size:"xSmall"}),fiatAmount:E?c("views.ORDER_SUMMARY.currency.fiat",{amount:E}):void 0,price:z(m.formattedAmount)}),a&&e(F.StatefulButtCon,{icon:"ChevronExpand",onClick:r}),!a&&s&&e(Qe,{radius:"base.icon.size.400"})]}),e(K,{size:"large",onClick:()=>o(t),children:c("views.ORDER_SUMMARY.orderReview.continue")})]})}const Dt=(e,t)=>e.filter((e=>e.amount.gt(0)&&e.token)).reduce(((e,n)=>{if(!n.token)return e;const a={...n.token,address:n.token.address||"",symbol:n.token.symbol||t?.symbol||""},r=Z(a.address,"...").toLowerCase(),o=a.symbol||r;if(!o)return e;if(e[o]){const t=e[o].amount.add(n.amount);return{...e,[o]:{...e[o],amount:t,formattedAmount:ke(t,a.decimals)}}}return o?{...e,[o]:{...n,token:a,formattedAmount:ke(n.amount,a.decimals)}}:e}),{}),kt=e=>{if(e.type!==$.SWAP)return{};const t=[e.fees.approvalGasFee,e.fees.swapGasFee,...e.fees.swapFees];return Dt(t,e.fundingItem.token)},Nt=(e,t,n)=>{const a=[];if(e.type!==$.SWAP)return[];const r=(e,r,o="~ ")=>{if(e.amount.gt(0)){const s=ke(e.amount,e?.token?.decimals);a.push({label:r,fiatAmount:`≈ ${n("drawers.feesBreakdown.fees.fiatPricePrefix")}${A(s,e.token?.symbol||"",t,"-.--",4)}`,amount:`${z(s)}`,prefix:o,token:e?.token})}};r(e.fees.swapGasFee,n("drawers.feesBreakdown.fees.swapGasFee.label")),r(e.fees.approvalGasFee,n("drawers.feesBreakdown.fees.approvalFee.label"));return Object.entries(Dt(e.fees.swapFees,e.fundingItem.token)).forEach((([,e])=>{const t=e?.basisPoints??0;r(e,n("drawers.feesBreakdown.fees.swapSecondaryFee.label",{amount:t?t/100+"%":""}),"")})),a};function Pt({rc:t=e("span",{}),balance:n,conversions:a,selected:r,onClick:o,size:s}){const{t:i}=I(),{environment:c,config:{theme:d}}=pt(),{token:l,userBalance:u}=n.fundingItem,m=A(u.formattedBalance,l.symbol,a,""),E=Object.entries(kt(n));return k(F,{rc:t,sx:{mb:"base.spacing.x1"},size:s,emphasized:!0,...{onClick:o,selected:r},children:[e(F.FramedImage,{circularFrame:!0,alt:l.name,imageUrl:l.icon,defaultImageUrl:G(c,d)}),e(F.PriceDisplay,{use:e(Y,{size:"xSmall"}),fiatAmount:m?i("views.ORDER_SUMMARY.currency.fiat",{amount:m}):void 0,price:z(u.formattedBalance)}),e(F.Label,{sx:{display:"flex",wordBreak:"default"},children:l.symbol}),e(F.Caption,{children:E.length>0&&E.map((([t,{token:n,formattedAmount:a}])=>e(p,{rc:e("span",{}),sx:{d:"block"},children:i("views.ORDER_SUMMARY.coinsDrawer.fee",{symbol:n?.symbol||t,amount:q(z(a))})},t)))})]})}function Lt({conversions:t,balances:n,selectedIndex:a,visible:r,loading:o,transactionRequirement:s,onClose:i,onSelect:c,onPayWithCard:d,disabledPaymentTypes:l}){const{t:u}=I();let m="medium";return n.length>3&&(m="small"),e(J,{size:"full",visible:r,showHeaderBar:!0,onCloseDrawer:i,headerBarTitle:u("views.ORDER_SUMMARY.coinsDrawer.header"),children:e(J.Content,{rc:e(x.div,{variants:U,initial:"hidden",animate:"show"}),children:k(p,{sx:{height:"100%",display:"flex",flexDirection:"column",justifyContent:"space-between",px:"base.spacing.x4"},children:[k(p,{children:[k(p,{sx:{display:"flex",justifyContent:"space-between",mb:"base.spacing.x2"},children:[e(je,{size:"small",children:u("views.ORDER_SUMMARY.coinsDrawer.caption1")}),e(je,{size:"small",children:u("views.ORDER_SUMMARY.coinsDrawer.caption2")})]}),n?.map(((n,r)=>{return e(Pt,{onClick:(o=r,()=>{c(o),i()}),balance:n,selected:a===r,conversions:t,transactionRequirement:s,size:m,rc:e(x.div,{variants:W,custom:r})},`${n.fundingItem.token.symbol}-${n.type}`);var o})),o&&e(x.div,{variants:W,custom:n.length,children:e(F,{shimmer:!0,emphasized:!0,size:m,testId:"funding-balance-item-shimmer"})},"funding-balance-item-shimmer")]}),d&&k(p,{sx:{pb:"base.spacing.x4"},rc:e(x.div,{variants:W,custom:n.length+(o?1:0)}),children:[(l?.includes(C.CREDIT)&&l?.includes(C.DEBIT))??e(Q,{size:"small",rc:e(je,{}),sx:{my:"base.spacing.x4"},children:u("views.ORDER_SUMMARY.coinsDrawer.divider")}),e(_t,{onClick:d,size:m,paymentOptions:[C.DEBIT,C.CREDIT].filter((e=>!l?.includes(e))),captions:{[C.DEBIT]:u("views.PAYMENT_METHODS.options.debit.caption"),[C.CREDIT]:u("views.PAYMENT_METHODS.options.credit.caption")}})]})]})})})}function Mt({item:t,balance:n,pricing:a,conversions:r,size:o,sx:s,rc:i=e("span",{})}){const{t:c}=I(),{token:d}=n.fundingItem,l=a?.amount||0,u=A(l.toString(),d.symbol,r);return k(F,{rc:i,emphasized:!0,size:o||"medium",sx:{pointerEvents:"none",mb:"base.spacing.x1",...s},children:[e(F.FramedImage,{imageUrl:t.image}),e(F.Label,{children:t.name}),e(F.Caption,{children:c("views.ORDER_SUMMARY.orderItem.quantity",{qty:t.qty})}),l>0&&e(F.PriceDisplay,{use:e(Y,{size:"xSmall"}),price:c("views.ORDER_SUMMARY.currency.price",{symbol:d.symbol,amount:z(l)}),fiatAmount:c("views.ORDER_SUMMARY.currency.fiat",{amount:u})})]},t.name)}const Ft=(e,t,n)=>{if(!t)return;const a=e.toLowerCase(),r=ee[a]?.toLowerCase(),o=Object.values(t).find((e=>[a,r].includes(e.currency.toLowerCase())));if(o)return o;const s=n.get(a)||n.get(r);return s&&t.USDC?{currency:e,type:t.USDC.type,amount:t.USDC.amount*s}:void 0},xt={mb:"0",bradbl:"0",bradbr:"0"};function Ut({items:t,balance:n,pricing:a,conversions:r,children:o}){return k(p,{rc:e(x.div,{variants:U,initial:"hidden",animate:"show"}),children:[t.map(((s,i)=>e(Mt,{item:s,balance:n,conversions:r,size:t.length>=3?"small":"medium",pricing:Ft(n.fundingItem.token.symbol,a?.[s.productId]?.pricing,r),sx:i===t.length-1&&o?xt:void 0,rc:e(x.div,{variants:W,custom:i})},s.name))),o]})}function Wt({sx:t,swapFees:n,onFeesClick:a}){return e(Fe,{gasFeeFiatValue:n.fiatAmount,gasFeeToken:n.token,gasFeeValue:n.amount,fees:n.formattedFees,onFeesClick:a,sx:t,loading:!1})}function Bt({fundingBalances:t,conversions:n,collectionName:r,loadingBalances:o,transactionRequirement:s,onBackButtonClick:i,onPayWithCard:c,onProceedToBuy:d}){const{eventTargetState:{eventTarget:l}}=a.useContext(S),{t:u}=I(),{provider:m,items:E,orderQuote:f,disabledPaymentTypes:y}=pt(),{sendSelectedPaymentToken:T,sendViewFeesEvent:C}=At(),[g,h]=a.useState(!1),[v,_]=a.useState(0),[O,b]=a.useState({token:void 0,amount:"",fiatAmount:"",formattedFees:[]}),w=a.useMemo((()=>t[v]),[t,v,m]);a.useEffect((()=>{if(!n?.size||!m)return;if(w.type!==$.SWAP)return;const[[,e]]=Object.entries(kt(w));e&&e.token&&b({token:e.token,amount:e.formattedAmount,fiatAmount:A(e.formattedAmount,e.token.symbol,n),formattedFees:Nt(w,n,u)})}),[w,n,m]);const N=E.length>1,P=!o&&w.type===$.SWAP;return k(L,{testId:"order-review",header:e(D,{showBack:!0,onCloseButtonClick:()=>R(l),onBackButtonClick:i,title:r}),bodyStyleOverrides:{display:"flex",flexDirection:"column",justifyContent:"space-between",height:"0"},children:[e(Y,{size:"small",sx:{px:"base.spacing.x4",pb:"base.spacing.x4"},children:u("views.ORDER_SUMMARY.orderReview.heading")}),e(p,{sx:{display:"flex",flexDirection:"column",px:"base.spacing.x2",pb:"base.spacing.x8",flex:1,maxh:P?"45%":"60%",overflowY:"scroll",scrollbarWidth:"none",rowGap:"base.spacing.x4"},children:e(p,{sx:{px:"base.spacing.x2"},children:e(Ut,{items:E,balance:w,pricing:f.products,conversions:n,children:!N&&P&&e(Wt,{swapFees:O,sx:{bradtl:"0",bradtr:"0",brad:"base.borderRadius.x6",border:"0px solid transparent",borderTopWidth:"base.border.size.200",borderTopColor:"base.color.translucent.inverse.1000"},onFeesClick:()=>C(Ge.ORDER_SUMMARY)})})})}),N&&P&&e(Wt,{swapFees:O,sx:{mb:"-12px",bradtl:"base.borderRadius.x6",bradtr:"base.borderRadius.x6",border:"0px solid transparent",borderTopWidth:"base.border.size.100",borderTopColor:"base.color.translucent.emphasis.400"},onFeesClick:()=>C(Ge.ORDER_SUMMARY)}),e(wt,{onClick:()=>{h(!0)},onProceed:d,balance:w,conversions:n,canOpen:t.length>1,loading:o,priceDisplay:E.length>1}),e(Lt,{conversions:n,balances:t,onSelect:e=>{_(e);const{fundingItem:a}=t[e];T(qe.REVIEW_ORDER,a,n)},onClose:()=>{h(!1)},selectedIndex:v,visible:g,loading:o,onPayWithCard:c,transactionRequirement:s,disabledPaymentTypes:y})]})}const Vt=(e,t)=>{const n=re(e.address)?e.symbol:e.address??"";return{...e,icon:oe(t,n)}},Yt=(e,t)=>{return{type:Xe.SUFFICIENT,fundingItem:{type:te.ERC20,token:Vt((n=e,n.current.type!==te.ERC721&&n.current.token),t),fundsRequired:{amount:e.required.balance,formattedAmount:e.required.formattedBalance},userBalance:{balance:e.current.balance,formattedBalance:e.current.formattedBalance}}};var n},Ht=(e,t)=>{if(0===e.length)return[];const n=e.filter((e=>1===e.steps.length)),a=[te.ERC20,te.NATIVE];return n.flatMap((e=>e.steps.filter((e=>a.includes(e.fundingItem.type))))).map((e=>({...e,fundingItem:{...e.fundingItem,token:Vt(e.fundingItem.token,t)}})))},jt=e=>{let t=[];const n=(a=e.name,(e,t)=>{const n=e.fundingItem&&e.fundingItem.token&&e.fundingItem.token.symbol===a?-1:0,r=t.fundingItem&&t.fundingItem.token&&t.fundingItem.token.symbol===a?-1:0;return n!==r?n-r:e.type===Xe.SUFFICIENT&&t.type===Xe.SUFFICIENT?0:e.type===Xe.SUFFICIENT?-1:t.type===Xe.SUFFICIENT?1:0});var a;return e=>(0===e.length||(t=Array.from(new Set([...t,...e])).sort(n)),t)},Gt=e=>({...e,amount:f.from(0),formattedAmount:"0"}),qt=(e,t)=>e.map((e=>((e,t)=>{if(e.type!==$.SWAP)return e;if(!ie(t))return e;const n={...e.fees,approvalGasFee:Gt(e.fees.approvalGasFee),swapGasFee:Gt(e.fees.swapGasFee)};return{...e,fees:n}})(e,t))),zt=async e=>{const{provider:t,checkout:n,currencies:a,baseCurrency:r,onFundingBalance:o,getAmountByCurrency:s,getIsGasless:i,onComplete:c,onFundingRequirement:d}=e,l=t?.getSigner(),u=await(l?.getAddress())||"",p=n.config.environment,m=jt(r),E=e=>{Array.isArray(e)&&e.length>0&&o(m(qt(e,t)))},y=a.map((async e=>{const a=s(e);if(!a)return null;const r=((e,t,n)=>[{type:te.ERC20,tokenAddress:n,spenderAddress:t,amount:e}])(a,u,e.address),o=i()?void 0:{type:ne.GAS,gasToken:{type:ae.NATIVE,limit:f.from("30000000")}};return{currency:e,smartCheckoutResult:await n.smartCheckout({provider:t,itemRequirements:r,transactionOrGasAmount:o,routingOptions:{bridge:!1,onRamp:!1,swap:!0},fundingRouteFullAmount:!0,onComplete:()=>{c?.(m([]))},onFundingRoute:e=>{E(Ht([e],p))}})}})).filter(Boolean),T=await(async(e,t)=>{const n=e.map((async e=>{const n=await e;return t(n),n}));return await Promise.all(n)})(y,(({currency:e,smartCheckoutResult:t})=>{if(E(((e,t)=>{if(!0===e.sufficient){const n=e.transactionRequirements.find((e=>e.type===te.ERC20));if(n&&n.type===te.ERC20)return[Yt(n,t)]}return!1===e.sufficient&&e?.router?.routingOutcome.type===se.ROUTES_FOUND?Ht(e.router.routingOutcome.fundingRoutes,t):null})(t,p)),e.base){const e=t.transactionRequirements[0];d(e)}}));return T},Kt=()=>{const e=a.useRef(!1),t=a.useRef(0),{fromTokenAddress:n,orderQuote:r,provider:o,checkout:s,selectedCurrency:i}=pt(),{cryptoFiatState:c}=a.useContext(Ne),[d,l]=a.useState(),[u,p]=a.useState([]),[m,E]=a.useState([]),[f,y]=a.useState(!1);return{fundingBalances:u,loadingBalances:f,fundingBalancesResult:m,transactionRequirement:d,queryFundingBalances:()=>{n&&o&&s&&r&&i&&(e.current||f||(async()=>{e.current=!0,y(!0);try{const e=await zt({provider:o,checkout:s,currencies:r.currencies,routingOptions:{bridge:!1,onRamp:!1,swap:!0},baseCurrency:i,getAmountByCurrency:e=>{const t=Ft(e.name,r.totalAmount,c.conversions);return t?t.amount.toString():""},getIsGasless:()=>o.provider?.isPassport||!1,onFundingBalance:e=>{p([...e])},onComplete:()=>{t.current+=1,t.current===r.currencies.length&&(y(!1),t.current=0)},onFundingRequirement:e=>{l(e)}});E(e)}catch{y(!1)}finally{e.current=!1}})())}}},Xt=e=>{if(e&&e.current.type!==te.ERC721)return e.current.token},$t=e=>{const t=e.find((({type:e})=>e===te.NATIVE)),n=e.find((({type:e})=>e===te.ERC20)),a={erc20:{value:n?.delta.formattedBalance,symbol:Xt(n)?.symbol},native:{value:t?.delta.formattedBalance,symbol:Xt(t)?.symbol}};let r=["views.PAYMENT_METHODS.topUp.subheading.erc20",a],o=n?.delta.formattedBalance||"0",s=Xt(n)?.address;return t&&n&&!t.sufficient&&!n.sufficient&&(r=["views.PAYMENT_METHODS.topUp.subheading.both",a]),t&&n&&!t.sufficient&&n.sufficient&&(o=t?.delta.formattedBalance||"0",s=Xt(t)?.address,r=["views.PAYMENT_METHODS.topUp.subheading.native",a]),{heading:["views.PAYMENT_METHODS.topUp.heading"],subheading:r,amount:o,tokenAddress:s}};var Zt;function Jt({fundingRouteStep:t,onFundingRouteExecuted:n}){const{t:r}=I(),{config:o,provider:s,checkout:i,fromTokenAddress:c}=pt(),{viewDispatch:d}=a.useContext(y),{connectLoaderDispatch:l}=a.useContext(ce),[u,p]=a.useState(void 0),[m,E]=a.useState(void 0),[f,C]=a.useState(void 0),[g,A]=a.useState(Zt.LOADING),h=a.useRef(!1),R=a.useRef(void 0),v=a.useRef(void 0),[_,O]=a.useReducer(de,le),b=a.useMemo((()=>({eventTargetState:_,eventTargetDispatch:O})),[_,O]),w=new EventTarget,D=e=>{d({payload:{type:T.UPDATE_VIEW,view:{type:Ge.SALE_FAIL,data:{errorType:ze.FUNDING_ROUTE_EXECUTE_ERROR,errorData:e}}}})},N=a.useCallback((async e=>{if(!i||!s)throw new Error("checkout or provider not available.");const t=await i.getNetworkInfo({provider:s});if(e.type===$.BRIDGE){if(E({tokenAddress:e.fundingItem.token.address,amount:e.fundingItem.fundsRequired.formattedAmount}),t.chainId===ue(i.config))return void A(Zt.EXECUTE_BRIDGE);h.current=Zt.EXECUTE_BRIDGE,A(Zt.SWITCH_NETWORK_ETH)}if(e.type===$.SWAP){if(p({amount:e.fundingItem.fundsRequired.formattedAmount,fromTokenAddress:e.fundingItem.token.address,toTokenAddress:c}),t.chainId===pe(i.config))return void A(Zt.EXECUTE_SWAP);h.current=Zt.EXECUTE_SWAP,A(Zt.SWITCH_NETWORK_ZKEVM)}e.type===$.ONRAMP&&(C({amount:e.fundingItem.fundsRequired.formattedAmount,tokenAddress:e.fundingItem.token.address}),A(Zt.EXECUTE_ON_RAMP))}),[s,i]);a.useEffect((()=>{if(t)try{N(t)}catch(e){D(e)}}),[t]);const P=()=>{R.current?(R.current=void 0,v.current=void 0,n()):D(v.current)},L=e=>{switch(e.detail.type){case Ce.SUCCESS:{const t=e.detail.data;R.current=t,P();break}case Ie.TRANSACTION_SENT:case ge.SUCCESS:{const t=e.detail.data;R.current=t;break}case Ie.FAILURE:case Ce.FAILURE:case ge.FAILURE:{const t=e.detail.data;v.current=t;break}case Ie.CLOSE_WIDGET:case Ce.CLOSE_WIDGET:case ge.CLOSE_WIDGET:P();case Ce.REJECTED:}},F=e=>{switch(e.detail.type){case Ae.SUCCESS:{const t=e.detail.data;l({payload:{type:he.SET_PROVIDER,provider:t.provider}}),!1!==h.current&&(A(h.current),h.current=!1);break}case Ae.FAILURE:case Ae.CLOSE_WIDGET:default:P()}};return a.useEffect((()=>(w.addEventListener(me.IMTBL_CONNECT_WIDGET_EVENT,F),w.addEventListener(me.IMTBL_BRIDGE_WIDGET_EVENT,L),w.addEventListener(me.IMTBL_SWAP_WIDGET_EVENT,L),()=>{w.removeEventListener(me.IMTBL_CONNECT_WIDGET_EVENT,F),w.removeEventListener(me.IMTBL_BRIDGE_WIDGET_EVENT,L),w.removeEventListener(me.IMTBL_SWAP_WIDGET_EVENT,L)})),[]),a.useEffect((()=>{O({payload:{type:Ee.SET_EVENT_TARGET,eventTarget:w}})}),[i]),k(S.Provider,{value:b,children:[g===Zt.LOADING&&e(M,{loadingText:r("views.ORDER_SUMMARY.loading.balances")}),g===Zt.EXECUTE_BRIDGE&&e(xe,{...m,config:o,checkout:i}),g===Zt.EXECUTE_SWAP&&e(Ue,{...u,config:o}),g===Zt.EXECUTE_ON_RAMP&&e(De,{config:o,...f}),g===Zt.SWITCH_NETWORK_ETH&&e(Te,{config:o,targetChainId:i.config.isProduction?fe.ETHEREUM:fe.SEPOLIA,web3Provider:s,checkout:i,deepLink:ye.SWITCH_NETWORK}),g===Zt.SWITCH_NETWORK_ZKEVM&&e(Te,{config:o,targetChainId:i.config.isProduction?fe.IMTBL_ZKEVM_MAINNET:fe.IMTBL_ZKEVM_TESTNET,web3Provider:s,checkout:i,deepLink:ye.SWITCH_NETWORK})]})}function Qt({subView:t}){const{t:n}=I(),{sendPageView:r,sendProceedToPay:o}=At(),{items:s,fromTokenAddress:i,collectionName:c,goToErrorView:d,goBackToPaymentMethods:l,sign:u,selectedCurrency:m}=pt(),{viewDispatch:E,viewState:f}=a.useContext(y),{cryptoFiatDispatch:C,cryptoFiatState:g}=a.useContext(Ne),A=e=>{u(Ke.CRYPTO,e),E({payload:{type:T.UPDATE_VIEW,view:{type:Ge.PAY_WITH_COINS}}})},h=()=>{A(m?.address)},{fundingBalances:S,loadingBalances:R,fundingBalancesResult:v,transactionRequirement:_,queryFundingBalances:O}=Kt();return a.useEffect((()=>{t===qe.INIT&&i&&O()}),[t,i]),a.useEffect((()=>{0!==S.length&&E({payload:{type:T.UPDATE_VIEW,view:{type:Ge.ORDER_SUMMARY,subView:qe.REVIEW_ORDER}}})}),[S]),a.useEffect((()=>{if(!R&&v.length&&!(S.length>0))try{const e=v.find((e=>e.currency.base))?.smartCheckoutResult,t=$t(e.transactionRequirements);E({payload:{type:T.UPDATE_VIEW,view:{type:B.TOP_UP_VIEW,data:t}}})}catch(e){d(ze.FUNDING_ROUTE_EXECUTE_ERROR,e)}}),[S,R,v]),a.useEffect((()=>{if(!C||0===S.length||R)return;const e=S.map((({fundingItem:e})=>e.token.symbol));C({payload:{type:Pe.SET_TOKEN_SYMBOLS,tokenSymbols:e}})}),[C,S,R]),a.useEffect((()=>{if(R||!s.length||!g.conversions)return;const e=S.map((({fundingItem:e})=>It(e,g.conversions)));r(Ge.ORDER_SUMMARY,{subView:qe.REVIEW_ORDER,tokens:e,items:s,collectionName:c})}),[s,c,S,R,g]),k(p,{children:[t===qe.INIT&&e(M,{loadingText:n("views.ORDER_SUMMARY.loading.balances")}),t===qe.REVIEW_ORDER&&e(Bt,{fundingBalances:S,conversions:g.conversions,collectionName:c,loadingBalances:R,onBackButtonClick:l,onProceedToBuy:e=>{const{type:t,fundingItem:n}=e;o(Ge.ORDER_SUMMARY,n,g.conversions),t!==Xe.SUFFICIENT?E({payload:{type:T.UPDATE_VIEW,view:{type:Ge.ORDER_SUMMARY,subView:qe.EXECUTE_FUNDING_ROUTE,data:{fundingBalance:e,onFundingRouteExecuted:h}}}}):A(n.token.address)},transactionRequirement:_,onPayWithCard:e=>l(e)}),t===qe.EXECUTE_FUNDING_ROUTE&&e(Jt,{fundingRouteStep:f.view.data.fundingBalance,onFundingRouteExecuted:h})]})}function en(){return e(p,{testId:"credit-card-warning-hero",children:e(p,{children:k("svg",{width:"430",height:"161",viewBox:"0 0 430 161",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[e("path",{d:"M172.973 133.128C171.472 132.262 170.399 130.653 170.399 128.67V91.134C170.399 87.4566 171.381 83.9165 173.158 80.8356C174.934 77.7546 177.509 75.137 180.697 73.2962L199.556 62.4057L231.623 44.1673C233.339 43.1761 235.27 43.3005 236.772 44.1673L229.34 39.8763C227.838 39.0095 225.907 38.8851 224.191 39.8763L192.124 58.1147L173.265 69.0052C170.077 70.8461 166.889 72.6253 165.112 75.7062C163.336 78.7872 162.967 83.1656 162.967 86.843V124.379C162.967 126.361 164.04 127.971 165.541 128.837L172.973 133.128Z",fill:"#F3F3F3",stroke:"#131313",strokeWidth:"1.64647",strokeLinecap:"round",strokeLinejoin:"round"}),e("path",{d:"M239.133 48.6725V85.9384C239.133 96.0882 236.344 99.3065 228.835 103.776L178.124 133.123C174.691 135.105 170.4 132.629 170.4 128.665V91.3985C170.4 82.7861 172.193 78.066 180.698 73.5609L231.409 44.2142C234.842 42.2317 239.133 44.7076 239.133 48.6725Z",fill:"#F3F3F3",stroke:"#131313",strokeWidth:"1.64647",strokeLinecap:"round",strokeLinejoin:"round"}),e("path",{d:"M172.973 133.127C171.472 132.26 170.399 130.651 170.399 128.668V91.3681C170.399 87.6907 170.631 83.7216 172.407 80.6406L164.975 76.3496C163.198 79.4306 162.967 83.3997 162.967 87.0771L162.967 124.377C162.967 126.36 164.04 127.969 165.541 128.836L172.973 133.127Z",fill:"#131313",stroke:"#131313",strokeWidth:"1.64647",strokeLinecap:"round",strokeLinejoin:"round"}),e("path",{d:"M170.261 125.267V114.74L239.346 75.0625V85.3194L170.261 125.267Z",fill:"#0D0D0D",stroke:"black",strokeWidth:"0.823233"}),k("g",{clipPath:"url(#clip0_1548_70742)",children:[e("path",{d:"M228.362 71.9146C219.392 76.9925 219.392 93.5869 228.362 108.975C237.331 124.363 251.872 132.721 260.842 127.643L249.638 134.081C240.669 139.159 226.128 130.802 217.158 115.414C208.189 100.026 208.189 83.4311 217.158 78.3532L228.362 71.9146Z",fill:"black",stroke:"black",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),e("path",{d:"M228.361 71.9146C219.392 76.9925 219.392 93.5869 228.361 108.975C237.331 124.363 251.872 132.721 260.841 127.643C269.811 122.565 269.811 105.97 260.841 90.5822C251.872 75.194 237.331 66.8367 228.361 71.9146ZM234.856 83.0619C239.099 80.6582 245.416 83.268 250.539 89.0026L232.165 99.4117C229.72 92.1618 230.612 85.4657 234.856 83.0619ZM254.343 116.5C250.1 118.904 243.782 116.294 238.659 110.559L257.034 100.15C259.479 107.4 258.586 114.096 254.343 116.5Z",fill:"#FAFD7E",stroke:"black",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),e("path",{d:"M234.856 83.0618C239.099 80.658 245.417 83.2678 250.54 89.0024L232.165 99.4115C229.72 92.1617 230.613 85.4655 234.856 83.0618Z",fill:"#FAFD7E",stroke:"black",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),e("path",{d:"M254.347 116.5C250.104 118.903 243.787 116.294 238.664 110.559L257.038 100.15C259.483 107.4 258.591 114.096 254.347 116.5Z",fill:"#FAFD7E",stroke:"black",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),e("path",{d:"M232.165 99.4115C230.94 95.7844 230.552 92.299 231.001 89.4188C231.449 86.5386 232.734 84.2636 234.856 83.0618C236.977 81.8599 239.617 81.9114 242.368 82.9802L232.165 99.4115Z",fill:"black",stroke:"black",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"}),e("path",{d:"M246.835 116.581C244.084 115.513 241.225 113.426 238.664 110.559L247.853 105.357L257.042 100.154L246.84 116.586L246.835 116.581Z",fill:"black",stroke:"black",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})]}),e("defs",{children:e("clipPath",{id:"clip0_1548_70742",children:e("rect",{width:"58",height:"66",fill:"white",transform:"translate(210 70)"})})})]})})})}function tn(){const{t:t}=I(),{showCreditCardWarning:n,setShowCreditCardWarning:a,setPaymentMethod:r}=pt();return e(J,{size:"threeQuarter",visible:n,showHeaderBar:!1,children:k(J.Content,{children:[e(Se,{icon:"Close",variant:"tertiary",sx:{pos:"absolute",top:"base.spacing.x5",left:"base.spacing.x5",backdropFilter:"blur(30px)"},onClick:()=>a(!1)}),e(en,{}),k(p,{sx:{px:"base.spacing.x12"},children:[e(Y,{sx:{marginTop:"base.spacing.x6",marginBottom:"base.spacing.x2",textAlign:"center"},children:t("views.PAYMENT_METHODS.creditCardWarningDrawer.heading")}),e(Re,{size:"medium",sx:{display:"block",textAlign:"center",color:"base.color.text.body.secondary",marginBottom:"base.spacing.x13"},children:t("views.PAYMENT_METHODS.creditCardWarningDrawer.body")}),e(K,{sx:{width:"100%"},testId:"credit-card-button",variant:"primary",size:"large",onClick:()=>{r(C.CREDIT)},children:t("views.PAYMENT_METHODS.creditCardWarningDrawer.ctaButton")})]})]})})}function nn(t){const{t:n}=I(),{config:r,items:o,environmentId:s,collectionName:i,excludePaymentTypes:c,preferredCurrency:d,waitFulfillmentSettlements:l=!0}=t,{connectLoaderState:u}=a.useContext(ce),{checkout:p,provider:m}=u,E=a.useRef(),{eventTargetState:{eventTarget:f}}=a.useContext(S),{theme:C}=r,A=a.useMemo((()=>ve(C)),[C]),[h,v]=a.useReducer(_e,Oe),_=a.useMemo((()=>({viewState:h,viewDispatch:v})),[h,v]),O=h.view.data?.loadingText||n("views.LOADING_VIEW.text");a.useEffect((()=>{p&&m&&(async()=>{const e=await p.getNetworkInfo({provider:m});E.current=e.chainId})()}),[p,m]);const b=a.useRef(!1),w=a.useCallback((()=>{p&&m&&(b.current||(b.current=!0,v({payload:{type:T.UPDATE_VIEW,view:{type:Ge.PAYMENT_METHODS}}})))}),[p,m]);return a.useEffect((()=>{p&&m&&w()}),[p,m]),e(y.Provider,{value:_,children:e(ut,{value:{config:r,items:o,environment:r.environment,environmentId:s,provider:m,checkout:p,passport:p?.passport,collectionName:i,excludePaymentTypes:c,preferredCurrency:d,waitFulfillmentSettlements:l},children:k(Me,{environment:r.environment,children:[h.view.type===B.LOADING_VIEW&&e(M,{loadingText:O}),h.view.type===Ge.PAYMENT_METHODS&&e(Ot,{}),h.view.type===Ge.PAY_WITH_CARD&&e(ht,{}),h.view.type===Ge.PAY_WITH_COINS&&e(St,{}),h.view.type===Ge.SALE_FAIL&&e(bt,{biomeTheme:A,errorType:h.view.data?.errorType,transactionHash:h.view.data?.transactionHash,blockExplorerLink:be.getTransactionLink(E.current,h.view.data?.transactionHash)}),h.view.type===Ge.ORDER_SUMMARY&&e(Qt,{subView:h.view.subView}),h.view.type===B.TOP_UP_VIEW&&e(Le,{analytics:{userJourney:g.SALE},widgetEvent:me.IMTBL_SALE_WIDGET_EVENT,checkout:p,provider:m,showOnrampOption:r.isOnRampEnabled,showSwapOption:r.isSwapEnabled,showBridgeOption:r.isBridgeEnabled,onCloseButtonClick:()=>R(f),onBackButtonClick:()=>{v({payload:{type:T.UPDATE_VIEW,view:{type:Ge.PAYMENT_METHODS}}})},amount:h.view.data?.amount,tokenAddress:h.view.data?.tokenAddress,heading:h.view.data?.heading,subheading:h.view.data?.subheading}),e(tn,{})]})})})}!function(e){e.LOADING="LOADING",e.EXECUTE_SWAP="EXECUTE_SWAP",e.EXECUTE_BRIDGE="EXECUTE_BRIDGE",e.EXECUTE_ON_RAMP="EXECUTE_ON_RAMP",e.SWITCH_NETWORK_ETH="SWITCH_NETWORK_ETH",e.SWITCH_NETWORK_ZKEVM="SWITCH_NETWORK_ZKEVM"}(Zt||(Zt={}));export{nn as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{dn as n,dp as t}from"./index-df7e23e2.js";function i(i){return n(this,void 0,void 0,(function(){var n;return t(this,(function(t){switch(t.label){case 0:return[4,import("./index.umd-669adf6e.js").then((function(n){return n.i}))];case 1:return n=t.sent(),i._plugins=n,[2]}}))}))}export{i as loadLegacyVideoPlugins};
|