@reown/appkit-core-react-native 0.0.0-feat-onramp-20250722205908 → 0.0.0-feat-coinbase-20250723173858

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