@metamask-previews/ramps-controller 29.0.0-preview-dd61a447a → 29.0.0-preview-77efa7863

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/CHANGELOG.md CHANGED
@@ -9,24 +9,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
9
9
 
10
10
  ### Added
11
11
 
12
- - Add `TransakServiceInvalidateQueriesAction`, `TransakServiceCacheUpdatedEvent` and `TransakServiceGranularCacheUpdatedEvent` types, and include them in `TransakServiceActions` and `TransakServiceEvents` ([#11216](https://github.com/MetaMask/core/pull/11216))
13
12
  - Add `RampsServiceInvalidateQueriesAction`, `RampsServiceCacheUpdatedEvent` and `RampsServiceGranularCacheUpdatedEvent`, also included in `RampsServiceActions` and `RampsServiceEvents` ([#11214](https://github.com/MetaMask/core/pull/11214))
14
13
  - Add `NeoBankServiceInvalidateQueriesAction`, `NeoBankServiceCacheUpdatedEvent` and `NeoBankServiceGranularCacheUpdatedEvent`, also included in `NeoBankServiceActions` and `NeoBankServiceEvents` ([#10882](https://github.com/MetaMask/core/pull/10882))
15
14
 
16
15
  ### Changed
17
16
 
18
- - **BREAKING:** `TransakService` now extends `BaseDataService` ([#11216](https://github.com/MetaMask/core/pull/11216))
19
- - This is breaking because `TransakServiceMessenger` has new required actions and events, writes are no longer retried, and `verifyUserOtp` now shares the circuit breaker with every other request (see below).
20
- - `TransakServiceActions` now includes `TransakService:invalidateQueries`, and `TransakServiceEvents` now includes the `TransakService:cacheUpdated` events. A host messenger built from `MessengerActions<TransakServiceMessenger>` and `MessengerEvents<TransakServiceMessenger>` picks these up automatically.
21
17
  - **BREAKING:** `RampsService` now extends `BaseDataService` from `@metamask/base-data-service` ([#11214](https://github.com/MetaMask/core/pull/11214))
22
18
  - This is breaking because `RampsService` no longer has public `onRetry`, `onBreak` and `onDegraded` methods (see Removed), and `RampsServiceMessenger` has new required actions and events. Pass `policyOptions` to the constructor to configure retries and the circuit breaker.
23
19
  - `RampsServiceMessenger` now includes the `RampsService:invalidateQueries` action and the `RampsService:cacheUpdated` events. Messengers built from `RampsServiceActions` and `RampsServiceEvents` pick these up automatically.
24
20
  - **BREAKING:** `NeoBankService` now extends `BaseDataService` from `@metamask/base-data-service`, so reads and writes share one circuit breaker (previously each had its own) and repeated read failures can now block writes ([#10882](https://github.com/MetaMask/core/pull/10882))
25
21
  - `NeoBankServiceMessenger` now includes the `NeoBankService:invalidateQueries` action and `NeoBankService:cacheUpdated` events. Messengers built from `NeoBankServiceActions` / `NeoBankServiceEvents` pick these up automatically.
26
- - Concurrent identical `TransakService` reads are now deduplicated: while one request is in flight, identical calls reuse it instead of sending another. Reads still always hit the API ([#11216](https://github.com/MetaMask/core/pull/11216))
27
- - Responses are now validated, and a malformed response throws `Query function for "TransakService:<method>" returned an unexpected response: ...` for reads or `Mutation function for "TransakService:<method>" returned an unexpected response: ...` for writes. Previously the response was returned unchecked ([#11216](https://github.com/MetaMask/core/pull/11216))
28
- - Writes (every POST, PATCH and DELETE request) are no longer retried. Previously only `verifyUserOtp` was exempt from retries ([#11216](https://github.com/MetaMask/core/pull/11216))
29
- - `verifyUserOtp` now shares the circuit breaker with every other `TransakService` request. Previously it had its own, so repeated failures on other requests can now block it ([#11216](https://github.com/MetaMask/core/pull/11216))
30
22
  - Concurrent identical `RampsService` calls are now deduplicated: while one request is in flight, calls with the same method and arguments reuse it instead of sending another. Sequential calls still always hit the API ([#11214](https://github.com/MetaMask/core/pull/11214))
31
23
  - Responses that do not match the expected shape now throw `Query function for "RampsService:<method>" returned an unexpected response: ...`, instead of `Malformed response received from <api name>` ([#11214](https://github.com/MetaMask/core/pull/11214))
32
24
  - `NeoBankService.getAutorampQuote`, `getAutorampQuoteForAutoramp`, `getCustomerByExternalId`, `registerPixAddress` and `attachAutorampQuote` now return `Promise<Json>` instead of `Promise<unknown>` ([#10882](https://github.com/MetaMask/core/pull/10882))
@@ -1,5 +1,4 @@
1
- import { BaseDataService } from '@metamask/base-data-service';
2
- import type { CreateServicePolicyOptions, DataServiceCacheUpdatedEvent, DataServiceGranularCacheUpdatedEvent, DataServiceInvalidateQueriesAction } from '@metamask/base-data-service';
1
+ import type { CreateServicePolicyOptions } from '@metamask/controller-utils';
3
2
  import { HttpError } from '@metamask/controller-utils';
4
3
  import type { Messenger } from '@metamask/messenger';
5
4
  import type { AuthenticationController } from '@metamask/profile-sync-controller';
@@ -275,25 +274,12 @@ export declare class TransakOrderIdTransformer {
275
274
  static extractTransakOrderId(orderId: string): string;
276
275
  }
277
276
  declare const serviceName = "TransakService";
278
- /**
279
- * Invalidates cached queries held by {@link TransakService}.
280
- */
281
- export type TransakServiceInvalidateQueriesAction = DataServiceInvalidateQueriesAction<typeof serviceName>;
282
- export type TransakServiceActions = TransakServiceMethodActions | TransakServiceInvalidateQueriesAction;
277
+ export type TransakServiceActions = TransakServiceMethodActions;
283
278
  /**
284
279
  * Actions from other messengers that {@link TransakService} calls.
285
280
  */
286
281
  type AllowedActions = AuthenticationController.AuthenticationControllerGetBearerTokenAction;
287
- /**
288
- * Published whenever a query or mutation in the service cache changes.
289
- */
290
- export type TransakServiceCacheUpdatedEvent = DataServiceCacheUpdatedEvent<typeof serviceName>;
291
- /**
292
- * Published for a single query or mutation whenever it changes in the service
293
- * cache.
294
- */
295
- export type TransakServiceGranularCacheUpdatedEvent = DataServiceGranularCacheUpdatedEvent<typeof serviceName>;
296
- export type TransakServiceEvents = TransakServiceCacheUpdatedEvent | TransakServiceGranularCacheUpdatedEvent;
282
+ export type TransakServiceEvents = never;
297
283
  type AllowedEvents = never;
298
284
  export type TransakServiceMessenger = Messenger<typeof serviceName, TransakServiceActions | AllowedActions, TransakServiceEvents | AllowedEvents>;
299
285
  export declare class TransakApiError extends HttpError {
@@ -301,8 +287,9 @@ export declare class TransakApiError extends HttpError {
301
287
  readonly apiMessage: string | undefined;
302
288
  constructor(status: number, message: string, errorCode?: string, apiMessage?: string);
303
289
  }
304
- export declare class TransakService extends BaseDataService<typeof serviceName, TransakServiceMessenger> {
290
+ export declare class TransakService {
305
291
  #private;
292
+ readonly name: typeof serviceName;
306
293
  constructor({ messenger, environment, context, fetch: fetchFunction, apiKey, policyOptions, orderRetryDelayMs, rampsApiBaseUrlOverride, referrerDomain, clientProduct, clientVersion, }: {
307
294
  messenger: TransakServiceMessenger;
308
295
  environment?: TransakEnvironment;
@@ -1 +1 @@
1
- {"version":3,"file":"TransakService.d.ts","sourceRoot":"","sources":["../src/TransakService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TransakService.d.ts","sourceRoot":"","sources":["../src/TransakService.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,4 @@
1
- import { BaseDataService } from '@metamask/base-data-service';
2
- import { HttpError } from '@metamask/controller-utils';
3
- import { any, array, boolean, nullable, number, optional, record, string, type as looseObject, } from '@metamask/superstruct';
1
+ import { createServicePolicy, HttpError } from '@metamask/controller-utils';
4
2
  import packageJson from '../package.json';
5
3
  import { addRampsClientIdentityParams } from './client-identity.js';
6
4
  import { RAMPS_SDK_VERSION } from './RampsService.js';
@@ -161,131 +159,13 @@ export class TransakApiError extends HttpError {
161
159
  this.apiMessage = apiMessage;
162
160
  }
163
161
  }
164
- // === RESPONSE STRUCTS ===
165
- /**
166
- * The structs below are intentionally lenient: they require only the fields
167
- * the service itself depends on, check the type of any other field that is
168
- * present, and ignore extra fields the APIs return. The APIs omit fields for
169
- * incomplete profiles and sparse responses, and responses were not validated
170
- * before, so a missing field must not fail a call.
171
- */
172
- const TransakPaymentDetailsStruct = array(looseObject({
173
- fiatCurrency: string(),
174
- paymentMethod: string(),
175
- fields: array(looseObject({ name: string(), id: string(), value: string() })),
176
- }));
177
- const SendUserOtpResponseStruct = looseObject({
178
- isTncAccepted: boolean(),
179
- stateToken: string(),
180
- email: string(),
181
- expiresIn: number(),
182
- });
183
- const VerifyUserOtpResponseStruct = looseObject({
184
- accessToken: string(),
185
- ttl: number(),
186
- created: string(),
187
- });
188
- const UserDetailsStruct = looseObject({
189
- id: optional(string()),
190
- firstName: optional(string()),
191
- lastName: optional(string()),
192
- email: optional(string()),
193
- mobileNumber: optional(string()),
194
- status: optional(string()),
195
- dob: optional(string()),
196
- kyc: optional(looseObject({
197
- status: optional(string()),
198
- type: optional(string()),
199
- userId: optional(string()),
200
- workFlowRunId: optional(string()),
201
- })),
202
- address: optional(looseObject({
203
- addressLine1: optional(string()),
204
- addressLine2: optional(string()),
205
- state: optional(string()),
206
- city: optional(string()),
207
- postCode: optional(string()),
208
- country: optional(string()),
209
- countryCode: optional(string()),
210
- })),
211
- createdAt: optional(string()),
212
- });
213
- const BuyQuoteStruct = looseObject({
214
- quoteId: string(),
215
- conversionPrice: optional(number()),
216
- marketConversionPrice: optional(number()),
217
- slippage: optional(number()),
218
- fiatCurrency: optional(string()),
219
- cryptoCurrency: optional(string()),
220
- paymentMethod: optional(string()),
221
- fiatAmount: optional(number()),
222
- cryptoAmount: optional(number()),
223
- isBuyOrSell: optional(string()),
224
- network: optional(string()),
225
- feeDecimal: optional(number()),
226
- totalFee: optional(number()),
227
- feeBreakdown: optional(array(record(string(), any()))),
228
- nonce: optional(number()),
229
- cryptoLiquidityProvider: optional(string()),
230
- notes: optional(array(record(string(), any()))),
231
- });
232
- const KycRequirementStruct = looseObject({
233
- status: string(),
234
- kycType: string(),
235
- isAllowedToPlaceOrder: boolean(),
236
- });
237
- const AdditionalRequirementsStruct = looseObject({
238
- formsRequired: array(looseObject({ type: string(), metadata: optional(any()) })),
239
- });
240
- const TransakOrderStruct = looseObject({
241
- orderId: string(),
242
- walletAddress: string(),
243
- paymentDetails: optional(nullable(TransakPaymentDetailsStruct)),
244
- });
245
- const TransakOrderPaymentDetailsStruct = looseObject({
246
- paymentDetails: optional(nullable(TransakPaymentDetailsStruct)),
247
- });
248
- const ActiveOrdersStruct = array(looseObject({ orderId: string(), status: string() }));
249
- const DepositOrderStruct = looseObject({
250
- providerOrderId: string(),
251
- status: string(),
252
- });
253
- const UserLimitsStruct = looseObject({
254
- limits: looseObject({ '1': number(), '30': number(), '365': number() }),
255
- spent: looseObject({ '1': number(), '30': number(), '365': number() }),
256
- remaining: looseObject({ '1': number(), '30': number(), '365': number() }),
257
- exceeded: looseObject({ '1': boolean(), '30': boolean(), '365': boolean() }),
258
- shortage: optional(record(string(), number())),
259
- });
260
- const OttStruct = looseObject({ ott: string() });
261
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
262
- const TranslationStruct = looseObject({
263
- region: optional(string()),
264
- paymentMethod: optional(string()),
265
- cryptoCurrency: string(),
266
- network: string(),
267
- fiatCurrency: string(),
268
- });
269
- const IdProofStatusStruct = looseObject({
270
- status: string(),
271
- kycType: string(),
272
- randomLogIdentifier: optional(string()),
273
- });
274
- const PaymentConfirmationStruct = looseObject({ success: boolean() });
275
- const WidgetUrlResponseStruct = looseObject({ widgetUrl: string() });
276
- /**
277
- * Wraps a struct in the `{ data }` envelope the Transak API gateway uses.
278
- *
279
- * @param dataStruct - The struct for the `data` property.
280
- * @returns The envelope struct.
281
- */
282
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
283
- function envelope(dataStruct) {
284
- return looseObject({ data: dataStruct });
285
- }
286
162
  // === SERVICE DEFINITION ===
287
- export class TransakService extends BaseDataService {
163
+ export class TransakService {
164
+ name;
165
+ #messenger;
288
166
  #fetch;
167
+ #policy;
168
+ #noRetryPolicy;
289
169
  #environment;
290
170
  #context;
291
171
  #orderRetryDelayMs;
@@ -304,9 +184,15 @@ export class TransakService extends BaseDataService {
304
184
  */
305
185
  #referrerDomain;
306
186
  #clientIdentity;
307
- constructor({ messenger, environment = TransakEnvironment.Staging, context, fetch: fetchFunction, apiKey, policyOptions, orderRetryDelayMs = 2000, rampsApiBaseUrlOverride, referrerDomain = TRANSAK_REFERRER_DOMAIN, clientProduct, clientVersion, }) {
308
- super({ name: serviceName, messenger, policyOptions });
187
+ constructor({ messenger, environment = TransakEnvironment.Staging, context, fetch: fetchFunction, apiKey, policyOptions = {}, orderRetryDelayMs = 2000, rampsApiBaseUrlOverride, referrerDomain = TRANSAK_REFERRER_DOMAIN, clientProduct, clientVersion, }) {
188
+ this.name = serviceName;
189
+ this.#messenger = messenger;
309
190
  this.#fetch = fetchFunction;
191
+ this.#policy = createServicePolicy(policyOptions);
192
+ this.#noRetryPolicy = createServicePolicy({
193
+ ...policyOptions,
194
+ maxRetries: 0,
195
+ });
310
196
  this.#environment = environment;
311
197
  this.#context = context;
312
198
  this.#apiKey = apiKey ?? null;
@@ -317,7 +203,7 @@ export class TransakService extends BaseDataService {
317
203
  clientProduct,
318
204
  clientVersion,
319
205
  };
320
- this.messenger.registerMethodActionHandlers(this, MESSENGER_EXPOSED_METHODS);
206
+ this.#messenger.registerMethodActionHandlers(this, MESSENGER_EXPOSED_METHODS);
321
207
  }
322
208
  setApiKey(apiKey) {
323
209
  this.#apiKey = apiKey;
@@ -384,21 +270,7 @@ export class TransakService extends BaseDataService {
384
270
  }
385
271
  throw new TransakApiError(fetchResponse.status, `Fetching '${url.toString()}' failed with status '${fetchResponse.status}'${errorBody ? `: ${errorBody}` : ''}`, errorCode, apiMessage);
386
272
  }
387
- /**
388
- * Identifies the current login session without exposing the access token,
389
- * so reads made under different sessions never share a request.
390
- *
391
- * @returns The access token creation time in milliseconds, or `null` when
392
- * logged out.
393
- */
394
- #getSessionId() {
395
- return this.#accessToken
396
- ? new Date(this.#accessToken.created).getTime()
397
- : null;
398
- }
399
- async #transakGet(queryName, path,
400
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
401
- dataStruct, params) {
273
+ async #transakGet(path, params) {
402
274
  const baseUrl = getTransakApiBaseUrl(this.#environment);
403
275
  const url = new URL(path, baseUrl);
404
276
  if (params) {
@@ -410,98 +282,59 @@ export class TransakService extends BaseDataService {
410
282
  }
411
283
  const apiKey = this.#ensureApiKey();
412
284
  url.searchParams.set('apiKey', apiKey);
413
- const response = (await this.fetchQuery({
414
- // The API key is deliberately left out of the key, as keys appear in the
415
- // names of published `cacheUpdated` events.
416
- queryKey: [
417
- `${this.name}:${queryName}`,
418
- path,
419
- params ?? {},
420
- this.#getSessionId(),
421
- ],
422
- staleTime: 0,
423
- gcTime: 0,
424
- responseStruct: envelope(dataStruct),
425
- queryFn: async () => {
426
- const fetchResponse = await this.#fetch(url.toString(), {
427
- method: 'GET',
428
- headers: this.#getHeaders(),
429
- });
430
- if (!fetchResponse.ok) {
431
- await this.#throwTransakApiError(fetchResponse, url);
432
- }
433
- return (await fetchResponse.json());
434
- },
435
- }));
285
+ const response = await this.#policy.execute(async () => {
286
+ const fetchResponse = await this.#fetch(url.toString(), {
287
+ method: 'GET',
288
+ headers: this.#getHeaders(),
289
+ });
290
+ if (!fetchResponse.ok) {
291
+ await this.#throwTransakApiError(fetchResponse, url);
292
+ }
293
+ return fetchResponse.json();
294
+ });
436
295
  return response.data;
437
296
  }
438
- /**
439
- * Sends a request that changes server side data. Mutations are never
440
- * retried, and the mutation key holds only the method name, as keys appear
441
- * in the names of published `cacheUpdated` events.
442
- *
443
- * @param options - The options.
444
- * @param options.mutationName - The name of the public method.
445
- * @param options.url - The request URL.
446
- * @param options.init - The request method, headers and body.
447
- * @param options.responseStruct - The struct for the response body. When
448
- * omitted, the response body is ignored.
449
- * @returns The validated response body, or `null` if it was ignored.
450
- */
451
- async #sendMutation({ mutationName, url, init, responseStruct, }) {
452
- return (await this.executeMutation({
453
- mutationKey: [`${this.name}:${mutationName}`],
454
- // Some responses carry credentials (`verifyUserOtp` returns the access
455
- // token), so do not keep finished mutations in the cache.
456
- gcTime: 0,
457
- responseStruct,
458
- mutationFn: async () => {
459
- const fetchResponse = await this.#fetch(url.toString(), init);
460
- if (!fetchResponse.ok) {
461
- await this.#throwTransakApiError(fetchResponse, url);
462
- }
463
- return responseStruct ? (await fetchResponse.json()) : null;
464
- },
465
- }));
466
- }
467
- async #transakPost(mutationName, path,
468
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
469
- dataStruct, body) {
297
+ async #transakPost(path, body, options = {}) {
470
298
  const apiKey = this.#ensureApiKey();
471
299
  const baseUrl = getTransakApiBaseUrl(this.#environment);
472
300
  const url = new URL(path, baseUrl);
473
- const response = (await this.#sendMutation({
474
- mutationName,
475
- url,
476
- init: {
301
+ const requestBody = {
302
+ ...(body ?? {}),
303
+ apiKey,
304
+ };
305
+ const policy = options.policy ?? this.#policy;
306
+ const response = await policy.execute(async () => {
307
+ const fetchResponse = await this.#fetch(url.toString(), {
477
308
  method: 'POST',
478
309
  headers: this.#getHeaders(),
479
- body: JSON.stringify({ ...(body ?? {}), apiKey }),
480
- },
481
- responseStruct: envelope(dataStruct),
482
- }));
310
+ body: JSON.stringify(requestBody),
311
+ });
312
+ if (!fetchResponse.ok) {
313
+ await this.#throwTransakApiError(fetchResponse, url);
314
+ }
315
+ return fetchResponse.json();
316
+ });
483
317
  return response.data;
484
318
  }
485
- async #transakPatch(mutationName, path,
486
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
487
- dataStruct, body) {
319
+ async #transakPatch(path, body) {
488
320
  const apiKey = this.#ensureApiKey();
489
321
  const baseUrl = getTransakApiBaseUrl(this.#environment);
490
322
  const url = new URL(path, baseUrl);
491
323
  url.searchParams.set('apiKey', apiKey);
492
- const response = (await this.#sendMutation({
493
- mutationName,
494
- url,
495
- init: {
324
+ const response = await this.#policy.execute(async () => {
325
+ const fetchResponse = await this.#fetch(url.toString(), {
496
326
  method: 'PATCH',
497
327
  headers: this.#getHeaders(),
498
328
  body: JSON.stringify(body),
499
- },
500
- responseStruct: envelope(dataStruct),
501
- }));
329
+ });
330
+ if (!fetchResponse.ok) {
331
+ await this.#throwTransakApiError(fetchResponse, url);
332
+ }
333
+ return fetchResponse.json();
334
+ });
502
335
  return response.data;
503
336
  }
504
- async #transakDelete(mutationName, path, params) {
337
+ async #transakDelete(path, params) {
505
338
  const apiKey = this.#ensureApiKey();
506
339
  const baseUrl = getTransakApiBaseUrl(this.#environment);
507
340
  const url = new URL(path, baseUrl);
@@ -513,10 +346,14 @@ export class TransakService extends BaseDataService {
513
346
  }
514
347
  }
515
348
  }
516
- await this.#sendMutation({
517
- mutationName,
518
- url,
519
- init: { method: 'DELETE', headers: this.#getHeaders() },
349
+ await this.#policy.execute(async () => {
350
+ const fetchResponse = await this.#fetch(url.toString(), {
351
+ method: 'DELETE',
352
+ headers: this.#getHeaders(),
353
+ });
354
+ if (!fetchResponse.ok) {
355
+ await this.#throwTransakApiError(fetchResponse, url);
356
+ }
520
357
  });
521
358
  }
522
359
  /**
@@ -543,9 +380,7 @@ export class TransakService extends BaseDataService {
543
380
  // client product / version.
544
381
  addRampsClientIdentityParams(url, this.#clientIdentity);
545
382
  }
546
- async #ordersApiGet(queryName, path,
547
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
548
- dataStruct, params) {
383
+ async #ordersApiGet(path, params) {
549
384
  const baseUrl = this.#getRampsApiBaseUrl();
550
385
  const providerPath = getRampsProviderPath(this.#environment);
551
386
  const url = new URL(`${providerPath}${path}`, baseUrl);
@@ -561,36 +396,29 @@ export class TransakService extends BaseDataService {
561
396
  }
562
397
  }
563
398
  }
564
- return (await this.fetchQuery({
565
- queryKey: [`${this.name}:${queryName}`, path, params ?? {}],
566
- staleTime: 0,
567
- gcTime: 0,
568
- responseStruct: dataStruct,
569
- queryFn: async () => {
570
- const fetchResponse = await this.#fetch(url.toString(), {
571
- method: 'GET',
572
- headers: { Accept: 'application/json' },
573
- });
574
- if (!fetchResponse.ok) {
575
- throw new HttpError(fetchResponse.status, `Fetching '${url.toString()}' failed with status '${fetchResponse.status}'`);
576
- }
577
- return (await fetchResponse.json());
578
- },
579
- }));
399
+ const response = await this.#policy.execute(async () => {
400
+ const fetchResponse = await this.#fetch(url.toString(), {
401
+ method: 'GET',
402
+ headers: { Accept: 'application/json' },
403
+ });
404
+ if (!fetchResponse.ok) {
405
+ throw new HttpError(fetchResponse.status, `Fetching '${url.toString()}' failed with status '${fetchResponse.status}'`);
406
+ }
407
+ return fetchResponse.json();
408
+ });
409
+ return response;
580
410
  }
581
411
  // === PUBLIC API METHODS ===
582
412
  async sendUserOtp(email) {
583
- const result = await this.#transakPost('sendUserOtp', '/api/v2/auth/login', SendUserOtpResponseStruct, {
584
- email,
585
- });
413
+ const result = await this.#transakPost('/api/v2/auth/login', { email });
586
414
  return result;
587
415
  }
588
416
  async verifyUserOtp(email, verificationCode, stateToken) {
589
- const responseData = await this.#transakPost('verifyUserOtp', '/api/v2/auth/verify', VerifyUserOtpResponseStruct, {
417
+ const responseData = await this.#transakPost('/api/v2/auth/verify', {
590
418
  email,
591
419
  otp: verificationCode,
592
420
  stateToken,
593
- });
421
+ }, { policy: this.#noRetryPolicy });
594
422
  const accessToken = {
595
423
  accessToken: responseData.accessToken,
596
424
  ttl: responseData.ttl,
@@ -602,7 +430,7 @@ export class TransakService extends BaseDataService {
602
430
  async logout() {
603
431
  this.#ensureAccessToken();
604
432
  try {
605
- const result = await this.#transakPost('logout', '/api/v1/auth/logout', string());
433
+ const result = await this.#transakPost('/api/v1/auth/logout');
606
434
  this.clearAccessToken();
607
435
  return result;
608
436
  }
@@ -616,7 +444,7 @@ export class TransakService extends BaseDataService {
616
444
  }
617
445
  async getUserDetails() {
618
446
  this.#ensureAccessToken();
619
- return this.#transakGet('getUserDetails', '/api/v2/user/', UserDetailsStruct);
447
+ return this.#transakGet('/api/v2/user/');
620
448
  }
621
449
  async getBuyQuote(genericFiatCurrency, genericCryptoCurrency, genericNetwork, genericPaymentMethod, fiatAmount, isFeeExcludedFromFiat = true) {
622
450
  const normalizedPaymentMethod = normalizePaymentMethodForTranslation(genericPaymentMethod || undefined);
@@ -640,7 +468,7 @@ export class TransakService extends BaseDataService {
640
468
  if (translation.paymentMethod) {
641
469
  params.paymentMethod = translation.paymentMethod;
642
470
  }
643
- const quote = await this.#transakGet('getBuyQuote', '/api/v2/lookup/quotes', BuyQuoteStruct, params);
471
+ const quote = await this.#transakGet('/api/v2/lookup/quotes', params);
644
472
  return {
645
473
  ...quote,
646
474
  requestedAssetId: genericCryptoCurrency,
@@ -649,14 +477,14 @@ export class TransakService extends BaseDataService {
649
477
  }
650
478
  async getKycRequirement(quoteId) {
651
479
  this.#ensureAccessToken();
652
- const result = await this.#transakGet('getKycRequirement', '/api/v2/kyc/requirement', KycRequirementStruct, {
480
+ const result = await this.#transakGet('/api/v2/kyc/requirement', {
653
481
  'metadata[quoteId]': quoteId,
654
482
  });
655
483
  return result;
656
484
  }
657
485
  async getAdditionalRequirements(quoteId) {
658
486
  this.#ensureAccessToken();
659
- return this.#transakGet('getAdditionalRequirements', '/api/v2/kyc/additional-requirements', AdditionalRequirementsStruct, { 'metadata[quoteId]': quoteId });
487
+ return this.#transakGet('/api/v2/kyc/additional-requirements', { 'metadata[quoteId]': quoteId });
660
488
  }
661
489
  async createOrder(quoteId, walletAddress, paymentMethodId) {
662
490
  this.#ensureAccessToken();
@@ -666,7 +494,7 @@ export class TransakService extends BaseDataService {
666
494
  });
667
495
  const paymentInstrumentId = translation.paymentMethod ?? normalizedPaymentMethod;
668
496
  try {
669
- const transakOrder = await this.#transakPost('createOrder', '/api/v2/orders', TransakOrderStruct, {
497
+ const transakOrder = await this.#transakPost('/api/v2/orders', {
670
498
  quoteId,
671
499
  walletAddress,
672
500
  paymentInstrumentId,
@@ -680,7 +508,7 @@ export class TransakService extends BaseDataService {
680
508
  error.errorCode === TRANSAK_ERROR_CODES.ORDER_EXISTS) {
681
509
  await this.cancelAllActiveOrders();
682
510
  await new Promise((resolve) => setTimeout(resolve, this.#orderRetryDelayMs));
683
- const retryOrder = await this.#transakPost('createOrder', '/api/v2/orders', TransakOrderStruct, {
511
+ const retryOrder = await this.#transakPost('/api/v2/orders', {
684
512
  quoteId,
685
513
  walletAddress,
686
514
  paymentInstrumentId,
@@ -700,7 +528,7 @@ export class TransakService extends BaseDataService {
700
528
  depositOrderId = TransakOrderIdTransformer.transakOrderIdToDepositOrderId(orderId, this.#environment);
701
529
  }
702
530
  const transakOrderId = TransakOrderIdTransformer.extractTransakOrderId(depositOrderId);
703
- const order = await this.#ordersApiGet('getOrder', `/orders/${transakOrderId}`, DepositOrderStruct, { wallet });
531
+ const order = await this.#ordersApiGet(`/orders/${transakOrderId}`, { wallet });
704
532
  const orderWithId = {
705
533
  ...order,
706
534
  id: depositOrderId,
@@ -711,7 +539,7 @@ export class TransakService extends BaseDataService {
711
539
  }
712
540
  if (this.#accessToken?.accessToken) {
713
541
  try {
714
- const transakOrder = await this.#transakGet('getOrderPaymentDetails', `/api/v2/orders/${transakOrderId}`, TransakOrderPaymentDetailsStruct);
542
+ const transakOrder = await this.#transakGet(`/api/v2/orders/${transakOrderId}`);
715
543
  return { ...orderWithId, paymentDetails: transakOrder.paymentDetails };
716
544
  }
717
545
  catch {
@@ -733,7 +561,7 @@ export class TransakService extends BaseDataService {
733
561
  if (translation.paymentMethod) {
734
562
  params.paymentCategory = translation.paymentMethod;
735
563
  }
736
- return this.#transakGet('getUserLimits', '/api/v2/orders/user-limit', UserLimitsStruct, params);
564
+ return this.#transakGet('/api/v2/orders/user-limit', params);
737
565
  }
738
566
  /**
739
567
  * @deprecated Use {@link createWidgetUrl} instead. The OTT flow requires the
@@ -742,7 +570,7 @@ export class TransakService extends BaseDataService {
742
570
  */
743
571
  async requestOtt() {
744
572
  this.#ensureAccessToken();
745
- const result = await this.#transakPost('requestOtt', '/api/v2/auth/request-ott', OttStruct);
573
+ const result = await this.#transakPost('/api/v2/auth/request-ott');
746
574
  return result;
747
575
  }
748
576
  /**
@@ -798,7 +626,7 @@ export class TransakService extends BaseDataService {
798
626
  */
799
627
  async createWidgetUrl(quote, walletAddress, extraParams) {
800
628
  this.#ensureAccessToken();
801
- const bearerToken = await this.messenger.call('AuthenticationController:getBearerToken');
629
+ const bearerToken = await this.#messenger.call('AuthenticationController:getBearerToken');
802
630
  const baseUrl = this.#getRampsApiBaseUrl();
803
631
  const providerPath = getRampsProviderPath(this.#environment);
804
632
  const url = new URL(`${providerPath}/widget-url`, baseUrl);
@@ -825,32 +653,32 @@ export class TransakService extends BaseDataService {
825
653
  if (this.#accessToken?.accessToken) {
826
654
  headers['x-transak-access-token'] = this.#accessToken.accessToken;
827
655
  }
828
- const response = (await this.#sendMutation({
829
- mutationName: 'createWidgetUrl',
830
- url,
831
- init: {
656
+ const response = await this.#policy.execute(async () => {
657
+ const fetchResponse = await this.#fetch(url.toString(), {
832
658
  method: 'POST',
833
659
  headers,
834
660
  body: JSON.stringify({ widgetParams }),
835
- },
836
- responseStruct: WidgetUrlResponseStruct,
837
- }));
661
+ });
662
+ if (!fetchResponse.ok) {
663
+ await this.#throwTransakApiError(fetchResponse, url);
664
+ }
665
+ return fetchResponse.json();
666
+ });
838
667
  return response.widgetUrl;
839
668
  }
840
669
  async submitPurposeOfUsageForm(purpose) {
841
670
  this.#ensureAccessToken();
842
- await this.#transakPost('submitPurposeOfUsageForm', '/api/v2/kyc/purpose-of-usage', any(), { purposeList: purpose });
671
+ await this.#transakPost('/api/v2/kyc/purpose-of-usage', {
672
+ purposeList: purpose,
673
+ });
843
674
  }
844
675
  async patchUser(data) {
845
676
  this.#ensureAccessToken();
846
- return this.#transakPatch('patchUser', '/api/v2/kyc/user', any(), data);
677
+ return this.#transakPatch('/api/v2/kyc/user', data);
847
678
  }
848
679
  async submitSsnDetails(ssn, quoteId) {
849
680
  this.#ensureAccessToken();
850
- return this.#transakPost('submitSsnDetails', '/api/v2/kyc/ssn', any(), {
851
- ssn,
852
- quoteId,
853
- });
681
+ return this.#transakPost('/api/v2/kyc/ssn', { ssn, quoteId });
854
682
  }
855
683
  async confirmPayment(orderId, paymentMethodId) {
856
684
  this.#ensureAccessToken();
@@ -859,7 +687,7 @@ export class TransakService extends BaseDataService {
859
687
  paymentMethod: normalizedPaymentMethod,
860
688
  });
861
689
  const transakOrderId = TransakOrderIdTransformer.extractTransakOrderId(orderId);
862
- return this.#transakPost('confirmPayment', '/api/v2/orders/payment-confirmation', PaymentConfirmationStruct, {
690
+ return this.#transakPost('/api/v2/orders/payment-confirmation', {
863
691
  orderId: transakOrderId,
864
692
  paymentMethod: translation.paymentMethod ?? normalizedPaymentMethod,
865
693
  });
@@ -874,38 +702,31 @@ export class TransakService extends BaseDataService {
874
702
  ...translationRequest,
875
703
  paymentMethod: normalizePaymentMethodForTranslation(translationRequest.paymentMethod),
876
704
  };
877
- const params = {};
878
705
  for (const [key, value] of Object.entries(normalizedRequest)) {
879
706
  if (value !== undefined) {
880
707
  url.searchParams.set(key, value);
881
- params[key] = value;
882
708
  }
883
709
  }
884
- return (await this.fetchQuery({
885
- queryKey: [`${this.name}:getTranslation`, params],
886
- staleTime: 0,
887
- gcTime: 0,
888
- responseStruct: TranslationStruct,
889
- queryFn: async () => {
890
- const fetchResponse = await this.#fetch(url.toString(), {
891
- method: 'GET',
892
- headers: { Accept: 'application/json' },
893
- });
894
- if (!fetchResponse.ok) {
895
- throw new HttpError(fetchResponse.status, `Fetching '${url.toString()}' failed with status '${fetchResponse.status}'`);
896
- }
897
- return (await fetchResponse.json());
898
- },
899
- }));
710
+ const response = await this.#policy.execute(async () => {
711
+ const fetchResponse = await this.#fetch(url.toString(), {
712
+ method: 'GET',
713
+ headers: { Accept: 'application/json' },
714
+ });
715
+ if (!fetchResponse.ok) {
716
+ throw new HttpError(fetchResponse.status, `Fetching '${url.toString()}' failed with status '${fetchResponse.status}'`);
717
+ }
718
+ return fetchResponse.json();
719
+ });
720
+ return response;
900
721
  }
