@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.
Files changed (195) hide show
  1. package/lib/commonjs/controllers/AccountController.js +20 -17
  2. package/lib/commonjs/controllers/AccountController.js.map +1 -1
  3. package/lib/commonjs/controllers/ApiController.js +28 -16
  4. package/lib/commonjs/controllers/ApiController.js.map +1 -1
  5. package/lib/commonjs/controllers/BlockchainApiController.js +166 -67
  6. package/lib/commonjs/controllers/BlockchainApiController.js.map +1 -1
  7. package/lib/commonjs/controllers/ConnectionController.js +8 -11
  8. package/lib/commonjs/controllers/ConnectionController.js.map +1 -1
  9. package/lib/commonjs/controllers/ConnectionsController.js +387 -0
  10. package/lib/commonjs/controllers/ConnectionsController.js.map +1 -0
  11. package/lib/commonjs/controllers/EnsController.js +4 -4
  12. package/lib/commonjs/controllers/EnsController.js.map +1 -1
  13. package/lib/commonjs/controllers/EventsController.js +4 -4
  14. package/lib/commonjs/controllers/EventsController.js.map +1 -1
  15. package/lib/commonjs/controllers/ModalController.js +6 -7
  16. package/lib/commonjs/controllers/ModalController.js.map +1 -1
  17. package/lib/commonjs/controllers/OnRampController.js +21 -62
  18. package/lib/commonjs/controllers/OnRampController.js.map +1 -1
  19. package/lib/commonjs/controllers/OptionsController.js +11 -3
  20. package/lib/commonjs/controllers/OptionsController.js.map +1 -1
  21. package/lib/commonjs/controllers/RouterController.js +1 -22
  22. package/lib/commonjs/controllers/RouterController.js.map +1 -1
  23. package/lib/commonjs/controllers/SendController.js +101 -101
  24. package/lib/commonjs/controllers/SendController.js.map +1 -1
  25. package/lib/commonjs/controllers/SnackController.js +29 -5
  26. package/lib/commonjs/controllers/SnackController.js.map +1 -1
  27. package/lib/commonjs/controllers/SwapController.js +151 -150
  28. package/lib/commonjs/controllers/SwapController.js.map +1 -1
  29. package/lib/commonjs/controllers/ThemeController.js +9 -1
  30. package/lib/commonjs/controllers/ThemeController.js.map +1 -1
  31. package/lib/commonjs/controllers/TransactionsController.js +25 -21
  32. package/lib/commonjs/controllers/TransactionsController.js.map +1 -1
  33. package/lib/commonjs/index.js +3 -24
  34. package/lib/commonjs/index.js.map +1 -1
  35. package/lib/commonjs/utils/AssetUtil.js +3 -15
  36. package/lib/commonjs/utils/AssetUtil.js.map +1 -1
  37. package/lib/commonjs/utils/ConstantsUtil.js +538 -8
  38. package/lib/commonjs/utils/ConstantsUtil.js.map +1 -1
  39. package/lib/commonjs/utils/CoreHelperUtil.js +12 -6
  40. package/lib/commonjs/utils/CoreHelperUtil.js.map +1 -1
  41. package/lib/commonjs/utils/FetchUtil.js +9 -28
  42. package/lib/commonjs/utils/FetchUtil.js.map +1 -1
  43. package/lib/commonjs/utils/StorageUtil.js +51 -42
  44. package/lib/commonjs/utils/StorageUtil.js.map +1 -1
  45. package/lib/commonjs/utils/SwapApiUtil.js +15 -21
  46. package/lib/commonjs/utils/SwapApiUtil.js.map +1 -1
  47. package/lib/module/controllers/AccountController.js +20 -17
  48. package/lib/module/controllers/AccountController.js.map +1 -1
  49. package/lib/module/controllers/ApiController.js +27 -16
  50. package/lib/module/controllers/ApiController.js.map +1 -1
  51. package/lib/module/controllers/BlockchainApiController.js +166 -67
  52. package/lib/module/controllers/BlockchainApiController.js.map +1 -1
  53. package/lib/module/controllers/ConnectionController.js +8 -11
  54. package/lib/module/controllers/ConnectionController.js.map +1 -1
  55. package/lib/module/controllers/ConnectionsController.js +382 -0
  56. package/lib/module/controllers/ConnectionsController.js.map +1 -0
  57. package/lib/module/controllers/EnsController.js +2 -2
  58. package/lib/module/controllers/EnsController.js.map +1 -1
  59. package/lib/module/controllers/EventsController.js +1 -1
  60. package/lib/module/controllers/EventsController.js.map +1 -1
  61. package/lib/module/controllers/ModalController.js +6 -7
  62. package/lib/module/controllers/ModalController.js.map +1 -1
  63. package/lib/module/controllers/OnRampController.js +21 -62
  64. package/lib/module/controllers/OnRampController.js.map +1 -1
  65. package/lib/module/controllers/OptionsController.js +11 -3
  66. package/lib/module/controllers/OptionsController.js.map +1 -1
  67. package/lib/module/controllers/RouterController.js +1 -22
  68. package/lib/module/controllers/RouterController.js.map +1 -1
  69. package/lib/module/controllers/SendController.js +98 -98
  70. package/lib/module/controllers/SendController.js.map +1 -1
  71. package/lib/module/controllers/SnackController.js +29 -5
  72. package/lib/module/controllers/SnackController.js.map +1 -1
  73. package/lib/module/controllers/SwapController.js +151 -150
  74. package/lib/module/controllers/SwapController.js.map +1 -1
  75. package/lib/module/controllers/ThemeController.js +9 -1
  76. package/lib/module/controllers/ThemeController.js.map +1 -1
  77. package/lib/module/controllers/TransactionsController.js +23 -19
  78. package/lib/module/controllers/TransactionsController.js.map +1 -1
  79. package/lib/module/index.js +1 -4
  80. package/lib/module/index.js.map +1 -1
  81. package/lib/module/utils/AssetUtil.js +3 -15
  82. package/lib/module/utils/AssetUtil.js.map +1 -1
  83. package/lib/module/utils/ConstantsUtil.js +538 -8
  84. package/lib/module/utils/ConstantsUtil.js.map +1 -1
  85. package/lib/module/utils/CoreHelperUtil.js +12 -6
  86. package/lib/module/utils/CoreHelperUtil.js.map +1 -1
  87. package/lib/module/utils/FetchUtil.js +9 -28
  88. package/lib/module/utils/FetchUtil.js.map +1 -1
  89. package/lib/module/utils/StorageUtil.js +51 -42
  90. package/lib/module/utils/StorageUtil.js.map +1 -1
  91. package/lib/module/utils/SwapApiUtil.js +15 -21
  92. package/lib/module/utils/SwapApiUtil.js.map +1 -1
  93. package/lib/typescript/controllers/AccountController.d.ts +4 -4
  94. package/lib/typescript/controllers/AccountController.d.ts.map +1 -1
  95. package/lib/typescript/controllers/ApiController.d.ts +3 -2
  96. package/lib/typescript/controllers/ApiController.d.ts.map +1 -1
  97. package/lib/typescript/controllers/BlockchainApiController.d.ts +28 -12
  98. package/lib/typescript/controllers/BlockchainApiController.d.ts.map +1 -1
  99. package/lib/typescript/controllers/ConnectionController.d.ts +3 -11
  100. package/lib/typescript/controllers/ConnectionController.d.ts.map +1 -1
  101. package/lib/typescript/controllers/ConnectionsController.d.ts +53 -0
  102. package/lib/typescript/controllers/ConnectionsController.d.ts.map +1 -0
  103. package/lib/typescript/controllers/ModalController.d.ts +1 -1
  104. package/lib/typescript/controllers/ModalController.d.ts.map +1 -1
  105. package/lib/typescript/controllers/NetworkController.d.ts +1 -1
  106. package/lib/typescript/controllers/NetworkController.d.ts.map +1 -1
  107. package/lib/typescript/controllers/OnRampController.d.ts +1 -3
  108. package/lib/typescript/controllers/OnRampController.d.ts.map +1 -1
  109. package/lib/typescript/controllers/OptionsController.d.ts +7 -2
  110. package/lib/typescript/controllers/OptionsController.d.ts.map +1 -1
  111. package/lib/typescript/controllers/PublicStateController.d.ts +1 -1
  112. package/lib/typescript/controllers/PublicStateController.d.ts.map +1 -1
  113. package/lib/typescript/controllers/RouterController.d.ts +4 -16
  114. package/lib/typescript/controllers/RouterController.d.ts.map +1 -1
  115. package/lib/typescript/controllers/SendController.d.ts +5 -7
  116. package/lib/typescript/controllers/SendController.d.ts.map +1 -1
  117. package/lib/typescript/controllers/SnackController.d.ts +3 -3
  118. package/lib/typescript/controllers/SnackController.d.ts.map +1 -1
  119. package/lib/typescript/controllers/SwapController.d.ts +12 -11
  120. package/lib/typescript/controllers/SwapController.d.ts.map +1 -1
  121. package/lib/typescript/controllers/ThemeController.d.ts +1 -1
  122. package/lib/typescript/controllers/ThemeController.d.ts.map +1 -1
  123. package/lib/typescript/controllers/TransactionsController.d.ts +3 -3
  124. package/lib/typescript/controllers/TransactionsController.d.ts.map +1 -1
  125. package/lib/typescript/index.d.ts +1 -4
  126. package/lib/typescript/index.d.ts.map +1 -1
  127. package/lib/typescript/utils/AssetUtil.d.ts +2 -3
  128. package/lib/typescript/utils/AssetUtil.d.ts.map +1 -1
  129. package/lib/typescript/utils/ConstantsUtil.d.ts +422 -1
  130. package/lib/typescript/utils/ConstantsUtil.d.ts.map +1 -1
  131. package/lib/typescript/utils/CoreHelperUtil.d.ts +5 -4
  132. package/lib/typescript/utils/CoreHelperUtil.d.ts.map +1 -1
  133. package/lib/typescript/utils/FetchUtil.d.ts +1 -1
  134. package/lib/typescript/utils/FetchUtil.d.ts.map +1 -1
  135. package/lib/typescript/utils/StorageUtil.d.ts +14 -7
  136. package/lib/typescript/utils/StorageUtil.d.ts.map +1 -1
  137. package/lib/typescript/utils/SwapApiUtil.d.ts +3 -3
  138. package/lib/typescript/utils/SwapApiUtil.d.ts.map +1 -1
  139. package/lib/typescript/utils/TypeUtil.d.ts +42 -191
  140. package/lib/typescript/utils/TypeUtil.d.ts.map +1 -1
  141. package/package.json +4 -4
  142. package/src/controllers/AccountController.ts +23 -27
  143. package/src/controllers/ApiController.ts +29 -10
  144. package/src/controllers/BlockchainApiController.ts +140 -55
  145. package/src/controllers/ConnectionController.ts +12 -24
  146. package/src/controllers/ConnectionsController.ts +509 -0
  147. package/src/controllers/EnsController.ts +2 -2
  148. package/src/controllers/EventsController.ts +1 -1
  149. package/src/controllers/ModalController.ts +8 -8
  150. package/src/controllers/NetworkController.ts +1 -1
  151. package/src/controllers/OnRampController.ts +33 -93
  152. package/src/controllers/OptionsController.ts +19 -13
  153. package/src/controllers/PublicStateController.ts +1 -1
  154. package/src/controllers/RouterController.ts +5 -54
  155. package/src/controllers/SendController.ts +124 -113
  156. package/src/controllers/SnackController.ts +31 -5
  157. package/src/controllers/SwapController.ts +174 -181
  158. package/src/controllers/ThemeController.ts +11 -2
  159. package/src/controllers/TransactionsController.ts +26 -20
  160. package/src/index.ts +3 -6
  161. package/src/utils/AssetUtil.ts +4 -20
  162. package/src/utils/ConstantsUtil.ts +544 -8
  163. package/src/utils/CoreHelperUtil.ts +34 -9
  164. package/src/utils/FetchUtil.ts +10 -31
  165. package/src/utils/StorageUtil.ts +60 -48
  166. package/src/utils/SwapApiUtil.ts +27 -38
  167. package/src/utils/TypeUtil.ts +43 -193
  168. package/lib/commonjs/controllers/ConnectorController.js +0 -49
  169. package/lib/commonjs/controllers/ConnectorController.js.map +0 -1
  170. package/lib/commonjs/controllers/WebviewController.js +0 -52
  171. package/lib/commonjs/controllers/WebviewController.js.map +0 -1
  172. package/lib/commonjs/utils/ConnectionUtil.js +0 -33
  173. package/lib/commonjs/utils/ConnectionUtil.js.map +0 -1
  174. package/lib/commonjs/utils/NetworkUtil.js +0 -46
  175. package/lib/commonjs/utils/NetworkUtil.js.map +0 -1
  176. package/lib/module/controllers/ConnectorController.js +0 -44
  177. package/lib/module/controllers/ConnectorController.js.map +0 -1
  178. package/lib/module/controllers/WebviewController.js +0 -47
  179. package/lib/module/controllers/WebviewController.js.map +0 -1
  180. package/lib/module/utils/ConnectionUtil.js +0 -27
  181. package/lib/module/utils/ConnectionUtil.js.map +0 -1
  182. package/lib/module/utils/NetworkUtil.js +0 -40
  183. package/lib/module/utils/NetworkUtil.js.map +0 -1
  184. package/lib/typescript/controllers/ConnectorController.d.ts +0 -18
  185. package/lib/typescript/controllers/ConnectorController.d.ts.map +0 -1
  186. package/lib/typescript/controllers/WebviewController.d.ts +0 -21
  187. package/lib/typescript/controllers/WebviewController.d.ts.map +0 -1
  188. package/lib/typescript/utils/ConnectionUtil.d.ts +0 -4
  189. package/lib/typescript/utils/ConnectionUtil.d.ts.map +0 -1
  190. package/lib/typescript/utils/NetworkUtil.d.ts +0 -8
  191. package/lib/typescript/utils/NetworkUtil.d.ts.map +0 -1
  192. package/src/controllers/ConnectorController.ts +0 -63
  193. package/src/controllers/WebviewController.ts +0 -63
  194. package/src/utils/ConnectionUtil.ts +0 -27
  195. 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: 'The amount is too low'
