@reown/appkit-core-react-native 0.0.0-feat-onramp-20250718200617 → 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 +22 -70
- 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 +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 +22 -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 +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 -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 +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 +34 -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';
|
|
@@ -26,7 +25,6 @@ import { BlockchainApiController } from './BlockchainApiController';
|
|
|
26
25
|
// -- Helpers ------------------------------------------- //
|
|
27
26
|
|
|
28
27
|
let quotesAbortController: AbortController | null = null;
|
|
29
|
-
const excludeProviders = ['BINANCECONNECT', 'COINBASEPAY'];
|
|
30
28
|
|
|
31
29
|
// -- Utils --------------------------------------------- //
|
|
32
30
|
|
|
@@ -34,27 +32,23 @@ const mapErrorMessage = (errorCode: string): OnRampError => {
|
|
|
34
32
|
const errorMap: Record<string, { type: OnRampErrorTypeValues; message: string }> = {
|
|
35
33
|
[OnRampErrorType.AMOUNT_TOO_LOW]: {
|
|
36
34
|
type: OnRampErrorType.AMOUNT_TOO_LOW,
|
|
37
|
-
message: '
|
|
35
|
+
message: 'Amount is too low'
|
|
38
36
|
},
|
|
39
37
|
[OnRampErrorType.AMOUNT_TOO_HIGH]: {
|
|
40
38
|
type: OnRampErrorType.AMOUNT_TOO_HIGH,
|
|
41
|
-
message: '
|
|
39
|
+
message: 'Amount is too high'
|
|
42
40
|
},
|
|
43
41
|
[OnRampErrorType.INVALID_AMOUNT]: {
|
|
44
42
|
type: OnRampErrorType.INVALID_AMOUNT,
|
|
45
|
-
message: '
|
|
43
|
+
message: 'Please adjust amount'
|
|
46
44
|
},
|
|
47
45
|
[OnRampErrorType.INCOMPATIBLE_REQUEST]: {
|
|
48
46
|
type: OnRampErrorType.INCOMPATIBLE_REQUEST,
|
|
49
|
-
message: '
|
|
47
|
+
message: 'Try different amount or payment method'
|
|
50
48
|
},
|
|
51
49
|
[OnRampErrorType.BAD_REQUEST]: {
|
|
52
50
|
type: OnRampErrorType.BAD_REQUEST,
|
|
53
|
-
message: '
|
|
54
|
-
},
|
|
55
|
-
[OnRampErrorType.NO_VALID_QUOTES]: {
|
|
56
|
-
type: OnRampErrorType.NO_VALID_QUOTES,
|
|
57
|
-
message: 'No quotes available'
|
|
51
|
+
message: 'Try different amount or payment method'
|
|
58
52
|
}
|
|
59
53
|
};
|
|
60
54
|
|
|
@@ -69,7 +63,6 @@ const mapErrorMessage = (errorCode: string): OnRampError => {
|
|
|
69
63
|
// -- Types --------------------------------------------- //
|
|
70
64
|
export interface OnRampControllerState {
|
|
71
65
|
countries: OnRampCountry[];
|
|
72
|
-
countriesDefaults?: OnRampCountryDefaults[];
|
|
73
66
|
selectedCountry?: OnRampCountry;
|
|
74
67
|
serviceProviders: OnRampServiceProvider[];
|
|
75
68
|
selectedServiceProvider?: OnRampServiceProvider;
|
|
@@ -121,8 +114,9 @@ export const OnRampController = {
|
|
|
121
114
|
|
|
122
115
|
if (updateCurrency) {
|
|
123
116
|
const currencyCode =
|
|
124
|
-
|
|
125
|
-
|
|
117
|
+
ConstantsUtil.COUNTRY_CURRENCIES[
|
|
118
|
+
country.countryCode as keyof typeof ConstantsUtil.COUNTRY_CURRENCIES
|
|
119
|
+
] || 'USD';
|
|
126
120
|
|
|
127
121
|
const currency = state.paymentCurrencies?.find(c => c.currencyCode === currencyCode);
|
|
128
122
|
|
|
@@ -132,7 +126,6 @@ export const OnRampController = {
|
|
|
132
126
|
}
|
|
133
127
|
|
|
134
128
|
await Promise.all([this.fetchPaymentMethods(), this.fetchCryptoCurrencies()]);
|
|
135
|
-
this.clearQuotes();
|
|
136
129
|
|
|
137
130
|
state.loading = false;
|
|
138
131
|
|
|
@@ -141,6 +134,8 @@ export const OnRampController = {
|
|
|
141
134
|
|
|
142
135
|
setSelectedPaymentMethod(paymentMethod: OnRampPaymentMethod) {
|
|
143
136
|
state.selectedPaymentMethod = paymentMethod;
|
|
137
|
+
|
|
138
|
+
this.clearQuotes();
|
|
144
139
|
},
|
|
145
140
|
|
|
146
141
|
setPurchaseCurrency(currency: OnRampCryptoCurrency) {
|
|
@@ -189,7 +184,7 @@ export const OnRampController = {
|
|
|
189
184
|
selectedCurrency = state.purchaseCurrencies?.find(c => c.currencyCode === defaultCurrency);
|
|
190
185
|
}
|
|
191
186
|
|
|
192
|
-
state.purchaseCurrency = selectedCurrency
|
|
187
|
+
state.purchaseCurrency = selectedCurrency || state.purchaseCurrencies?.[0] || undefined;
|
|
193
188
|
},
|
|
194
189
|
|
|
195
190
|
getServiceProviderImage(serviceProviderName?: string) {
|
|
@@ -236,27 +231,6 @@ export const OnRampController = {
|
|
|
236
231
|
}
|
|
237
232
|
},
|
|
238
233
|
|
|
239
|
-
async fetchCountriesDefaults() {
|
|
240
|
-
try {
|
|
241
|
-
let countriesDefaults = await StorageUtil.getOnRampCountriesDefaults();
|
|
242
|
-
|
|
243
|
-
if (!countriesDefaults.length) {
|
|
244
|
-
countriesDefaults = (await BlockchainApiController.fetchOnRampCountriesDefaults()) ?? [];
|
|
245
|
-
|
|
246
|
-
if (countriesDefaults.length) {
|
|
247
|
-
StorageUtil.setOnRampCountriesDefaults(countriesDefaults);
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
state.countriesDefaults = countriesDefaults;
|
|
252
|
-
} catch (error) {
|
|
253
|
-
state.error = {
|
|
254
|
-
type: OnRampErrorType.FAILED_TO_LOAD_COUNTRIES,
|
|
255
|
-
message: 'Failed to load countries defaults'
|
|
256
|
-
};
|
|
257
|
-
}
|
|
258
|
-
},
|
|
259
|
-
|
|
260
234
|
async fetchServiceProviders() {
|
|
261
235
|
try {
|
|
262
236
|
let serviceProviders = await StorageUtil.getOnRampServiceProviders();
|
|
@@ -285,8 +259,10 @@ export const OnRampController = {
|
|
|
285
259
|
});
|
|
286
260
|
|
|
287
261
|
const defaultCountryPaymentMethods =
|
|
288
|
-
|
|
289
|
-
|
|
262
|
+
ConstantsUtil.COUNTRY_DEFAULT_PAYMENT_METHOD[
|
|
263
|
+
state.selectedCountry
|
|
264
|
+
?.countryCode as keyof typeof ConstantsUtil.COUNTRY_DEFAULT_PAYMENT_METHOD
|
|
265
|
+
];
|
|
290
266
|
|
|
291
267
|
state.paymentMethods =
|
|
292
268
|
paymentMethods?.sort((a, b) => {
|
|
@@ -300,7 +276,9 @@ export const OnRampController = {
|
|
|
300
276
|
return aIndex - bIndex;
|
|
301
277
|
}) || [];
|
|
302
278
|
|
|
303
|
-
state.selectedPaymentMethod =
|
|
279
|
+
state.selectedPaymentMethod = paymentMethods?.[0] || undefined;
|
|
280
|
+
|
|
281
|
+
this.clearQuotes();
|
|
304
282
|
} catch (error) {
|
|
305
283
|
state.error = {
|
|
306
284
|
type: OnRampErrorType.FAILED_TO_LOAD_METHODS,
|
|
@@ -358,8 +336,9 @@ export const OnRampController = {
|
|
|
358
336
|
|
|
359
337
|
if (countryCode) {
|
|
360
338
|
currencyCode =
|
|
361
|
-
|
|
362
|
-
|
|
339
|
+
ConstantsUtil.COUNTRY_CURRENCIES[
|
|
340
|
+
countryCode as keyof typeof ConstantsUtil.COUNTRY_CURRENCIES
|
|
341
|
+
];
|
|
363
342
|
}
|
|
364
343
|
|
|
365
344
|
const preferredCurrency = await StorageUtil.getOnRampPreferredFiatCurrency();
|
|
@@ -408,75 +387,36 @@ export const OnRampController = {
|
|
|
408
387
|
}
|
|
409
388
|
|
|
410
389
|
state.quotesLoading = true;
|
|
411
|
-
state.selectedQuote = undefined;
|
|
412
|
-
state.selectedServiceProvider = undefined;
|
|
413
390
|
state.error = undefined;
|
|
414
391
|
|
|
415
392
|
this.abortGetQuotes(false);
|
|
416
393
|
quotesAbortController = new AbortController();
|
|
417
|
-
const currentSignal = quotesAbortController.signal;
|
|
418
394
|
|
|
419
395
|
try {
|
|
420
396
|
const body = {
|
|
421
397
|
countryCode: state.selectedCountry?.countryCode!,
|
|
398
|
+
paymentMethodType: state.selectedPaymentMethod?.paymentMethod!,
|
|
422
399
|
destinationCurrencyCode: state.purchaseCurrency?.currencyCode!,
|
|
423
400
|
sourceAmount: state.paymentAmount,
|
|
424
401
|
sourceCurrencyCode: state.paymentCurrency?.currencyCode!,
|
|
425
|
-
walletAddress: AccountController.state.address
|
|
426
|
-
excludeProviders
|
|
402
|
+
walletAddress: AccountController.state.address!
|
|
427
403
|
};
|
|
428
404
|
|
|
429
|
-
const response = await BlockchainApiController.getOnRampQuotes(
|
|
405
|
+
const response = await BlockchainApiController.getOnRampQuotes(
|
|
406
|
+
body,
|
|
407
|
+
quotesAbortController.signal
|
|
408
|
+
);
|
|
430
409
|
|
|
431
410
|
if (!response || !response.length) {
|
|
432
|
-
throw
|
|
411
|
+
throw new Error('No quotes available');
|
|
433
412
|
}
|
|
434
413
|
|
|
435
414
|
const quotes = response.sort((a, b) => b.customerScore - a.customerScore);
|
|
436
415
|
|
|
437
416
|
state.quotes = quotes;
|
|
438
|
-
|
|
439
|
-
//Replace payment method if it's not in the quotes
|
|
440
|
-
const isValidPaymentMethod =
|
|
441
|
-
state.selectedPaymentMethod &&
|
|
442
|
-
quotes.some(
|
|
443
|
-
quote => quote.paymentMethodType === state.selectedPaymentMethod?.paymentMethod
|
|
444
|
-
);
|
|
445
|
-
|
|
446
|
-
if (!isValidPaymentMethod) {
|
|
447
|
-
const countryMethods =
|
|
448
|
-
state.countriesDefaults?.find(d => d.countryCode === state.selectedCountry?.countryCode)
|
|
449
|
-
?.defaultPaymentMethods || [];
|
|
450
|
-
|
|
451
|
-
const availableQuoteMethods = new Set(quotes.map(q => q.paymentMethodType));
|
|
452
|
-
|
|
453
|
-
let newPaymentMethodType: string | undefined;
|
|
454
|
-
for (const dpm of countryMethods) {
|
|
455
|
-
if (availableQuoteMethods.has(dpm)) {
|
|
456
|
-
newPaymentMethodType = dpm;
|
|
457
|
-
break;
|
|
458
|
-
}
|
|
459
|
-
}
|
|
460
|
-
|
|
461
|
-
if (newPaymentMethodType) {
|
|
462
|
-
state.selectedPaymentMethod =
|
|
463
|
-
state.paymentMethods.find(m => m.paymentMethod === newPaymentMethodType) ||
|
|
464
|
-
state.paymentMethods.find(
|
|
465
|
-
method => method.paymentMethod === quotes[0]?.paymentMethodType
|
|
466
|
-
);
|
|
467
|
-
} else {
|
|
468
|
-
state.selectedPaymentMethod = state.paymentMethods.find(
|
|
469
|
-
method => method.paymentMethod === quotes[0]?.paymentMethodType
|
|
470
|
-
);
|
|
471
|
-
}
|
|
472
|
-
}
|
|
473
|
-
|
|
474
|
-
state.selectedQuote = quotes.find(
|
|
475
|
-
quote => quote.paymentMethodType === state.selectedPaymentMethod?.paymentMethod
|
|
476
|
-
);
|
|
477
|
-
|
|
417
|
+
state.selectedQuote = quotes[0];
|
|
478
418
|
state.selectedServiceProvider = state.serviceProviders.find(
|
|
479
|
-
sp => sp.serviceProvider ===
|
|
419
|
+
sp => sp.serviceProvider === quotes[0]?.serviceProvider
|
|
480
420
|
);
|
|
481
421
|
} catch (error: any) {
|
|
482
422
|
if (error.name === 'AbortError') {
|
|
@@ -495,9 +435,7 @@ export const OnRampController = {
|
|
|
495
435
|
this.clearQuotes();
|
|
496
436
|
state.error = mapErrorMessage(error?.code || 'UNKNOWN_ERROR');
|
|
497
437
|
} finally {
|
|
498
|
-
|
|
499
|
-
state.quotesLoading = false;
|
|
500
|
-
}
|
|
438
|
+
state.quotesLoading = false;
|
|
501
439
|
}
|
|
502
440
|
},
|
|
503
441
|
|
|
@@ -554,7 +492,7 @@ export const OnRampController = {
|
|
|
554
492
|
throw new Error('Invalid quote');
|
|
555
493
|
}
|
|
556
494
|
|
|
557
|
-
const
|
|
495
|
+
const widget = await BlockchainApiController.getOnRampWidget({
|
|
558
496
|
countryCode: quote.countryCode,
|
|
559
497
|
destinationCurrencyCode: quote.destinationCurrencyCode,
|
|
560
498
|
paymentMethodType: quote.paymentMethodType,
|
|
@@ -563,9 +501,7 @@ export const OnRampController = {
|
|
|
563
501
|
sourceCurrencyCode: quote.sourceCurrencyCode,
|
|
564
502
|
walletAddress: AccountController.state.address!,
|
|
565
503
|
redirectUrl: metadata?.redirect?.universal ?? metadata?.redirect?.native
|
|
566
|
-
};
|
|
567
|
-
|
|
568
|
-
const widget = await BlockchainApiController.getOnRampWidget(body);
|
|
504
|
+
});
|
|
569
505
|
|
|
570
506
|
if (!widget || !widget.widgetUrl) {
|
|
571
507
|
throw new Error('Invalid widget response');
|
|
@@ -619,7 +555,6 @@ export const OnRampController = {
|
|
|
619
555
|
await this.fetchServiceProviders();
|
|
620
556
|
|
|
621
557
|
await Promise.all([
|
|
622
|
-
this.fetchCountriesDefaults(),
|
|
623
558
|
this.fetchPaymentMethods(),
|
|
624
559
|
this.fetchFiatLimits(),
|
|
625
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];
|