901
722
  async getIdProofStatus(workFlowRunId) {
902
723
  this.#ensureAccessToken();
903
- return this.#transakGet('getIdProofStatus', '/api/v2/kyc/id-proof-status', IdProofStatusStruct, { workFlowRunId });
724
+ return this.#transakGet('/api/v2/kyc/id-proof-status', { workFlowRunId });
904
725
  }
905
726
  async cancelOrder(depositOrderId) {
906
727
  this.#ensureAccessToken();
907
728
  const transakOrderId = TransakOrderIdTransformer.extractTransakOrderId(depositOrderId);
908
- await this.#transakDelete('cancelOrder', `/api/v2/orders/${transakOrderId}`, {
729
+ await this.#transakDelete(`/api/v2/orders/${transakOrderId}`, {
909
730
  cancelReason: 'Creating new order',
910
731
  });
911
732
  }
@@ -926,7 +747,7 @@ export class TransakService extends BaseDataService {
926
747
  }
927
748
  async getActiveOrders() {
928
749
  this.#ensureAccessToken();
929
- return this.#transakGet('getActiveOrders', '/api/v2/active-orders', ActiveOrdersStruct);
750
+ return this.#transakGet('/api/v2/active-orders');
930
751
  }
931
752
  }
932
753
  //# sourceMappingURL=TransakService.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TransakService.js","sourceRoot":"","sources":["../src/TransakService.ts"],"names":[],"mappings":"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","sourcesContent":["import { BaseDataService } from '@metamask/base-data-service';\nimport type {\n CreateServicePolicyOptions,\n DataServiceCacheUpdatedEvent,\n DataServiceGranularCacheUpdatedEvent,\n DataServiceInvalidateQueriesAction,\n} from '@metamask/base-data-service';\nimport { HttpError } from '@metamask/controller-utils';\nimport type { Messenger } from '@metamask/messenger';\nimport type { AuthenticationController } from '@metamask/profile-sync-controller';\nimport {\n any,\n array,\n boolean,\n nullable,\n number,\n optional,\n record,\n string,\n type as looseObject,\n} from '@metamask/superstruct';\nimport type { Struct } from '@metamask/superstruct';\nimport type { Json } from '@metamask/utils';\n\nimport packageJson from '../package.json';\nimport type { RampsClientIdentity } from './client-identity.js';\nimport { addRampsClientIdentityParams } from './client-identity.js';\nimport { RAMPS_SDK_VERSION } from './RampsService.js';\nimport { TRANSAK_ERROR_CODES } from './transakErrorCodes.js';\nimport type { TransakServiceMethodActions } from './TransakService-method-action-types.js';\n\n// === TYPES ===\n\nexport type TransakAccessToken = {\n accessToken: string;\n ttl: number;\n created: Date;\n};\n\nexport type TransakUserDetails = {\n id: string;\n firstName: string;\n lastName: string;\n email: string;\n mobileNumber: string;\n status: string;\n dob: string;\n kyc: TransakUserDetailsKycDetails;\n address: TransakUserDetailsAddress;\n createdAt: string;\n};\n\nexport type TransakUserDetailsAddress = {\n addressLine1: string;\n addressLine2: string;\n state: string;\n city: string;\n postCode: string;\n country: string;\n countryCode: string;\n};\n\nexport type TransakUserDetailsKycDetails = {\n status: string;\n type: string;\n attempts: TransakUserDetailsKycAttempt[];\n highestApprovedKYCType: string | null;\n kycMarkedBy: string | null;\n kycResult: string | null;\n rejectionDetails: TransakUserDetailsKycAttemptRejectionDetails | null;\n userId: string;\n workFlowRunId: string;\n};\n\nexport type TransakUserDetailsKycAttempt = {\n artifacts: { key: string; value: string }[];\n metadata: {\n transaction: {\n kycVendorId: string;\n scanReference: string;\n workflowId: string;\n };\n };\n rejectionDetails: TransakUserDetailsKycAttemptRejectionDetails;\n result: string;\n sessionId: string;\n};\n\nexport type TransakUserDetailsKycAttemptRejectionDetails = {\n archetype: string;\n reason: string;\n reasonCode: string;\n};\n\nexport type TransakBuyQuote = {\n quoteId: string;\n conversionPrice: number;\n marketConversionPrice: number;\n slippage: number;\n fiatCurrency: string;\n cryptoCurrency: string;\n paymentMethod: string;\n fiatAmount: number;\n cryptoAmount: number;\n isBuyOrSell: string;\n network: string;\n feeDecimal: number;\n totalFee: number;\n feeBreakdown: { [prop: string]: string | number | boolean | null }[];\n nonce: number;\n cryptoLiquidityProvider: string;\n notes: { [prop: string]: string | number | boolean | null }[];\n requestedAssetId: string;\n requestedChainId: string;\n};\n\nexport type TransakKycRequirement = {\n status:\n | 'NOT_SUBMITTED'\n | 'APPROVED'\n | 'ADDITIONAL_FORMS_REQUIRED'\n | 'SUBMITTED';\n kycType: string;\n isAllowedToPlaceOrder: boolean;\n};\n\nexport type TransakAdditionalRequirement = {\n type: string;\n metadata?: {\n options: string[];\n documentProofOptions: string[];\n expiresAt: string;\n kycUrl: string;\n workFlowRunId: string;\n };\n};\n\nexport type TransakAdditionalRequirementsResponse = {\n formsRequired: TransakAdditionalRequirement[];\n};\n\nexport type TransakOttResponse = {\n ott: string;\n};\n\nexport type TransakOrderPaymentMethod = {\n fiatCurrency: string;\n paymentMethod: string;\n fields: { name: string; id: string; value: string }[];\n};\n\nexport type TransakDepositNetwork = {\n name: string;\n chainId: string;\n};\n\nexport type TransakDepositCryptoCurrency = {\n assetId: string;\n name: string;\n chainId: string;\n decimals: number;\n iconUrl: string;\n symbol: string;\n};\n\nexport type TransakDepositPaymentMethod = {\n id: string;\n name: string;\n shortName?: string;\n duration: string;\n icon: string;\n iconColor?: { light: string; dark: string };\n isManualBankTransfer?: boolean;\n};\n\nexport type TransakDepositRegion = {\n isoCode: string;\n flag: string;\n name: string;\n phone: { prefix: string; placeholder: string; template: string };\n currency: string;\n supported: boolean;\n recommended?: boolean;\n geolocated?: boolean;\n};\n\nexport type TransakDepositOrder = {\n id: string;\n provider: string;\n cryptoAmount: number | string;\n fiatAmount: number;\n cryptoCurrency: TransakDepositCryptoCurrency;\n fiatCurrency: string;\n providerOrderId: string;\n providerOrderLink: string;\n createdAt: number;\n paymentMethod: TransakDepositPaymentMethod;\n totalFeesFiat: number;\n txHash: string;\n walletAddress: string;\n status: string;\n network: TransakDepositNetwork;\n timeDescriptionPending: string;\n fiatAmountInUsd: number;\n feesInUsd: number;\n region: TransakDepositRegion;\n orderType: 'DEPOSIT';\n exchangeRate?: number;\n statusDescription?: string;\n paymentDetails: TransakOrderPaymentMethod[];\n partnerFees?: number;\n networkFees?: number;\n};\n\nexport type TransakOrder = {\n orderId: string;\n partnerUserId: string;\n status: string;\n isBuyOrSell: string;\n fiatCurrency: string;\n cryptoCurrency: string;\n network: string;\n walletAddress: string;\n quoteId: string;\n fiatAmount: number;\n fiatAmountInUsd: number;\n amountPaid: number;\n cryptoAmount: number;\n conversionPrice: number;\n totalFeeInFiat: number;\n paymentDetails: TransakOrderPaymentMethod[];\n txHash: string;\n transationLink: string | null;\n createdAt: string;\n updatedAt: string;\n completedAt: string;\n};\n\nexport type TransakQuoteTranslation = {\n region: string;\n paymentMethod: string | undefined;\n cryptoCurrency: string;\n network: string;\n fiatCurrency: string;\n};\n\nexport type TransakTranslationRequest = {\n regionId?: string;\n cryptoCurrencyId?: string;\n chainId?: string;\n fiatCurrencyId?: string;\n paymentMethod?: string;\n};\n\nexport type TransakUserLimits = {\n limits: { '1': number; '30': number; '365': number };\n spent: { '1': number; '30': number; '365': number };\n remaining: { '1': number; '30': number; '365': number };\n exceeded: { '1': boolean; '30': boolean; '365': boolean };\n shortage: Record<string, number>;\n};\n\nexport type PatchUserRequestBody = Partial<{\n personalDetails: Partial<{\n firstName: string;\n lastName: string;\n mobileNumber: string;\n dob: string;\n }>;\n addressDetails: Partial<{\n addressLine1: string;\n addressLine2: string;\n state: string;\n city: string;\n postCode: string;\n countryCode: string;\n }>;\n}>;\n\nexport type TransakIdProofStatus = {\n status: 'NOT_SUBMITTED' | 'SUBMITTED';\n kycType: string;\n randomLogIdentifier: string;\n};\n\n// === ENVIRONMENT ===\n\nexport enum TransakEnvironment {\n Production = 'production',\n Staging = 'staging',\n Development = 'development',\n}\n\nenum TransakApiProviders {\n TransakNative = 'transak-native',\n TransakNativeStaging = 'transak-native-staging',\n}\n\n// === ORDER ID UTILITIES ===\n\nexport class TransakOrderIdTransformer {\n static depositOrderIdToTransakOrderId(depositOrderId: string): string {\n const parts = depositOrderId.split('/');\n return parts[parts.length - 1];\n }\n\n static transakOrderIdToDepositOrderId(\n transakOrderId: string,\n environment: TransakEnvironment,\n ): string {\n const provider =\n environment === TransakEnvironment.Production\n ? 'transak-native'\n : 'transak-native-staging';\n return `/providers/${provider}/orders/${transakOrderId}`;\n }\n\n static isDepositOrderId(orderId: string): boolean {\n return orderId.startsWith('/providers/');\n }\n\n static extractTransakOrderId(orderId: string): string {\n return this.isDepositOrderId(orderId)\n ? this.depositOrderIdToTransakOrderId(orderId)\n : orderId;\n }\n}\n\n// === MESSENGER ===\n\nconst serviceName = 'TransakService';\n\nconst MESSENGER_EXPOSED_METHODS = [\n 'setApiKey',\n 'setAccessToken',\n 'clearAccessToken',\n 'sendUserOtp',\n 'verifyUserOtp',\n 'logout',\n 'getUserDetails',\n 'getBuyQuote',\n 'getKycRequirement',\n 'getAdditionalRequirements',\n 'createOrder',\n 'getOrder',\n 'getUserLimits',\n 'requestOtt',\n 'generatePaymentWidgetUrl',\n 'createWidgetUrl',\n 'submitPurposeOfUsageForm',\n 'patchUser',\n 'submitSsnDetails',\n 'confirmPayment',\n 'getTranslation',\n 'getIdProofStatus',\n 'cancelOrder',\n 'cancelAllActiveOrders',\n 'getActiveOrders',\n] as const;\n\n/**\n * Invalidates cached queries held by {@link TransakService}.\n */\nexport type TransakServiceInvalidateQueriesAction =\n DataServiceInvalidateQueriesAction<typeof serviceName>;\n\nexport type TransakServiceActions =\n | TransakServiceMethodActions\n | TransakServiceInvalidateQueriesAction;\n\n/**\n * Actions from other messengers that {@link TransakService} calls.\n */\ntype AllowedActions =\n AuthenticationController.AuthenticationControllerGetBearerTokenAction;\n\n/**\n * Published whenever a query or mutation in the service cache changes.\n */\nexport type TransakServiceCacheUpdatedEvent = DataServiceCacheUpdatedEvent<\n typeof serviceName\n>;\n\n/**\n * Published for a single query or mutation whenever it changes in the service\n * cache.\n */\nexport type TransakServiceGranularCacheUpdatedEvent =\n DataServiceGranularCacheUpdatedEvent<typeof serviceName>;\n\nexport type TransakServiceEvents =\n | TransakServiceCacheUpdatedEvent\n | TransakServiceGranularCacheUpdatedEvent;\n\ntype AllowedEvents = never;\n\nexport type TransakServiceMessenger = Messenger<\n typeof serviceName,\n TransakServiceActions | AllowedActions,\n TransakServiceEvents | AllowedEvents\n>;\n\n// === HELPER FUNCTIONS ===\n\n/**\n * Maps ramps API payment method IDs (e.g., \"/payments/debit-credit-card\")\n * to the deposit-format IDs expected by the translation endpoint\n * (e.g., \"credit_debit_card\").\n *\n * The translation endpoint only understands the deposit-format IDs.\n * Canonical IDs may arrive either with the \"/payments/\" prefix\n * (e.g., \"/payments/apple-pay\") or without it (e.g., \"apple-pay\"), so both\n * forms are accepted. If no mapping exists, the input is returned as-is (it\n * may already be in the deposit format).\n */\nconst RAMPS_TO_DEPOSIT_PAYMENT_METHOD: Record<string, string> = {\n '/payments/debit-credit-card': 'credit_debit_card',\n '/payments/apple-pay': 'apple_pay',\n '/payments/google-pay': 'google_pay',\n '/payments/sepa-bank-transfer': 'sepa_bank_transfer',\n '/payments/wire-transfer': 'wire_transfer',\n '/payments/gbp-bank-transfer': 'gbp_bank_transfer',\n};\n\nconst PAYMENTS_PREFIX = '/payments/';\n\nfunction normalizePaymentMethodForTranslation(\n paymentMethod: string | undefined,\n): string | undefined {\n if (!paymentMethod) {\n return undefined;\n }\n const prefixed = paymentMethod.startsWith(PAYMENTS_PREFIX)\n ? paymentMethod\n : `${PAYMENTS_PREFIX}${paymentMethod}`;\n return (\n RAMPS_TO_DEPOSIT_PAYMENT_METHOD[paymentMethod] ??\n RAMPS_TO_DEPOSIT_PAYMENT_METHOD[prefixed] ??\n paymentMethod\n );\n}\n\nfunction getTransakApiBaseUrl(environment: TransakEnvironment): string {\n switch (environment) {\n case TransakEnvironment.Production:\n return 'https://api-gateway.transak.com';\n // Transak has no dev environment; development uses their staging gateway.\n case TransakEnvironment.Staging:\n case TransakEnvironment.Development:\n return 'https://api-gateway-stg.transak.com';\n default:\n throw new Error(`Invalid Transak environment: ${String(environment)}`);\n }\n}\n\nfunction getRampsBaseUrl(environment: TransakEnvironment): string {\n switch (environment) {\n case TransakEnvironment.Production:\n return 'https://on-ramp.api.cx.metamask.io';\n case TransakEnvironment.Staging:\n return 'https://on-ramp.uat-api.cx.metamask.io';\n case TransakEnvironment.Development:\n return 'https://on-ramp.dev-api.cx.metamask.io';\n default:\n throw new Error(`Invalid Transak environment: ${String(environment)}`);\n }\n}\n\nfunction getRampsProviderPath(environment: TransakEnvironment): string {\n // The dev ramps API registers the same `transak-native-staging` provider\n // id as UAT; only production uses `transak-native`.\n const providerId =\n environment === TransakEnvironment.Production\n ? TransakApiProviders.TransakNative\n : TransakApiProviders.TransakNativeStaging;\n return `/providers/${providerId}`;\n}\n\nfunction getPaymentWidgetBaseUrl(environment: TransakEnvironment): string {\n switch (environment) {\n case TransakEnvironment.Production:\n return 'https://global.transak.com';\n // Transak has no dev environment; development uses their staging widget.\n case TransakEnvironment.Staging:\n case TransakEnvironment.Development:\n return 'https://global-stg.transak.com';\n default:\n throw new Error(`Invalid Transak environment: ${String(environment)}`);\n }\n}\n\n/**\n * Transak requires `referrerDomain` in `widgetParams` alongside the partner\n * API key (which the ramps API proxy injects server-side). Identifies the\n * MetaMask client to Transak. Default when the client does not pass a\n * `referrerDomain` constructor option (e.g. the mobile app passes its\n * package name / bundle id).\n */\nconst TRANSAK_REFERRER_DOMAIN = 'metamask.io';\n\n// === TRANSAK API ERROR ===\n\nexport class TransakApiError extends HttpError {\n readonly errorCode: string | undefined;\n\n readonly apiMessage: string | undefined;\n\n constructor(\n status: number,\n message: string,\n errorCode?: string,\n apiMessage?: string,\n ) {\n super(status, message);\n this.errorCode = errorCode;\n this.apiMessage = apiMessage;\n }\n}\n\n// === RESPONSE STRUCTS ===\n\n/**\n * The structs below are intentionally lenient: they require only the fields\n * the service itself depends on, check the type of any other field that is\n * present, and ignore extra fields the APIs return. The APIs omit fields for\n * incomplete profiles and sparse responses, and responses were not validated\n * before, so a missing field must not fail a call.\n */\n\nconst TransakPaymentDetailsStruct = array(\n looseObject({\n fiatCurrency: string(),\n paymentMethod: string(),\n fields: array(\n looseObject({ name: string(), id: string(), value: string() }),\n ),\n }),\n);\n\nconst SendUserOtpResponseStruct = looseObject({\n isTncAccepted: boolean(),\n stateToken: string(),\n email: string(),\n expiresIn: number(),\n});\n\nconst VerifyUserOtpResponseStruct = looseObject({\n accessToken: string(),\n ttl: number(),\n created: string(),\n});\n\nconst UserDetailsStruct = looseObject({\n id: optional(string()),\n firstName: optional(string()),\n lastName: optional(string()),\n email: optional(string()),\n mobileNumber: optional(string()),\n status: optional(string()),\n dob: optional(string()),\n kyc: optional(\n looseObject({\n status: optional(string()),\n type: optional(string()),\n userId: optional(string()),\n workFlowRunId: optional(string()),\n }),\n ),\n address: optional(\n looseObject({\n addressLine1: optional(string()),\n addressLine2: optional(string()),\n state: optional(string()),\n city: optional(string()),\n postCode: optional(string()),\n country: optional(string()),\n countryCode: optional(string()),\n }),\n ),\n createdAt: optional(string()),\n});\n\nconst BuyQuoteStruct = looseObject({\n quoteId: string(),\n conversionPrice: optional(number()),\n marketConversionPrice: optional(number()),\n slippage: optional(number()),\n fiatCurrency: optional(string()),\n cryptoCurrency: optional(string()),\n paymentMethod: optional(string()),\n fiatAmount: optional(number()),\n cryptoAmount: optional(number()),\n isBuyOrSell: optional(string()),\n network: optional(string()),\n feeDecimal: optional(number()),\n totalFee: optional(number()),\n feeBreakdown: optional(array(record(string(), any()))),\n nonce: optional(number()),\n cryptoLiquidityProvider: optional(string()),\n notes: optional(array(record(string(), any()))),\n});\n\nconst KycRequirementStruct = looseObject({\n status: string(),\n kycType: string(),\n isAllowedToPlaceOrder: boolean(),\n});\n\nconst AdditionalRequirementsStruct = looseObject({\n formsRequired: array(\n looseObject({ type: string(), metadata: optional(any()) }),\n ),\n});\n\nconst TransakOrderStruct = looseObject({\n orderId: string(),\n walletAddress: string(),\n paymentDetails: optional(nullable(TransakPaymentDetailsStruct)),\n});\n\nconst TransakOrderPaymentDetailsStruct = looseObject({\n paymentDetails: optional(nullable(TransakPaymentDetailsStruct)),\n});\n\nconst ActiveOrdersStruct = array(\n looseObject({ orderId: string(), status: string() }),\n);\n\nconst DepositOrderStruct = looseObject({\n providerOrderId: string(),\n status: string(),\n});\n\nconst UserLimitsStruct = looseObject({\n limits: looseObject({ '1': number(), '30': number(), '365': number() }),\n spent: looseObject({ '1': number(), '30': number(), '365': number() }),\n remaining: looseObject({ '1': number(), '30': number(), '365': number() }),\n exceeded: looseObject({ '1': boolean(), '30': boolean(), '365': boolean() }),\n shortage: optional(record(string(), number())),\n});\n\nconst OttStruct = looseObject({ ott: string() });\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst TranslationStruct: Struct<any> = looseObject({\n region: optional(string()),\n paymentMethod: optional(string()),\n cryptoCurrency: string(),\n network: string(),\n fiatCurrency: string(),\n});\n\nconst IdProofStatusStruct = looseObject({\n status: string(),\n kycType: string(),\n randomLogIdentifier: optional(string()),\n});\n\nconst PaymentConfirmationStruct = looseObject({ success: boolean() });\n\nconst WidgetUrlResponseStruct = looseObject({ widgetUrl: string() });\n\n/**\n * Wraps a struct in the `{ data }` envelope the Transak API gateway uses.\n *\n * @param dataStruct - The struct for the `data` property.\n * @returns The envelope struct.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction envelope(dataStruct: Struct<any>): Struct<any> {\n return looseObject({ data: dataStruct });\n}\n\n// === SERVICE DEFINITION ===\n\nexport class TransakService extends BaseDataService<\n typeof serviceName,\n TransakServiceMessenger\n> {\n readonly #fetch: typeof fetch;\n\n readonly #environment: TransakEnvironment;\n\n readonly #context: string;\n\n readonly #orderRetryDelayMs: number;\n\n #apiKey: string | null = null;\n\n #accessToken: TransakAccessToken | null = null;\n\n /**\n * Optional ramps API base URL override for local development (mirrors\n * `RampsService`'s `baseUrlOverride`). Applies to the requests this service\n * sends to the ramps API (orders, widget-url proxy), not to direct Transak\n * API calls.\n */\n readonly #rampsApiBaseUrlOverride?: string;\n\n /**\n * Identifies the client to Transak in `widgetParams` (e.g. the mobile app's\n * package name / bundle id). Defaults to `metamask.io`.\n */\n readonly #referrerDomain: string;\n\n readonly #clientIdentity: RampsClientIdentity;\n\n constructor({\n messenger,\n environment = TransakEnvironment.Staging,\n context,\n fetch: fetchFunction,\n apiKey,\n policyOptions,\n orderRetryDelayMs = 2000,\n rampsApiBaseUrlOverride,\n referrerDomain = TRANSAK_REFERRER_DOMAIN,\n clientProduct,\n clientVersion,\n }: {\n messenger: TransakServiceMessenger;\n environment?: TransakEnvironment;\n context: string;\n fetch: typeof fetch;\n apiKey?: string;\n policyOptions?: CreateServicePolicyOptions;\n orderRetryDelayMs?: number;\n rampsApiBaseUrlOverride?: string;\n referrerDomain?: string;\n clientProduct?: string;\n clientVersion?: string;\n }) {\n super({ name: serviceName, messenger, policyOptions });\n this.#fetch = fetchFunction;\n this.#environment = environment;\n this.#context = context;\n this.#apiKey = apiKey ?? null;\n this.#orderRetryDelayMs = orderRetryDelayMs;\n this.#rampsApiBaseUrlOverride = rampsApiBaseUrlOverride;\n this.#referrerDomain = referrerDomain;\n this.#clientIdentity = {\n clientProduct,\n clientVersion,\n };\n\n this.messenger.registerMethodActionHandlers(\n this,\n MESSENGER_EXPOSED_METHODS,\n );\n }\n\n setApiKey(apiKey: string): void {\n this.#apiKey = apiKey;\n }\n\n getApiKey(): string | null {\n return this.#apiKey;\n }\n\n #ensureApiKey(): string {\n if (!this.#apiKey) {\n throw new Error('Transak API key is required but not set.');\n }\n return this.#apiKey;\n }\n\n setAccessToken(token: TransakAccessToken): void {\n this.#accessToken = token;\n }\n\n getAccessToken(): TransakAccessToken | null {\n return this.#accessToken;\n }\n\n clearAccessToken(): void {\n this.#accessToken = null;\n }\n\n #ensureAccessToken(): void {\n if (!this.#accessToken?.accessToken) {\n throw new HttpError(\n 401,\n 'Authentication required. Please log in to continue.',\n );\n }\n\n const createdTime = new Date(this.#accessToken.created).getTime();\n const tokenAgeMs = Date.now() - createdTime;\n if (tokenAgeMs > this.#accessToken.ttl * 1000) {\n this.clearAccessToken();\n throw new HttpError(\n 401,\n 'Authentication token has expired. Please log in again.',\n );\n }\n }\n\n #getHeaders(): Record<string, string> {\n const headers: Record<string, string> = {\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n };\n if (this.#accessToken?.accessToken) {\n headers.authorization = this.#accessToken.accessToken;\n }\n return headers;\n }\n\n async #throwTransakApiError(\n fetchResponse: Response,\n url: URL,\n ): Promise<never> {\n let errorBody = '';\n let errorCode: string | undefined;\n let apiMessage: string | undefined;\n try {\n errorBody = await fetchResponse.text();\n const parsed = JSON.parse(errorBody) as {\n error?: {\n code?: string;\n errorCode?: string | number;\n message?: string;\n };\n };\n errorCode =\n parsed?.error?.code ??\n (parsed?.error?.errorCode !== null &&\n parsed?.error?.errorCode !== undefined\n ? String(parsed.error.errorCode)\n : undefined);\n apiMessage =\n typeof parsed?.error?.message === 'string'\n ? parsed.error.message\n : undefined;\n } catch {\n // ignore body read/parse failures\n }\n throw new TransakApiError(\n fetchResponse.status,\n `Fetching '${url.toString()}' failed with status '${fetchResponse.status}'${errorBody ? `: ${errorBody}` : ''}`,\n errorCode,\n apiMessage,\n );\n }\n\n /**\n * Identifies the current login session without exposing the access token,\n * so reads made under different sessions never share a request.\n *\n * @returns The access token creation time in milliseconds, or `null` when\n * logged out.\n */\n #getSessionId(): number | null {\n return this.#accessToken\n ? new Date(this.#accessToken.created).getTime()\n : null;\n }\n\n async #transakGet<Data>(\n queryName: string,\n path: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dataStruct: Struct<any>,\n params?: Record<string, string>,\n ): Promise<Data> {\n const baseUrl = getTransakApiBaseUrl(this.#environment);\n const url = new URL(path, baseUrl);\n\n if (params) {\n for (const [key, value] of Object.entries(params)) {\n if (value !== null && value !== undefined) {\n url.searchParams.set(key, value);\n }\n }\n }\n\n const apiKey = this.#ensureApiKey();\n url.searchParams.set('apiKey', apiKey);\n\n const response = (await this.fetchQuery({\n // The API key is deliberately left out of the key, as keys appear in the\n // names of published `cacheUpdated` events.\n queryKey: [\n `${this.name}:${queryName}`,\n path,\n params ?? {},\n this.#getSessionId(),\n ],\n staleTime: 0,\n gcTime: 0,\n responseStruct: envelope(dataStruct),\n queryFn: async () => {\n const fetchResponse = await this.#fetch(url.toString(), {\n method: 'GET',\n headers: this.#getHeaders(),\n });\n if (!fetchResponse.ok) {\n await this.#throwTransakApiError(fetchResponse, url);\n }\n return (await fetchResponse.json()) as Json;\n },\n })) as { data: Data };\n\n return response.data;\n }\n\n /**\n * Sends a request that changes server side data. Mutations are never\n * retried, and the mutation key holds only the method name, as keys appear\n * in the names of published `cacheUpdated` events.\n *\n * @param options - The options.\n * @param options.mutationName - The name of the public method.\n * @param options.url - The request URL.\n * @param options.init - The request method, headers and body.\n * @param options.responseStruct - The struct for the response body. When\n * omitted, the response body is ignored.\n * @returns The validated response body, or `null` if it was ignored.\n */\n async #sendMutation({\n mutationName,\n url,\n init,\n responseStruct,\n }: {\n mutationName: string;\n url: URL;\n init: RequestInit;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n responseStruct?: Struct<any>;\n }): Promise<unknown> {\n return (await this.executeMutation({\n mutationKey: [`${this.name}:${mutationName}`],\n // Some responses carry credentials (`verifyUserOtp` returns the access\n // token), so do not keep finished mutations in the cache.\n gcTime: 0,\n responseStruct,\n mutationFn: async () => {\n const fetchResponse = await this.#fetch(url.toString(), init);\n if (!fetchResponse.ok) {\n await this.#throwTransakApiError(fetchResponse, url);\n }\n return responseStruct ? ((await fetchResponse.json()) as Json) : null;\n },\n })) as unknown;\n }\n\n async #transakPost<Data>(\n mutationName: string,\n path: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dataStruct: Struct<any>,\n body?: Record<string, unknown>,\n ): Promise<Data> {\n const apiKey = this.#ensureApiKey();\n const baseUrl = getTransakApiBaseUrl(this.#environment);\n const url = new URL(path, baseUrl);\n\n const response = (await this.#sendMutation({\n mutationName,\n url,\n init: {\n method: 'POST',\n headers: this.#getHeaders(),\n body: JSON.stringify({ ...(body ?? {}), apiKey }),\n },\n responseStruct: envelope(dataStruct),\n })) as { data: Data };\n\n return response.data;\n }\n\n async #transakPatch<Data>(\n mutationName: string,\n path: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dataStruct: Struct<any>,\n body: Record<string, unknown>,\n ): Promise<Data> {\n const apiKey = this.#ensureApiKey();\n const baseUrl = getTransakApiBaseUrl(this.#environment);\n const url = new URL(path, baseUrl);\n url.searchParams.set('apiKey', apiKey);\n\n const response = (await this.#sendMutation({\n mutationName,\n url,\n init: {\n method: 'PATCH',\n headers: this.#getHeaders(),\n body: JSON.stringify(body),\n },\n responseStruct: envelope(dataStruct),\n })) as { data: Data };\n\n return response.data;\n }\n\n async #transakDelete(\n mutationName: string,\n path: string,\n params?: Record<string, string>,\n ): Promise<void> {\n const apiKey = this.#ensureApiKey();\n const baseUrl = getTransakApiBaseUrl(this.#environment);\n const url = new URL(path, baseUrl);\n url.searchParams.set('apiKey', apiKey);\n\n if (params) {\n for (const [key, value] of Object.entries(params)) {\n if (value !== null && value !== undefined) {\n url.searchParams.set(key, value);\n }\n }\n }\n\n await this.#sendMutation({\n mutationName,\n url,\n init: { method: 'DELETE', headers: this.#getHeaders() },\n });\n }\n\n /**\n * Gets the ramps API base URL, respecting the local-development override\n * when set (same semantics as `RampsService`'s `baseUrlOverride`).\n *\n * @returns The ramps API base URL to use.\n */\n #getRampsApiBaseUrl(): string {\n return this.#rampsApiBaseUrlOverride ?? getRampsBaseUrl(this.#environment);\n }\n\n /**\n * Adds the common request parameters to a ramps API proxy URL, mirroring\n * `RampsService`'s `#addCommonParams`.\n *\n * @param url - The URL to add parameters to.\n */\n #addRampsCommonParams(url: URL): void {\n url.searchParams.set('action', 'deposit');\n url.searchParams.set('sdk', RAMPS_SDK_VERSION);\n url.searchParams.set('controller', packageJson.version);\n url.searchParams.set('context', this.#context);\n // In the query string (not headers) so CDN-cached responses vary per\n // client product / version.\n addRampsClientIdentityParams(url, this.#clientIdentity);\n }\n\n async #ordersApiGet<Data>(\n queryName: string,\n path: string,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dataStruct: Struct<any>,\n params?: Record<string, string>,\n ): Promise<Data> {\n const baseUrl = this.#getRampsApiBaseUrl();\n const providerPath = getRampsProviderPath(this.#environment);\n const url = new URL(`${providerPath}${path}`, baseUrl);\n\n url.searchParams.set('action', 'deposit');\n url.searchParams.set('context', this.#context);\n // In the query string (not headers) so CDN-cached responses vary per\n // client product / version.\n addRampsClientIdentityParams(url, this.#clientIdentity);\n\n if (params) {\n for (const [key, value] of Object.entries(params)) {\n if (value !== null && value !== undefined) {\n url.searchParams.set(key, value);\n }\n }\n }\n\n return (await this.fetchQuery({\n queryKey: [`${this.name}:${queryName}`, path, params ?? {}],\n staleTime: 0,\n gcTime: 0,\n responseStruct: dataStruct,\n queryFn: async () => {\n const fetchResponse = await this.#fetch(url.toString(), {\n method: 'GET',\n headers: { Accept: 'application/json' },\n });\n if (!fetchResponse.ok) {\n throw new HttpError(\n fetchResponse.status,\n `Fetching '${url.toString()}' failed with status '${fetchResponse.status}'`,\n );\n }\n return (await fetchResponse.json()) as Json;\n },\n })) as Data;\n }\n\n // === PUBLIC API METHODS ===\n\n async sendUserOtp(email: string): Promise<{\n isTncAccepted: boolean;\n stateToken: string;\n email: string;\n expiresIn: number;\n }> {\n const result = await this.#transakPost<{\n isTncAccepted: boolean;\n stateToken: string;\n email: string;\n expiresIn: number;\n }>('sendUserOtp', '/api/v2/auth/login', SendUserOtpResponseStruct, {\n email,\n });\n return result;\n }\n\n async verifyUserOtp(\n email: string,\n verificationCode: string,\n stateToken: string,\n ): Promise<TransakAccessToken> {\n const responseData = await this.#transakPost<{\n accessToken: string;\n ttl: number;\n created: string;\n }>('verifyUserOtp', '/api/v2/auth/verify', VerifyUserOtpResponseStruct, {\n email,\n otp: verificationCode,\n stateToken,\n });\n\n const accessToken: TransakAccessToken = {\n accessToken: responseData.accessToken,\n ttl: responseData.ttl,\n created: new Date(responseData.created),\n };\n\n this.setAccessToken(accessToken);\n return accessToken;\n }\n\n async logout(): Promise<string> {\n this.#ensureAccessToken();\n try {\n const result = await this.#transakPost<string>(\n 'logout',\n '/api/v1/auth/logout',\n string(),\n );\n this.clearAccessToken();\n return result;\n } catch (error) {\n if (error instanceof HttpError && error.httpStatus === 401) {\n this.clearAccessToken();\n return 'user was already logged out';\n }\n throw error;\n }\n }\n\n async getUserDetails(): Promise<TransakUserDetails> {\n this.#ensureAccessToken();\n return this.#transakGet<TransakUserDetails>(\n 'getUserDetails',\n '/api/v2/user/',\n UserDetailsStruct,\n );\n }\n\n async getBuyQuote(\n genericFiatCurrency: string,\n genericCryptoCurrency: string,\n genericNetwork: string,\n genericPaymentMethod: string,\n fiatAmount: string,\n isFeeExcludedFromFiat = true,\n ): Promise<TransakBuyQuote> {\n const normalizedPaymentMethod = normalizePaymentMethodForTranslation(\n genericPaymentMethod || undefined,\n );\n const translationRequest = {\n cryptoCurrencyId: genericCryptoCurrency,\n chainId: genericNetwork,\n fiatCurrencyId: genericFiatCurrency,\n paymentMethod: normalizedPaymentMethod,\n };\n\n const translation = await this.getTranslation(translationRequest);\n\n const params: Record<string, string> = {\n fiatCurrency: translation.fiatCurrency,\n cryptoCurrency: translation.cryptoCurrency,\n isBuyOrSell: 'BUY',\n network: translation.network,\n fiatAmount,\n };\n\n if (isFeeExcludedFromFiat) {\n params.isFeeExcludedFromFiat = 'true';\n }\n\n if (translation.paymentMethod) {\n params.paymentMethod = translation.paymentMethod;\n }\n\n const quote = await this.#transakGet<\n Omit<TransakBuyQuote, 'requestedAssetId' | 'requestedChainId'>\n >('getBuyQuote', '/api/v2/lookup/quotes', BuyQuoteStruct, params);\n\n return {\n ...quote,\n requestedAssetId: genericCryptoCurrency,\n requestedChainId: genericNetwork,\n };\n }\n\n async getKycRequirement(quoteId: string): Promise<TransakKycRequirement> {\n this.#ensureAccessToken();\n const result = await this.#transakGet<TransakKycRequirement>(\n 'getKycRequirement',\n '/api/v2/kyc/requirement',\n KycRequirementStruct,\n {\n 'metadata[quoteId]': quoteId,\n },\n );\n return result;\n }\n\n async getAdditionalRequirements(\n quoteId: string,\n ): Promise<TransakAdditionalRequirementsResponse> {\n this.#ensureAccessToken();\n return this.#transakGet<TransakAdditionalRequirementsResponse>(\n 'getAdditionalRequirements',\n '/api/v2/kyc/additional-requirements',\n AdditionalRequirementsStruct,\n { 'metadata[quoteId]': quoteId },\n );\n }\n\n async createOrder(\n quoteId: string,\n walletAddress: string,\n paymentMethodId: string,\n ): Promise<TransakDepositOrder> {\n this.#ensureAccessToken();\n\n const normalizedPaymentMethod =\n normalizePaymentMethodForTranslation(paymentMethodId);\n const translation = await this.getTranslation({\n paymentMethod: normalizedPaymentMethod,\n });\n\n const paymentInstrumentId =\n translation.paymentMethod ?? normalizedPaymentMethod;\n\n try {\n const transakOrder = await this.#transakPost<TransakOrder>(\n 'createOrder',\n '/api/v2/orders',\n TransakOrderStruct,\n {\n quoteId,\n walletAddress,\n paymentInstrumentId,\n },\n );\n\n const depositOrderId =\n TransakOrderIdTransformer.transakOrderIdToDepositOrderId(\n transakOrder.orderId,\n this.#environment,\n );\n\n return this.getOrder(\n depositOrderId,\n transakOrder.walletAddress,\n transakOrder.paymentDetails,\n );\n } catch (error) {\n if (\n error instanceof TransakApiError &&\n error.httpStatus === 409 &&\n error.errorCode === TRANSAK_ERROR_CODES.ORDER_EXISTS\n ) {\n await this.cancelAllActiveOrders();\n await new Promise((resolve) =>\n setTimeout(resolve, this.#orderRetryDelayMs),\n );\n\n const retryOrder = await this.#transakPost<TransakOrder>(\n 'createOrder',\n '/api/v2/orders',\n TransakOrderStruct,\n {\n quoteId,\n walletAddress,\n paymentInstrumentId,\n },\n );\n\n const retryDepositOrderId =\n TransakOrderIdTransformer.transakOrderIdToDepositOrderId(\n retryOrder.orderId,\n this.#environment,\n );\n\n return this.getOrder(\n retryDepositOrderId,\n retryOrder.walletAddress,\n retryOrder.paymentDetails,\n );\n }\n throw error;\n }\n }\n\n async getOrder(\n orderId: string,\n wallet: string,\n paymentDetails?: TransakOrderPaymentMethod[],\n ): Promise<TransakDepositOrder> {\n let depositOrderId: string;\n if (TransakOrderIdTransformer.isDepositOrderId(orderId)) {\n depositOrderId = orderId;\n } else {\n depositOrderId = TransakOrderIdTransformer.transakOrderIdToDepositOrderId(\n orderId,\n this.#environment,\n );\n }\n\n const transakOrderId =\n TransakOrderIdTransformer.extractTransakOrderId(depositOrderId);\n\n const order = await this.#ordersApiGet<TransakDepositOrder>(\n 'getOrder',\n `/orders/${transakOrderId}`,\n DepositOrderStruct,\n { wallet },\n );\n\n const orderWithId = {\n ...order,\n id: depositOrderId,\n orderType: 'DEPOSIT' as const,\n };\n\n if (paymentDetails && paymentDetails.length > 0) {\n return { ...orderWithId, paymentDetails };\n }\n\n if (this.#accessToken?.accessToken) {\n try {\n const transakOrder = await this.#transakGet<TransakOrder>(\n 'getOrderPaymentDetails',\n `/api/v2/orders/${transakOrderId}`,\n TransakOrderPaymentDetailsStruct,\n );\n return { ...orderWithId, paymentDetails: transakOrder.paymentDetails };\n } catch {\n return orderWithId;\n }\n }\n\n return orderWithId;\n }\n\n async getUserLimits(\n fiatCurrency: string,\n paymentMethod: string,\n kycType: string,\n ): Promise<TransakUserLimits> {\n this.#ensureAccessToken();\n\n const translation = await this.getTranslation({\n paymentMethod: normalizePaymentMethodForTranslation(paymentMethod),\n });\n\n const params: Record<string, string> = {\n isBuyOrSell: 'BUY',\n kycType,\n fiatCurrency,\n };\n\n if (translation.paymentMethod) {\n params.paymentCategory = translation.paymentMethod;\n }\n\n return this.#transakGet<TransakUserLimits>(\n 'getUserLimits',\n '/api/v2/orders/user-limit',\n UserLimitsStruct,\n params,\n );\n }\n\n /**\n * @deprecated Use {@link createWidgetUrl} instead. The OTT flow requires the\n * partner API key on the client and Transak is deprecating `request-ott`.\n * @returns The one-time token response.\n */\n async requestOtt(): Promise<TransakOttResponse> {\n this.#ensureAccessToken();\n const result = await this.#transakPost<TransakOttResponse>(\n 'requestOtt',\n '/api/v2/auth/request-ott',\n OttStruct,\n );\n return result;\n }\n\n /**\n * @deprecated Use {@link createWidgetUrl} instead. This builds the widget\n * URL client-side and embeds the partner API key in it.\n * @param ottToken - The one-time token for widget authentication.\n * @param quote - The buy quote to pre-fill in the widget.\n * @param walletAddress - The destination wallet address.\n * @param extraParams - Optional additional URL parameters.\n * @returns The fully constructed widget URL string.\n */\n generatePaymentWidgetUrl(\n ottToken: string,\n quote: TransakBuyQuote,\n walletAddress: string,\n extraParams?: Record<string, string>,\n ): string {\n const apiKey = this.#ensureApiKey();\n const widgetBaseUrl = getPaymentWidgetBaseUrl(this.#environment);\n\n const defaultParams: Record<string, string> = {\n apiKey,\n ott: ottToken,\n fiatCurrency: quote.fiatCurrency,\n cryptoCurrencyCode: quote.cryptoCurrency,\n productsAvailed: 'BUY',\n fiatAmount: quote.fiatAmount.toString(),\n network: quote.network,\n hideExchangeScreen: 'true',\n walletAddress,\n disableWalletAddressForm: 'true',\n paymentMethod: quote.paymentMethod,\n redirectURL:\n 'https://on-ramp-content.api.cx.metamask.io/regions/fake-callback',\n hideMenu: 'true',\n };\n\n const params = new URLSearchParams({\n ...defaultParams,\n ...extraParams,\n });\n\n const widgetUrl = new URL(widgetBaseUrl);\n widgetUrl.search = params.toString();\n return widgetUrl.toString();\n }\n\n /**\n * Creates a Transak payment widget URL through the ramps API proxy\n * (`POST {rampsBaseUrl}/providers/{providerId}/widget-url`). The proxy\n * injects the partner API key and derives the user IP server-side, so\n * neither leaves the backend. Replaces the OTT flow ({@link requestOtt} +\n * {@link generatePaymentWidgetUrl}).\n *\n * Requires both a Transak access token (user must be logged in to Transak)\n * and a MetaMask bearer token from `AuthenticationController`.\n *\n * @param quote - The buy quote to pre-fill in the widget.\n * @param walletAddress - The destination wallet address.\n * @param extraParams - Optional additional widget parameters (e.g. theming).\n * Keys must be on the proxy's allowlist or the request is rejected.\n * @returns The single-use widget URL (expires after 5 minutes).\n */\n async createWidgetUrl(\n quote: TransakBuyQuote,\n walletAddress: string,\n extraParams?: Record<string, string>,\n ): Promise<string> {\n this.#ensureAccessToken();\n const bearerToken = await this.messenger.call(\n 'AuthenticationController:getBearerToken',\n );\n\n const baseUrl = this.#getRampsApiBaseUrl();\n const providerPath = getRampsProviderPath(this.#environment);\n const url = new URL(`${providerPath}/widget-url`, baseUrl);\n\n this.#addRampsCommonParams(url);\n\n const widgetParams: Record<string, string | number> = {\n referrerDomain: this.#referrerDomain,\n fiatCurrency: quote.fiatCurrency,\n cryptoCurrencyCode: quote.cryptoCurrency,\n fiatAmount: quote.fiatAmount,\n network: quote.network,\n paymentMethod: quote.paymentMethod,\n walletAddress,\n hideExchangeScreen: 'true',\n disableWalletAddressEdit: 'true',\n hideMenu: 'true',\n redirectURL:\n 'https://on-ramp-content.api.cx.metamask.io/regions/fake-callback',\n ...extraParams,\n };\n\n const headers: Record<string, string> = {\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n Authorization: `Bearer ${bearerToken}`,\n };\n if (this.#accessToken?.accessToken) {\n headers['x-transak-access-token'] = this.#accessToken.accessToken;\n }\n\n const response = (await this.#sendMutation({\n mutationName: 'createWidgetUrl',\n url,\n init: {\n method: 'POST',\n headers,\n body: JSON.stringify({ widgetParams }),\n },\n responseStruct: WidgetUrlResponseStruct,\n })) as { widgetUrl: string };\n\n return response.widgetUrl;\n }\n\n async submitPurposeOfUsageForm(purpose: string[]): Promise<void> {\n this.#ensureAccessToken();\n await this.#transakPost(\n 'submitPurposeOfUsageForm',\n '/api/v2/kyc/purpose-of-usage',\n any(),\n { purposeList: purpose },\n );\n }\n\n async patchUser(data: PatchUserRequestBody): Promise<unknown> {\n this.#ensureAccessToken();\n return this.#transakPatch('patchUser', '/api/v2/kyc/user', any(), data);\n }\n\n async submitSsnDetails(ssn: string, quoteId: string): Promise<unknown> {\n this.#ensureAccessToken();\n return this.#transakPost('submitSsnDetails', '/api/v2/kyc/ssn', any(), {\n ssn,\n quoteId,\n });\n }\n\n async confirmPayment(\n orderId: string,\n paymentMethodId: string,\n ): Promise<{ success: boolean }> {\n this.#ensureAccessToken();\n\n const normalizedPaymentMethod =\n normalizePaymentMethodForTranslation(paymentMethodId);\n const translation = await this.getTranslation({\n paymentMethod: normalizedPaymentMethod,\n });\n\n const transakOrderId =\n TransakOrderIdTransformer.extractTransakOrderId(orderId);\n\n return this.#transakPost<{ success: boolean }>(\n 'confirmPayment',\n '/api/v2/orders/payment-confirmation',\n PaymentConfirmationStruct,\n {\n orderId: transakOrderId,\n paymentMethod: translation.paymentMethod ?? normalizedPaymentMethod,\n },\n );\n }\n\n async getTranslation(\n translationRequest: TransakTranslationRequest,\n ): Promise<TransakQuoteTranslation> {\n const baseUrl = getRampsBaseUrl(this.#environment);\n const providerPath = getRampsProviderPath(this.#environment);\n const url = new URL(`${providerPath}/native/translate`, baseUrl);\n\n url.searchParams.set('action', 'deposit');\n url.searchParams.set('context', this.#context);\n\n const normalizedRequest = {\n ...translationRequest,\n paymentMethod: normalizePaymentMethodForTranslation(\n translationRequest.paymentMethod,\n ),\n };\n\n const params: Record<string, string> = {};\n for (const [key, value] of Object.entries(normalizedRequest)) {\n if (value !== undefined) {\n url.searchParams.set(key, value);\n params[key] = value;\n }\n }\n\n return (await this.fetchQuery({\n queryKey: [`${this.name}:getTranslation`, params],\n staleTime: 0,\n gcTime: 0,\n responseStruct: TranslationStruct,\n queryFn: async () => {\n const fetchResponse = await this.#fetch(url.toString(), {\n method: 'GET',\n headers: { Accept: 'application/json' },\n });\n if (!fetchResponse.ok) {\n throw new HttpError(\n fetchResponse.status,\n `Fetching '${url.toString()}' failed with status '${fetchResponse.status}'`,\n );\n }\n return (await fetchResponse.json()) as Json;\n },\n })) as TransakQuoteTranslation;\n }\n\n async getIdProofStatus(workFlowRunId: string): Promise<TransakIdProofStatus> {\n this.#ensureAccessToken();\n return this.#transakGet<TransakIdProofStatus>(\n 'getIdProofStatus',\n '/api/v2/kyc/id-proof-status',\n IdProofStatusStruct,\n { workFlowRunId },\n );\n }\n\n async cancelOrder(depositOrderId: string): Promise<void> {\n this.#ensureAccessToken();\n const transakOrderId =\n TransakOrderIdTransformer.extractTransakOrderId(depositOrderId);\n await this.#transakDelete(\n 'cancelOrder',\n `/api/v2/orders/${transakOrderId}`,\n {\n cancelReason: 'Creating new order',\n },\n );\n }\n\n async cancelAllActiveOrders(): Promise<Error[]> {\n this.#ensureAccessToken();\n const activeOrders = await this.getActiveOrders();\n const errors: Error[] = [];\n\n await Promise.all(\n activeOrders.map(async (order) => {\n try {\n const depositOrderId =\n TransakOrderIdTransformer.transakOrderIdToDepositOrderId(\n order.orderId,\n this.#environment,\n );\n await this.cancelOrder(depositOrderId);\n } catch (error) {\n errors.push(\n error instanceof Error ? error : new Error(String(error)),\n );\n }\n }),\n );\n\n return errors;\n }\n\n async getActiveOrders(): Promise<TransakOrder[]> {\n this.#ensureAccessToken();\n return this.#transakGet<TransakOrder[]>(\n 'getActiveOrders',\n '/api/v2/active-orders',\n ActiveOrdersStruct,\n );\n }\n}\n"]}
