@metamask-previews/ramps-controller 29.0.0-preview-c3d36da85 → 29.0.0-preview-d44afa95d

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,16 +9,25 @@ 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))
12
13
  - Add `RampsServiceInvalidateQueriesAction`, `RampsServiceCacheUpdatedEvent` and `RampsServiceGranularCacheUpdatedEvent`, also included in `RampsServiceActions` and `RampsServiceEvents` ([#11214](https://github.com/MetaMask/core/pull/11214))
13
14
  - Add `NeoBankServiceInvalidateQueriesAction`, `NeoBankServiceCacheUpdatedEvent` and `NeoBankServiceGranularCacheUpdatedEvent`, also included in `NeoBankServiceActions` and `NeoBankServiceEvents` ([#10882](https://github.com/MetaMask/core/pull/10882))
14
15
 
15
16
  ### Changed
16
17
 
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 reads and writes now share one circuit breaker (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
+ - The constructor options are unchanged.
17
22
  - **BREAKING:** `RampsService` now extends `BaseDataService` from `@metamask/base-data-service` ([#11214](https://github.com/MetaMask/core/pull/11214))
18
23
  - 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.
19
24
  - `RampsServiceMessenger` now includes the `RampsService:invalidateQueries` action and the `RampsService:cacheUpdated` events. Messengers built from `RampsServiceActions` and `RampsServiceEvents` pick these up automatically.
20
25
  - **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))
21
26
  - `NeoBankServiceMessenger` now includes the `NeoBankService:invalidateQueries` action and `NeoBankService:cacheUpdated` events. Messengers built from `NeoBankServiceActions` / `NeoBankServiceEvents` pick these up automatically.
27
+ - 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))
28
+ - 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))
29
+ - 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))
30
+ - Reads and writes now share one circuit breaker. Previously `verifyUserOtp` had its own ([#11216](https://github.com/MetaMask/core/pull/11216))
22
31
  - 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))
23
32
  - 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))
