@reown/appkit-core-react-native 0.0.0-feat-onramp-20250718191948 → 0.0.0-feat-coinbase-20250722173213
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 +166 -67
- 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 +21 -62
- 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 -8
- 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 +166 -67
- 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 +21 -62
- 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 -8
- 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 +28 -12
- 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 -1
- 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 +140 -55
- 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 +33 -93
- 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 -8
- 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';
|
|
@@ -33,23 +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: '
|
|
51
|
+
message: 'Try different amount or payment method'
|
|
53
52
|
}
|
|
54
53
|
};
|
|
55
54
|
|
|
@@ -64,7 +63,6 @@ const mapErrorMessage = (errorCode: string): OnRampError => {
|
|
|
64
63
|
// -- Types --------------------------------------------- //
|
|
65
64
|
export interface OnRampControllerState {
|
|
66
65
|
countries: OnRampCountry[];
|
|
67
|
-
countriesDefaults?: OnRampCountryDefaults[];
|
|
68
66
|
selectedCountry?: OnRampCountry;
|
|
69
67
|
serviceProviders: OnRampServiceProvider[];
|
|
70
68
|
selectedServiceProvider?: OnRampServiceProvider;
|
|
@@ -116,8 +114,9 @@ export const OnRampController = {
|
|
|
116
114
|
|
|
117
115
|
if (updateCurrency) {
|
|
118
116
|
const currencyCode =
|
|
119
|
-
|
|
120
|
-
|
|
117
|
+
ConstantsUtil.COUNTRY_CURRENCIES[
|
|
118
|
+
country.countryCode as keyof typeof ConstantsUtil.COUNTRY_CURRENCIES
|
|
119
|
+
] || 'USD';
|
|
121
120
|
|
|
122
121
|
const currency = state.paymentCurrencies?.find(c => c.currencyCode === currencyCode);
|
|
123
122
|
|
|
@@ -127,7 +126,6 @@ export const OnRampController = {
|
|
|
127
126
|
}
|
|
128
127
|
|
|
129
128
|
await Promise.all([this.fetchPaymentMethods(), this.fetchCryptoCurrencies()]);
|
|
130
|
-
this.clearQuotes();
|
|
131
129
|
|
|
132
130
|
state.loading = false;
|
|
133
131
|
|
|
@@ -136,6 +134,8 @@ export const OnRampController = {
|
|
|
136
134
|
|
|
137
135
|
setSelectedPaymentMethod(paymentMethod: OnRampPaymentMethod) {
|
|
138
136
|
state.selectedPaymentMethod = paymentMethod;
|
|
137
|
+
|
|
138
|
+
this.clearQuotes();
|
|
139
139
|
},
|
|
140
140
|
|
|
141
141
|
setPurchaseCurrency(currency: OnRampCryptoCurrency) {
|
|
@@ -184,7 +184,7 @@ export const OnRampController = {
|
|
|
184
184
|
selectedCurrency = state.purchaseCurrencies?.find(c => c.currencyCode === defaultCurrency);
|
|
185
185
|
}
|
|
186
186
|
|
|
187
|
-
state.purchaseCurrency = selectedCurrency
|
|
187
|
+
state.purchaseCurrency = selectedCurrency || state.purchaseCurrencies?.[0] || undefined;
|
|
188
188
|
},
|
|
189
189
|
|
|
190
190
|
getServiceProviderImage(serviceProviderName?: string) {
|
|
@@ -231,27 +231,6 @@ export const OnRampController = {
|
|
|
231
231
|
}
|
|
232
232
|
},
|
|
233
233
|
|
|
234
|
-
async fetchCountriesDefaults() {
|
|
235
|
-
try {
|
|
236
|
-
let countriesDefaults = await StorageUtil.getOnRampCountriesDefaults();
|
|
237
|
-
|
|
238
|
-
if (!countriesDefaults.length) {
|
|
239
|
-
countriesDefaults = (await BlockchainApiController.fetchOnRampCountriesDefaults()) ?? [];
|
|
240
|
-
|
|
241
|
-
if (countriesDefaults.length) {
|
|
242
|
-
StorageUtil.setOnRampCountriesDefaults(countriesDefaults);
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
state.countriesDefaults = countriesDefaults;
|
|
247
|
-
} catch (error) {
|
|
248
|
-
state.error = {
|
|
249
|
-
type: OnRampErrorType.FAILED_TO_LOAD_COUNTRIES,
|
|
250
|
-
message: 'Failed to load countries defaults'
|
|
251
|
-
};
|
|
252
|
-
}
|
|
253
|
-
},
|
|
254
|
-
|
|
255
234
|
async fetchServiceProviders() {
|
|
256
235
|
try {
|
|
257
236
|
let serviceProviders = await StorageUtil.getOnRampServiceProviders();
|
|
@@ -280,8 +259,10 @@ export const OnRampController = {
|
|
|
280
259
|
});
|
|
281
260
|
|
|
282
261
|
const defaultCountryPaymentMethods =
|
|
283
|
-
|
|
284
|
-
|
|
262
|
+
ConstantsUtil.COUNTRY_DEFAULT_PAYMENT_METHOD[
|
|
263
|
+
state.selectedCountry
|
|
264
|
+
?.countryCode as keyof typeof ConstantsUtil.COUNTRY_DEFAULT_PAYMENT_METHOD
|
|
265
|
+
];
|
|
285
266
|
|
|
286
267
|
state.paymentMethods =
|
|
287
268
|
paymentMethods?.sort((a, b) => {
|
|
@@ -295,7 +276,9 @@ export const OnRampController = {
|
|
|
295
276
|
return aIndex - bIndex;
|
|
296
277
|
}) || [];
|
|
297
278
|
|
|
298
|
-
state.selectedPaymentMethod =
|
|
279
|
+
state.selectedPaymentMethod = paymentMethods?.[0] || undefined;
|
|
280
|
+
|
|
281
|
+
this.clearQuotes();
|
|
299
282
|
} catch (error) {
|
|
300
283
|
state.error = {
|
|
301
284
|
type: OnRampErrorType.FAILED_TO_LOAD_METHODS,
|
|
@@ -353,8 +336,9 @@ export const OnRampController = {
|
|
|
353
336
|
|
|
354
337
|
if (countryCode) {
|
|
355
338
|
currencyCode =
|
|
356
|
-
|
|
357
|
-
|
|
339
|
+
ConstantsUtil.COUNTRY_CURRENCIES[
|
|
340
|
+
countryCode as keyof typeof ConstantsUtil.COUNTRY_CURRENCIES
|
|
341
|
+
];
|
|
358
342
|
}
|
|
359
343
|
|
|
360
344
|
const preferredCurrency = await StorageUtil.getOnRampPreferredFiatCurrency();
|
|
@@ -403,25 +387,25 @@ export const OnRampController = {
|
|
|
403
387
|
}
|
|
404
388
|
|
|
405
389
|
state.quotesLoading = true;
|
|
406
|
-
state.selectedQuote = undefined;
|
|
407
|
-
state.selectedServiceProvider = undefined;
|
|
408
390
|
state.error = undefined;
|
|
409
391
|
|
|
410
392
|
this.abortGetQuotes(false);
|
|
411
393
|
quotesAbortController = new AbortController();
|
|
412
|
-
const currentSignal = quotesAbortController.signal;
|
|
413
394
|
|
|
414
395
|
try {
|
|
415
396
|
const body = {
|
|
416
397
|
countryCode: state.selectedCountry?.countryCode!,
|
|
398
|
+
paymentMethodType: state.selectedPaymentMethod?.paymentMethod!,
|
|
417
399
|
destinationCurrencyCode: state.purchaseCurrency?.currencyCode!,
|
|
418
400
|
sourceAmount: state.paymentAmount,
|
|
419
401
|
sourceCurrencyCode: state.paymentCurrency?.currencyCode!,
|
|
420
|
-
walletAddress: AccountController.state.address
|
|
421
|
-
excludeProviders: ['BINANCECONNECT', 'COINBASEPAY']
|
|
402
|
+
walletAddress: AccountController.state.address!
|
|
422
403
|
};
|
|
423
404
|
|
|
424
|
-
const response = await BlockchainApiController.getOnRampQuotes(
|
|
405
|
+
const response = await BlockchainApiController.getOnRampQuotes(
|
|
406
|
+
body,
|
|
407
|
+
quotesAbortController.signal
|
|
408
|
+
);
|
|
425
409
|
|
|
426
410
|
if (!response || !response.length) {
|
|
427
411
|
throw new Error('No quotes available');
|
|
@@ -430,48 +414,9 @@ export const OnRampController = {
|
|
|
430
414
|
const quotes = response.sort((a, b) => b.customerScore - a.customerScore);
|
|
431
415
|
|
|
432
416
|
state.quotes = quotes;
|
|
433
|
-
|
|
434
|
-
//Replace payment method if it's not in the quotes
|
|
435
|
-
const isValidPaymentMethod =
|
|
436
|
-
state.selectedPaymentMethod &&
|
|
437
|
-
quotes.some(
|
|
438
|
-
quote => quote.paymentMethodType === state.selectedPaymentMethod?.paymentMethod
|
|
439
|
-
);
|
|
440
|
-
|
|
441
|
-
if (!isValidPaymentMethod) {
|
|
442
|
-
const countryMethods =
|
|
443
|
-
state.countriesDefaults?.find(d => d.countryCode === state.selectedCountry?.countryCode)
|
|
444
|
-
?.defaultPaymentMethods || [];
|
|
445
|
-
|
|
446
|
-
const availableQuoteMethods = new Set(quotes.map(q => q.paymentMethodType));
|
|
447
|
-
|
|
448
|
-
let newPaymentMethodType: string | undefined;
|
|
449
|
-
for (const dpm of countryMethods) {
|
|
450
|
-
if (availableQuoteMethods.has(dpm)) {
|
|
451
|
-
newPaymentMethodType = dpm;
|
|
452
|
-
break;
|
|
453
|
-
}
|
|
454
|
-
}
|
|
455
|
-
|
|
456
|
-
if (newPaymentMethodType) {
|
|
457
|
-
state.selectedPaymentMethod =
|
|
458
|
-
state.paymentMethods.find(m => m.paymentMethod === newPaymentMethodType) ||
|
|
459
|
-
state.paymentMethods.find(
|
|
460
|
-
method => method.paymentMethod === quotes[0]?.paymentMethodType
|
|
461
|
-
);
|
|
462
|
-
} else {
|
|
463
|
-
state.selectedPaymentMethod = state.paymentMethods.find(
|
|
464
|
-
method => method.paymentMethod === quotes[0]?.paymentMethodType
|
|
465
|
-
);
|
|
466
|
-
}
|
|
467
|
-
}
|
|
468
|
-
|
|
469
|
-
state.selectedQuote = quotes.find(
|
|
470
|
-
quote => quote.paymentMethodType === state.selectedPaymentMethod?.paymentMethod
|
|
471
|
-
);
|
|
472
|
-
|
|
417
|
+
state.selectedQuote = quotes[0];
|
|
473
418
|
state.selectedServiceProvider = state.serviceProviders.find(
|
|
474
|
-
sp => sp.serviceProvider ===
|
|
419
|
+
sp => sp.serviceProvider === quotes[0]?.serviceProvider
|
|
475
420
|
);
|
|
476
421
|
} catch (error: any) {
|
|
477
422
|
if (error.name === 'AbortError') {
|
|
@@ -490,9 +435,7 @@ export const OnRampController = {
|
|
|
490
435
|
this.clearQuotes();
|
|
491
436
|
state.error = mapErrorMessage(error?.code || 'UNKNOWN_ERROR');
|
|
492
437
|
} finally {
|
|
493
|
-
|
|
494
|
-
state.quotesLoading = false;
|
|
495
|
-
}
|
|
438
|
+
state.quotesLoading = false;
|
|
496
439
|
}
|
|
497
440
|
},
|
|
498
441
|
|
|
@@ -549,7 +492,7 @@ export const OnRampController = {
|
|
|
549
492
|
throw new Error('Invalid quote');
|
|
550
493
|
}
|
|
551
494
|
|
|
552
|
-
const
|
|
495
|
+
const widget = await BlockchainApiController.getOnRampWidget({
|
|
553
496
|
countryCode: quote.countryCode,
|
|
554
497
|
destinationCurrencyCode: quote.destinationCurrencyCode,
|
|
555
498
|
paymentMethodType: quote.paymentMethodType,
|
|
@@ -558,9 +501,7 @@ export const OnRampController = {
|
|
|
558
501
|
sourceCurrencyCode: quote.sourceCurrencyCode,
|
|
559
502
|
walletAddress: AccountController.state.address!,
|
|
560
503
|
redirectUrl: metadata?.redirect?.universal ?? metadata?.redirect?.native
|
|
561
|
-
};
|
|
562
|
-
|
|
563
|
-
const widget = await BlockchainApiController.getOnRampWidget(body);
|
|
504
|
+
});
|
|
564
505
|
|
|
565
506
|
if (!widget || !widget.widgetUrl) {
|
|
566
507
|
throw new Error('Invalid widget response');
|
|
@@ -614,7 +555,6 @@ export const OnRampController = {
|
|
|
614
555
|
await this.fetchServiceProviders();
|
|
615
556
|
|
|
616
557
|
await Promise.all([
|
|
617
|
-
this.fetchCountriesDefaults(),
|
|
618
558
|
this.fetchPaymentMethods(),
|
|
619
559
|
this.fetchFiatLimits(),
|
|
620
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];
|