@metamask/ramps-controller 20.0.0 → 20.2.0
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 +36 -1
- package/dist/RampsController-method-action-types.cjs.map +1 -1
- package/dist/RampsController-method-action-types.d.cts +44 -1
- package/dist/RampsController-method-action-types.d.cts.map +1 -1
- package/dist/RampsController-method-action-types.d.mts +44 -1
- package/dist/RampsController-method-action-types.d.mts.map +1 -1
- package/dist/RampsController-method-action-types.mjs.map +1 -1
- package/dist/RampsController.cjs +225 -18
- package/dist/RampsController.cjs.map +1 -1
- package/dist/RampsController.d.cts +76 -7
- package/dist/RampsController.d.cts.map +1 -1
- package/dist/RampsController.d.mts +76 -7
- package/dist/RampsController.d.mts.map +1 -1
- package/dist/RampsController.mjs +224 -17
- package/dist/RampsController.mjs.map +1 -1
- package/dist/RampsService.cjs +18 -4
- package/dist/RampsService.cjs.map +1 -1
- package/dist/RampsService.d.cts +20 -4
- package/dist/RampsService.d.cts.map +1 -1
- package/dist/RampsService.d.mts +20 -4
- package/dist/RampsService.d.mts.map +1 -1
- package/dist/RampsService.mjs +18 -4
- package/dist/RampsService.mjs.map +1 -1
- package/dist/TransakService.cjs +15 -3
- package/dist/TransakService.cjs.map +1 -1
- package/dist/TransakService.d.cts +3 -1
- package/dist/TransakService.d.cts.map +1 -1
- package/dist/TransakService.d.mts +3 -1
- package/dist/TransakService.d.mts.map +1 -1
- package/dist/TransakService.mjs +15 -3
- package/dist/TransakService.mjs.map +1 -1
- package/dist/client-identity.cjs +28 -0
- package/dist/client-identity.cjs.map +1 -0
- package/dist/client-identity.d.cts +24 -0
- package/dist/client-identity.d.cts.map +1 -0
- package/dist/client-identity.d.mts +24 -0
- package/dist/client-identity.d.mts.map +1 -0
- package/dist/client-identity.mjs +24 -0
- package/dist/client-identity.mjs.map +1 -0
- package/dist/index.cjs +9 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +7 -4
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +7 -4
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +3 -1
- package/dist/index.mjs.map +1 -1
- package/dist/orderStatus.cjs +34 -0
- package/dist/orderStatus.cjs.map +1 -0
- package/dist/orderStatus.d.cts +18 -0
- package/dist/orderStatus.d.cts.map +1 -0
- package/dist/orderStatus.d.mts +18 -0
- package/dist/orderStatus.d.mts.map +1 -0
- package/dist/orderStatus.mjs +30 -0
- package/dist/orderStatus.mjs.map +1 -0
- package/dist/paymentMethodMerge.cjs +51 -0
- package/dist/paymentMethodMerge.cjs.map +1 -0
- package/dist/paymentMethodMerge.d.cts +26 -0
- package/dist/paymentMethodMerge.d.cts.map +1 -0
- package/dist/paymentMethodMerge.d.mts +26 -0
- package/dist/paymentMethodMerge.d.mts.map +1 -0
- package/dist/paymentMethodMerge.mjs +46 -0
- package/dist/paymentMethodMerge.mjs.map +1 -0
- package/dist/providerAvailability.cjs +39 -8
- package/dist/providerAvailability.cjs.map +1 -1
- package/dist/providerAvailability.d.cts +30 -5
- package/dist/providerAvailability.d.cts.map +1 -1
- package/dist/providerAvailability.d.mts +30 -5
- package/dist/providerAvailability.d.mts.map +1 -1
- package/dist/providerAvailability.mjs +37 -7
- package/dist/providerAvailability.mjs.map +1 -1
- package/package.json +2 -2
package/dist/RampsController.cjs
CHANGED
|
@@ -10,12 +10,14 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
|
|
|
10
10
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
11
11
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
12
12
|
};
|
|
13
|
-
var _RampsController_instances, _RampsController_requestCacheTTL, _RampsController_requestCacheMaxSize, _RampsController_pendingRequests, _RampsController_pendingResourceCount, _RampsController_pendingResourceGeneration, _RampsController_orderPollingMeta, _RampsController_orderPollingTimer, _RampsController_isPolling, _RampsController_initPromise, _RampsController_clearPendingResourceCountForDependentResources, _RampsController_abortDependentRequests, _RampsController_resolveAllProvidersFlag, _RampsController_mutateRequests, _RampsController_removeRequestState, _RampsController_cleanupState, _RampsController_requireRegion, _RampsController_isRegionCurrent, _RampsController_isTokenCurrent, _RampsController_isProviderCurrent, _RampsController_updateResourceField, _RampsController_setResourceLoading, _RampsController_setResourceError, _RampsController_updateRequestState, _RampsController_runInit, _RampsController_syncUserRegionFromCountriesCatalog, _RampsController_pickWidenedQuote, _RampsController_getSupportingProvidersForRegion, _RampsController_filterProviderIdsBySupport, _RampsController_resolveProviderIdsForQuote, _RampsController_getPreferredProviderIdsFromOrders, _RampsController_refreshOrder, _RampsController_pollPendingOrders, _RampsController_syncTransakAuthOnError, _RampsController_getNormalizedTransakError;
|
|
13
|
+
var _RampsController_instances, _RampsController_requestCacheTTL, _RampsController_requestCacheMaxSize, _RampsController_pendingRequests, _RampsController_pendingResourceCount, _RampsController_pendingResourceGeneration, _RampsController_orderPollingMeta, _RampsController_orderPollingTimer, _RampsController_isPolling, _RampsController_initPromise, _RampsController_clearPendingResourceCountForDependentResources, _RampsController_abortDependentRequests, _RampsController_resolveAllProvidersFlag, _RampsController_mutateRequests, _RampsController_removeRequestState, _RampsController_cleanupState, _RampsController_requireRegion, _RampsController_isRegionCurrent, _RampsController_isTokenCurrent, _RampsController_isProviderCurrent, _RampsController_updateResourceField, _RampsController_setResourceLoading, _RampsController_setResourceError, _RampsController_updateRequestState, _RampsController_runInit, _RampsController_syncUserRegionFromCountriesCatalog, _RampsController_pickWidenedQuote, _RampsController_getSupportingProvidersForRegion, _RampsController_filterProviderIdsBySupport, _RampsController_resolveProviderIdsForQuote, _RampsController_resolveProviderIdsForPaymentMethods, _RampsController_getPreferredProviderIdsFromOrders, _RampsController_refreshOrder, _RampsController_pollPendingOrders, _RampsController_syncTransakAuthOnError, _RampsController_getNormalizedTransakError;
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.RampsController = exports.getInternalOrderCode = exports.getDefaultRampsControllerState = exports.RAMPS_CONTROLLER_REQUIRED_SERVICE_ACTIONS = exports.controllerName = void 0;
|
|
16
16
|
const base_controller_1 = require("@metamask/base-controller");
|
|
17
17
|
const controller_utils_1 = require("@metamask/controller-utils");
|
|
18
18
|
const featureFlags_js_1 = require("./featureFlags.cjs");
|
|
19
|
+
const orderStatus_js_1 = require("./orderStatus.cjs");
|
|
20
|
+
const paymentMethodMerge_js_1 = require("./paymentMethodMerge.cjs");
|
|
19
21
|
const providerAvailability_js_1 = require("./providerAvailability.cjs");
|
|
20
22
|
const rampsErrorCodes_js_1 = require("./rampsErrorCodes.cjs");
|
|
21
23
|
const RampsService_js_1 = require("./RampsService.cjs");
|
|
@@ -355,18 +357,6 @@ function getInternalOrderCode(orderOrId) {
|
|
|
355
357
|
}
|
|
356
358
|
exports.getInternalOrderCode = getInternalOrderCode;
|
|
357
359
|
// === ORDER POLLING CONSTANTS ===
|
|
358
|
-
const TERMINAL_ORDER_STATUSES = new Set([
|
|
359
|
-
RampsService_js_1.RampsOrderStatus.Completed,
|
|
360
|
-
RampsService_js_1.RampsOrderStatus.Failed,
|
|
361
|
-
RampsService_js_1.RampsOrderStatus.Cancelled,
|
|
362
|
-
RampsService_js_1.RampsOrderStatus.IdExpired,
|
|
363
|
-
]);
|
|
364
|
-
const PENDING_ORDER_STATUSES = new Set([
|
|
365
|
-
RampsService_js_1.RampsOrderStatus.Pending,
|
|
366
|
-
RampsService_js_1.RampsOrderStatus.Created,
|
|
367
|
-
RampsService_js_1.RampsOrderStatus.Unknown,
|
|
368
|
-
RampsService_js_1.RampsOrderStatus.Precreated,
|
|
369
|
-
]);
|
|
370
360
|
const DEFAULT_POLLING_INTERVAL_MS = 30000;
|
|
371
361
|
const MAX_ERROR_COUNT = 5;
|
|
372
362
|
// === CONTROLLER DEFINITION ===
|
|
@@ -383,6 +373,7 @@ const MESSENGER_EXPOSED_METHODS = [
|
|
|
383
373
|
'setSelectedToken',
|
|
384
374
|
'getProviders',
|
|
385
375
|
'getPaymentMethods',
|
|
376
|
+
'getPaymentMethodsForContext',
|
|
386
377
|
'setSelectedPaymentMethod',
|
|
387
378
|
'getQuotes',
|
|
388
379
|
'addOrder',
|
|
@@ -422,8 +413,25 @@ const MESSENGER_EXPOSED_METHODS = [
|
|
|
422
413
|
'transakGetActiveOrders',
|
|
423
414
|
];
|
|
424
415
|
/**
|
|
425
|
-
*
|
|
416
|
+
* Whether controller state still describes the context a payment-method
|
|
417
|
+
* request was issued for, so a completed request may write the Buy catalog.
|
|
418
|
+
*
|
|
419
|
+
* Compared at commit time rather than against a snapshot, so an older request
|
|
420
|
+
* that returns after the context moved on is dropped.
|
|
421
|
+
*
|
|
422
|
+
* @param state - Controller state at commit time.
|
|
423
|
+
* @param context - The context the request was issued for.
|
|
424
|
+
* @param context.region - Normalized region code.
|
|
425
|
+
* @param context.assetId - Canonicalized CAIP-19 asset id.
|
|
426
|
+
* @param context.providerId - Trimmed provider id, or an empty string.
|
|
427
|
+
* @returns Whether the write may proceed.
|
|
426
428
|
*/
|
|
429
|
+
function contextStillMatches(state, context) {
|
|
430
|
+
return (state.userRegion?.regionCode?.trim().toLowerCase() === context.region &&
|
|
431
|
+
(0, providerAvailability_js_1.normalizeRampsAssetId)(state.tokens.selected?.assetId ?? '') ===
|
|
432
|
+
context.assetId &&
|
|
433
|
+
(state.providers.selected?.id.trim() ?? '') === context.providerId);
|
|
434
|
+
}
|
|
427
435
|
class RampsController extends base_controller_1.BaseController {
|
|
428
436
|
/**
|
|
429
437
|
* Clears the pending resource count map. Used only in tests to exercise the
|
|
@@ -896,7 +904,7 @@ class RampsController extends base_controller_1.BaseController {
|
|
|
896
904
|
options?.crypto,
|
|
897
905
|
options?.payments,
|
|
898
906
|
]);
|
|
899
|
-
const
|
|
907
|
+
const response = await this.executeRequest(cacheKey, async () => {
|
|
900
908
|
return this.messenger.call('RampsService:getProviders', normalizedRegion, {
|
|
901
909
|
provider: options?.provider,
|
|
902
910
|
crypto: options?.crypto,
|
|
@@ -907,13 +915,14 @@ class RampsController extends base_controller_1.BaseController {
|
|
|
907
915
|
resourceType: 'providers',
|
|
908
916
|
isResultCurrent: () => __classPrivateFieldGet(this, _RampsController_instances, "m", _RampsController_isRegionCurrent).call(this, normalizedRegion),
|
|
909
917
|
});
|
|
918
|
+
const { providers } = response;
|
|
910
919
|
this.update((state) => {
|
|
911
920
|
const userRegionCode = state.userRegion?.regionCode;
|
|
912
921
|
if (userRegionCode === undefined || userRegionCode === normalizedRegion) {
|
|
913
922
|
state.providers.data = providers;
|
|
914
923
|
}
|
|
915
924
|
});
|
|
916
|
-
return
|
|
925
|
+
return response;
|
|
917
926
|
}
|
|
918
927
|
/**
|
|
919
928
|
* Fetches the list of payment methods for a given context.
|
|
@@ -970,6 +979,146 @@ class RampsController extends base_controller_1.BaseController {
|
|
|
970
979
|
});
|
|
971
980
|
return response;
|
|
972
981
|
}
|
|
982
|
+
/**
|
|
983
|
+
* Fetches payment methods for a quoting context without coupling callers to
|
|
984
|
+
* the Buy flow's globally selected provider/token catalog.
|
|
985
|
+
*
|
|
986
|
+
* Provider contribution mirrors {@link getQuotes}:
|
|
987
|
+
* - explicit `providers` (optionally filtered when
|
|
988
|
+
* `restrictToKnownOrNativeProviders` is set)
|
|
989
|
+
* - auto-select / restrict path, including `moneyHeadlessAllProviders`
|
|
990
|
+
* widening: flag off uses the restricted/native resolver; flag on uses
|
|
991
|
+
* supporting providers, intersected with the flag allowlist when that
|
|
992
|
+
* allowlist is non-empty (pick-survivor set for picker methods)
|
|
993
|
+
* - when those resolution flags and `providers` are omitted, uses only
|
|
994
|
+
* `providers.selected` (UB2 selected-provider context)
|
|
995
|
+
*
|
|
996
|
+
* By default this is request-only: it does **not** mutate
|
|
997
|
+
* `paymentMethods.data` or `paymentMethods.selected`. Pass `updateState:
|
|
998
|
+
* true` only when the caller explicitly wants Buy-catalog write semantics
|
|
999
|
+
* (UB2). Headless / MM Pay selection stays TPC-owned. `updateState: true`
|
|
1000
|
+
* throws when the resolved provider set holds more than one provider, because
|
|
1001
|
+
* the write guards cannot tell two such requests apart.
|
|
1002
|
+
*
|
|
1003
|
+
* Methods are request-eligible for the resolved provider set; they are not
|
|
1004
|
+
* guaranteed to produce a quote for every amount (provider fiat limits still
|
|
1005
|
+
* apply at quote time).
|
|
1006
|
+
*
|
|
1007
|
+
* @param options - Context for the payment-method fetch.
|
|
1008
|
+
* @param options.region - Region code. Defaults to `userRegion`.
|
|
1009
|
+
* @param options.assetId - Required CAIP-19 quoting asset.
|
|
1010
|
+
* @param options.providers - Explicit provider ids.
|
|
1011
|
+
* @param options.autoSelectProvider - Resolve providers like `getQuotes`.
|
|
1012
|
+
* @param options.preferredProviderIds - Preferred ids for auto-selection.
|
|
1013
|
+
* @param options.restrictToKnownOrNativeProviders - Headless gating.
|
|
1014
|
+
* @param options.updateState - When true, write `paymentMethods` state.
|
|
1015
|
+
* @param options.preferPaymentMethodId - Preserve this id when still present.
|
|
1016
|
+
* @param options.forceRefresh - Bypass request cache for provider fetches.
|
|
1017
|
+
* @param options.ttl - Custom TTL for provider payment-method fetches.
|
|
1018
|
+
* @returns Deduped methods, a request-only suggested selection, and the
|
|
1019
|
+
* provider ids that contributed.
|
|
1020
|
+
*/
|
|
1021
|
+
async getPaymentMethodsForContext(options) {
|
|
1022
|
+
const regionToUse = options.region ?? __classPrivateFieldGet(this, _RampsController_instances, "m", _RampsController_requireRegion).call(this);
|
|
1023
|
+
const normalizedRegion = regionToUse.toLowerCase().trim();
|
|
1024
|
+
const assetId = options.assetId.trim();
|
|
1025
|
+
if (assetId === '') {
|
|
1026
|
+
throw new Error('assetId is required.');
|
|
1027
|
+
}
|
|
1028
|
+
const normalizedAssetContext = (0, providerAvailability_js_1.normalizeRampsAssetId)(assetId);
|
|
1029
|
+
const updateState = options.updateState === true;
|
|
1030
|
+
const providerIdForState = options.providers?.length === 1
|
|
1031
|
+
? options.providers[0].trim()
|
|
1032
|
+
: (this.state.providers.selected?.id.trim() ?? '');
|
|
1033
|
+
const providerIds = await __classPrivateFieldGet(this, _RampsController_instances, "m", _RampsController_resolveProviderIdsForPaymentMethods).call(this, {
|
|
1034
|
+
assetId,
|
|
1035
|
+
region: normalizedRegion,
|
|
1036
|
+
providers: options.providers,
|
|
1037
|
+
autoSelectProvider: options.autoSelectProvider,
|
|
1038
|
+
preferredProviderIds: options.preferredProviderIds,
|
|
1039
|
+
restrictToKnownOrNativeProviders: options.restrictToKnownOrNativeProviders,
|
|
1040
|
+
});
|
|
1041
|
+
// A fan-out across several providers produces a merged catalog whose value
|
|
1042
|
+
// depends on the provider set, but the write guards below only compare
|
|
1043
|
+
// region, selected token, and selected provider. Two concurrent
|
|
1044
|
+
// multi-provider requests share all three, so nothing distinguishes them
|
|
1045
|
+
// and the slower one would silently overwrite the faster one.
|
|
1046
|
+
if (updateState && providerIds.length > 1) {
|
|
1047
|
+
throw new Error(`getPaymentMethodsForContext cannot write paymentMethods state for ${providerIds.length} resolved providers. Use updateState: false, or request exactly one provider.`);
|
|
1048
|
+
}
|
|
1049
|
+
const writeContext = {
|
|
1050
|
+
region: normalizedRegion,
|
|
1051
|
+
assetId: normalizedAssetContext,
|
|
1052
|
+
providerId: providerIdForState,
|
|
1053
|
+
};
|
|
1054
|
+
if (providerIds.length === 0) {
|
|
1055
|
+
if (updateState) {
|
|
1056
|
+
this.update((state) => {
|
|
1057
|
+
if (contextStillMatches(state, writeContext)) {
|
|
1058
|
+
state.paymentMethods.data = [];
|
|
1059
|
+
state.paymentMethods.selected = null;
|
|
1060
|
+
}
|
|
1061
|
+
});
|
|
1062
|
+
}
|
|
1063
|
+
return { methods: [], selected: null, providerIds };
|
|
1064
|
+
}
|
|
1065
|
+
const settled = await Promise.allSettled(providerIds.map(async (providerId) => {
|
|
1066
|
+
const cacheKey = (0, RequestCache_js_1.createCacheKey)('getPaymentMethodsForContext', [
|
|
1067
|
+
normalizedRegion,
|
|
1068
|
+
assetId,
|
|
1069
|
+
providerId,
|
|
1070
|
+
]);
|
|
1071
|
+
return this.executeRequest(cacheKey, async () => {
|
|
1072
|
+
return this.messenger.call('RampsService:getPaymentMethods', {
|
|
1073
|
+
region: normalizedRegion,
|
|
1074
|
+
assetId,
|
|
1075
|
+
provider: providerId,
|
|
1076
|
+
});
|
|
1077
|
+
}, {
|
|
1078
|
+
forceRefresh: options.forceRefresh,
|
|
1079
|
+
ttl: options.ttl,
|
|
1080
|
+
// Intentionally omit resourceType / isResultCurrent so this
|
|
1081
|
+
// request-only path never drives Buy paymentMethods loading or
|
|
1082
|
+
// selection state unless `updateState` is explicitly set below.
|
|
1083
|
+
});
|
|
1084
|
+
}));
|
|
1085
|
+
const successfulLists = [];
|
|
1086
|
+
const failures = [];
|
|
1087
|
+
for (const result of settled) {
|
|
1088
|
+
if (result.status === 'fulfilled') {
|
|
1089
|
+
successfulLists.push(result.value.payments);
|
|
1090
|
+
}
|
|
1091
|
+
else {
|
|
1092
|
+
failures.push(result.reason);
|
|
1093
|
+
}
|
|
1094
|
+
}
|
|
1095
|
+
if (successfulLists.length === 0) {
|
|
1096
|
+
const firstFailure = failures[0];
|
|
1097
|
+
throw firstFailure instanceof Error
|
|
1098
|
+
? firstFailure
|
|
1099
|
+
: new Error('Failed to fetch payment methods for context.');
|
|
1100
|
+
}
|
|
1101
|
+
const methods = (0, paymentMethodMerge_js_1.mergePaymentMethodsById)(successfulLists);
|
|
1102
|
+
let selected = (0, paymentMethodMerge_js_1.pickPaymentMethod)(methods, [
|
|
1103
|
+
options.preferPaymentMethodId,
|
|
1104
|
+
this.state.paymentMethods.selected?.id,
|
|
1105
|
+
]);
|
|
1106
|
+
if (updateState) {
|
|
1107
|
+
this.update((state) => {
|
|
1108
|
+
if (contextStillMatches(state, writeContext)) {
|
|
1109
|
+
// The stored selection outranks the caller's preference: the user may
|
|
1110
|
+
// have picked a method while this request was in flight.
|
|
1111
|
+
selected = (0, paymentMethodMerge_js_1.pickPaymentMethod)(methods, [
|
|
1112
|
+
state.paymentMethods.selected?.id,
|
|
1113
|
+
options.preferPaymentMethodId,
|
|
1114
|
+
]);
|
|
1115
|
+
state.paymentMethods.data = methods;
|
|
1116
|
+
state.paymentMethods.selected = selected;
|
|
1117
|
+
}
|
|
1118
|
+
});
|
|
1119
|
+
}
|
|
1120
|
+
return { methods, selected, providerIds };
|
|
1121
|
+
}
|
|
973
1122
|
/**
|
|
974
1123
|
* Sets the user's selected payment method.
|
|
975
1124
|
*
|
|
@@ -2123,6 +2272,64 @@ async function _RampsController_resolveProviderIdsForQuote({ assetId, region, pr
|
|
|
2123
2272
|
return [];
|
|
2124
2273
|
}
|
|
2125
2274
|
return [supporting[0].id];
|
|
2275
|
+
}, _RampsController_resolveProviderIdsForPaymentMethods =
|
|
2276
|
+
/**
|
|
2277
|
+
* Resolves provider IDs that should contribute payment methods for a
|
|
2278
|
+
* quoting context. Mirrors {@link getQuotes} provider-set selection, with
|
|
2279
|
+
* one intentional difference on the widened path: when the all-providers
|
|
2280
|
+
* flag allowlist is non-empty, returns supporting providers intersected
|
|
2281
|
+
* with that allowlist (pick survivors for the picker). Does not mutate
|
|
2282
|
+
* state.
|
|
2283
|
+
*
|
|
2284
|
+
* @param options - Resolution inputs aligned with `getQuotes`.
|
|
2285
|
+
* @param options.assetId - CAIP-19 asset type identifier to resolve for.
|
|
2286
|
+
* @param options.region - Region to resolve providers for.
|
|
2287
|
+
* @param options.providers - Explicit provider IDs, when provided.
|
|
2288
|
+
* @param options.autoSelectProvider - Resolve providers like `getQuotes`.
|
|
2289
|
+
* @param options.preferredProviderIds - Preferred provider IDs in order.
|
|
2290
|
+
* @param options.restrictToKnownOrNativeProviders - Headless gating.
|
|
2291
|
+
* @returns Provider IDs for this request only.
|
|
2292
|
+
*/
|
|
2293
|
+
async function _RampsController_resolveProviderIdsForPaymentMethods({ assetId, region, providers, autoSelectProvider, preferredProviderIds, restrictToKnownOrNativeProviders, }) {
|
|
2294
|
+
const wantsAutoSelection = !providers &&
|
|
2295
|
+
(autoSelectProvider === true ||
|
|
2296
|
+
restrictToKnownOrNativeProviders === true);
|
|
2297
|
+
const { enabled: allProvidersEnabled, allowlist: providerAllowlist } = wantsAutoSelection
|
|
2298
|
+
? __classPrivateFieldGet(this, _RampsController_instances, "m", _RampsController_resolveAllProvidersFlag).call(this)
|
|
2299
|
+
: { enabled: false, allowlist: undefined };
|
|
2300
|
+
const widenToAllProviders = wantsAutoSelection && allProvidersEnabled;
|
|
2301
|
+
if (providers) {
|
|
2302
|
+
return restrictToKnownOrNativeProviders
|
|
2303
|
+
? __classPrivateFieldGet(this, _RampsController_instances, "m", _RampsController_filterProviderIdsBySupport).call(this, {
|
|
2304
|
+
providerIds: providers,
|
|
2305
|
+
assetId,
|
|
2306
|
+
region,
|
|
2307
|
+
})
|
|
2308
|
+
: providers;
|
|
2309
|
+
}
|
|
2310
|
+
if (widenToAllProviders) {
|
|
2311
|
+
const { supporting } = await __classPrivateFieldGet(this, _RampsController_instances, "m", _RampsController_getSupportingProvidersForRegion).call(this, {
|
|
2312
|
+
assetId,
|
|
2313
|
+
region,
|
|
2314
|
+
});
|
|
2315
|
+
if (providerAllowlist && providerAllowlist.length > 0) {
|
|
2316
|
+
const allowedProviderIds = new Set(providerAllowlist.map(featureFlags_js_1.normalizeHeadlessProviderId));
|
|
2317
|
+
return supporting
|
|
2318
|
+
.filter((provider) => allowedProviderIds.has((0, featureFlags_js_1.normalizeHeadlessProviderId)(provider.id)))
|
|
2319
|
+
.map((provider) => provider.id);
|
|
2320
|
+
}
|
|
2321
|
+
return supporting.map((provider) => provider.id);
|
|
2322
|
+
}
|
|
2323
|
+
if (autoSelectProvider || restrictToKnownOrNativeProviders) {
|
|
2324
|
+
return __classPrivateFieldGet(this, _RampsController_instances, "m", _RampsController_resolveProviderIdsForQuote).call(this, {
|
|
2325
|
+
assetId,
|
|
2326
|
+
region,
|
|
2327
|
+
preferredProviderIds,
|
|
2328
|
+
restrictToKnownOrNative: restrictToKnownOrNativeProviders,
|
|
2329
|
+
});
|
|
2330
|
+
}
|
|
2331
|
+
const selectedId = this.state.providers.selected?.id;
|
|
2332
|
+
return selectedId ? [selectedId] : [];
|
|
2126
2333
|
}, _RampsController_getPreferredProviderIdsFromOrders = function _RampsController_getPreferredProviderIdsFromOrders() {
|
|
2127
2334
|
const orderedIds = [];
|
|
2128
2335
|
const completedOrders = this.state.orders
|
|
@@ -2169,7 +2376,7 @@ async function _RampsController_refreshOrder(order) {
|
|
|
2169
2376
|
previousStatus,
|
|
2170
2377
|
});
|
|
2171
2378
|
}
|
|
2172
|
-
if (TERMINAL_ORDER_STATUSES.has(updatedOrder.status)) {
|
|
2379
|
+
if (orderStatus_js_1.TERMINAL_ORDER_STATUSES.has(updatedOrder.status)) {
|
|
2173
2380
|
__classPrivateFieldGet(this, _RampsController_orderPollingMeta, "f").delete(order.providerOrderId);
|
|
2174
2381
|
}
|
|
2175
2382
|
}
|
|
@@ -2188,7 +2395,7 @@ async function _RampsController_refreshOrder(order) {
|
|
|
2188
2395
|
}
|
|
2189
2396
|
__classPrivateFieldSet(this, _RampsController_isPolling, true, "f");
|
|
2190
2397
|
try {
|
|
2191
|
-
const pendingOrders = this.state.orders.filter((order) => PENDING_ORDER_STATUSES.has(order.status));
|
|
2398
|
+
const pendingOrders = this.state.orders.filter((order) => orderStatus_js_1.PENDING_ORDER_STATUSES.has(order.status));
|
|
2192
2399
|
const now = Date.now();
|
|
2193
2400
|
await Promise.allSettled(pendingOrders.map(async (order) => {
|
|
2194
2401
|
const meta = __classPrivateFieldGet(this, _RampsController_orderPollingMeta, "f").get(order.providerOrderId);
|