24
33
  - `NeoBankService.getAutorampQuote`, `getAutorampQuoteForAutoramp`, `getCustomerByExternalId`, `registerPixAddress` and `attachAutorampQuote` now return `Promise<Json>` instead of `Promise<unknown>` ([#10882](https://github.com/MetaMask/core/pull/10882))
@@ -1,4 +1,5 @@
1
- import type { CreateServicePolicyOptions } from '@metamask/controller-utils';
1
+ import { BaseDataService } from '@metamask/base-data-service';
2
+ import type { CreateServicePolicyOptions, DataServiceCacheUpdatedEvent, DataServiceGranularCacheUpdatedEvent, DataServiceInvalidateQueriesAction } from '@metamask/base-data-service';
2
3
  import { HttpError } from '@metamask/controller-utils';
3
4
  import type { Messenger } from '@metamask/messenger';
4
5
  import type { AuthenticationController } from '@metamask/profile-sync-controller';
@@ -274,12 +275,25 @@ export declare class TransakOrderIdTransformer {
274
275
  static extractTransakOrderId(orderId: string): string;
275
276
  }
276
277
  declare const serviceName = "TransakService";
277
- export type TransakServiceActions = TransakServiceMethodActions;
278
+ /**
279
+ * Invalidates cached queries held by {@link TransakService}.
280
+ */
281
+ export type TransakServiceInvalidateQueriesAction = DataServiceInvalidateQueriesAction<typeof serviceName>;
282
+ export type TransakServiceActions = TransakServiceMethodActions | TransakServiceInvalidateQueriesAction;
278
283
  /**
279
284
  * Actions from other messengers that {@link TransakService} calls.
280
285
  */
281
286
  type AllowedActions = AuthenticationController.AuthenticationControllerGetBearerTokenAction;
282
- export type TransakServiceEvents = never;
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;
283
297
  type AllowedEvents = never;
284
298
  export type TransakServiceMessenger = Messenger<typeof serviceName, TransakServiceActions | AllowedActions, TransakServiceEvents | AllowedEvents>;
285
299
  export declare class TransakApiError extends HttpError {
@@ -287,9 +301,8 @@ export declare class TransakApiError extends HttpError {
287
301
  readonly apiMessage: string | undefined;
288
302
  constructor(status: number, message: string, errorCode?: string, apiMessage?: string);
289
303
  }
290
- export declare class TransakService {
304
+ export declare class TransakService extends BaseDataService<typeof serviceName, TransakServiceMessenger> {
291
305
  #private;
292
- readonly name: typeof serviceName;
293
306
  constructor({ messenger, environment, context, fetch: fetchFunction, apiKey, policyOptions, orderRetryDelayMs, rampsApiBaseUrlOverride, referrerDomain, clientProduct, clientVersion, }: {
294
307
  messenger: TransakServiceMessenger;
295
308
  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":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EACV,0BAA0B,EAC1B,4BAA4B,EAC5B,oCAAoC,EACpC,kCAAkC,EACnC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAmBlF,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,yCAAyC,CAAC;AAI3F,MAAM,MAAM,kBAAkB,GAAG;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,IAAI,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,4BAA4B,CAAC;IAClC,OAAO,EAAE,yBAAyB,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,4BAA4B,EAAE,CAAC;IACzC,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,gBAAgB,EAAE,4CAA4C,GAAG,IAAI,CAAC;IACtE,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,SAAS,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC5C,QAAQ,EAAE;QACR,WAAW,EAAE;YACX,WAAW,EAAE,MAAM,CAAC;YACpB,aAAa,EAAE,MAAM,CAAC;YACtB,UAAU,EAAE,MAAM,CAAC;SACpB,CAAC;KACH,CAAC;IACF,gBAAgB,EAAE,4CAA4C,CAAC;IAC/D,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,4CAA4C,GAAG;IACzD,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAA;KAAE,EAAE,CAAC;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,uBAAuB,EAAE,MAAM,CAAC;IAChC,KAAK,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAA;KAAE,EAAE,CAAC;IAC9D,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,EACF,eAAe,GACf,UAAU,GACV,2BAA2B,GAC3B,WAAW,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,qBAAqB,EAAE,OAAO,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE;QACT,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,oBAAoB,EAAE,MAAM,EAAE,CAAC;QAC/B,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,qCAAqC,GAAG;IAClD,aAAa,EAAE,4BAA4B,EAAE,CAAC;CAC/C,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACvD,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACjE,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,4BAA4B,CAAC;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,2BAA2B,CAAC;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,qBAAqB,CAAC;IAC/B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,yBAAyB,EAAE,CAAC;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,yBAAyB,EAAE,CAAC;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACrD,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACpD,SAAS,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACxD,QAAQ,EAAE;QAAE,GAAG,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC;IAC1D,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC;IACzC,eAAe,EAAE,OAAO,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,GAAG,EAAE,MAAM,CAAC;KACb,CAAC,CAAC;IACH,cAAc,EAAE,OAAO,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;CACJ,CAAC,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,eAAe,GAAG,WAAW,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB,EAAE,MAAM,CAAC;CAC7B,CAAC;AAIF,oBAAY,kBAAkB;IAC5B,UAAU,eAAe;IACzB,OAAO,YAAY;IACnB,WAAW,gBAAgB;CAC5B;AASD,qBAAa,yBAAyB;IACpC,MAAM,CAAC,8BAA8B,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAGpE;IAED,MAAM,CAAC,8BAA8B,CACnC,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,kBAAkB,GAC9B,MAAM,CAMR;IAED,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEhD;IAED,MAAM,CAAC,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAIpD;CACF;AAID,QAAA,MAAM,WAAW,mBAAmB,CAAC;AA8BrC;;GAEG;AACH,MAAM,MAAM,qCAAqC,GAC/C,kCAAkC,CAAC,OAAO,WAAW,CAAC,CAAC;AAEzD,MAAM,MAAM,qBAAqB,GAC7B,2BAA2B,GAC3B,qCAAqC,CAAC;AAE1C;;GAEG;AACH,KAAK,cAAc,GACjB,wBAAwB,CAAC,4CAA4C,CAAC;AAExE;;GAEG;AACH,MAAM,MAAM,+BAA+B,GAAG,4BAA4B,CACxE,OAAO,WAAW,CACnB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,uCAAuC,GACjD,oCAAoC,CAAC,OAAO,WAAW,CAAC,CAAC;AAE3D,MAAM,MAAM,oBAAoB,GAC5B,+BAA+B,GAC/B,uCAAuC,CAAC;AAE5C,KAAK,aAAa,GAAG,KAAK,CAAC;AAE3B,MAAM,MAAM,uBAAuB,GAAG,SAAS,CAC7C,OAAO,WAAW,EAClB,qBAAqB,GAAG,cAAc,EACtC,oBAAoB,GAAG,aAAa,CACrC,CAAC;AAsGF,qBAAa,eAAgB,SAAQ,SAAS;IAC5C,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAEvC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAExC,YACE,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,MAAM,EAKpB;CACF;AAoJD,qBAAa,cAAe,SAAQ,eAAe,CACjD,OAAO,WAAW,EAClB,uBAAuB,CACxB;;IA6BC,YAAY,EACV,SAAS,EACT,WAAwC,EACxC,OAAO,EACP,KAAK,EAAE,aAAa,EACpB,MAAM,EACN,aAAa,EACb,iBAAwB,EACxB,uBAAuB,EACvB,cAAwC,EACxC,aAAa,EACb,aAAa,GACd,EAAE;QACD,SAAS,EAAE,uBAAuB,CAAC;QACnC,WAAW,CAAC,EAAE,kBAAkB,CAAC;QACjC,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,OAAO,KAAK,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,aAAa,CAAC,EAAE,0BAA0B,CAAC;QAC3C,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,uBAAuB,CAAC,EAAE,MAAM,CAAC;QACjC,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,EAkBA;IAED,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAE9B;IAED,SAAS,IAAI,MAAM,GAAG,IAAI,CAEzB;IASD,cAAc,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAE9C;IAED,cAAc,IAAI,kBAAkB,GAAG,IAAI,CAE1C;IAED,gBAAgB,IAAI,IAAI,CAEvB;IAiUK,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QACxC,aAAa,EAAE,OAAO,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC,CAUD;IAEK,aAAa,CACjB,KAAK,EAAE,MAAM,EACb,gBAAgB,EAAE,MAAM,EACxB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,kBAAkB,CAAC,CAmB7B;IAEK,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAiB9B;IAEK,cAAc,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAOlD;IAEK,WAAW,CACf,mBAAmB,EAAE,MAAM,EAC3B,qBAAqB,EAAE,MAAM,EAC7B,cAAc,EAAE,MAAM,EACtB,oBAAoB,EAAE,MAAM,EAC5B,UAAU,EAAE,MAAM,EAClB,qBAAqB,UAAO,GAC3B,OAAO,CAAC,eAAe,CAAC,CAsC1B;IAEK,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAWvE;IAEK,yBAAyB,CAC7B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,qCAAqC,CAAC,CAQhD;IAEK,WAAW,CACf,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,EACrB,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,mBAAmB,CAAC,CAuE9B;IAEK,QAAQ,CACZ,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,cAAc,CAAC,EAAE,yBAAyB,EAAE,GAC3C,OAAO,CAAC,mBAAmB,CAAC,CA6C9B;IAEK,aAAa,CACjB,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,iBAAiB,CAAC,CAuB5B;IAED;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAQ9C;IAED;;;;;;;;OAQG;IACH,wBAAwB,CACtB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,eAAe,EACtB,aAAa,EAAE,MAAM,EACrB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,MAAM,CA6BR;IAED;;;;;;;;;;;;;;;OAeG;IACG,eAAe,CACnB,KAAK,EAAE,eAAe,EACtB,aAAa,EAAE,MAAM,EACrB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,OAAO,CAAC,MAAM,CAAC,CAiDjB;IAEK,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ/D;IAEK,SAAS,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,CAG5D;IAEK,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAMrE;IAEK,cAAc,CAClB,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAqB/B;IAEK,cAAc,CAClB,kBAAkB,EAAE,yBAAyB,GAC5C,OAAO,CAAC,uBAAuB,CAAC,CA0ClC;IAEK,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAQ3E;IAEK,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAWvD;IAEK,qBAAqB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,CAuB9C;IAEK,eAAe,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAO/C;CACF"}
@@ -1,4 +1,6 @@
1
- import { createServicePolicy, HttpError } from '@metamask/controller-utils';
1
+ import { BaseDataService } from '@metamask/base-data-service';
2
+ import { HttpError } from '@metamask/controller-utils';
3
+ import { any, array, boolean, number, optional, record, string, type as looseObject, } from '@metamask/superstruct';
2
4
  import packageJson from '../package.json';
3
5
  import { addRampsClientIdentityParams } from './client-identity.js';
4
6
  import { RAMPS_SDK_VERSION } from './RampsService.js';
@@ -159,13 +161,126 @@ export class TransakApiError extends HttpError {
159
161
  this.apiMessage = apiMessage;
160
162
  }
161
163
  }
164
+ // === RESPONSE STRUCTS ===
165
+ /**
166
+ * The structs below are intentionally lenient: they check the fields the
167
+ * service and its callers depend on, and ignore any extra fields the APIs
168
+ * return.
169
+ */
170
+ const TransakPaymentDetailsStruct = array(looseObject({
171
+ fiatCurrency: string(),
172
+ paymentMethod: string(),
173
+ fields: array(looseObject({ name: string(), id: string(), value: string() })),
174
+ }));
175
+ const SendUserOtpResponseStruct = looseObject({
176
+ isTncAccepted: boolean(),
177
+ stateToken: string(),
178
+ email: string(),
179
+ expiresIn: number(),
180
+ });
181
+ const VerifyUserOtpResponseStruct = looseObject({
182
+ accessToken: string(),
183
+ ttl: number(),
184
+ created: string(),
185
+ });
186
+ const UserDetailsStruct = looseObject({
187
+ id: string(),
188
+ firstName: string(),
189
+ lastName: string(),
190
+ email: string(),
191
+ mobileNumber: string(),
192
+ status: string(),
193
+ dob: string(),
194
+ kyc: looseObject({
195
+ status: string(),
196
+ type: string(),
197
+ userId: string(),
198
+ workFlowRunId: string(),
199
+ }),
200
+ address: looseObject({
201
+ addressLine1: string(),
202
+ addressLine2: string(),
203
+ state: string(),
204
+ city: string(),
205
+ postCode: string(),
206
+ country: string(),
207
+ countryCode: string(),
208
+ }),
209
+ createdAt: string(),
210
+ });
211
+ const BuyQuoteStruct = looseObject({
212
+ quoteId: string(),
213
+ conversionPrice: number(),
214
+ marketConversionPrice: number(),
215
+ slippage: number(),
216
+ fiatCurrency: string(),
217
+ cryptoCurrency: string(),
218
+ paymentMethod: string(),
219
+ fiatAmount: number(),
220
+ cryptoAmount: number(),
221
+ isBuyOrSell: string(),
222
+ network: string(),
223
+ feeDecimal: number(),
224
+ totalFee: number(),
225
+ feeBreakdown: array(record(string(), any())),
226
+ nonce: number(),
227
+ cryptoLiquidityProvider: string(),
228
+ notes: array(record(string(), any())),
229
+ });
230
+ const KycRequirementStruct = looseObject({
231
+ status: string(),
232
+ kycType: string(),
233
+ isAllowedToPlaceOrder: boolean(),
234
+ });
235
+ const AdditionalRequirementsStruct = looseObject({
236
+ formsRequired: array(looseObject({ type: string(), metadata: optional(any()) })),
237
+ });
238
+ const TransakOrderStruct = looseObject({
239
+ orderId: string(),
240
+ walletAddress: string(),
241
+ paymentDetails: optional(TransakPaymentDetailsStruct),
242
+ });
243
+ const ActiveOrdersStruct = array(looseObject({ orderId: string(), status: string() }));
244
+ const DepositOrderStruct = looseObject({
245
+ providerOrderId: string(),
246
+ status: string(),
247
+ });
248
+ const UserLimitsStruct = looseObject({
249
+ limits: looseObject({ '1': number(), '30': number(), '365': number() }),
250
+ spent: looseObject({ '1': number(), '30': number(), '365': number() }),
251
+ remaining: looseObject({ '1': number(), '30': number(), '365': number() }),
252
+ exceeded: looseObject({ '1': boolean(), '30': boolean(), '365': boolean() }),
253
+ shortage: record(string(), number()),
254
+ });
255
+ const OttStruct = looseObject({ ott: string() });
256
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
257
+ const TranslationStruct = looseObject({
258
+ region: optional(string()),
259
+ paymentMethod: optional(string()),
260
+ cryptoCurrency: string(),
261
+ network: string(),
262
+ fiatCurrency: string(),
263
+ });
264
+ const IdProofStatusStruct = looseObject({
265
+ status: string(),
266
+ kycType: string(),
267
+ randomLogIdentifier: optional(string()),
268
+ });
269
+ const PaymentConfirmationStruct = looseObject({ success: boolean() });
270
+ const WidgetUrlResponseStruct = looseObject({ widgetUrl: string() });
271
+ /**
272
+ * Wraps a struct in the `{ data }` envelope the Transak API gateway uses.
273
+ *
274
+ * @param dataStruct - The struct for the `data` property.
275
+ * @returns The envelope struct.
276
+ */
277
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
278
+ function envelope(dataStruct) {
279
+ return looseObject({ data: dataStruct });
280
+ }
162
281
  // === SERVICE DEFINITION ===
163
- export class TransakService {
164
- name;
165
- #messenger;
282
+ export class TransakService extends BaseDataService {
166
283
  #fetch;
167
- #policy;
168
- #noRetryPolicy;
169
284
  #environment;
170
285
  #context;
171
286
  #orderRetryDelayMs;
@@ -184,15 +299,9 @@ export class TransakService {
184
299
  */
185
300
  #referrerDomain;
186
301
  #clientIdentity;
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;
302
+ constructor({ messenger, environment = TransakEnvironment.Staging, context, fetch: fetchFunction, apiKey, policyOptions, orderRetryDelayMs = 2000, rampsApiBaseUrlOverride, referrerDomain = TRANSAK_REFERRER_DOMAIN, clientProduct, clientVersion, }) {
303
+ super({ name: serviceName, messenger, policyOptions });
190
304
  this.#fetch = fetchFunction;
191
- this.#policy = createServicePolicy(policyOptions);
192
- this.#noRetryPolicy = createServicePolicy({
193
- ...policyOptions,
194
- maxRetries: 0,
195
- });
196
305
  this.#environment = environment;
197
306
  this.#context = context;
198
307
  this.#apiKey = apiKey ?? null;
@@ -203,7 +312,7 @@ export class TransakService {
203
312
  clientProduct,
204
313
  clientVersion,
205
314
  };
206
- this.#messenger.registerMethodActionHandlers(this, MESSENGER_EXPOSED_METHODS);
315
+ this.messenger.registerMethodActionHandlers(this, MESSENGER_EXPOSED_METHODS);
207
316
  }
208
317
  setApiKey(apiKey) {
209
318
  this.#apiKey = apiKey;
@@ -270,7 +379,21 @@ export class TransakService {
270
379
  }
271
380
  throw new TransakApiError(fetchResponse.status, `Fetching '${url.toString()}' failed with status '${fetchResponse.status}'${errorBody ? `: ${errorBody}` : ''}`, errorCode, apiMessage);
272
381
  }
273
- async #transakGet(path, params) {
382
+ /**
383
+ * Identifies the current login session without exposing the access token,
384
+ * so reads made under different sessions never share a request.
385
+ *
386
+ * @returns The access token creation time in milliseconds, or `null` when
387
+ * logged out.
388
+ */
389
+ #getSessionId() {
390
+ return this.#accessToken
391
+ ? new Date(this.#accessToken.created).getTime()
392
+ : null;
393
+ }
394
+ async #transakGet(queryName, path,
395
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
396
+ dataStruct, params) {
274
397
  const baseUrl = getTransakApiBaseUrl(this.#environment);
275
398
  const url = new URL(path, baseUrl);
276
399
  if (params) {
@@ -282,59 +405,98 @@ export class TransakService {
282
405
  }
283
406
  const apiKey = this.#ensureApiKey();
284
407
  url.searchParams.set('apiKey', apiKey);
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
- });
408
+ const response = (await this.fetchQuery({
409
+ // The API key is deliberately left out of the key, as keys appear in the
410
+ // names of published `cacheUpdated` events.
411
+ queryKey: [
412
+ `${this.name}:${queryName}`,
413
+ path,
414
+ params ?? {},
415
+ this.#getSessionId(),
416
+ ],
417
+ staleTime: 0,
418
+ gcTime: 0,
419
+ responseStruct: envelope(dataStruct),
420
+ queryFn: async () => {
421
+ const fetchResponse = await this.#fetch(url.toString(), {
422
+ method: 'GET',
423
+ headers: this.#getHeaders(),
424
+ });
425
+ if (!fetchResponse.ok) {
426
+ await this.#throwTransakApiError(fetchResponse, url);
427
+ }
428
+ return (await fetchResponse.json());
429
+ },
430
+ }));
295
431
  return response.data;
296
432
  }
297
- async #transakPost(path, body, options = {}) {
433
+ /**
434
+ * Sends a request that changes server side data. Mutations are never
435
+ * retried, and the mutation key holds only the method name, as keys appear
436
+ * in the names of published `cacheUpdated` events.
437
+ *
438
+ * @param options - The options.
439
+ * @param options.mutationName - The name of the public method.
440
+ * @param options.url - The request URL.
441
+ * @param options.init - The request method, headers and body.
442
+ * @param options.responseStruct - The struct for the response body. When
443
+ * omitted, the response body is ignored.
444
+ * @returns The validated response body, or `null` if it was ignored.
445
+ */
446
+ async #sendMutation({ mutationName, url, init, responseStruct, }) {
447
+ return (await this.executeMutation({
448
+ mutationKey: [`${this.name}:${mutationName}`],
449
+ // Some responses carry credentials (`verifyUserOtp` returns the access
450
+ // token), so do not keep finished mutations in the cache.
451
+ gcTime: 0,
452
+ responseStruct,
453
+ mutationFn: async () => {
454
+ const fetchResponse = await this.#fetch(url.toString(), init);
455
+ if (!fetchResponse.ok) {
456
+ await this.#throwTransakApiError(fetchResponse, url);
457
+ }
458
+ return responseStruct ? (await fetchResponse.json()) : null;
459
+ },
460
+ }));
461
+ }
462
+ async #transakPost(mutationName, path,
463
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
464
+ dataStruct, body) {
298
465
  const apiKey = this.#ensureApiKey();
299
466
  const baseUrl = getTransakApiBaseUrl(this.#environment);
300
467
  const url = new URL(path, baseUrl);
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(), {
468
+ const response = (await this.#sendMutation({
469
+ mutationName,
470
+ url,
471
+ init: {
308
472
  method: 'POST',
309
473
  headers: this.#getHeaders(),
310
- body: JSON.stringify(requestBody),
311
- });
312
- if (!fetchResponse.ok) {
313
- await this.#throwTransakApiError(fetchResponse, url);
314
- }
315
- return fetchResponse.json();
316
- });
474
+ body: JSON.stringify({ ...(body ?? {}), apiKey }),
475
+ },
476
+ responseStruct: envelope(dataStruct),
477
+ }));
317
478
  return response.data;