1
+ {"version":3,"file":"TransakService.js","sourceRoot":"","sources":["../src/TransakService.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n CreateServicePolicyOptions,\n ServicePolicy,\n} from '@metamask/controller-utils';\nimport { createServicePolicy, HttpError } from '@metamask/controller-utils';\nimport type { Messenger } from '@metamask/messenger';\nimport type { AuthenticationController } from '@metamask/profile-sync-controller';\n\nimport packageJson from '../package.json';\nimport type { RampsClientIdentity } from './client-identity.js';\nimport { addRampsClientIdentityParams } from './client-identity.js';\nimport { RAMPS_SDK_VERSION } from './RampsService.js';\nimport { TRANSAK_ERROR_CODES } from './transakErrorCodes.js';\nimport type { TransakServiceMethodActions } from './TransakService-method-action-types.js';\n\n// === TYPES ===\n\nexport type TransakAccessToken = {\n accessToken: string;\n ttl: number;\n created: Date;\n};\n\nexport type TransakUserDetails = {\n id: string;\n firstName: string;\n lastName: string;\n email: string;\n mobileNumber: string;\n status: string;\n dob: string;\n kyc: TransakUserDetailsKycDetails;\n address: TransakUserDetailsAddress;\n createdAt: string;\n};\n\nexport type TransakUserDetailsAddress = {\n addressLine1: string;\n addressLine2: string;\n state: string;\n city: string;\n postCode: string;\n country: string;\n countryCode: string;\n};\n\nexport type TransakUserDetailsKycDetails = {\n status: string;\n type: string;\n attempts: TransakUserDetailsKycAttempt[];\n highestApprovedKYCType: string | null;\n kycMarkedBy: string | null;\n kycResult: string | null;\n rejectionDetails: TransakUserDetailsKycAttemptRejectionDetails | null;\n userId: string;\n workFlowRunId: string;\n};\n\nexport type TransakUserDetailsKycAttempt = {\n artifacts: { key: string; value: string }[];\n metadata: {\n transaction: {\n kycVendorId: string;\n scanReference: string;\n workflowId: string;\n };\n };\n rejectionDetails: TransakUserDetailsKycAttemptRejectionDetails;\n result: string;\n sessionId: string;\n};\n\nexport type TransakUserDetailsKycAttemptRejectionDetails = {\n archetype: string;\n reason: string;\n reasonCode: string;\n};\n\nexport type TransakBuyQuote = {\n quoteId: string;\n conversionPrice: number;\n marketConversionPrice: number;\n slippage: number;\n fiatCurrency: string;\n cryptoCurrency: string;\n paymentMethod: string;\n fiatAmount: number;\n cryptoAmount: number;\n isBuyOrSell: string;\n network: string;\n feeDecimal: number;\n totalFee: number;\n feeBreakdown: { [prop: string]: string | number | boolean | null }[];\n nonce: number;\n cryptoLiquidityProvider: string;\n notes: { [prop: string]: string | number | boolean | null }[];\n requestedAssetId: string;\n requestedChainId: string;\n};\n\nexport type TransakKycRequirement = {\n status:\n | 'NOT_SUBMITTED'\n | 'APPROVED'\n | 'ADDITIONAL_FORMS_REQUIRED'\n | 'SUBMITTED';\n kycType: string;\n isAllowedToPlaceOrder: boolean;\n};\n\nexport type TransakAdditionalRequirement = {\n type: string;\n metadata?: {\n options: string[];\n documentProofOptions: string[];\n expiresAt: string;\n kycUrl: string;\n workFlowRunId: string;\n };\n};\n\nexport type TransakAdditionalRequirementsResponse = {\n formsRequired: TransakAdditionalRequirement[];\n};\n\nexport type TransakOttResponse = {\n ott: string;\n};\n\nexport type TransakOrderPaymentMethod = {\n fiatCurrency: string;\n paymentMethod: string;\n fields: { name: string; id: string; value: string }[];\n};\n\nexport type TransakDepositNetwork = {\n name: string;\n chainId: string;\n};\n\nexport type TransakDepositCryptoCurrency = {\n assetId: string;\n name: string;\n chainId: string;\n decimals: number;\n iconUrl: string;\n symbol: string;\n};\n\nexport type TransakDepositPaymentMethod = {\n id: string;\n name: string;\n shortName?: string;\n duration: string;\n icon: string;\n iconColor?: { light: string; dark: string };\n isManualBankTransfer?: boolean;\n};\n\nexport type TransakDepositRegion = {\n isoCode: string;\n flag: string;\n name: string;\n phone: { prefix: string; placeholder: string; template: string };\n currency: string;\n supported: boolean;\n recommended?: boolean;\n geolocated?: boolean;\n};\n\nexport type TransakDepositOrder = {\n id: string;\n provider: string;\n cryptoAmount: number | string;\n fiatAmount: number;\n cryptoCurrency: TransakDepositCryptoCurrency;\n fiatCurrency: string;\n providerOrderId: string;\n providerOrderLink: string;\n createdAt: number;\n paymentMethod: TransakDepositPaymentMethod;\n totalFeesFiat: number;\n txHash: string;\n walletAddress: string;\n status: string;\n network: TransakDepositNetwork;\n timeDescriptionPending: string;\n fiatAmountInUsd: number;\n feesInUsd: number;\n region: TransakDepositRegion;\n orderType: 'DEPOSIT';\n exchangeRate?: number;\n statusDescription?: string;\n paymentDetails: TransakOrderPaymentMethod[];\n partnerFees?: number;\n networkFees?: number;\n};\n\nexport type TransakOrder = {\n orderId: string;\n partnerUserId: string;\n status: string;\n isBuyOrSell: string;\n fiatCurrency: string;\n cryptoCurrency: string;\n network: string;\n walletAddress: string;\n quoteId: string;\n fiatAmount: number;\n fiatAmountInUsd: number;\n amountPaid: number;\n cryptoAmount: number;\n conversionPrice: number;\n totalFeeInFiat: number;\n paymentDetails: TransakOrderPaymentMethod[];\n txHash: string;\n transationLink: string | null;\n createdAt: string;\n updatedAt: string;\n completedAt: string;\n};\n\nexport type TransakQuoteTranslation = {\n region: string;\n paymentMethod: string | undefined;\n cryptoCurrency: string;\n network: string;\n fiatCurrency: string;\n};\n\nexport type TransakTranslationRequest = {\n regionId?: string;\n cryptoCurrencyId?: string;\n chainId?: string;\n fiatCurrencyId?: string;\n paymentMethod?: string;\n};\n\nexport type TransakUserLimits = {\n limits: { '1': number; '30': number; '365': number };\n spent: { '1': number; '30': number; '365': number };\n remaining: { '1': number; '30': number; '365': number };\n exceeded: { '1': boolean; '30': boolean; '365': boolean };\n shortage: Record<string, number>;\n};\n\nexport type PatchUserRequestBody = Partial<{\n personalDetails: Partial<{\n firstName: string;\n lastName: string;\n mobileNumber: string;\n dob: string;\n }>;\n addressDetails: Partial<{\n addressLine1: string;\n addressLine2: string;\n state: string;\n city: string;\n postCode: string;\n countryCode: string;\n }>;\n}>;\n\nexport type TransakIdProofStatus = {\n status: 'NOT_SUBMITTED' | 'SUBMITTED';\n kycType: string;\n randomLogIdentifier: string;\n};\n\n// === ENVIRONMENT ===\n\nexport enum TransakEnvironment {\n Production = 'production',\n Staging = 'staging',\n Development = 'development',\n}\n\nenum TransakApiProviders {\n TransakNative = 'transak-native',\n TransakNativeStaging = 'transak-native-staging',\n}\n\n// === ORDER ID UTILITIES ===\n\nexport class TransakOrderIdTransformer {\n static depositOrderIdToTransakOrderId(depositOrderId: string): string {\n const parts = depositOrderId.split('/');\n return parts[parts.length - 1];\n }\n\n static transakOrderIdToDepositOrderId(\n transakOrderId: string,\n environment: TransakEnvironment,\n ): string {\n const provider =\n environment === TransakEnvironment.Production\n ? 'transak-native'\n : 'transak-native-staging';\n return `/providers/${provider}/orders/${transakOrderId}`;\n }\n\n static isDepositOrderId(orderId: string): boolean {\n return orderId.startsWith('/providers/');\n }\n\n static extractTransakOrderId(orderId: string): string {\n return this.isDepositOrderId(orderId)\n ? this.depositOrderIdToTransakOrderId(orderId)\n : orderId;\n }\n}\n\n// === MESSENGER ===\n\nconst serviceName = 'TransakService';\n\nconst MESSENGER_EXPOSED_METHODS = [\n 'setApiKey',\n 'setAccessToken',\n 'clearAccessToken',\n 'sendUserOtp',\n 'verifyUserOtp',\n 'logout',\n 'getUserDetails',\n 'getBuyQuote',\n 'getKycRequirement',\n 'getAdditionalRequirements',\n 'createOrder',\n 'getOrder',\n 'getUserLimits',\n 'requestOtt',\n 'generatePaymentWidgetUrl',\n 'createWidgetUrl',\n 'submitPurposeOfUsageForm',\n 'patchUser',\n 'submitSsnDetails',\n 'confirmPayment',\n 'getTranslation',\n 'getIdProofStatus',\n 'cancelOrder',\n 'cancelAllActiveOrders',\n 'getActiveOrders',\n] as const;\n\nexport type TransakServiceActions = TransakServiceMethodActions;\n\n/**\n * Actions from other messengers that {@link TransakService} calls.\n */\ntype AllowedActions =\n AuthenticationController.AuthenticationControllerGetBearerTokenAction;\n\nexport type TransakServiceEvents = never;\n\ntype AllowedEvents = never;\n\nexport type TransakServiceMessenger = Messenger<\n typeof serviceName,\n TransakServiceActions | AllowedActions,\n TransakServiceEvents | AllowedEvents\n>;\n\n// === HELPER FUNCTIONS ===\n\n/**\n * Maps ramps API payment method IDs (e.g., \"/payments/debit-credit-card\")\n * to the deposit-format IDs expected by the translation endpoint\n * (e.g., \"credit_debit_card\").\n *\n * The translation endpoint only understands the deposit-format IDs.\n * Canonical IDs may arrive either with the \"/payments/\" prefix\n * (e.g., \"/payments/apple-pay\") or without it (e.g., \"apple-pay\"), so both\n * forms are accepted. If no mapping exists, the input is returned as-is (it\n * may already be in the deposit format).\n */\nconst RAMPS_TO_DEPOSIT_PAYMENT_METHOD: Record<string, string> = {\n '/payments/debit-credit-card': 'credit_debit_card',\n '/payments/apple-pay': 'apple_pay',\n '/payments/google-pay': 'google_pay',\n '/payments/sepa-bank-transfer': 'sepa_bank_transfer',\n '/payments/wire-transfer': 'wire_transfer',\n '/payments/gbp-bank-transfer': 'gbp_bank_transfer',\n};\n\nconst PAYMENTS_PREFIX = '/payments/';\n\nfunction normalizePaymentMethodForTranslation(\n paymentMethod: string | undefined,\n): string | undefined {\n if (!paymentMethod) {\n return undefined;\n }\n const prefixed = paymentMethod.startsWith(PAYMENTS_PREFIX)\n ? paymentMethod\n : `${PAYMENTS_PREFIX}${paymentMethod}`;\n return (\n RAMPS_TO_DEPOSIT_PAYMENT_METHOD[paymentMethod] ??\n RAMPS_TO_DEPOSIT_PAYMENT_METHOD[prefixed] ??\n paymentMethod\n );\n}\n\nfunction getTransakApiBaseUrl(environment: TransakEnvironment): string {\n switch (environment) {\n case TransakEnvironment.Production:\n return 'https://api-gateway.transak.com';\n // Transak has no dev environment; development uses their staging gateway.\n case TransakEnvironment.Staging:\n case TransakEnvironment.Development:\n return 'https://api-gateway-stg.transak.com';\n default:\n throw new Error(`Invalid Transak environment: ${String(environment)}`);\n }\n}\n\nfunction getRampsBaseUrl(environment: TransakEnvironment): string {\n switch (environment) {\n case TransakEnvironment.Production:\n return 'https://on-ramp.api.cx.metamask.io';\n case TransakEnvironment.Staging:\n return 'https://on-ramp.uat-api.cx.metamask.io';\n case TransakEnvironment.Development:\n return 'https://on-ramp.dev-api.cx.metamask.io';\n default:\n throw new Error(`Invalid Transak environment: ${String(environment)}`);\n }\n}\n\nfunction getRampsProviderPath(environment: TransakEnvironment): string {\n // The dev ramps API registers the same `transak-native-staging` provider\n // id as UAT; only production uses `transak-native`.\n const providerId =\n environment === TransakEnvironment.Production\n ? TransakApiProviders.TransakNative\n : TransakApiProviders.TransakNativeStaging;\n return `/providers/${providerId}`;\n}\n\nfunction getPaymentWidgetBaseUrl(environment: TransakEnvironment): string {\n switch (environment) {\n case TransakEnvironment.Production:\n return 'https://global.transak.com';\n // Transak has no dev environment; development uses their staging widget.\n case TransakEnvironment.Staging:\n case TransakEnvironment.Development:\n return 'https://global-stg.transak.com';\n default:\n throw new Error(`Invalid Transak environment: ${String(environment)}`);\n }\n}\n\n/**\n * Transak requires `referrerDomain` in `widgetParams` alongside the partner\n * API key (which the ramps API proxy injects server-side). Identifies the\n * MetaMask client to Transak. Default when the client does not pass a\n * `referrerDomain` constructor option (e.g. the mobile app passes its\n * package name / bundle id).\n */\nconst TRANSAK_REFERRER_DOMAIN = 'metamask.io';\n\n// === TRANSAK API ERROR ===\n\nexport class TransakApiError extends HttpError {\n readonly errorCode: string | undefined;\n\n readonly apiMessage: string | undefined;\n\n constructor(\n status: number,\n message: string,\n errorCode?: string,\n apiMessage?: string,\n ) {\n super(status, message);\n this.errorCode = errorCode;\n this.apiMessage = apiMessage;\n }\n}\n\n// === SERVICE DEFINITION ===\n\nexport class TransakService {\n readonly name: typeof serviceName;\n\n readonly #messenger: TransakServiceMessenger;\n\n readonly #fetch: typeof fetch;\n\n readonly #policy: ServicePolicy;\n\n readonly #noRetryPolicy: ServicePolicy;\n\n readonly #environment: TransakEnvironment;\n\n readonly #context: string;\n\n readonly #orderRetryDelayMs: number;\n\n #apiKey: string | null = null;\n\n #accessToken: TransakAccessToken | null = null;\n\n /**\n * Optional ramps API base URL override for local development (mirrors\n * `RampsService`'s `baseUrlOverride`). Applies to the requests this service\n * sends to the ramps API (orders, widget-url proxy), not to direct Transak\n * API calls.\n */\n readonly #rampsApiBaseUrlOverride?: string;\n\n /**\n * Identifies the client to Transak in `widgetParams` (e.g. the mobile app's\n * package name / bundle id). Defaults to `metamask.io`.\n */\n readonly #referrerDomain: string;\n\n readonly #clientIdentity: RampsClientIdentity;\n\n constructor({\n messenger,\n environment = TransakEnvironment.Staging,\n context,\n fetch: fetchFunction,\n apiKey,\n policyOptions = {},\n orderRetryDelayMs = 2000,\n rampsApiBaseUrlOverride,\n referrerDomain = TRANSAK_REFERRER_DOMAIN,\n clientProduct,\n clientVersion,\n }: {\n messenger: TransakServiceMessenger;\n environment?: TransakEnvironment;\n context: string;\n fetch: typeof fetch;\n apiKey?: string;\n policyOptions?: CreateServicePolicyOptions;\n orderRetryDelayMs?: number;\n rampsApiBaseUrlOverride?: string;\n referrerDomain?: string;\n clientProduct?: string;\n clientVersion?: string;\n }) {\n this.name = serviceName;\n this.#messenger = messenger;\n this.#fetch = fetchFunction;\n this.#policy = createServicePolicy(policyOptions);\n this.#noRetryPolicy = createServicePolicy({\n ...policyOptions,\n maxRetries: 0,\n });\n this.#environment = environment;\n this.#context = context;\n this.#apiKey = apiKey ?? null;\n this.#orderRetryDelayMs = orderRetryDelayMs;\n this.#rampsApiBaseUrlOverride = rampsApiBaseUrlOverride;\n this.#referrerDomain = referrerDomain;\n this.#clientIdentity = {\n clientProduct,\n clientVersion,\n };\n\n this.#messenger.registerMethodActionHandlers(\n this,\n MESSENGER_EXPOSED_METHODS,\n );\n }\n\n setApiKey(apiKey: string): void {\n this.#apiKey = apiKey;\n }\n\n getApiKey(): string | null {\n return this.#apiKey;\n }\n\n #ensureApiKey(): string {\n if (!this.#apiKey) {\n throw new Error('Transak API key is required but not set.');\n }\n return this.#apiKey;\n }\n\n setAccessToken(token: TransakAccessToken): void {\n this.#accessToken = token;\n }\n\n getAccessToken(): TransakAccessToken | null {\n return this.#accessToken;\n }\n\n clearAccessToken(): void {\n this.#accessToken = null;\n }\n\n #ensureAccessToken(): void {\n if (!this.#accessToken?.accessToken) {\n throw new HttpError(\n 401,\n 'Authentication required. Please log in to continue.',\n );\n }\n\n const createdTime = new Date(this.#accessToken.created).getTime();\n const tokenAgeMs = Date.now() - createdTime;\n if (tokenAgeMs > this.#accessToken.ttl * 1000) {\n this.clearAccessToken();\n throw new HttpError(\n 401,\n 'Authentication token has expired. Please log in again.',\n );\n }\n }\n\n #getHeaders(): Record<string, string> {\n const headers: Record<string, string> = {\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n };\n if (this.#accessToken?.accessToken) {\n headers.authorization = this.#accessToken.accessToken;\n }\n return headers;\n }\n\n async #throwTransakApiError(\n fetchResponse: Response,\n url: URL,\n ): Promise<never> {\n let errorBody = '';\n let errorCode: string | undefined;\n let apiMessage: string | undefined;\n try {\n errorBody = await fetchResponse.text();\n const parsed = JSON.parse(errorBody) as {\n error?: {\n code?: string;\n errorCode?: string | number;\n message?: string;\n };\n };\n errorCode =\n parsed?.error?.code ??\n (parsed?.error?.errorCode !== null &&\n parsed?.error?.errorCode !== undefined\n ? String(parsed.error.errorCode)\n : undefined);\n apiMessage =\n typeof parsed?.error?.message === 'string'\n ? parsed.error.message\n : undefined;\n } catch {\n // ignore body read/parse failures\n }\n throw new TransakApiError(\n fetchResponse.status,\n `Fetching '${url.toString()}' failed with status '${fetchResponse.status}'${errorBody ? `: ${errorBody}` : ''}`,\n errorCode,\n apiMessage,\n );\n }\n\n async #transakGet<ResponseType>(\n path: string,\n params?: Record<string, string>,\n ): Promise<ResponseType> {\n const baseUrl = getTransakApiBaseUrl(this.#environment);\n const url = new URL(path, baseUrl);\n\n if (params) {\n for (const [key, value] of Object.entries(params)) {\n if (value !== null && value !== undefined) {\n url.searchParams.set(key, value);\n }\n }\n }\n\n const apiKey = this.#ensureApiKey();\n url.searchParams.set('apiKey', apiKey);\n\n const response = await this.#policy.execute(async () => {\n const fetchResponse = await this.#fetch(url.toString(), {\n method: 'GET',\n headers: this.#getHeaders(),\n });\n if (!fetchResponse.ok) {\n await this.#throwTransakApiError(fetchResponse, url);\n }\n return fetchResponse.json() as Promise<{ data: ResponseType }>;\n });\n\n return response.data;\n }\n\n async #transakPost<ResponseType>(\n path: string,\n body?: Record<string, unknown>,\n options: { policy?: ServicePolicy } = {},\n ): Promise<ResponseType> {\n const apiKey = this.#ensureApiKey();\n const baseUrl = getTransakApiBaseUrl(this.#environment);\n const url = new URL(path, baseUrl);\n\n const requestBody = {\n ...(body ?? {}),\n apiKey,\n };\n\n const policy = options.policy ?? this.#policy;\n\n const response = await policy.execute(async () => {\n const fetchResponse = await this.#fetch(url.toString(), {\n method: 'POST',\n headers: this.#getHeaders(),\n body: JSON.stringify(requestBody),\n });\n if (!fetchResponse.ok) {\n await this.#throwTransakApiError(fetchResponse, url);\n }\n return fetchResponse.json() as Promise<{ data: ResponseType }>;\n });\n\n return response.data;\n }\n\n async #transakPatch<ResponseType>(\n path: string,\n body: Record<string, unknown>,\n ): Promise<ResponseType> {\n const apiKey = this.#ensureApiKey();\n const baseUrl = getTransakApiBaseUrl(this.#environment);\n const url = new URL(path, baseUrl);\n url.searchParams.set('apiKey', apiKey);\n\n const response = await this.#policy.execute(async () => {\n const fetchResponse = await this.#fetch(url.toString(), {\n method: 'PATCH',\n headers: this.#getHeaders(),\n body: JSON.stringify(body),\n });\n if (!fetchResponse.ok) {\n await this.#throwTransakApiError(fetchResponse, url);\n }\n return fetchResponse.json() as Promise<{ data: ResponseType }>;\n });\n\n return response.data;\n }\n\n async #transakDelete(\n path: string,\n params?: Record<string, string>,\n ): Promise<void> {\n const apiKey = this.#ensureApiKey();\n const baseUrl = getTransakApiBaseUrl(this.#environment);\n const url = new URL(path, baseUrl);\n url.searchParams.set('apiKey', apiKey);\n\n if (params) {\n for (const [key, value] of Object.entries(params)) {\n if (value !== null && value !== undefined) {\n url.searchParams.set(key, value);\n }\n }\n }\n\n await this.#policy.execute(async () => {\n const fetchResponse = await this.#fetch(url.toString(), {\n method: 'DELETE',\n headers: this.#getHeaders(),\n });\n if (!fetchResponse.ok) {\n await this.#throwTransakApiError(fetchResponse, url);\n }\n });\n }\n\n /**\n * Gets the ramps API base URL, respecting the local-development override\n * when set (same semantics as `RampsService`'s `baseUrlOverride`).\n *\n * @returns The ramps API base URL to use.\n */\n #getRampsApiBaseUrl(): string {\n return this.#rampsApiBaseUrlOverride ?? getRampsBaseUrl(this.#environment);\n }\n\n /**\n * Adds the common request parameters to a ramps API proxy URL, mirroring\n * `RampsService`'s `#addCommonParams`.\n *\n * @param url - The URL to add parameters to.\n */\n #addRampsCommonParams(url: URL): void {\n url.searchParams.set('action', 'deposit');\n url.searchParams.set('sdk', RAMPS_SDK_VERSION);\n url.searchParams.set('controller', packageJson.version);\n url.searchParams.set('context', this.#context);\n // In the query string (not headers) so CDN-cached responses vary per\n // client product / version.\n addRampsClientIdentityParams(url, this.#clientIdentity);\n }\n\n async #ordersApiGet<ResponseType>(\n path: string,\n params?: Record<string, string>,\n ): Promise<ResponseType> {\n const baseUrl = this.#getRampsApiBaseUrl();\n const providerPath = getRampsProviderPath(this.#environment);\n const url = new URL(`${providerPath}${path}`, baseUrl);\n\n url.searchParams.set('action', 'deposit');\n url.searchParams.set('context', this.#context);\n // In the query string (not headers) so CDN-cached responses vary per\n // client product / version.\n addRampsClientIdentityParams(url, this.#clientIdentity);\n\n if (params) {\n for (const [key, value] of Object.entries(params)) {\n if (value !== null && value !== undefined) {\n url.searchParams.set(key, value);\n }\n }\n }\n\n const response = await this.#policy.execute(async () => {\n const fetchResponse = await this.#fetch(url.toString(), {\n method: 'GET',\n headers: { Accept: 'application/json' },\n });\n if (!fetchResponse.ok) {\n throw new HttpError(\n fetchResponse.status,\n `Fetching '${url.toString()}' failed with status '${fetchResponse.status}'`,\n );\n }\n return fetchResponse.json() as Promise<ResponseType>;\n });\n\n return response;\n }\n\n // === PUBLIC API METHODS ===\n\n async sendUserOtp(email: string): Promise<{\n isTncAccepted: boolean;\n stateToken: string;\n email: string;\n expiresIn: number;\n }> {\n const result = await this.#transakPost<{\n isTncAccepted: boolean;\n stateToken: string;\n email: string;\n expiresIn: number;\n }>('/api/v2/auth/login', { email });\n return result;\n }\n\n async verifyUserOtp(\n email: string,\n verificationCode: string,\n stateToken: string,\n ): Promise<TransakAccessToken> {\n const responseData = await this.#transakPost<{\n accessToken: string;\n ttl: number;\n created: string;\n }>(\n '/api/v2/auth/verify',\n {\n email,\n otp: verificationCode,\n stateToken,\n },\n { policy: this.#noRetryPolicy },\n );\n\n const accessToken: TransakAccessToken = {\n accessToken: responseData.accessToken,\n ttl: responseData.ttl,\n created: new Date(responseData.created),\n };\n\n this.setAccessToken(accessToken);\n return accessToken;\n }\n\n async logout(): Promise<string> {\n this.#ensureAccessToken();\n try {\n const result = await this.#transakPost<string>('/api/v1/auth/logout');\n this.clearAccessToken();\n return result;\n } catch (error) {\n if (error instanceof HttpError && error.httpStatus === 401) {\n this.clearAccessToken();\n return 'user was already logged out';\n }\n throw error;\n }\n }\n\n async getUserDetails(): Promise<TransakUserDetails> {\n this.#ensureAccessToken();\n return this.#transakGet<TransakUserDetails>('/api/v2/user/');\n }\n\n async getBuyQuote(\n genericFiatCurrency: string,\n genericCryptoCurrency: string,\n genericNetwork: string,\n genericPaymentMethod: string,\n fiatAmount: string,\n isFeeExcludedFromFiat = true,\n ): Promise<TransakBuyQuote> {\n const normalizedPaymentMethod = normalizePaymentMethodForTranslation(\n genericPaymentMethod || undefined,\n );\n const translationRequest = {\n cryptoCurrencyId: genericCryptoCurrency,\n chainId: genericNetwork,\n fiatCurrencyId: genericFiatCurrency,\n paymentMethod: normalizedPaymentMethod,\n };\n\n const translation = await this.getTranslation(translationRequest);\n\n const params: Record<string, string> = {\n fiatCurrency: translation.fiatCurrency,\n cryptoCurrency: translation.cryptoCurrency,\n isBuyOrSell: 'BUY',\n network: translation.network,\n fiatAmount,\n };\n\n if (isFeeExcludedFromFiat) {\n params.isFeeExcludedFromFiat = 'true';\n }\n\n if (translation.paymentMethod) {\n params.paymentMethod = translation.paymentMethod;\n }\n\n const quote = await this.#transakGet<\n Omit<TransakBuyQuote, 'requestedAssetId' | 'requestedChainId'>\n >('/api/v2/lookup/quotes', params);\n\n return {\n ...quote,\n requestedAssetId: genericCryptoCurrency,\n requestedChainId: genericNetwork,\n };\n }\n\n async getKycRequirement(quoteId: string): Promise<TransakKycRequirement> {\n this.#ensureAccessToken();\n const result = await this.#transakGet<TransakKycRequirement>(\n '/api/v2/kyc/requirement',\n {\n 'metadata[quoteId]': quoteId,\n },\n );\n return result;\n }\n\n async getAdditionalRequirements(\n quoteId: string,\n ): Promise<TransakAdditionalRequirementsResponse> {\n this.#ensureAccessToken();\n return this.#transakGet<TransakAdditionalRequirementsResponse>(\n '/api/v2/kyc/additional-requirements',\n { 'metadata[quoteId]': quoteId },\n );\n }\n\n async createOrder(\n quoteId: string,\n walletAddress: string,\n paymentMethodId: string,\n ): Promise<TransakDepositOrder> {\n this.#ensureAccessToken();\n\n const normalizedPaymentMethod =\n normalizePaymentMethodForTranslation(paymentMethodId);\n const translation = await this.getTranslation({\n paymentMethod: normalizedPaymentMethod,\n });\n\n const paymentInstrumentId =\n translation.paymentMethod ?? normalizedPaymentMethod;\n\n try {\n const transakOrder = await this.#transakPost<TransakOrder>(\n '/api/v2/orders',\n {\n quoteId,\n walletAddress,\n paymentInstrumentId,\n },\n );\n\n const depositOrderId =\n TransakOrderIdTransformer.transakOrderIdToDepositOrderId(\n transakOrder.orderId,\n this.#environment,\n );\n\n return this.getOrder(\n depositOrderId,\n transakOrder.walletAddress,\n transakOrder.paymentDetails,\n );\n } catch (error) {\n if (\n error instanceof TransakApiError &&\n error.httpStatus === 409 &&\n error.errorCode === TRANSAK_ERROR_CODES.ORDER_EXISTS\n ) {\n await this.cancelAllActiveOrders();\n await new Promise((resolve) =>\n setTimeout(resolve, this.#orderRetryDelayMs),\n );\n\n const retryOrder = await this.#transakPost<TransakOrder>(\n '/api/v2/orders',\n {\n quoteId,\n walletAddress,\n paymentInstrumentId,\n },\n );\n\n const retryDepositOrderId =\n TransakOrderIdTransformer.transakOrderIdToDepositOrderId(\n retryOrder.orderId,\n this.#environment,\n );\n\n return this.getOrder(\n retryDepositOrderId,\n retryOrder.walletAddress,\n retryOrder.paymentDetails,\n );\n }\n throw error;\n }\n }\n\n async getOrder(\n orderId: string,\n wallet: string,\n paymentDetails?: TransakOrderPaymentMethod[],\n ): Promise<TransakDepositOrder> {\n let depositOrderId: string;\n if (TransakOrderIdTransformer.isDepositOrderId(orderId)) {\n depositOrderId = orderId;\n } else {\n depositOrderId = TransakOrderIdTransformer.transakOrderIdToDepositOrderId(\n orderId,\n this.#environment,\n );\n }\n\n const transakOrderId =\n TransakOrderIdTransformer.extractTransakOrderId(depositOrderId);\n\n const order = await this.#ordersApiGet<TransakDepositOrder>(\n `/orders/${transakOrderId}`,\n { wallet },\n );\n\n const orderWithId = {\n ...order,\n id: depositOrderId,\n orderType: 'DEPOSIT' as const,\n };\n\n if (paymentDetails && paymentDetails.length > 0) {\n return { ...orderWithId, paymentDetails };\n }\n\n if (this.#accessToken?.accessToken) {\n try {\n const transakOrder = await this.#transakGet<TransakOrder>(\n `/api/v2/orders/${transakOrderId}`,\n );\n return { ...orderWithId, paymentDetails: transakOrder.paymentDetails };\n } catch {\n return orderWithId;\n }\n }\n\n return orderWithId;\n }\n\n async getUserLimits(\n fiatCurrency: string,\n paymentMethod: string,\n kycType: string,\n ): Promise<TransakUserLimits> {\n this.#ensureAccessToken();\n\n const translation = await this.getTranslation({\n paymentMethod: normalizePaymentMethodForTranslation(paymentMethod),\n });\n\n const params: Record<string, string> = {\n isBuyOrSell: 'BUY',\n kycType,\n fiatCurrency,\n };\n\n if (translation.paymentMethod) {\n params.paymentCategory = translation.paymentMethod;\n }\n\n return this.#transakGet<TransakUserLimits>(\n '/api/v2/orders/user-limit',\n params,\n );\n }\n\n /**\n * @deprecated Use {@link createWidgetUrl} instead. The OTT flow requires the\n * partner API key on the client and Transak is deprecating `request-ott`.\n * @returns The one-time token response.\n */\n async requestOtt(): Promise<TransakOttResponse> {\n this.#ensureAccessToken();\n const result = await this.#transakPost<TransakOttResponse>(\n '/api/v2/auth/request-ott',\n );\n return result;\n }\n\n /**\n * @deprecated Use {@link createWidgetUrl} instead. This builds the widget\n * URL client-side and embeds the partner API key in it.\n * @param ottToken - The one-time token for widget authentication.\n * @param quote - The buy quote to pre-fill in the widget.\n * @param walletAddress - The destination wallet address.\n * @param extraParams - Optional additional URL parameters.\n * @returns The fully constructed widget URL string.\n */\n generatePaymentWidgetUrl(\n ottToken: string,\n quote: TransakBuyQuote,\n walletAddress: string,\n extraParams?: Record<string, string>,\n ): string {\n const apiKey = this.#ensureApiKey();\n const widgetBaseUrl = getPaymentWidgetBaseUrl(this.#environment);\n\n const defaultParams: Record<string, string> = {\n apiKey,\n ott: ottToken,\n fiatCurrency: quote.fiatCurrency,\n cryptoCurrencyCode: quote.cryptoCurrency,\n productsAvailed: 'BUY',\n fiatAmount: quote.fiatAmount.toString(),\n network: quote.network,\n hideExchangeScreen: 'true',\n walletAddress,\n disableWalletAddressForm: 'true',\n paymentMethod: quote.paymentMethod,\n redirectURL:\n 'https://on-ramp-content.api.cx.metamask.io/regions/fake-callback',\n hideMenu: 'true',\n };\n\n const params = new URLSearchParams({\n ...defaultParams,\n ...extraParams,\n });\n\n const widgetUrl = new URL(widgetBaseUrl);\n widgetUrl.search = params.toString();\n return widgetUrl.toString();\n }\n\n /**\n * Creates a Transak payment widget URL through the ramps API proxy\n * (`POST {rampsBaseUrl}/providers/{providerId}/widget-url`). The proxy\n * injects the partner API key and derives the user IP server-side, so\n * neither leaves the backend. Replaces the OTT flow ({@link requestOtt} +\n * {@link generatePaymentWidgetUrl}).\n *\n * Requires both a Transak access token (user must be logged in to Transak)\n * and a MetaMask bearer token from `AuthenticationController`.\n *\n * @param quote - The buy quote to pre-fill in the widget.\n * @param walletAddress - The destination wallet address.\n * @param extraParams - Optional additional widget parameters (e.g. theming).\n * Keys must be on the proxy's allowlist or the request is rejected.\n * @returns The single-use widget URL (expires after 5 minutes).\n */\n async createWidgetUrl(\n quote: TransakBuyQuote,\n walletAddress: string,\n extraParams?: Record<string, string>,\n ): Promise<string> {\n this.#ensureAccessToken();\n const bearerToken = await this.#messenger.call(\n 'AuthenticationController:getBearerToken',\n );\n\n const baseUrl = this.#getRampsApiBaseUrl();\n const providerPath = getRampsProviderPath(this.#environment);\n const url = new URL(`${providerPath}/widget-url`, baseUrl);\n\n this.#addRampsCommonParams(url);\n\n const widgetParams: Record<string, string | number> = {\n referrerDomain: this.#referrerDomain,\n fiatCurrency: quote.fiatCurrency,\n cryptoCurrencyCode: quote.cryptoCurrency,\n fiatAmount: quote.fiatAmount,\n network: quote.network,\n paymentMethod: quote.paymentMethod,\n walletAddress,\n hideExchangeScreen: 'true',\n disableWalletAddressEdit: 'true',\n hideMenu: 'true',\n redirectURL:\n 'https://on-ramp-content.api.cx.metamask.io/regions/fake-callback',\n ...extraParams,\n };\n\n const headers: Record<string, string> = {\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n Authorization: `Bearer ${bearerToken}`,\n };\n if (this.#accessToken?.accessToken) {\n headers['x-transak-access-token'] = this.#accessToken.accessToken;\n }\n\n const response = await this.#policy.execute(async () => {\n const fetchResponse = await this.#fetch(url.toString(), {\n method: 'POST',\n headers,\n body: JSON.stringify({ widgetParams }),\n });\n if (!fetchResponse.ok) {\n await this.#throwTransakApiError(fetchResponse, url);\n }\n return fetchResponse.json() as Promise<{ widgetUrl: string }>;\n });\n\n return response.widgetUrl;\n }\n\n async submitPurposeOfUsageForm(purpose: string[]): Promise<void> {\n this.#ensureAccessToken();\n await this.#transakPost('/api/v2/kyc/purpose-of-usage', {\n purposeList: purpose,\n });\n }\n\n async patchUser(data: PatchUserRequestBody): Promise<unknown> {\n this.#ensureAccessToken();\n return this.#transakPatch('/api/v2/kyc/user', data);\n }\n\n async submitSsnDetails(ssn: string, quoteId: string): Promise<unknown> {\n this.#ensureAccessToken();\n return this.#transakPost('/api/v2/kyc/ssn', { ssn, quoteId });\n }\n\n async confirmPayment(\n orderId: string,\n paymentMethodId: string,\n ): Promise<{ success: boolean }> {\n this.#ensureAccessToken();\n\n const normalizedPaymentMethod =\n normalizePaymentMethodForTranslation(paymentMethodId);\n const translation = await this.getTranslation({\n paymentMethod: normalizedPaymentMethod,\n });\n\n const transakOrderId =\n TransakOrderIdTransformer.extractTransakOrderId(orderId);\n\n return this.#transakPost<{ success: boolean }>(\n '/api/v2/orders/payment-confirmation',\n {\n orderId: transakOrderId,\n paymentMethod: translation.paymentMethod ?? normalizedPaymentMethod,\n },\n );\n }\n\n async getTranslation(\n translationRequest: TransakTranslationRequest,\n ): Promise<TransakQuoteTranslation> {\n const baseUrl = getRampsBaseUrl(this.#environment);\n const providerPath = getRampsProviderPath(this.#environment);\n const url = new URL(`${providerPath}/native/translate`, baseUrl);\n\n url.searchParams.set('action', 'deposit');\n url.searchParams.set('context', this.#context);\n\n const normalizedRequest = {\n ...translationRequest,\n paymentMethod: normalizePaymentMethodForTranslation(\n translationRequest.paymentMethod,\n ),\n };\n\n for (const [key, value] of Object.entries(normalizedRequest)) {\n if (value !== undefined) {\n url.searchParams.set(key, value);\n }\n }\n\n const response = await this.#policy.execute(async () => {\n const fetchResponse = await this.#fetch(url.toString(), {\n method: 'GET',\n headers: { Accept: 'application/json' },\n });\n if (!fetchResponse.ok) {\n throw new HttpError(\n fetchResponse.status,\n `Fetching '${url.toString()}' failed with status '${fetchResponse.status}'`,\n );\n }\n return fetchResponse.json() as Promise<TransakQuoteTranslation>;\n });\n\n return response;\n }\n\n async getIdProofStatus(workFlowRunId: string): Promise<TransakIdProofStatus> {\n this.#ensureAccessToken();\n return this.#transakGet<TransakIdProofStatus>(\n '/api/v2/kyc/id-proof-status',\n { workFlowRunId },\n );\n }\n\n async cancelOrder(depositOrderId: string): Promise<void> {\n this.#ensureAccessToken();\n const transakOrderId =\n TransakOrderIdTransformer.extractTransakOrderId(depositOrderId);\n await this.#transakDelete(`/api/v2/orders/${transakOrderId}`, {\n cancelReason: 'Creating new order',\n });\n }\n\n async cancelAllActiveOrders(): Promise<Error[]> {\n this.#ensureAccessToken();\n const activeOrders = await this.getActiveOrders();\n const errors: Error[] = [];\n\n await Promise.all(\n activeOrders.map(async (order) => {\n try {\n const depositOrderId =\n TransakOrderIdTransformer.transakOrderIdToDepositOrderId(\n order.orderId,\n this.#environment,\n );\n await this.cancelOrder(depositOrderId);\n } catch (error) {\n errors.push(\n error instanceof Error ? error : new Error(String(error)),\n );\n }\n }),\n );\n\n return errors;\n }\n\n async getActiveOrders(): Promise<TransakOrder[]> {\n this.#ensureAccessToken();\n return this.#transakGet<TransakOrder[]>('/api/v2/active-orders');\n }\n}\n"]}
package/dist/index.d.ts CHANGED
@@ -21,7 +21,7 @@ export type { TypedError } from './errorNormalization.js';
21
21
  export { getErrorMessage, extractExplicitTypedError, normalizeToTypedError, } from './errorNormalization.js';