35
+ message: 'Amount is too low'
37
36
  },
38
37
  [OnRampErrorType.AMOUNT_TOO_HIGH]: {
39
38
  type: OnRampErrorType.AMOUNT_TOO_HIGH,
40
- message: 'The amount is too high'
39
+ message: 'Amount is too high'
41
40
  },
42
41
  [OnRampErrorType.INVALID_AMOUNT]: {
43
42
  type: OnRampErrorType.INVALID_AMOUNT,
44
- message: 'Enter a valid amount'
43
+ message: 'Please adjust amount'
45
44
  },
46
45
  [OnRampErrorType.INCOMPATIBLE_REQUEST]: {
47
46
  type: OnRampErrorType.INCOMPATIBLE_REQUEST,
48
- message: 'Enter a valid amount'
47
+ message: 'Try different amount or payment method'
49
48
  },
50
49
  [OnRampErrorType.BAD_REQUEST]: {
51
50
  type: OnRampErrorType.BAD_REQUEST,
52
- message: 'Enter a valid amount'
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
- state.countriesDefaults?.find(d => d.countryCode === country.countryCode)
120
- ?.defaultCurrencyCode || 'USD';
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 ?? state.purchaseCurrencies?.[0] ?? undefined;
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
- state.countriesDefaults?.find(d => d.countryCode === state.selectedCountry?.countryCode)
284
- ?.defaultPaymentMethods || [];
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 = state.paymentMethods[0];
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
- state.countriesDefaults?.find(d => d.countryCode === countryCode)?.defaultCurrencyCode ||
357
- 'USD';
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(body, currentSignal);
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 === state.selectedQuote?.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
- if (!currentSignal.aborted) {
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 body = {
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
- CustomWallet,
4
- Features,
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
- _clipboardClient?: ClipboardClient;
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._clipboardClient = ref(client);
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._clipboardClient;
112
+ return !!state.clipboardClient;
107
113
  },
108
114
 
109
115
  copyToClipboard(value: string) {
110
- const client = state._clipboardClient;
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 '../utils/TypeUtil.js';
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
- // -- Types --------------------------------------------- //
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];