318
479
  }
319
- async #transakPatch(path, body) {
480
+ async #transakPatch(mutationName, path,
481
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
482
+ dataStruct, body) {
320
483
  const apiKey = this.#ensureApiKey();
321
484
  const baseUrl = getTransakApiBaseUrl(this.#environment);
322
485
  const url = new URL(path, baseUrl);
323
486
  url.searchParams.set('apiKey', apiKey);
324
- const response = await this.#policy.execute(async () => {
325
- const fetchResponse = await this.#fetch(url.toString(), {
487
+ const response = (await this.#sendMutation({
488
+ mutationName,
489
+ url,
490
+ init: {
326
491
  method: 'PATCH',
327
492
  headers: this.#getHeaders(),
328
493
  body: JSON.stringify(body),
329
- });
330
- if (!fetchResponse.ok) {
331
- await this.#throwTransakApiError(fetchResponse, url);
332
- }
333
- return fetchResponse.json();
334
- });
494
+ },
495
+ responseStruct: envelope(dataStruct),
496
+ }));
335
497
  return response.data;
336
498
  }
337
- async #transakDelete(path, params) {
499
+ async #transakDelete(mutationName, path, params) {
338
500
  const apiKey = this.#ensureApiKey();
339
501
  const baseUrl = getTransakApiBaseUrl(this.#environment);
340
502
  const url = new URL(path, baseUrl);
@@ -346,14 +508,10 @@ export class TransakService {
346
508
  }
347
509
  }