22
22
  export type { UserStorageRampsOrderEntry, SyncRampsOrder, OrderSyncingController, OrderSyncingOptions, SyncOrdersWithUserStorageConfig, } from './order-syncing/index.js';
23
23
  export { USER_STORAGE_RAMPS_ORDERS_FEATURE, USER_STORAGE_VERSION, USER_STORAGE_VERSION_KEY, createOrderStorageKey, isSyncableOrder, mapRampsOrderToUserStorageEntry, mapUserStorageEntryToRampsOrder, stripPaymentDetailsForRemoteStorage, stripSyncMetadata, stripDeletedAt, areOrdersEqual, canPerformOrderSyncing, syncOrdersWithUserStorage, updateOrderInUserStorage, deleteOrderInUserStorage, } from './order-syncing/index.js';
24
- export type { TransakServiceActions, TransakServiceCacheUpdatedEvent, TransakServiceEvents, TransakServiceGranularCacheUpdatedEvent, TransakServiceInvalidateQueriesAction, TransakServiceMessenger, TransakAccessToken, TransakUserDetails, TransakUserDetailsAddress, TransakUserDetailsKycDetails, TransakBuyQuote, TransakKycRequirement, TransakAdditionalRequirement, TransakAdditionalRequirementsResponse, TransakOttResponse, TransakOrderPaymentMethod, TransakDepositOrder, TransakDepositNetwork, TransakDepositCryptoCurrency, TransakDepositPaymentMethod, TransakDepositRegion, TransakOrder, TransakQuoteTranslation, TransakTranslationRequest, TransakUserLimits, TransakIdProofStatus, PatchUserRequestBody as TransakPatchUserRequestBody, } from './TransakService.js';
24
+ export type { TransakServiceActions, TransakServiceEvents, TransakServiceMessenger, TransakAccessToken, TransakUserDetails, TransakUserDetailsAddress, TransakUserDetailsKycDetails, TransakBuyQuote, TransakKycRequirement, TransakAdditionalRequirement, TransakAdditionalRequirementsResponse, TransakOttResponse, TransakOrderPaymentMethod, TransakDepositOrder, TransakDepositNetwork, TransakDepositCryptoCurrency, TransakDepositPaymentMethod, TransakDepositRegion, TransakOrder, TransakQuoteTranslation, TransakTranslationRequest, TransakUserLimits, TransakIdProofStatus, PatchUserRequestBody as TransakPatchUserRequestBody, } from './TransakService.js';
25
25
  export { TransakApiError, TransakService, TransakEnvironment, TransakOrderIdTransformer, } from './TransakService.js';
