@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.
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 +22 -70
  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 -9
  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 +22 -70
  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 -9
  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 -3
  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 +34 -99
  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 -9
  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';
@@ -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: 'The amount is too low'
35
+ message: 'Amount is too low'
38
36
  },
39
37
  [OnRampErrorType.AMOUNT_TOO_HIGH]: {
40
38
  type: OnRampErrorType.AMOUNT_TOO_HIGH,
41
- message: 'The amount is too high'
39
+ message: 'Amount is too high'
42
40
  },
43
41
  [OnRampErrorType.INVALID_AMOUNT]: {
44
42
  type: OnRampErrorType.INVALID_AMOUNT,
45
- message: 'Enter a valid amount'
43
+ message: 'Please adjust amount'
46
44
  },
47
45
  [OnRampErrorType.INCOMPATIBLE_REQUEST]: {
48
46
  type: OnRampErrorType.INCOMPATIBLE_REQUEST,
49
- message: 'Enter a valid amount'
47
+ message: 'Try different amount or payment method'
50
48
  },
51
49
  [OnRampErrorType.BAD_REQUEST]: {
52
50
  type: OnRampErrorType.BAD_REQUEST,
53
- message: 'Enter a valid amount'
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
- state.countriesDefaults?.find(d => d.countryCode === country.countryCode)
125
- ?.defaultCurrencyCode || 'USD';
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 ?? state.purchaseCurrencies?.[0] ?? undefined;
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
- state.countriesDefaults?.find(d => d.countryCode === state.selectedCountry?.countryCode)
289
- ?.defaultPaymentMethods || [];
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 = state.paymentMethods[0];
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
- state.countriesDefaults?.find(d => d.countryCode === countryCode)?.defaultCurrencyCode ||
362
- 'USD';
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(body, currentSignal);
405
+ const response = await BlockchainApiController.getOnRampQuotes(
406
+ body,
407
+ quotesAbortController.signal
408
+ );
430
409
 
431
410
  if (!response || !response.length) {
432
- throw { code: OnRampErrorType.NO_VALID_QUOTES };
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 === state.selectedQuote?.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
- if (!currentSignal.aborted) {
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 body = {
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
- 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];