348
510
  }
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
- }
511
+ await this.#sendMutation({
512
+ mutationName,
513
+ url,
514
+ init: { method: 'DELETE', headers: this.#getHeaders() },
357
515
  });
358
516
  }
359
517
  /**
@@ -380,7 +538,9 @@ export class TransakService {
380
538
  // client product / version.
381
539
  addRampsClientIdentityParams(url, this.#clientIdentity);
382
540
  }
383
- async #ordersApiGet(path, params) {
541
+ async #ordersApiGet(queryName, path,
542
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
543
+ dataStruct, params) {
384
544
  const baseUrl = this.#getRampsApiBaseUrl();
385
545
  const providerPath = getRampsProviderPath(this.#environment);
386
546
  const url = new URL(`${providerPath}${path}`, baseUrl);
@@ -396,29 +556,36 @@ export class TransakService {
396
556
  }
397
557
  }
398
558
  }
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;
559
+ return (await this.fetchQuery({
560
+ queryKey: [`${this.name}:${queryName}`, path, params ?? {}],
561
+ staleTime: 0,
562
+ gcTime: 0,
563
+ responseStruct: dataStruct,
564
+ queryFn: async () => {
565
+ const fetchResponse = await this.#fetch(url.toString(), {
566
+ method: 'GET',
567
+ headers: { Accept: 'application/json' },
568
+ });
569
+ if (!fetchResponse.ok) {
570
+ throw new HttpError(fetchResponse.status, `Fetching '${url.toString()}' failed with status '${fetchResponse.status}'`);
571
+ }
572
+ return (await fetchResponse.json());
573
+ },
574
+ }));
410
575
  }
411
576
  // === PUBLIC API METHODS ===
412
577
  async sendUserOtp(email) {
413
- const result = await this.#transakPost('/api/v2/auth/login', { email });
578
+ const result = await this.#transakPost('sendUserOtp', '/api/v2/auth/login', SendUserOtpResponseStruct, {
579
+ email,
580
+ });
414
581
  return result;
415
582
  }
416
583
  async verifyUserOtp(email, verificationCode, stateToken) {
417
- const responseData = await this.#transakPost('/api/v2/auth/verify', {
584
+ const responseData = await this.#transakPost('verifyUserOtp', '/api/v2/auth/verify', VerifyUserOtpResponseStruct, {
418
585
  email,
419
586
  otp: verificationCode,
420
587
  stateToken,
421
- }, { policy: this.#noRetryPolicy });
588
+ });
422
589
  const accessToken = {
423
590
  accessToken: responseData.accessToken,
424
591
  ttl: responseData.ttl,
@@ -430,7 +597,7 @@ export class TransakService {
430
597
  async logout() {
431
598
  this.#ensureAccessToken();
432
599
  try {
433
- const result = await this.#transakPost('/api/v1/auth/logout');
600
+ const result = await this.#transakPost('logout', '/api/v1/auth/logout', string());
434
601
  this.clearAccessToken();
435
602
  return result;
436
603
  }
@@ -444,7 +611,7 @@ export class TransakService {
444
611
  }
445
612
  async getUserDetails() {
446
613
  this.#ensureAccessToken();
447
- return this.#transakGet('/api/v2/user/');
614
+ return this.#transakGet('getUserDetails', '/api/v2/user/', UserDetailsStruct);
448
615
  }
449
616
  async getBuyQuote(genericFiatCurrency, genericCryptoCurrency, genericNetwork, genericPaymentMethod, fiatAmount, isFeeExcludedFromFiat = true) {
450
617
  const normalizedPaymentMethod = normalizePaymentMethodForTranslation(genericPaymentMethod || undefined);
@@ -468,7 +635,7 @@ export class TransakService {
468
635
  if (translation.paymentMethod) {
469
636
  params.paymentMethod = translation.paymentMethod;
470
637
  }
471
- const quote = await this.#transakGet('/api/v2/lookup/quotes', params);
638
+ const quote = await this.#transakGet('getBuyQuote', '/api/v2/lookup/quotes', BuyQuoteStruct, params);
472
639
  return {
473
640
  ...quote,
474
641
  requestedAssetId: genericCryptoCurrency,
@@ -477,14 +644,14 @@ export class TransakService {
477
644
  }
478
645
  async getKycRequirement(quoteId) {
479
646
  this.#ensureAccessToken();
480
- const result = await this.#transakGet('/api/v2/kyc/requirement', {
647
+ const result = await this.#transakGet('getKycRequirement', '/api/v2/kyc/requirement', KycRequirementStruct, {
481
648
  'metadata[quoteId]': quoteId,
482
649
  });
483
650
  return result;
484
651
  }
485
652
  async getAdditionalRequirements(quoteId) {
486
653
  this.#ensureAccessToken();
487
- return this.#transakGet('/api/v2/kyc/additional-requirements', { 'metadata[quoteId]': quoteId });
654
+ return this.#transakGet('getAdditionalRequirements', '/api/v2/kyc/additional-requirements', AdditionalRequirementsStruct, { 'metadata[quoteId]': quoteId });
488
655
  }
489
656
  async createOrder(quoteId, walletAddress, paymentMethodId) {
490
657
  this.#ensureAccessToken();
@@ -494,7 +661,7 @@ export class TransakService {
494
661
  });
495
662
  const paymentInstrumentId = translation.paymentMethod ?? normalizedPaymentMethod;
496
663
  try {
497
- const transakOrder = await this.#transakPost('/api/v2/orders', {
664
+ const transakOrder = await this.#transakPost('createOrder', '/api/v2/orders', TransakOrderStruct, {
498
665
  quoteId,
499
666
  walletAddress,
500
667
  paymentInstrumentId,
@@ -508,7 +675,7 @@ export class TransakService {
508
675
  error.errorCode === TRANSAK_ERROR_CODES.ORDER_EXISTS) {
509
676
  await this.cancelAllActiveOrders();
510
677
  await new Promise((resolve) => setTimeout(resolve, this.#orderRetryDelayMs));
511
- const retryOrder = await this.#transakPost('/api/v2/orders', {
678
+ const retryOrder = await this.#transakPost('createOrder', '/api/v2/orders', TransakOrderStruct, {
512
679
  quoteId,
513
680
  walletAddress,
514
681
  paymentInstrumentId,
@@ -528,7 +695,7 @@ export class TransakService {
528
695
  depositOrderId = TransakOrderIdTransformer.transakOrderIdToDepositOrderId(orderId, this.#environment);
529
696
  }
530
697
  const transakOrderId = TransakOrderIdTransformer.extractTransakOrderId(depositOrderId);
531
- const order = await this.#ordersApiGet(`/orders/${transakOrderId}`, { wallet });
698
+ const order = await this.#ordersApiGet('getOrder', `/orders/${transakOrderId}`, DepositOrderStruct, { wallet });
532
699
  const orderWithId = {
533
700
  ...order,
534
701
  id: depositOrderId,
@@ -539,7 +706,7 @@ export class TransakService {
539
706
  }
540
707
  if (this.#accessToken?.accessToken) {
541
708
  try {
542
- const transakOrder = await this.#transakGet(`/api/v2/orders/${transakOrderId}`);
709
+ const transakOrder = await this.#transakGet('getOrderPaymentDetails', `/api/v2/orders/${transakOrderId}`, TransakOrderStruct);
543
710
  return { ...orderWithId, paymentDetails: transakOrder.paymentDetails };
544
711
  }
545
712
  catch {
@@ -561,7 +728,7 @@ export class TransakService {
561
728
  if (translation.paymentMethod) {
562
729
  params.paymentCategory = translation.paymentMethod;
563
730
  }
564
- return this.#transakGet('/api/v2/orders/user-limit', params);
731
+ return this.#transakGet('getUserLimits', '/api/v2/orders/user-limit', UserLimitsStruct, params);
565
732
  }
566
733
  /**
567
734
  * @deprecated Use {@link createWidgetUrl} instead. The OTT flow requires the
@@ -570,7 +737,7 @@ export class TransakService {
570
737
  */
