@reown/appkit-core-react-native 0.0.0-feat-onramp-20250722205908 → 0.0.0-feat-coinbase-20250723173858
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/lib/commonjs/controllers/AccountController.js +20 -17
- package/lib/commonjs/controllers/AccountController.js.map +1 -1
- package/lib/commonjs/controllers/ApiController.js +28 -16
- package/lib/commonjs/controllers/ApiController.js.map +1 -1
- package/lib/commonjs/controllers/BlockchainApiController.js +204 -74
- package/lib/commonjs/controllers/BlockchainApiController.js.map +1 -1
- package/lib/commonjs/controllers/ConnectionController.js +8 -11
- package/lib/commonjs/controllers/ConnectionController.js.map +1 -1
- package/lib/commonjs/controllers/ConnectionsController.js +387 -0
- package/lib/commonjs/controllers/ConnectionsController.js.map +1 -0
- package/lib/commonjs/controllers/EnsController.js +4 -4
- package/lib/commonjs/controllers/EnsController.js.map +1 -1
- package/lib/commonjs/controllers/EventsController.js +4 -4
- package/lib/commonjs/controllers/EventsController.js.map +1 -1
- package/lib/commonjs/controllers/ModalController.js +6 -7
- package/lib/commonjs/controllers/ModalController.js.map +1 -1
- package/lib/commonjs/controllers/OnRampController.js +22 -69
- package/lib/commonjs/controllers/OnRampController.js.map +1 -1
- package/lib/commonjs/controllers/OptionsController.js +11 -3
- package/lib/commonjs/controllers/OptionsController.js.map +1 -1
- package/lib/commonjs/controllers/RouterController.js +1 -22
- package/lib/commonjs/controllers/RouterController.js.map +1 -1
- package/lib/commonjs/controllers/SendController.js +101 -101
- package/lib/commonjs/controllers/SendController.js.map +1 -1
- package/lib/commonjs/controllers/SnackController.js +29 -5
- package/lib/commonjs/controllers/SnackController.js.map +1 -1
- package/lib/commonjs/controllers/SwapController.js +151 -150
- package/lib/commonjs/controllers/SwapController.js.map +1 -1
- package/lib/commonjs/controllers/ThemeController.js +9 -1
- package/lib/commonjs/controllers/ThemeController.js.map +1 -1
- package/lib/commonjs/controllers/TransactionsController.js +25 -21
- package/lib/commonjs/controllers/TransactionsController.js.map +1 -1
- package/lib/commonjs/index.js +3 -24
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/utils/AssetUtil.js +3 -15
- package/lib/commonjs/utils/AssetUtil.js.map +1 -1
- package/lib/commonjs/utils/ConstantsUtil.js +538 -9
- package/lib/commonjs/utils/ConstantsUtil.js.map +1 -1
- package/lib/commonjs/utils/CoreHelperUtil.js +12 -6
- package/lib/commonjs/utils/CoreHelperUtil.js.map +1 -1
- package/lib/commonjs/utils/FetchUtil.js +9 -28
- package/lib/commonjs/utils/FetchUtil.js.map +1 -1
- package/lib/commonjs/utils/StorageUtil.js +51 -42
- package/lib/commonjs/utils/StorageUtil.js.map +1 -1
- package/lib/commonjs/utils/SwapApiUtil.js +15 -21
- package/lib/commonjs/utils/SwapApiUtil.js.map +1 -1
- package/lib/module/controllers/AccountController.js +20 -17
- package/lib/module/controllers/AccountController.js.map +1 -1
- package/lib/module/controllers/ApiController.js +27 -16
- package/lib/module/controllers/ApiController.js.map +1 -1
- package/lib/module/controllers/BlockchainApiController.js +203 -73
- package/lib/module/controllers/BlockchainApiController.js.map +1 -1
- package/lib/module/controllers/ConnectionController.js +8 -11
- package/lib/module/controllers/ConnectionController.js.map +1 -1
- package/lib/module/controllers/ConnectionsController.js +382 -0
- package/lib/module/controllers/ConnectionsController.js.map +1 -0
- package/lib/module/controllers/EnsController.js +2 -2
- package/lib/module/controllers/EnsController.js.map +1 -1
- package/lib/module/controllers/EventsController.js +1 -1
- package/lib/module/controllers/EventsController.js.map +1 -1
- package/lib/module/controllers/ModalController.js +6 -7
- package/lib/module/controllers/ModalController.js.map +1 -1
- package/lib/module/controllers/OnRampController.js +23 -70
- package/lib/module/controllers/OnRampController.js.map +1 -1
- package/lib/module/controllers/OptionsController.js +11 -3
- package/lib/module/controllers/OptionsController.js.map +1 -1
- package/lib/module/controllers/RouterController.js +1 -22
- package/lib/module/controllers/RouterController.js.map +1 -1
- package/lib/module/controllers/SendController.js +98 -98
- package/lib/module/controllers/SendController.js.map +1 -1
- package/lib/module/controllers/SnackController.js +29 -5
- package/lib/module/controllers/SnackController.js.map +1 -1
- package/lib/module/controllers/SwapController.js +151 -150
- package/lib/module/controllers/SwapController.js.map +1 -1
- package/lib/module/controllers/ThemeController.js +9 -1
- package/lib/module/controllers/ThemeController.js.map +1 -1
- package/lib/module/controllers/TransactionsController.js +23 -19
- package/lib/module/controllers/TransactionsController.js.map +1 -1
- package/lib/module/index.js +1 -4
- package/lib/module/index.js.map +1 -1
- package/lib/module/utils/AssetUtil.js +3 -15
- package/lib/module/utils/AssetUtil.js.map +1 -1
- package/lib/module/utils/ConstantsUtil.js +538 -9
- package/lib/module/utils/ConstantsUtil.js.map +1 -1
- package/lib/module/utils/CoreHelperUtil.js +12 -6
- package/lib/module/utils/CoreHelperUtil.js.map +1 -1
- package/lib/module/utils/FetchUtil.js +9 -28
- package/lib/module/utils/FetchUtil.js.map +1 -1
- package/lib/module/utils/StorageUtil.js +51 -42
- package/lib/module/utils/StorageUtil.js.map +1 -1
- package/lib/module/utils/SwapApiUtil.js +15 -21
- package/lib/module/utils/SwapApiUtil.js.map +1 -1
- package/lib/typescript/controllers/AccountController.d.ts +4 -4
- package/lib/typescript/controllers/AccountController.d.ts.map +1 -1
- package/lib/typescript/controllers/ApiController.d.ts +3 -2
- package/lib/typescript/controllers/ApiController.d.ts.map +1 -1
- package/lib/typescript/controllers/BlockchainApiController.d.ts +29 -15
- package/lib/typescript/controllers/BlockchainApiController.d.ts.map +1 -1
- package/lib/typescript/controllers/ConnectionController.d.ts +3 -11
- package/lib/typescript/controllers/ConnectionController.d.ts.map +1 -1
- package/lib/typescript/controllers/ConnectionsController.d.ts +53 -0
- package/lib/typescript/controllers/ConnectionsController.d.ts.map +1 -0
- package/lib/typescript/controllers/ModalController.d.ts +1 -1
- package/lib/typescript/controllers/ModalController.d.ts.map +1 -1
- package/lib/typescript/controllers/NetworkController.d.ts +1 -1
- package/lib/typescript/controllers/NetworkController.d.ts.map +1 -1
- package/lib/typescript/controllers/OnRampController.d.ts +1 -3
- package/lib/typescript/controllers/OnRampController.d.ts.map +1 -1
- package/lib/typescript/controllers/OptionsController.d.ts +7 -2
- package/lib/typescript/controllers/OptionsController.d.ts.map +1 -1
- package/lib/typescript/controllers/PublicStateController.d.ts +1 -1
- package/lib/typescript/controllers/PublicStateController.d.ts.map +1 -1
- package/lib/typescript/controllers/RouterController.d.ts +4 -16
- package/lib/typescript/controllers/RouterController.d.ts.map +1 -1
- package/lib/typescript/controllers/SendController.d.ts +5 -7
- package/lib/typescript/controllers/SendController.d.ts.map +1 -1
- package/lib/typescript/controllers/SnackController.d.ts +3 -3
- package/lib/typescript/controllers/SnackController.d.ts.map +1 -1
- package/lib/typescript/controllers/SwapController.d.ts +12 -11
- package/lib/typescript/controllers/SwapController.d.ts.map +1 -1
- package/lib/typescript/controllers/ThemeController.d.ts +1 -1
- package/lib/typescript/controllers/ThemeController.d.ts.map +1 -1
- package/lib/typescript/controllers/TransactionsController.d.ts +3 -3
- package/lib/typescript/controllers/TransactionsController.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +1 -4
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/utils/AssetUtil.d.ts +2 -3
- package/lib/typescript/utils/AssetUtil.d.ts.map +1 -1
- package/lib/typescript/utils/ConstantsUtil.d.ts +422 -3
- package/lib/typescript/utils/ConstantsUtil.d.ts.map +1 -1
- package/lib/typescript/utils/CoreHelperUtil.d.ts +5 -4
- package/lib/typescript/utils/CoreHelperUtil.d.ts.map +1 -1
- package/lib/typescript/utils/FetchUtil.d.ts +1 -1
- package/lib/typescript/utils/FetchUtil.d.ts.map +1 -1
- package/lib/typescript/utils/StorageUtil.d.ts +14 -7
- package/lib/typescript/utils/StorageUtil.d.ts.map +1 -1
- package/lib/typescript/utils/SwapApiUtil.d.ts +3 -3
- package/lib/typescript/utils/SwapApiUtil.d.ts.map +1 -1
- package/lib/typescript/utils/TypeUtil.d.ts +42 -191
- package/lib/typescript/utils/TypeUtil.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/controllers/AccountController.ts +23 -27
- package/src/controllers/ApiController.ts +29 -10
- package/src/controllers/BlockchainApiController.ts +179 -65
- package/src/controllers/ConnectionController.ts +12 -24
- package/src/controllers/ConnectionsController.ts +509 -0
- package/src/controllers/EnsController.ts +2 -2
- package/src/controllers/EventsController.ts +1 -1
- package/src/controllers/ModalController.ts +8 -8
- package/src/controllers/NetworkController.ts +1 -1
- package/src/controllers/OnRampController.ts +35 -99
- package/src/controllers/OptionsController.ts +19 -13
- package/src/controllers/PublicStateController.ts +1 -1
- package/src/controllers/RouterController.ts +5 -54
- package/src/controllers/SendController.ts +124 -113
- package/src/controllers/SnackController.ts +31 -5
- package/src/controllers/SwapController.ts +174 -181
- package/src/controllers/ThemeController.ts +11 -2
- package/src/controllers/TransactionsController.ts +26 -20
- package/src/index.ts +3 -6
- package/src/utils/AssetUtil.ts +4 -20
- package/src/utils/ConstantsUtil.ts +544 -9
- package/src/utils/CoreHelperUtil.ts +34 -9
- package/src/utils/FetchUtil.ts +10 -31
- package/src/utils/StorageUtil.ts +60 -48
- package/src/utils/SwapApiUtil.ts +27 -38
- package/src/utils/TypeUtil.ts +43 -193
- package/lib/commonjs/controllers/ConnectorController.js +0 -49
- package/lib/commonjs/controllers/ConnectorController.js.map +0 -1
- package/lib/commonjs/controllers/WebviewController.js +0 -52
- package/lib/commonjs/controllers/WebviewController.js.map +0 -1
- package/lib/commonjs/utils/ConnectionUtil.js +0 -33
- package/lib/commonjs/utils/ConnectionUtil.js.map +0 -1
- package/lib/commonjs/utils/NetworkUtil.js +0 -46
- package/lib/commonjs/utils/NetworkUtil.js.map +0 -1
- package/lib/module/controllers/ConnectorController.js +0 -44
- package/lib/module/controllers/ConnectorController.js.map +0 -1
- package/lib/module/controllers/WebviewController.js +0 -47
- package/lib/module/controllers/WebviewController.js.map +0 -1
- package/lib/module/utils/ConnectionUtil.js +0 -27
- package/lib/module/utils/ConnectionUtil.js.map +0 -1
- package/lib/module/utils/NetworkUtil.js +0 -40
- package/lib/module/utils/NetworkUtil.js.map +0 -1
- package/lib/typescript/controllers/ConnectorController.d.ts +0 -18
- package/lib/typescript/controllers/ConnectorController.d.ts.map +0 -1
- package/lib/typescript/controllers/WebviewController.d.ts +0 -21
- package/lib/typescript/controllers/WebviewController.d.ts.map +0 -1
- package/lib/typescript/utils/ConnectionUtil.d.ts +0 -4
- package/lib/typescript/utils/ConnectionUtil.d.ts.map +0 -1
- package/lib/typescript/utils/NetworkUtil.d.ts +0 -8
- package/lib/typescript/utils/NetworkUtil.d.ts.map +0 -1
- package/src/controllers/ConnectorController.ts +0 -63
- package/src/controllers/WebviewController.ts +0 -63
- package/src/utils/ConnectionUtil.ts +0 -27
- package/src/utils/NetworkUtil.ts +0 -33
|
@@ -9,8 +9,7 @@ import type {
|
|
|
9
9
|
OnRampCryptoCurrency,
|
|
10
10
|
OnRampServiceProvider,
|
|
11
11
|
OnRampError,
|
|
12
|
-
OnRampErrorTypeValues
|
|
13
|
-
OnRampCountryDefaults
|
|
12
|
+
OnRampErrorTypeValues
|
|
14
13
|
} from '../utils/TypeUtil';
|
|
15
14
|
|
|
16
15
|
import { CoreHelperUtil } from '../utils/CoreHelperUtil';
|
|
@@ -21,7 +20,7 @@ import { ConstantsUtil, OnRampErrorType } from '../utils/ConstantsUtil';
|
|
|
21
20
|
import { StorageUtil } from '../utils/StorageUtil';
|
|
22
21
|
import { SnackController } from './SnackController';
|
|
23
22
|
import { EventsController } from './EventsController';
|
|
24
|
-
import { BlockchainApiController
|
|
23
|
+
import { BlockchainApiController } from './BlockchainApiController';
|
|
25
24
|
|
|
26
25
|
// -- Helpers ------------------------------------------- //
|
|
27
26
|
|
|
@@ -33,27 +32,23 @@ const mapErrorMessage = (errorCode: string): OnRampError => {
|
|
|
33
32
|
const errorMap: Record<string, { type: OnRampErrorTypeValues; message: string }> = {
|
|
34
33
|
[OnRampErrorType.AMOUNT_TOO_LOW]: {
|
|
35
34
|
type: OnRampErrorType.AMOUNT_TOO_LOW,
|
|
36
|
-
message: '
|
|
35
|
+
message: 'Amount is too low'
|
|
37
36
|
},
|
|
38
37
|
[OnRampErrorType.AMOUNT_TOO_HIGH]: {
|
|
39
38
|
type: OnRampErrorType.AMOUNT_TOO_HIGH,
|
|
40
|
-
message: '
|
|
39
|
+
message: 'Amount is too high'
|
|
41
40
|
},
|
|
42
41
|
[OnRampErrorType.INVALID_AMOUNT]: {
|
|
43
42
|
type: OnRampErrorType.INVALID_AMOUNT,
|
|
44
|
-
message: '
|
|
43
|
+
message: 'Please adjust amount'
|
|
45
44
|
},
|
|
46
45
|
[OnRampErrorType.INCOMPATIBLE_REQUEST]: {
|
|
47
46
|
type: OnRampErrorType.INCOMPATIBLE_REQUEST,
|
|
48
|
-
message: '
|
|
47
|
+
message: 'Try different amount or payment method'
|
|
49
48
|
},
|
|
50
49
|
[OnRampErrorType.BAD_REQUEST]: {
|
|
51
50
|
type: OnRampErrorType.BAD_REQUEST,
|
|
52
|
-
message: '
|
|
53
|
-
},
|
|
54
|
-
[OnRampErrorType.NO_VALID_QUOTES]: {
|
|
55
|
-
type: OnRampErrorType.NO_VALID_QUOTES,
|
|
56
|
-
message: 'No quotes available'
|
|
51
|
+
message: 'Try different amount or payment method'
|
|
57
52
|
}
|
|
58
53
|
};
|
|
59
54
|
|
|
@@ -68,7 +63,6 @@ const mapErrorMessage = (errorCode: string): OnRampError => {
|
|
|
68
63
|
// -- Types --------------------------------------------- //
|
|
69
64
|
export interface OnRampControllerState {
|
|
70
65
|
countries: OnRampCountry[];
|
|
71
|
-
countriesDefaults?: OnRampCountryDefaults[];
|
|
72
66
|
selectedCountry?: OnRampCountry;
|
|
73
67
|
serviceProviders: OnRampServiceProvider[];
|
|
74
68
|
selectedServiceProvider?: OnRampServiceProvider;
|
|
@@ -120,8 +114,9 @@ export const OnRampController = {
|
|
|
120
114
|
|
|
121
115
|
if (updateCurrency) {
|
|
122
116
|
const currencyCode =
|
|
123
|
-
|
|
124
|
-
|
|
117
|
+
ConstantsUtil.COUNTRY_CURRENCIES[
|
|
118
|
+
country.countryCode as keyof typeof ConstantsUtil.COUNTRY_CURRENCIES
|
|
119
|
+
] || 'USD';
|
|
125
120
|
|
|
126
121
|
const currency = state.paymentCurrencies?.find(c => c.currencyCode === currencyCode);
|
|
127
122
|
|
|
@@ -131,7 +126,6 @@ export const OnRampController = {
|
|
|
131
126
|
}
|
|
132
127
|
|
|
133
128
|
await Promise.all([this.fetchPaymentMethods(), this.fetchCryptoCurrencies()]);
|
|
134
|
-
this.clearQuotes();
|
|
135
129
|
|
|
136
130
|
state.loading = false;
|
|
137
131
|
|
|
@@ -140,6 +134,8 @@ export const OnRampController = {
|
|
|
140
134
|
|
|
141
135
|
setSelectedPaymentMethod(paymentMethod: OnRampPaymentMethod) {
|
|
142
136
|
state.selectedPaymentMethod = paymentMethod;
|
|
137
|
+
|
|
138
|
+
this.clearQuotes();
|
|
143
139
|
},
|
|
144
140
|
|
|
145
141
|
setPurchaseCurrency(currency: OnRampCryptoCurrency) {
|
|
@@ -188,7 +184,7 @@ export const OnRampController = {
|
|
|
188
184
|
selectedCurrency = state.purchaseCurrencies?.find(c => c.currencyCode === defaultCurrency);
|
|
189
185
|
}
|
|
190
186
|
|
|
191
|
-
state.purchaseCurrency = selectedCurrency
|
|
187
|
+
state.purchaseCurrency = selectedCurrency || state.purchaseCurrencies?.[0] || undefined;
|
|
192
188
|
},
|
|
193
189
|
|
|
194
190
|
getServiceProviderImage(serviceProviderName?: string) {
|
|
@@ -235,27 +231,6 @@ export const OnRampController = {
|
|
|
235
231
|
}
|
|
236
232
|
},
|
|
237
233
|
|
|
238
|
-
async fetchCountriesDefaults() {
|
|
239
|
-
try {
|
|
240
|
-
let countriesDefaults = await StorageUtil.getOnRampCountriesDefaults();
|
|
241
|
-
|
|
242
|
-
if (!countriesDefaults.length) {
|
|
243
|
-
countriesDefaults = (await BlockchainApiController.fetchOnRampCountriesDefaults()) ?? [];
|
|
244
|
-
|
|
245
|
-
if (countriesDefaults.length) {
|
|
246
|
-
StorageUtil.setOnRampCountriesDefaults(countriesDefaults);
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
state.countriesDefaults = countriesDefaults;
|
|
251
|
-
} catch (error) {
|
|
252
|
-
state.error = {
|
|
253
|
-
type: OnRampErrorType.FAILED_TO_LOAD_COUNTRIES,
|
|
254
|
-
message: 'Failed to load countries defaults'
|
|
255
|
-
};
|
|
256
|
-
}
|
|
257
|
-
},
|
|
258
|
-
|
|
259
234
|
async fetchServiceProviders() {
|
|
260
235
|
try {
|
|
261
236
|
let serviceProviders = await StorageUtil.getOnRampServiceProviders();
|
|
@@ -284,8 +259,10 @@ export const OnRampController = {
|
|
|
284
259
|
});
|
|
285
260
|
|
|
286
261
|
const defaultCountryPaymentMethods =
|
|
287
|
-
|
|
288
|
-
|
|
262
|
+
ConstantsUtil.COUNTRY_DEFAULT_PAYMENT_METHOD[
|
|
263
|
+
state.selectedCountry
|
|
264
|
+
?.countryCode as keyof typeof ConstantsUtil.COUNTRY_DEFAULT_PAYMENT_METHOD
|
|
265
|
+
];
|
|
289
266
|
|
|
290
267
|
state.paymentMethods =
|
|
291
268
|
paymentMethods?.sort((a, b) => {
|
|
@@ -299,7 +276,9 @@ export const OnRampController = {
|
|
|
299
276
|
return aIndex - bIndex;
|
|
300
277
|
}) || [];
|
|
301
278
|
|
|
302
|
-
state.selectedPaymentMethod =
|
|
279
|
+
state.selectedPaymentMethod = paymentMethods?.[0] || undefined;
|
|
280
|
+
|
|
281
|
+
this.clearQuotes();
|
|
303
282
|
} catch (error) {
|
|
304
283
|
state.error = {
|
|
305
284
|
type: OnRampErrorType.FAILED_TO_LOAD_METHODS,
|
|
@@ -357,8 +336,9 @@ export const OnRampController = {
|
|
|
357
336
|
|
|
358
337
|
if (countryCode) {
|
|
359
338
|
currencyCode =
|
|
360
|
-
|
|
361
|
-
|
|
339
|
+
ConstantsUtil.COUNTRY_CURRENCIES[
|
|
340
|
+
countryCode as keyof typeof ConstantsUtil.COUNTRY_CURRENCIES
|
|
341
|
+
];
|
|
362
342
|
}
|
|
363
343
|
|
|
364
344
|
const preferredCurrency = await StorageUtil.getOnRampPreferredFiatCurrency();
|
|
@@ -407,75 +387,36 @@ export const OnRampController = {
|
|
|
407
387
|
}
|
|
408
388
|
|
|
409
389
|
state.quotesLoading = true;
|
|
410
|
-
state.selectedQuote = undefined;
|
|
411
|
-
state.selectedServiceProvider = undefined;
|
|
412
390
|
state.error = undefined;
|
|
413
391
|
|
|
414
392
|
this.abortGetQuotes(false);
|
|
415
393
|
quotesAbortController = new AbortController();
|
|
416
|
-
const currentSignal = quotesAbortController.signal;
|
|
417
394
|
|
|
418
395
|
try {
|
|
419
396
|
const body = {
|
|
420
397
|
countryCode: state.selectedCountry?.countryCode!,
|
|
398
|
+
paymentMethodType: state.selectedPaymentMethod?.paymentMethod!,
|
|
421
399
|
destinationCurrencyCode: state.purchaseCurrency?.currencyCode!,
|
|
422
400
|
sourceAmount: state.paymentAmount,
|
|
423
401
|
sourceCurrencyCode: state.paymentCurrency?.currencyCode!,
|
|
424
|
-
walletAddress: AccountController.state.address
|
|
425
|
-
excludeProviders: EXCLUDED_ONRAMP_PROVIDERS
|
|
402
|
+
walletAddress: AccountController.state.address!
|
|
426
403
|
};
|
|
427
404
|
|
|
428
|
-
const response = await BlockchainApiController.getOnRampQuotes(
|
|
405
|
+
const response = await BlockchainApiController.getOnRampQuotes(
|
|
406
|
+
body,
|
|
407
|
+
quotesAbortController.signal
|
|
408
|
+
);
|
|
429
409
|
|
|
430
410
|
if (!response || !response.length) {
|
|
431
|
-
throw
|
|
411
|
+
throw new Error('No quotes available');
|
|
432
412
|
}
|
|
433
413
|
|
|
434
414
|
const quotes = response.sort((a, b) => b.customerScore - a.customerScore);
|
|
435
415
|
|
|
436
416
|
state.quotes = quotes;
|
|
437
|
-
|
|
438
|
-
//Replace payment method if it's not in the quotes
|
|
439
|
-
const isValidPaymentMethod =
|
|
440
|
-
state.selectedPaymentMethod &&
|
|
441
|
-
quotes.some(
|
|
442
|
-
quote => quote.paymentMethodType === state.selectedPaymentMethod?.paymentMethod
|
|
443
|
-
);
|
|
444
|
-
|
|
445
|
-
if (!isValidPaymentMethod) {
|
|
446
|
-
const countryMethods =
|
|
447
|
-
state.countriesDefaults?.find(d => d.countryCode === state.selectedCountry?.countryCode)
|
|
448
|
-
?.defaultPaymentMethods || [];
|
|
449
|
-
|
|
450
|
-
const availableQuoteMethods = new Set(quotes.map(q => q.paymentMethodType));
|
|
451
|
-
|
|
452
|
-
let newPaymentMethodType: string | undefined;
|
|
453
|
-
for (const dpm of countryMethods) {
|
|
454
|
-
if (availableQuoteMethods.has(dpm)) {
|
|
455
|
-
newPaymentMethodType = dpm;
|
|
456
|
-
break;
|
|
457
|
-
}
|
|
458
|
-
}
|
|
459
|
-
|
|
460
|
-
if (newPaymentMethodType) {
|
|
461
|
-
state.selectedPaymentMethod =
|
|
462
|
-
state.paymentMethods.find(m => m.paymentMethod === newPaymentMethodType) ||
|
|
463
|
-
state.paymentMethods.find(
|
|
464
|
-
method => method.paymentMethod === quotes[0]?.paymentMethodType
|
|
465
|
-
);
|
|
466
|
-
} else {
|
|
467
|
-
state.selectedPaymentMethod = state.paymentMethods.find(
|
|
468
|
-
method => method.paymentMethod === quotes[0]?.paymentMethodType
|
|
469
|
-
);
|
|
470
|
-
}
|
|
471
|
-
}
|
|
472
|
-
|
|
473
|
-
state.selectedQuote = quotes.find(
|
|
474
|
-
quote => quote.paymentMethodType === state.selectedPaymentMethod?.paymentMethod
|
|
475
|
-
);
|
|
476
|
-
|
|
417
|
+
state.selectedQuote = quotes[0];
|
|
477
418
|
state.selectedServiceProvider = state.serviceProviders.find(
|
|
478
|
-
sp => sp.serviceProvider ===
|
|
419
|
+
sp => sp.serviceProvider === quotes[0]?.serviceProvider
|
|
479
420
|
);
|
|
480
421
|
} catch (error: any) {
|
|
481
422
|
if (error.name === 'AbortError') {
|
|
@@ -494,9 +435,7 @@ export const OnRampController = {
|
|
|
494
435
|
this.clearQuotes();
|
|
495
436
|
state.error = mapErrorMessage(error?.code || 'UNKNOWN_ERROR');
|
|
496
437
|
} finally {
|
|
497
|
-
|
|
498
|
-
state.quotesLoading = false;
|
|
499
|
-
}
|
|
438
|
+
state.quotesLoading = false;
|
|
500
439
|
}
|
|
501
440
|
},
|
|
502
441
|
|
|
@@ -553,7 +492,7 @@ export const OnRampController = {
|
|
|
553
492
|
throw new Error('Invalid quote');
|
|
554
493
|
}
|
|
555
494
|
|
|
556
|
-
const
|
|
495
|
+
const widget = await BlockchainApiController.getOnRampWidget({
|
|
557
496
|
countryCode: quote.countryCode,
|
|
558
497
|
destinationCurrencyCode: quote.destinationCurrencyCode,
|
|
559
498
|
paymentMethodType: quote.paymentMethodType,
|
|
@@ -562,9 +501,7 @@ export const OnRampController = {
|
|
|
562
501
|
sourceCurrencyCode: quote.sourceCurrencyCode,
|
|
563
502
|
walletAddress: AccountController.state.address!,
|
|
564
503
|
redirectUrl: metadata?.redirect?.universal ?? metadata?.redirect?.native
|
|
565
|
-
};
|
|
566
|
-
|
|
567
|
-
const widget = await BlockchainApiController.getOnRampWidget(body);
|
|
504
|
+
});
|
|
568
505
|
|
|
569
506
|
if (!widget || !widget.widgetUrl) {
|
|
570
507
|
throw new Error('Invalid widget response');
|
|
@@ -618,7 +555,6 @@ export const OnRampController = {
|
|
|
618
555
|
await this.fetchServiceProviders();
|
|
619
556
|
|
|
620
557
|
await Promise.all([
|
|
621
|
-
this.fetchCountriesDefaults(),
|
|
622
558
|
this.fetchPaymentMethods(),
|
|
623
559
|
this.fetchFiatLimits(),
|
|
624
560
|
this.fetchCryptoCurrencies(),
|
|
@@ -1,13 +1,7 @@
|
|
|
1
1
|
import { proxy, ref } from 'valtio';
|
|
2
|
-
import type {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Metadata,
|
|
6
|
-
ProjectId,
|
|
7
|
-
SdkType,
|
|
8
|
-
SdkVersion,
|
|
9
|
-
Tokens
|
|
10
|
-
} from '../utils/TypeUtil';
|
|
2
|
+
import type { Tokens, Storage, Metadata, AppKitNetwork } from '@reown/appkit-common-react-native';
|
|
3
|
+
import type { CustomWallet, Features, ProjectId, SdkType, SdkVersion } from '../utils/TypeUtil';
|
|
4
|
+
|
|
11
5
|
import { ConstantsUtil } from '../utils/ConstantsUtil';
|
|
12
6
|
|
|
13
7
|
// -- Types --------------------------------------------- //
|
|
@@ -17,7 +11,8 @@ export interface ClipboardClient {
|
|
|
17
11
|
|
|
18
12
|
export interface OptionsControllerState {
|
|
19
13
|
projectId: ProjectId;
|
|
20
|
-
|
|
14
|
+
clipboardClient?: ClipboardClient;
|
|
15
|
+
storage?: Storage;
|
|
21
16
|
includeWalletIds?: string[];
|
|
22
17
|
excludeWalletIds?: string[];
|
|
23
18
|
featuredWalletIds?: string[];
|
|
@@ -31,6 +26,7 @@ export interface OptionsControllerState {
|
|
|
31
26
|
isOnRampEnabled?: boolean;
|
|
32
27
|
features?: Features;
|
|
33
28
|
debug?: boolean;
|
|
29
|
+
defaultNetwork?: AppKitNetwork;
|
|
34
30
|
}
|
|
35
31
|
|
|
36
32
|
// -- State --------------------------------------------- //
|
|
@@ -47,7 +43,7 @@ export const OptionsController = {
|
|
|
47
43
|
state,
|
|
48
44
|
|
|
49
45
|
setClipboardClient(client: ClipboardClient) {
|
|
50
|
-
state.
|
|
46
|
+
state.clipboardClient = ref(client);
|
|
51
47
|
},
|
|
52
48
|
|
|
53
49
|
setProjectId(projectId: OptionsControllerState['projectId']) {
|
|
@@ -102,12 +98,22 @@ export const OptionsController = {
|
|
|
102
98
|
state.isOnRampEnabled = isOnRampEnabled;
|
|
103
99
|
},
|
|
104
100
|
|
|
101
|
+
setStorage(storage?: OptionsControllerState['storage']) {
|
|
102
|
+
if (storage) {
|
|
103
|
+
state.storage = ref(storage);
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
|
|
107
|
+
setDefaultNetwork(defaultNetwork?: OptionsControllerState['defaultNetwork']) {
|
|
108
|
+
state.defaultNetwork = defaultNetwork;
|
|
109
|
+
},
|
|
110
|
+
|
|
105
111
|
isClipboardAvailable() {
|
|
106
|
-
return !!state.
|
|
112
|
+
return !!state.clipboardClient;
|
|
107
113
|
},
|
|
108
114
|
|
|
109
115
|
copyToClipboard(value: string) {
|
|
110
|
-
const client = state.
|
|
116
|
+
const client = state.clipboardClient;
|
|
111
117
|
if (client) {
|
|
112
118
|
client?.setString(value);
|
|
113
119
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { proxy, subscribe as sub } from 'valtio';
|
|
2
2
|
import { subscribeKey as subKey } from 'valtio/utils';
|
|
3
|
-
import type { CaipNetworkId } from '
|
|
3
|
+
import type { CaipNetworkId } from '@reown/appkit-common-react-native';
|
|
4
4
|
|
|
5
5
|
// -- Types --------------------------------------------- //
|
|
6
6
|
export interface PublicStateControllerState {
|
|
@@ -1,22 +1,9 @@
|
|
|
1
1
|
import { proxy } from 'valtio';
|
|
2
|
-
import type {
|
|
3
|
-
WcWallet,
|
|
4
|
-
CaipNetwork,
|
|
5
|
-
Connector,
|
|
6
|
-
SwapInputTarget,
|
|
7
|
-
OnRampTransactionResult
|
|
8
|
-
} from '../utils/TypeUtil';
|
|
2
|
+
import type { CaipNetwork, SocialProvider } from '@reown/appkit-common-react-native';
|
|
9
3
|
|
|
10
|
-
|
|
11
|
-
type TransactionAction = {
|
|
12
|
-
goBack: boolean;
|
|
13
|
-
view: RouterControllerState['view'] | null;
|
|
14
|
-
close?: boolean;
|
|
15
|
-
replace?: boolean;
|
|
16
|
-
onSuccess?: () => void;
|
|
17
|
-
onCancel?: () => void;
|
|
18
|
-
};
|
|
4
|
+
import type { WcWallet, OnRampTransactionResult } from '../utils/TypeUtil';
|
|
19
5
|
|
|
6
|
+
// -- Types --------------------------------------------- //
|
|
20
7
|
export interface RouterControllerState {
|
|
21
8
|
view:
|
|
22
9
|
| 'Account'
|
|
@@ -27,11 +14,7 @@ export interface RouterControllerState {
|
|
|
27
14
|
| 'ConnectingExternal'
|
|
28
15
|
| 'ConnectingSiwe'
|
|
29
16
|
| 'ConnectingSocial'
|
|
30
|
-
| 'ConnectingFarcaster'
|
|
31
17
|
| 'ConnectingWalletConnect'
|
|
32
|
-
| 'Create'
|
|
33
|
-
| 'EmailVerifyDevice'
|
|
34
|
-
| 'EmailVerifyOtp'
|
|
35
18
|
| 'GetWallet'
|
|
36
19
|
| 'Networks'
|
|
37
20
|
| 'OnRamp'
|
|
@@ -41,15 +24,10 @@ export interface RouterControllerState {
|
|
|
41
24
|
| 'OnRampTransaction'
|
|
42
25
|
| 'SwitchNetwork'
|
|
43
26
|
| 'Swap'
|
|
44
|
-
| 'SwapSelectToken'
|
|
45
27
|
| 'SwapPreview'
|
|
46
28
|
| 'Transactions'
|
|
47
29
|
| 'UnsupportedChain'
|
|
48
|
-
| 'UpdateEmailPrimaryOtp'
|
|
49
|
-
| 'UpdateEmailSecondaryOtp'
|
|
50
|
-
| 'UpdateEmailWallet'
|
|
51
30
|
| 'UpgradeEmailWallet'
|
|
52
|
-
| 'UpgradeToSmartAccount'
|
|
53
31
|
| 'WalletCompatibleNetworks'
|
|
54
32
|
| 'WalletReceive'
|
|
55
33
|
| 'WalletSend'
|
|
@@ -59,22 +37,19 @@ export interface RouterControllerState {
|
|
|
59
37
|
| 'WhatIsAWallet';
|
|
60
38
|
history: RouterControllerState['view'][];
|
|
61
39
|
data?: {
|
|
62
|
-
connector?: Connector;
|
|
63
40
|
wallet?: WcWallet;
|
|
64
41
|
network?: CaipNetwork;
|
|
65
42
|
email?: string;
|
|
66
43
|
newEmail?: string;
|
|
67
|
-
swapTarget?: SwapInputTarget;
|
|
68
44
|
onrampResult?: OnRampTransactionResult;
|
|
45
|
+
socialProvider?: SocialProvider;
|
|
69
46
|
};
|
|
70
|
-
transactionStack: TransactionAction[];
|
|
71
47
|
}
|
|
72
48
|
|
|
73
49
|
// -- State --------------------------------------------- //
|
|
74
50
|
const state = proxy<RouterControllerState>({
|
|
75
51
|
view: 'Connect',
|
|
76
|
-
history: ['Connect']
|
|
77
|
-
transactionStack: []
|
|
52
|
+
history: ['Connect']
|
|
78
53
|
});
|
|
79
54
|
|
|
80
55
|
// -- Controller ---------------------------------------- //
|
|
@@ -89,30 +64,6 @@ export const RouterController = {
|
|
|
89
64
|
}
|
|
90
65
|
},
|
|
91
66
|
|
|
92
|
-
pushTransactionStack(action: TransactionAction) {
|
|
93
|
-
state.transactionStack = [...state.transactionStack, action];
|
|
94
|
-
},
|
|
95
|
-
|
|
96
|
-
popTransactionStack(cancel?: boolean) {
|
|
97
|
-
const action = state.transactionStack.pop();
|
|
98
|
-
|
|
99
|
-
if (!action) {
|
|
100
|
-
return;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
if (cancel) {
|
|
104
|
-
this.goBack();
|
|
105
|
-
action?.onCancel?.();
|
|
106
|
-
} else {
|
|
107
|
-
if (action.goBack) {
|
|
108
|
-
this.goBack();
|
|
109
|
-
} else if (action.view) {
|
|
110
|
-
this.reset(action.view);
|
|
111
|
-
}
|
|
112
|
-
action?.onSuccess?.();
|
|
113
|
-
}
|
|
114
|
-
},
|
|
115
|
-
|
|
116
67
|
reset(view: RouterControllerState['view'], data?: RouterControllerState['data']) {
|
|
117
68
|
state.view = view;
|
|
118
69
|
state.history = [view];
|