26
26
  export { getTransakApiMessage, isTransakPhoneRegisteredError, } from './transakApiErrorUtils.js';
27
27
  export type { TransakServiceMethodActions, TransakServiceSendUserOtpAction, TransakServiceVerifyUserOtpAction, TransakServiceGetUserDetailsAction, TransakServiceGetBuyQuoteAction, TransakServiceGetKycRequirementAction, TransakServiceCreateOrderAction, TransakServiceGetOrderAction, TransakServiceRequestOttAction, TransakServiceGeneratePaymentWidgetUrlAction, TransakServiceCreateWidgetUrlAction, } from './TransakService-method-action-types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAyFA,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,0BAA0B,EAC1B,8BAA8B,EAC9B,oBAAoB,EACpB,yCAAyC,EACzC,4CAA4C,GAC7C,MAAM,sBAAsB,CAAC;AA2C9B,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,6BAA6B,GAC9B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAmB9B,OAAO,EACL,aAAa,EACb,yBAAyB,EACzB,8BAA8B,EAC9B,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,OAAO,EACL,sCAAsC,EACtC,qCAAqC,EACrC,4BAA4B,EAC5B,6BAA6B,GAC9B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,eAAe,EACf,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AAQjC,OAAO,EACL,iCAAiC,EACjC,oBAAoB,EACpB,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,EACf,+BAA+B,EAC/B,+BAA+B,EAC/B,mCAAmC,EACnC,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,0BAA0B,CAAC;AA8BlC,OAAO,EACL,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,oBAAoB,EACpB,6BAA6B,GAC9B,MAAM,2BAA2B,CAAC;AAoBnC,OAAO,EACL,cAAc,EACd,0BAA0B,EAC1B,yBAAyB,EACzB,wBAAwB,EACxB,uBAAuB,EACvB,qBAAqB,EACrB,yBAAyB,EACzB,oBAAoB,EACpB,wBAAwB,EACxB,8BAA8B,EAC9B,mCAAmC,GACpC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAM/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AA+CzE,OAAO,EACL,cAAc,EACd,WAAW,IAAI,kBAAkB,EACjC,kCAAkC,EAClC,6BAA6B,EAC7B,gCAAgC,GACjC,MAAM,qBAAqB,CAAC;AAQ7B,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC","sourcesContent":["export type {\n RampsControllerActions,\n RampsControllerEvents,\n RampsControllerGetStateAction,\n RampsControllerMessenger,\n RampsControllerState,\n RampsControllerStateChangeEvent,\n RampsControllerOrderStatusChangedEvent,\n RampsControllerAutorampStatusChangedEvent,\n AutorampTransactionStatusChangedPayload,\n RampsControllerOptions,\n PaymentMethodsForContextResponse,\n UserRegion,\n ResourceState,\n TransakState,\n NativeProvidersState,\n MoneyAccountWalletRegistration,\n MoneyAccountWalletRegistrationResult,\n KeyringControllerSignPersonalMessageAction,\n VbaAutorampStatus,\n VbaKycStatus,\n VbaOnboardingSnapshot,\n VbaProviderFlowStatus,\n} from './RampsController.js';\nexport type {\n RampsControllerExecuteRequestAction,\n RampsControllerAbortRequestAction,\n RampsControllerGetRequestStateAction,\n RampsControllerSetUserRegionAction,\n RampsControllerSetSelectedProviderAction,\n RampsControllerSetSelectedProviderForAssetAction,\n RampsControllerInitAction,\n RampsControllerGetCountriesAction,\n RampsControllerGetTokensAction,\n RampsControllerSetSelectedTokenAction,\n RampsControllerGetProvidersAction,\n RampsControllerGetPaymentMethodsAction,\n RampsControllerGetPaymentMethodsForContextAction,\n RampsControllerSetSelectedPaymentMethodAction,\n RampsControllerGetQuotesAction,\n RampsControllerGetQuoteWithFeesAction,\n RampsControllerAddOrderAction,\n RampsControllerRemoveOrderAction,\n RampsControllerAddAutorampAction,\n RampsControllerCreateAutorampAction,\n RampsControllerHydrateVbaOnboardingAction,\n RampsControllerRemoveAutorampAction,\n RampsControllerRegisterMoneyAccountWalletAction,\n RampsControllerMarkAutorampAsNotifiedAction,\n RampsControllerApplyAutorampStatusFromPushAction,\n RampsControllerRefreshAutorampAction,\n RampsControllerRefreshAutorampsAction,\n RampsControllerRefreshAutorampTransactionsAction,\n RampsControllerRefreshCustomerAbilitiesAction,\n RampsControllerStartOrderPollingAction,\n RampsControllerStopOrderPollingAction,\n RampsControllerGetBuyWidgetDataAction,\n RampsControllerGetFallbackBuyWidgetDataAction,\n RampsControllerAddPrecreatedOrderAction,\n RampsControllerGetOrderAction,\n RampsControllerGetOrderFromCallbackAction,\n RampsControllerTransakSetApiKeyAction,\n RampsControllerTransakSetAccessTokenAction,\n RampsControllerTransakClearAccessTokenAction,\n RampsControllerTransakSetAuthenticatedAction,\n RampsControllerTransakResetStateAction,\n RampsControllerTransakSendUserOtpAction,\n RampsControllerTransakVerifyUserOtpAction,\n RampsControllerTransakLogoutAction,\n RampsControllerTransakGetUserDetailsAction,\n RampsControllerTransakGetBuyQuoteAction,\n RampsControllerTransakGetKycRequirementAction,\n RampsControllerTransakGetAdditionalRequirementsAction,\n RampsControllerTransakCreateOrderAction,\n RampsControllerTransakGetOrderAction,\n RampsControllerTransakGetUserLimitsAction,\n RampsControllerTransakRequestOttAction,\n RampsControllerTransakGeneratePaymentWidgetUrlAction,\n RampsControllerTransakSubmitPurposeOfUsageFormAction,\n RampsControllerTransakPatchUserAction,\n RampsControllerTransakSubmitSsnDetailsAction,\n RampsControllerTransakConfirmPaymentAction,\n RampsControllerTransakGetTranslationAction,\n RampsControllerTransakGetIdProofStatusAction,\n RampsControllerTransakCancelOrderAction,\n RampsControllerTransakCancelAllActiveOrdersAction,\n RampsControllerTransakGetActiveOrdersAction,\n RampsControllerSyncOrdersWithUserStorageAction,\n} from './RampsController-method-action-types.js';\nexport {\n RampsController,\n VBA_AUTORAMP_STATUSES,\n VBA_KYC_STATUSES,\n VBA_PROVIDER_FLOW_STATUSES,\n getDefaultRampsControllerState,\n getInternalOrderCode,\n RAMPS_CONTROLLER_REQUIRED_SERVICE_ACTIONS,\n RAMPS_CONTROLLER_REQUIRED_CONTROLLER_ACTIONS,\n} from './RampsController.js';\nexport type {\n RampsServiceActions,\n RampsServiceEvents,\n RampsServiceMessenger,\n RampsServiceInvalidateQueriesAction,\n RampsServiceCacheUpdatedEvent,\n RampsServiceGranularCacheUpdatedEvent,\n Country,\n State,\n SupportedActions,\n CountryPhone,\n Provider,\n ProviderLink,\n ProviderLogos,\n ProviderBrowserType,\n ProviderLimit,\n ProviderFiatLimits,\n ProviderLimits,\n ProviderSortOrder,\n ProvidersResponse,\n RampAction,\n PaymentMethod,\n PaymentMethodsResponse,\n Quote,\n QuoteError,\n QuoteSortBy,\n QuoteSortOrder,\n QuoteCryptoTranslation,\n QuoteCustomAction,\n QuotesResponse,\n GetQuotesParams,\n RampsToken,\n TokensResponse,\n BuyWidget,\n BuyWidgetFallback,\n RampsOrder,\n RampsOrderNetwork,\n RampsOrderCryptoCurrency,\n RampsOrderFiatCurrency,\n RampsOrderPaymentMethod,\n OrderPaymentDetail,\n} from './RampsService.js';\nexport {\n RampsService,\n RampsEnvironment,\n RampsApiService,\n RampsOrderStatus,\n RAMPS_SDK_VERSION,\n getDefaultRedirectCallbackUrl,\n} from './RampsService.js';\nexport type { RampsClientIdentity } from './client-identity.js';\nexport {\n addRampsClientIdentityParams,\n RAMPS_CLIENT_PRODUCT_PARAM,\n RAMPS_CLIENT_VERSION_PARAM,\n} from './client-identity.js';\nexport type {\n RampsServiceGetDefaultRedirectCallbackUrlAction,\n RampsServiceGetGeolocationAction,\n RampsServiceGetCountriesAction,\n RampsServiceGetPaymentMethodsAction,\n RampsServiceGetQuotesAction,\n RampsServiceGetBuyWidgetUrlAction,\n RampsServiceGetOrderAction,\n RampsServiceGetOrderFromCallbackAction,\n} from './RampsService-method-action-types.js';\nexport type {\n RequestCache,\n RequestState,\n ExecuteRequestOptions,\n PendingRequest,\n ResourceType,\n} from './RequestCache.js';\nexport type { RampsErrorCode } from './rampsErrorCodes.js';\nexport {\n RequestStatus,\n DEFAULT_REQUEST_CACHE_TTL,\n DEFAULT_REQUEST_CACHE_MAX_SIZE,\n createCacheKey,\n isCacheExpired,\n createLoadingState,\n createSuccessState,\n createErrorState,\n} from './RequestCache.js';\nexport { RAMPS_ERROR_CODES } from './rampsErrorCodes.js';\nexport type { RequestSelectorResult } from './selectors.js';\nexport { createRequestSelector } from './selectors.js';\nexport type { HeadlessFeatureFlagsLookup } from './featureFlags.js';\nexport {\n HEADLESS_ALL_PROVIDERS_FEATURE_VERSION,\n MONEY_HEADLESS_ALL_PROVIDERS_FLAG_KEY,\n getHeadlessProviderAllowlist,\n isHeadlessAllProvidersEnabled,\n} from './featureFlags.js';\nexport {\n normalizeRampsAssetId,\n providerServesAsset,\n getProvidersServingAsset,\n regionHasProviderForAsset,\n isFiatDepositAvailable,\n} from './providerAvailability.js';\nexport {\n isExternalBrowserQuote,\n isCustomActionQuote,\n isInAppOnlyQuote,\n getBuyWidgetFallback,\n} from './quoteClassification.js';\nexport {\n TERMINAL_ORDER_STATUSES,\n isTerminalOrderStatus,\n} from './orderStatus.js';\nexport type { TypedError } from './errorNormalization.js';\nexport {\n getErrorMessage,\n extractExplicitTypedError,\n normalizeToTypedError,\n} from './errorNormalization.js';\nexport type {\n UserStorageRampsOrderEntry,\n SyncRampsOrder,\n OrderSyncingController,\n OrderSyncingOptions,\n SyncOrdersWithUserStorageConfig,\n} from './order-syncing/index.js';\nexport {\n USER_STORAGE_RAMPS_ORDERS_FEATURE,\n USER_STORAGE_VERSION,\n USER_STORAGE_VERSION_KEY,\n createOrderStorageKey,\n isSyncableOrder,\n mapRampsOrderToUserStorageEntry,\n mapUserStorageEntryToRampsOrder,\n stripPaymentDetailsForRemoteStorage,\n stripSyncMetadata,\n stripDeletedAt,\n areOrdersEqual,\n canPerformOrderSyncing,\n syncOrdersWithUserStorage,\n updateOrderInUserStorage,\n deleteOrderInUserStorage,\n} from './order-syncing/index.js';\nexport type {\n TransakServiceActions,\n TransakServiceCacheUpdatedEvent,\n TransakServiceEvents,\n TransakServiceGranularCacheUpdatedEvent,\n TransakServiceInvalidateQueriesAction,\n TransakServiceMessenger,\n TransakAccessToken,\n TransakUserDetails,\n TransakUserDetailsAddress,\n TransakUserDetailsKycDetails,\n TransakBuyQuote,\n TransakKycRequirement,\n TransakAdditionalRequirement,\n TransakAdditionalRequirementsResponse,\n TransakOttResponse,\n TransakOrderPaymentMethod,\n TransakDepositOrder,\n TransakDepositNetwork,\n TransakDepositCryptoCurrency,\n TransakDepositPaymentMethod,\n TransakDepositRegion,\n TransakOrder,\n TransakQuoteTranslation,\n TransakTranslationRequest,\n TransakUserLimits,\n TransakIdProofStatus,\n PatchUserRequestBody as TransakPatchUserRequestBody,\n} from './TransakService.js';\nexport {\n TransakApiError,\n TransakService,\n TransakEnvironment,\n TransakOrderIdTransformer,\n} from './TransakService.js';\nexport {\n getTransakApiMessage,\n isTransakPhoneRegisteredError,\n} from './transakApiErrorUtils.js';\nexport type {\n TransakServiceMethodActions,\n TransakServiceSendUserOtpAction,\n TransakServiceVerifyUserOtpAction,\n TransakServiceGetUserDetailsAction,\n TransakServiceGetBuyQuoteAction,\n TransakServiceGetKycRequirementAction,\n TransakServiceCreateOrderAction,\n TransakServiceGetOrderAction,\n TransakServiceRequestOttAction,\n TransakServiceGeneratePaymentWidgetUrlAction,\n TransakServiceCreateWidgetUrlAction,\n} from './TransakService-method-action-types.js';\nexport type {\n AutorampAccount,\n ApplyAutorampRemoteStatusResult,\n CreateAutorampRequest,\n MusdAutorampDepositRailReadiness,\n} from './autorampAccount.js';\nexport {\n AutorampStatus,\n TERMINAL_AUTORAMP_STATUSES,\n NOTABLE_AUTORAMP_STATUSES,\n isTerminalAutorampStatus,\n normalizeAutorampStatus,\n createAutorampAccount,\n applyAutorampRemoteStatus,\n markAutorampNotified,\n buildMusdAutorampRequest,\n buildBrazilMusdAutorampRequest,\n getMusdAutorampDepositRailReadiness,\n} from './autorampAccount.js';\nexport { buildOwnershipMessage } from './ownership-message.js';\nexport type {\n AutorampTransactionRecord,\n AutorampTransactionRecords,\n AutorampTransactionChange,\n} from './diffAutorampTransactions.js';\nexport { diffAutorampTransactions } from './diffAutorampTransactions.js';\nexport type {\n AutorampDepositInstructions,\n AutorampDepositRailsSummary,\n AutorampRemoteSnapshot,\n AutorampTransactionSummary,\n PixDepositInstructions,\n UsBankDepositInstructions,\n UsBankDepositRail,\n} from './autoramp-types.js';\nexport type {\n NeoBankServiceActions,\n NeoBankServiceCacheUpdatedEvent,\n NeoBankServiceEvents,\n NeoBankServiceGranularCacheUpdatedEvent,\n NeoBankServiceInvalidateQueriesAction,\n NeoBankServiceMessenger,\n NeoBankAutorampResponse,\n NeoBankMicrodeposit,\n NeoBankAbilityCurrency,\n NeoBankAbilityStatus,\n NeoBankCurrencyAbility,\n NeoBankCustomerAbilities,\n NeoBankFiatAbilities,\n NeoBankRequestOptions,\n NeoBankQueryParams,\n GetWalletRegistrationStatusParams,\n RegisterSelfHostedWalletParams,\n} from './NeoBankService.js';\nexport type {\n NeoBankServiceGetAutorampAction,\n NeoBankServiceGetAutorampsAction,\n NeoBankServiceGetPixDepositInstructionsAction,\n NeoBankServiceGetDepositInstructionsAction,\n NeoBankServiceListAutorampTransactionsAction,\n NeoBankServiceRegisterPixAddressAction,\n NeoBankServiceGetAutorampQuoteAction,\n NeoBankServiceCreateAutorampAction,\n NeoBankServiceGetAutorampQuoteForAutorampAction,\n NeoBankServiceAttachAutorampQuoteAction,\n NeoBankServiceGetCustomerByExternalIdAction,\n NeoBankServiceGetMoonpayCustomerIdAction,\n NeoBankServiceGetMicrodepositsAction,\n NeoBankServiceGetCustomerAbilitiesAction,\n NeoBankServiceGetWalletRegistrationStatusAction,\n NeoBankServiceRegisterSelfHostedWalletAction,\n} from './NeoBankService-method-action-types.js';\nexport {\n NeoBankService,\n serviceName as neoBankServiceName,\n mapNeoBankAutorampToRemoteSnapshot,\n extractPixDepositInstructions,\n extractUsBankDepositInstructions,\n} from './NeoBankService.js';\nexport type {\n Blockchain,\n RegistrationOutcome,\n RegistrationStatus,\n SelfHostedRegistration,\n WalletRegistrationErrorKind,\n} from './wallet-registration-service.js';\nexport { WalletRegistrationError } from './wallet-registration-service.js';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAyFA,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,0BAA0B,EAC1B,8BAA8B,EAC9B,oBAAoB,EACpB,yCAAyC,EACzC,4CAA4C,GAC7C,MAAM,sBAAsB,CAAC;AA2C9B,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,6BAA6B,GAC9B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAmB9B,OAAO,EACL,aAAa,EACb,yBAAyB,EACzB,8BAA8B,EAC9B,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,OAAO,EACL,sCAAsC,EACtC,qCAAqC,EACrC,4BAA4B,EAC5B,6BAA6B,GAC9B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,eAAe,EACf,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AAQjC,OAAO,EACL,iCAAiC,EACjC,oBAAoB,EACpB,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,EACf,+BAA+B,EAC/B,+BAA+B,EAC/B,mCAAmC,EACnC,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,sBAAsB,EACtB,yBAAyB,EACzB,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,0BAA0B,CAAC;AA2BlC,OAAO,EACL,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,oBAAoB,EACpB,6BAA6B,GAC9B,MAAM,2BAA2B,CAAC;AAoBnC,OAAO,EACL,cAAc,EACd,0BAA0B,EAC1B,yBAAyB,EACzB,wBAAwB,EACxB,uBAAuB,EACvB,qBAAqB,EACrB,yBAAyB,EACzB,oBAAoB,EACpB,wBAAwB,EACxB,8BAA8B,EAC9B,mCAAmC,GACpC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAM/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AA+CzE,OAAO,EACL,cAAc,EACd,WAAW,IAAI,kBAAkB,EACjC,kCAAkC,EAClC,6BAA6B,EAC7B,gCAAgC,GACjC,MAAM,qBAAqB,CAAC;AAQ7B,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC","sourcesContent":["export type {\n RampsControllerActions,\n RampsControllerEvents,\n RampsControllerGetStateAction,\n RampsControllerMessenger,\n RampsControllerState,\n RampsControllerStateChangeEvent,\n RampsControllerOrderStatusChangedEvent,\n RampsControllerAutorampStatusChangedEvent,\n AutorampTransactionStatusChangedPayload,\n RampsControllerOptions,\n PaymentMethodsForContextResponse,\n UserRegion,\n ResourceState,\n TransakState,\n NativeProvidersState,\n MoneyAccountWalletRegistration,\n MoneyAccountWalletRegistrationResult,\n KeyringControllerSignPersonalMessageAction,\n VbaAutorampStatus,\n VbaKycStatus,\n VbaOnboardingSnapshot,\n VbaProviderFlowStatus,\n} from './RampsController.js';\nexport type {\n RampsControllerExecuteRequestAction,\n RampsControllerAbortRequestAction,\n RampsControllerGetRequestStateAction,\n RampsControllerSetUserRegionAction,\n RampsControllerSetSelectedProviderAction,\n RampsControllerSetSelectedProviderForAssetAction,\n RampsControllerInitAction,\n RampsControllerGetCountriesAction,\n RampsControllerGetTokensAction,\n RampsControllerSetSelectedTokenAction,\n RampsControllerGetProvidersAction,\n RampsControllerGetPaymentMethodsAction,\n RampsControllerGetPaymentMethodsForContextAction,\n RampsControllerSetSelectedPaymentMethodAction,\n RampsControllerGetQuotesAction,\n RampsControllerGetQuoteWithFeesAction,\n RampsControllerAddOrderAction,\n RampsControllerRemoveOrderAction,\n RampsControllerAddAutorampAction,\n RampsControllerCreateAutorampAction,\n RampsControllerHydrateVbaOnboardingAction,\n RampsControllerRemoveAutorampAction,\n RampsControllerRegisterMoneyAccountWalletAction,\n RampsControllerMarkAutorampAsNotifiedAction,\n RampsControllerApplyAutorampStatusFromPushAction,\n RampsControllerRefreshAutorampAction,\n RampsControllerRefreshAutorampsAction,\n RampsControllerRefreshAutorampTransactionsAction,\n RampsControllerRefreshCustomerAbilitiesAction,\n RampsControllerStartOrderPollingAction,\n RampsControllerStopOrderPollingAction,\n RampsControllerGetBuyWidgetDataAction,\n RampsControllerGetFallbackBuyWidgetDataAction,\n RampsControllerAddPrecreatedOrderAction,\n RampsControllerGetOrderAction,\n RampsControllerGetOrderFromCallbackAction,\n RampsControllerTransakSetApiKeyAction,\n RampsControllerTransakSetAccessTokenAction,\n RampsControllerTransakClearAccessTokenAction,\n RampsControllerTransakSetAuthenticatedAction,\n RampsControllerTransakResetStateAction,\n RampsControllerTransakSendUserOtpAction,\n RampsControllerTransakVerifyUserOtpAction,\n RampsControllerTransakLogoutAction,\n RampsControllerTransakGetUserDetailsAction,\n RampsControllerTransakGetBuyQuoteAction,\n RampsControllerTransakGetKycRequirementAction,\n RampsControllerTransakGetAdditionalRequirementsAction,\n RampsControllerTransakCreateOrderAction,\n RampsControllerTransakGetOrderAction,\n RampsControllerTransakGetUserLimitsAction,\n RampsControllerTransakRequestOttAction,\n RampsControllerTransakGeneratePaymentWidgetUrlAction,\n RampsControllerTransakSubmitPurposeOfUsageFormAction,\n RampsControllerTransakPatchUserAction,\n RampsControllerTransakSubmitSsnDetailsAction,\n RampsControllerTransakConfirmPaymentAction,\n RampsControllerTransakGetTranslationAction,\n RampsControllerTransakGetIdProofStatusAction,\n RampsControllerTransakCancelOrderAction,\n RampsControllerTransakCancelAllActiveOrdersAction,\n RampsControllerTransakGetActiveOrdersAction,\n RampsControllerSyncOrdersWithUserStorageAction,\n} from './RampsController-method-action-types.js';\nexport {\n RampsController,\n VBA_AUTORAMP_STATUSES,\n VBA_KYC_STATUSES,\n VBA_PROVIDER_FLOW_STATUSES,\n getDefaultRampsControllerState,\n getInternalOrderCode,\n RAMPS_CONTROLLER_REQUIRED_SERVICE_ACTIONS,\n RAMPS_CONTROLLER_REQUIRED_CONTROLLER_ACTIONS,\n} from './RampsController.js';\nexport type {\n RampsServiceActions,\n RampsServiceEvents,\n RampsServiceMessenger,\n RampsServiceInvalidateQueriesAction,\n RampsServiceCacheUpdatedEvent,\n RampsServiceGranularCacheUpdatedEvent,\n Country,\n State,\n SupportedActions,\n CountryPhone,\n Provider,\n ProviderLink,\n ProviderLogos,\n ProviderBrowserType,\n ProviderLimit,\n ProviderFiatLimits,\n ProviderLimits,\n ProviderSortOrder,\n ProvidersResponse,\n RampAction,\n PaymentMethod,\n PaymentMethodsResponse,\n Quote,\n QuoteError,\n QuoteSortBy,\n QuoteSortOrder,\n QuoteCryptoTranslation,\n QuoteCustomAction,\n QuotesResponse,\n GetQuotesParams,\n RampsToken,\n TokensResponse,\n BuyWidget,\n BuyWidgetFallback,\n RampsOrder,\n RampsOrderNetwork,\n RampsOrderCryptoCurrency,\n RampsOrderFiatCurrency,\n RampsOrderPaymentMethod,\n OrderPaymentDetail,\n} from './RampsService.js';\nexport {\n RampsService,\n RampsEnvironment,\n RampsApiService,\n RampsOrderStatus,\n RAMPS_SDK_VERSION,\n getDefaultRedirectCallbackUrl,\n} from './RampsService.js';\nexport type { RampsClientIdentity } from './client-identity.js';\nexport {\n addRampsClientIdentityParams,\n RAMPS_CLIENT_PRODUCT_PARAM,\n RAMPS_CLIENT_VERSION_PARAM,\n} from './client-identity.js';\nexport type {\n RampsServiceGetDefaultRedirectCallbackUrlAction,\n RampsServiceGetGeolocationAction,\n RampsServiceGetCountriesAction,\n RampsServiceGetPaymentMethodsAction,\n RampsServiceGetQuotesAction,\n RampsServiceGetBuyWidgetUrlAction,\n RampsServiceGetOrderAction,\n RampsServiceGetOrderFromCallbackAction,\n} from './RampsService-method-action-types.js';\nexport type {\n RequestCache,\n RequestState,\n ExecuteRequestOptions,\n PendingRequest,\n ResourceType,\n} from './RequestCache.js';\nexport type { RampsErrorCode } from './rampsErrorCodes.js';\nexport {\n RequestStatus,\n DEFAULT_REQUEST_CACHE_TTL,\n DEFAULT_REQUEST_CACHE_MAX_SIZE,\n createCacheKey,\n isCacheExpired,\n createLoadingState,\n createSuccessState,\n createErrorState,\n} from './RequestCache.js';\nexport { RAMPS_ERROR_CODES } from './rampsErrorCodes.js';\nexport type { RequestSelectorResult } from './selectors.js';\nexport { createRequestSelector } from './selectors.js';\nexport type { HeadlessFeatureFlagsLookup } from './featureFlags.js';\nexport {\n HEADLESS_ALL_PROVIDERS_FEATURE_VERSION,\n MONEY_HEADLESS_ALL_PROVIDERS_FLAG_KEY,\n getHeadlessProviderAllowlist,\n isHeadlessAllProvidersEnabled,\n} from './featureFlags.js';\nexport {\n normalizeRampsAssetId,\n providerServesAsset,\n getProvidersServingAsset,\n regionHasProviderForAsset,\n isFiatDepositAvailable,\n} from './providerAvailability.js';\nexport {\n isExternalBrowserQuote,\n isCustomActionQuote,\n isInAppOnlyQuote,\n getBuyWidgetFallback,\n} from './quoteClassification.js';\nexport {\n TERMINAL_ORDER_STATUSES,\n isTerminalOrderStatus,\n} from './orderStatus.js';\nexport type { TypedError } from './errorNormalization.js';\nexport {\n getErrorMessage,\n extractExplicitTypedError,\n normalizeToTypedError,\n} from './errorNormalization.js';\nexport type {\n UserStorageRampsOrderEntry,\n SyncRampsOrder,\n OrderSyncingController,\n OrderSyncingOptions,\n SyncOrdersWithUserStorageConfig,\n} from './order-syncing/index.js';\nexport {\n USER_STORAGE_RAMPS_ORDERS_FEATURE,\n USER_STORAGE_VERSION,\n USER_STORAGE_VERSION_KEY,\n createOrderStorageKey,\n isSyncableOrder,\n mapRampsOrderToUserStorageEntry,\n mapUserStorageEntryToRampsOrder,\n stripPaymentDetailsForRemoteStorage,\n stripSyncMetadata,\n stripDeletedAt,\n areOrdersEqual,\n canPerformOrderSyncing,\n syncOrdersWithUserStorage,\n updateOrderInUserStorage,\n deleteOrderInUserStorage,\n} from './order-syncing/index.js';\nexport type {\n TransakServiceActions,\n TransakServiceEvents,\n TransakServiceMessenger,\n TransakAccessToken,\n TransakUserDetails,\n TransakUserDetailsAddress,\n TransakUserDetailsKycDetails,\n TransakBuyQuote,\n TransakKycRequirement,\n TransakAdditionalRequirement,\n TransakAdditionalRequirementsResponse,\n TransakOttResponse,\n TransakOrderPaymentMethod,\n TransakDepositOrder,\n TransakDepositNetwork,\n TransakDepositCryptoCurrency,\n TransakDepositPaymentMethod,\n TransakDepositRegion,\n TransakOrder,\n TransakQuoteTranslation,\n TransakTranslationRequest,\n TransakUserLimits,\n TransakIdProofStatus,\n PatchUserRequestBody as TransakPatchUserRequestBody,\n} from './TransakService.js';\nexport {\n TransakApiError,\n TransakService,\n TransakEnvironment,\n TransakOrderIdTransformer,\n} from './TransakService.js';\nexport {\n getTransakApiMessage,\n isTransakPhoneRegisteredError,\n} from './transakApiErrorUtils.js';\nexport type {\n TransakServiceMethodActions,\n TransakServiceSendUserOtpAction,\n TransakServiceVerifyUserOtpAction,\n TransakServiceGetUserDetailsAction,\n TransakServiceGetBuyQuoteAction,\n TransakServiceGetKycRequirementAction,\n TransakServiceCreateOrderAction,\n TransakServiceGetOrderAction,\n TransakServiceRequestOttAction,\n TransakServiceGeneratePaymentWidgetUrlAction,\n TransakServiceCreateWidgetUrlAction,\n} from './TransakService-method-action-types.js';\nexport type {\n AutorampAccount,\n ApplyAutorampRemoteStatusResult,\n CreateAutorampRequest,\n MusdAutorampDepositRailReadiness,\n} from './autorampAccount.js';\nexport {\n AutorampStatus,\n TERMINAL_AUTORAMP_STATUSES,\n NOTABLE_AUTORAMP_STATUSES,\n isTerminalAutorampStatus,\n normalizeAutorampStatus,\n createAutorampAccount,\n applyAutorampRemoteStatus,\n markAutorampNotified,\n buildMusdAutorampRequest,\n buildBrazilMusdAutorampRequest,\n getMusdAutorampDepositRailReadiness,\n} from './autorampAccount.js';\nexport { buildOwnershipMessage } from './ownership-message.js';\nexport type {\n AutorampTransactionRecord,\n AutorampTransactionRecords,\n AutorampTransactionChange,\n} from './diffAutorampTransactions.js';\nexport { diffAutorampTransactions } from './diffAutorampTransactions.js';\nexport type {\n AutorampDepositInstructions,\n AutorampDepositRailsSummary,\n AutorampRemoteSnapshot,\n AutorampTransactionSummary,\n PixDepositInstructions,\n UsBankDepositInstructions,\n UsBankDepositRail,\n} from './autoramp-types.js';\nexport type {\n NeoBankServiceActions,\n NeoBankServiceCacheUpdatedEvent,\n NeoBankServiceEvents,\n NeoBankServiceGranularCacheUpdatedEvent,\n NeoBankServiceInvalidateQueriesAction,\n NeoBankServiceMessenger,\n NeoBankAutorampResponse,\n NeoBankMicrodeposit,\n NeoBankAbilityCurrency,\n NeoBankAbilityStatus,\n NeoBankCurrencyAbility,\n NeoBankCustomerAbilities,\n NeoBankFiatAbilities,\n NeoBankRequestOptions,\n NeoBankQueryParams,\n GetWalletRegistrationStatusParams,\n RegisterSelfHostedWalletParams,\n} from './NeoBankService.js';\nexport type {\n NeoBankServiceGetAutorampAction,\n NeoBankServiceGetAutorampsAction,\n NeoBankServiceGetPixDepositInstructionsAction,\n NeoBankServiceGetDepositInstructionsAction,\n NeoBankServiceListAutorampTransactionsAction,\n NeoBankServiceRegisterPixAddressAction,\n NeoBankServiceGetAutorampQuoteAction,\n NeoBankServiceCreateAutorampAction,\n NeoBankServiceGetAutorampQuoteForAutorampAction,\n NeoBankServiceAttachAutorampQuoteAction,\n NeoBankServiceGetCustomerByExternalIdAction,\n NeoBankServiceGetMoonpayCustomerIdAction,\n NeoBankServiceGetMicrodepositsAction,\n NeoBankServiceGetCustomerAbilitiesAction,\n NeoBankServiceGetWalletRegistrationStatusAction,\n NeoBankServiceRegisterSelfHostedWalletAction,\n} from './NeoBankService-method-action-types.js';\nexport {\n NeoBankService,\n serviceName as neoBankServiceName,\n mapNeoBankAutorampToRemoteSnapshot,\n extractPixDepositInstructions,\n extractUsBankDepositInstructions,\n} from './NeoBankService.js';\nexport type {\n Blockchain,\n RegistrationOutcome,\n RegistrationStatus,\n SelfHostedRegistration,\n WalletRegistrationErrorKind,\n} from './wallet-registration-service.js';\nexport { WalletRegistrationError } from './wallet-registration-service.js';\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metamask-previews/ramps-controller",
3
- "version": "29.0.0-preview-dd61a447a",
3
+ "version": "29.0.0-preview-77efa7863",
4
4
  "description": "A controller for managing cryptocurrency on/off ramps functionality",
5
5
  "keywords": [
6
6
  "Ethereum",