571
738
  async requestOtt() {
572
739
  this.#ensureAccessToken();
573
- const result = await this.#transakPost('/api/v2/auth/request-ott');
740
+ const result = await this.#transakPost('requestOtt', '/api/v2/auth/request-ott', OttStruct);
574
741
  return result;
575
742
  }
576
743
  /**
@@ -626,7 +793,7 @@ export class TransakService {
626
793
  */
627
794
  async createWidgetUrl(quote, walletAddress, extraParams) {
628
795
  this.#ensureAccessToken();
629
- const bearerToken = await this.#messenger.call('AuthenticationController:getBearerToken');
796
+ const bearerToken = await this.messenger.call('AuthenticationController:getBearerToken');
630
797
  const baseUrl = this.#getRampsApiBaseUrl();
631
798
  const providerPath = getRampsProviderPath(this.#environment);
632
799
  const url = new URL(`${providerPath}/widget-url`, baseUrl);
@@ -653,32 +820,32 @@ export class TransakService {
653
820
  if (this.#accessToken?.accessToken) {
654
821
  headers['x-transak-access-token'] = this.#accessToken.accessToken;
655
822
  }
656
- const response = await this.#policy.execute(async () => {
657
- const fetchResponse = await this.#fetch(url.toString(), {
823
+ const response = (await this.#sendMutation({
824
+ mutationName: 'createWidgetUrl',
825
+ url,
826
+ init: {
658
827
  method: 'POST',
659
828
  headers,
660
829
  body: JSON.stringify({ widgetParams }),
661
- });
662
- if (!fetchResponse.ok) {
663
- await this.#throwTransakApiError(fetchResponse, url);
664
- }
665
- return fetchResponse.json();
666
- });
830
+ },
831
+ responseStruct: WidgetUrlResponseStruct,
832
+ }));
667
833
  return response.widgetUrl;
668
834
  }
669
835
  async submitPurposeOfUsageForm(purpose) {
670
836
  this.#ensureAccessToken();
671
- await this.#transakPost('/api/v2/kyc/purpose-of-usage', {
672
- purposeList: purpose,
673
- });
837
+ await this.#transakPost('submitPurposeOfUsageForm', '/api/v2/kyc/purpose-of-usage', any(), { purposeList: purpose });
674
838
  }
675
839
  async patchUser(data) {
676
840
  this.#ensureAccessToken();
677
- return this.#transakPatch('/api/v2/kyc/user', data);
841
+ return this.#transakPatch('patchUser', '/api/v2/kyc/user', any(), data);
678
842
  }
679
843
  async submitSsnDetails(ssn, quoteId) {
680
844
  this.#ensureAccessToken();
681
- return this.#transakPost('/api/v2/kyc/ssn', { ssn, quoteId });
845
+ return this.#transakPost('submitSsnDetails', '/api/v2/kyc/ssn', any(), {
846
+ ssn,
847
+ quoteId,
848
+ });
682
849
  }
683
850
  async confirmPayment(orderId, paymentMethodId) {
684
851
  this.#ensureAccessToken();
@@ -687,7 +854,7 @@ export class TransakService {
687
854
  paymentMethod: normalizedPaymentMethod,
688
855
  });
689
856
  const transakOrderId = TransakOrderIdTransformer.extractTransakOrderId(orderId);
690
- return this.#transakPost('/api/v2/orders/payment-confirmation', {
857
+ return this.#transakPost('confirmPayment', '/api/v2/orders/payment-confirmation', PaymentConfirmationStruct, {
691
858
  orderId: transakOrderId,
692
859
  paymentMethod: translation.paymentMethod ?? normalizedPaymentMethod,
693
860
  });
@@ -702,31 +869,38 @@ export class TransakService {
702
869
  ...translationRequest,
703
870
  paymentMethod: normalizePaymentMethodForTranslation(translationRequest.paymentMethod),
704
871
  };
872
+ const params = {};
705
873
  for (const [key, value] of Object.entries(normalizedRequest)) {
706
874
  if (value !== undefined) {
707
875
  url.searchParams.set(key, value);
876
+ params[key] = value;
708
877
  }
709
878
  }
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;
879
+ return (await this.fetchQuery({
880
+ queryKey: [`${this.name}:getTranslation`, params],
881
+ staleTime: 0,
882
+ gcTime: 0,
883
+ responseStruct: TranslationStruct,
884
+ queryFn: async () => {
885
+ const fetchResponse = await this.#fetch(url.toString(), {
886
+ method: 'GET',
887
+ headers: { Accept: 'application/json' },
888
+ });
889
+ if (!fetchResponse.ok) {
890
+ throw new HttpError(fetchResponse.status, `Fetching '${url.toString()}' failed with status '${fetchResponse.status}'`);
891
+ }
892
+ return (await fetchResponse.json());
893
+ },
894
+ }));
721
895
  }
722
896
  async getIdProofStatus(workFlowRunId) {
723
897
  this.#ensureAccessToken();
724
- return this.#transakGet('/api/v2/kyc/id-proof-status', { workFlowRunId });
898
+ return this.#transakGet('getIdProofStatus', '/api/v2/kyc/id-proof-status', IdProofStatusStruct, { workFlowRunId });
725
899
  }
726
900
  async cancelOrder(depositOrderId) {
727
901
  this.#ensureAccessToken();
728
902
  const transakOrderId = TransakOrderIdTransformer.extractTransakOrderId(depositOrderId);
729
- await this.#transakDelete(`/api/v2/orders/${transakOrderId}`, {
903
+ await this.#transakDelete('cancelOrder', `/api/v2/orders/${transakOrderId}`, {
730
904
  cancelReason: 'Creating new order',
731
905
  });
732
906
  }
@@ -747,7 +921,7 @@ export class TransakService {
747
921
  }
748
922
  async getActiveOrders() {
749
923
  this.#ensureAccessToken();
750
- return this.#transakGet('/api/v2/active-orders');
924
+ return this.#transakGet('getActiveOrders', '/api/v2/active-orders', ActiveOrdersStruct);
751
925
  }
752
926
  }
753
927
  //# 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 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"]}
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 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 check the fields the\n * service and its callers depend on, and ignore any extra fields the APIs\n * return.\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: string(),\n firstName: string(),\n lastName: string(),\n email: string(),\n mobileNumber: string(),\n status: string(),\n dob: string(),\n kyc: looseObject({\n status: string(),\n type: string(),\n userId: string(),\n workFlowRunId: string(),\n }),\n address: looseObject({\n addressLine1: string(),\n addressLine2: string(),\n state: string(),\n city: string(),\n postCode: string(),\n country: string(),\n countryCode: string(),\n }),\n createdAt: string(),\n});\n\nconst BuyQuoteStruct = looseObject({\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: array(record(string(), any())),\n nonce: number(),\n cryptoLiquidityProvider: string(),\n notes: 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(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: 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 TransakOrderStruct,\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"]}
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, 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';
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';
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":"AAAA,YAAY,EACV,sBAAsB,EACtB,qBAAqB,EACrB,6BAA6B,EAC7B,wBAAwB,EACxB,oBAAoB,EACpB,+BAA+B,EAC/B,sCAAsC,EACtC,yCAAyC,EACzC,uCAAuC,EACvC,sBAAsB,EACtB,gCAAgC,EAChC,UAAU,EACV,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,8BAA8B,EAC9B,oCAAoC,EACpC,0CAA0C,EAC1C,iBAAiB,EACjB,YAAY,EACZ,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,mCAAmC,EACnC,iCAAiC,EACjC,oCAAoC,EACpC,kCAAkC,EAClC,wCAAwC,EACxC,gDAAgD,EAChD,yBAAyB,EACzB,iCAAiC,EACjC,8BAA8B,EAC9B,qCAAqC,EACrC,iCAAiC,EACjC,sCAAsC,EACtC,gDAAgD,EAChD,6CAA6C,EAC7C,8BAA8B,EAC9B,qCAAqC,EACrC,6BAA6B,EAC7B,gCAAgC,EAChC,gCAAgC,EAChC,mCAAmC,EACnC,yCAAyC,EACzC,mCAAmC,EACnC,+CAA+C,EAC/C,2CAA2C,EAC3C,gDAAgD,EAChD,oCAAoC,EACpC,qCAAqC,EACrC,gDAAgD,EAChD,6CAA6C,EAC7C,sCAAsC,EACtC,qCAAqC,EACrC,qCAAqC,EACrC,6CAA6C,EAC7C,uCAAuC,EACvC,6BAA6B,EAC7B,yCAAyC,EACzC,qCAAqC,EACrC,0CAA0C,EAC1C,4CAA4C,EAC5C,4CAA4C,EAC5C,sCAAsC,EACtC,uCAAuC,EACvC,yCAAyC,EACzC,kCAAkC,EAClC,0CAA0C,EAC1C,uCAAuC,EACvC,6CAA6C,EAC7C,qDAAqD,EACrD,uCAAuC,EACvC,oCAAoC,EACpC,yCAAyC,EACzC,sCAAsC,EACtC,oDAAoD,EACpD,oDAAoD,EACpD,qCAAqC,EACrC,4CAA4C,EAC5C,0CAA0C,EAC1C,0CAA0C,EAC1C,4CAA4C,EAC5C,uCAAuC,EACvC,iDAAiD,EACjD,2CAA2C,EAC3C,8CAA8C,GAC/C,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,0BAA0B,EAC1B,8BAA8B,EAC9B,oBAAoB,EACpB,yCAAyC,EACzC,4CAA4C,GAC7C,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,mCAAmC,EACnC,6BAA6B,EAC7B,qCAAqC,EACrC,OAAO,EACP,KAAK,EACL,gBAAgB,EAChB,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,sBAAsB,EACtB,KAAK,EACL,UAAU,EACV,WAAW,EACX,cAAc,EACd,sBAAsB,EACtB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,UAAU,EACV,cAAc,EACd,SAAS,EACT,iBAAiB,EACjB,UAAU,EACV,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,EACtB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,6BAA6B,GAC9B,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,+CAA+C,EAC/C,gCAAgC,EAChC,8BAA8B,EAC9B,mCAAmC,EACnC,2BAA2B,EAC3B,iCAAiC,EACjC,0BAA0B,EAC1B,sCAAsC,GACvC,MAAM,uCAAuC,CAAC;AAC/C,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,qBAAqB,EACrB,cAAc,EACd,YAAY,GACb,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,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;AACzD,YAAY,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,YAAY,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AACpE,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;AAC1B,YAAY,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EACL,eAAe,EACf,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,0BAA0B,EAC1B,cAAc,EACd,sBAAsB,EACtB,mBAAmB,EACnB,+BAA+B,GAChC,MAAM,0BAA0B,CAAC;AAClC,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;AAClC,YAAY,EACV,qBAAqB,EACrB,+BAA+B,EAC/B,oBAAoB,EACpB,uCAAuC,EACvC,qCAAqC,EACrC,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,EACzB,4BAA4B,EAC5B,eAAe,EACf,qBAAqB,EACrB,4BAA4B,EAC5B,qCAAqC,EACrC,kBAAkB,EAClB,yBAAyB,EACzB,mBAAmB,EACnB,qBAAqB,EACrB,4BAA4B,EAC5B,2BAA2B,EAC3B,oBAAoB,EACpB,YAAY,EACZ,uBAAuB,EACvB,yBAAyB,EACzB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,IAAI,2BAA2B,GACpD,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,oBAAoB,EACpB,6BAA6B,GAC9B,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,2BAA2B,EAC3B,+BAA+B,EAC/B,iCAAiC,EACjC,kCAAkC,EAClC,+BAA+B,EAC/B,qCAAqC,EACrC,+BAA+B,EAC/B,4BAA4B,EAC5B,8BAA8B,EAC9B,4CAA4C,EAC5C,mCAAmC,GACpC,MAAM,yCAAyC,CAAC;AACjD,YAAY,EACV,eAAe,EACf,+BAA+B,EAC/B,qBAAqB,EACrB,gCAAgC,GACjC,MAAM,sBAAsB,CAAC;AAC9B,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;AAC/D,YAAY,EACV,yBAAyB,EACzB,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,YAAY,EACV,2BAA2B,EAC3B,2BAA2B,EAC3B,sBAAsB,EACtB,0BAA0B,EAC1B,sBAAsB,EACtB,yBAAyB,EACzB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,qBAAqB,EACrB,+BAA+B,EAC/B,oBAAoB,EACpB,uCAAuC,EACvC,qCAAqC,EACrC,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,EACxB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,iCAAiC,EACjC,8BAA8B,GAC/B,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,+BAA+B,EAC/B,gCAAgC,EAChC,6CAA6C,EAC7C,0CAA0C,EAC1C,4CAA4C,EAC5C,sCAAsC,EACtC,oCAAoC,EACpC,kCAAkC,EAClC,+CAA+C,EAC/C,uCAAuC,EACvC,2CAA2C,EAC3C,wCAAwC,EACxC,oCAAoC,EACpC,wCAAwC,EACxC,+CAA+C,EAC/C,4CAA4C,GAC7C,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACL,cAAc,EACd,WAAW,IAAI,kBAAkB,EACjC,kCAAkC,EAClC,6BAA6B,EAC7B,gCAAgC,GACjC,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,UAAU,EACV,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC"}
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;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"]}
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"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@metamask-previews/ramps-controller",
3
- "version": "29.0.0-preview-c3d36da85",
3
+ "version": "29.0.0-preview-d44afa95d",
4
4
  "description": "A controller for managing cryptocurrency on/off ramps functionality",
5
5
  "keywords": [
6
6
  "Ethereum",