@reown/appkit-core-react-native 0.0.0-chore-canary-20250722145858 → 0.0.0-chore-bump-builder-20250728194329

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 (209) hide show
  1. package/lib/commonjs/controllers/ApiController.js +27 -16
  2. package/lib/commonjs/controllers/ApiController.js.map +1 -1
  3. package/lib/commonjs/controllers/BlockchainApiController.js +173 -103
  4. package/lib/commonjs/controllers/BlockchainApiController.js.map +1 -1
  5. package/lib/commonjs/controllers/ConnectionController.js +8 -11
  6. package/lib/commonjs/controllers/ConnectionController.js.map +1 -1
  7. package/lib/commonjs/controllers/ConnectionsController.js +417 -0
  8. package/lib/commonjs/controllers/ConnectionsController.js.map +1 -0
  9. package/lib/commonjs/controllers/ModalController.js +6 -7
  10. package/lib/commonjs/controllers/ModalController.js.map +1 -1
  11. package/lib/commonjs/controllers/OnRampController.js +58 -42
  12. package/lib/commonjs/controllers/OnRampController.js.map +1 -1
  13. package/lib/commonjs/controllers/OptionsController.js +17 -3
  14. package/lib/commonjs/controllers/OptionsController.js.map +1 -1
  15. package/lib/commonjs/controllers/RouterController.js +1 -22
  16. package/lib/commonjs/controllers/RouterController.js.map +1 -1
  17. package/lib/commonjs/controllers/SendController.js +96 -96
  18. package/lib/commonjs/controllers/SendController.js.map +1 -1
  19. package/lib/commonjs/controllers/SnackController.js +29 -5
  20. package/lib/commonjs/controllers/SnackController.js.map +1 -1
  21. package/lib/commonjs/controllers/SwapController.js +151 -150
  22. package/lib/commonjs/controllers/SwapController.js.map +1 -1
  23. package/lib/commonjs/controllers/ThemeController.js +9 -1
  24. package/lib/commonjs/controllers/ThemeController.js.map +1 -1
  25. package/lib/commonjs/controllers/TransactionsController.js +22 -18
  26. package/lib/commonjs/controllers/TransactionsController.js.map +1 -1
  27. package/lib/commonjs/index.js +3 -38
  28. package/lib/commonjs/index.js.map +1 -1
  29. package/lib/commonjs/package.json +1 -0
  30. package/lib/commonjs/utils/AssetUtil.js +3 -15
  31. package/lib/commonjs/utils/AssetUtil.js.map +1 -1
  32. package/lib/commonjs/utils/ConstantsUtil.js +122 -5
  33. package/lib/commonjs/utils/ConstantsUtil.js.map +1 -1
  34. package/lib/commonjs/utils/CoreHelperUtil.js +11 -5
  35. package/lib/commonjs/utils/CoreHelperUtil.js.map +1 -1
  36. package/lib/commonjs/utils/FetchUtil.js +7 -2
  37. package/lib/commonjs/utils/FetchUtil.js.map +1 -1
  38. package/lib/commonjs/utils/StorageUtil.js +99 -71
  39. package/lib/commonjs/utils/StorageUtil.js.map +1 -1
  40. package/lib/commonjs/utils/SwapApiUtil.js +15 -21
  41. package/lib/commonjs/utils/SwapApiUtil.js.map +1 -1
  42. package/lib/commonjs/utils/TypeUtil.js +25 -0
  43. package/lib/commonjs/utils/TypeUtil.js.map +1 -1
  44. package/lib/module/controllers/ApiController.js +28 -16
  45. package/lib/module/controllers/ApiController.js.map +1 -1
  46. package/lib/module/controllers/AssetController.js +2 -0
  47. package/lib/module/controllers/AssetController.js.map +1 -1
  48. package/lib/module/controllers/BlockchainApiController.js +174 -102
  49. package/lib/module/controllers/BlockchainApiController.js.map +1 -1
  50. package/lib/module/controllers/ConnectionController.js +10 -11
  51. package/lib/module/controllers/ConnectionController.js.map +1 -1
  52. package/lib/module/controllers/ConnectionsController.js +414 -0
  53. package/lib/module/controllers/ConnectionsController.js.map +1 -0
  54. package/lib/module/controllers/EnsController.js +2 -0
  55. package/lib/module/controllers/EnsController.js.map +1 -1
  56. package/lib/module/controllers/EventsController.js +2 -0
  57. package/lib/module/controllers/EventsController.js.map +1 -1
  58. package/lib/module/controllers/ModalController.js +8 -7
  59. package/lib/module/controllers/ModalController.js.map +1 -1
  60. package/lib/module/controllers/OnRampController.js +59 -41
  61. package/lib/module/controllers/OnRampController.js.map +1 -1
  62. package/lib/module/controllers/OptionsController.js +19 -3
  63. package/lib/module/controllers/OptionsController.js.map +1 -1
  64. package/lib/module/controllers/PublicStateController.js +2 -0
  65. package/lib/module/controllers/PublicStateController.js.map +1 -1
  66. package/lib/module/controllers/RouterController.js +3 -22
  67. package/lib/module/controllers/RouterController.js.map +1 -1
  68. package/lib/module/controllers/SendController.js +98 -96
  69. package/lib/module/controllers/SendController.js.map +1 -1
  70. package/lib/module/controllers/SnackController.js +31 -5
  71. package/lib/module/controllers/SnackController.js.map +1 -1
  72. package/lib/module/controllers/SwapController.js +153 -150
  73. package/lib/module/controllers/SwapController.js.map +1 -1
  74. package/lib/module/controllers/ThemeController.js +11 -1
  75. package/lib/module/controllers/ThemeController.js.map +1 -1
  76. package/lib/module/controllers/TransactionsController.js +24 -18
  77. package/lib/module/controllers/TransactionsController.js.map +1 -1
  78. package/lib/module/index.js +3 -6
  79. package/lib/module/index.js.map +1 -1
  80. package/lib/module/utils/ApiUtil.js +2 -0
  81. package/lib/module/utils/ApiUtil.js.map +1 -1
  82. package/lib/module/utils/AssetUtil.js +5 -15
  83. package/lib/module/utils/AssetUtil.js.map +1 -1
  84. package/lib/module/utils/ConstantsUtil.js +124 -5
  85. package/lib/module/utils/ConstantsUtil.js.map +1 -1
  86. package/lib/module/utils/CoreHelperUtil.js +13 -5
  87. package/lib/module/utils/CoreHelperUtil.js.map +1 -1
  88. package/lib/module/utils/EventUtil.js +2 -0
  89. package/lib/module/utils/EventUtil.js.map +1 -1
  90. package/lib/module/utils/FetchUtil.js +9 -2
  91. package/lib/module/utils/FetchUtil.js.map +1 -1
  92. package/lib/module/utils/RouterUtil.js +2 -0
  93. package/lib/module/utils/RouterUtil.js.map +1 -1
  94. package/lib/module/utils/StorageUtil.js +103 -71
  95. package/lib/module/utils/StorageUtil.js.map +1 -1
  96. package/lib/module/utils/SwapApiUtil.js +17 -21
  97. package/lib/module/utils/SwapApiUtil.js.map +1 -1
  98. package/lib/module/utils/SwapCalculationUtil.js +2 -0
  99. package/lib/module/utils/SwapCalculationUtil.js.map +1 -1
  100. package/lib/module/utils/TypeUtil.js +25 -1
  101. package/lib/module/utils/TypeUtil.js.map +1 -1
  102. package/lib/typescript/controllers/ApiController.d.ts +3 -2
  103. package/lib/typescript/controllers/ApiController.d.ts.map +1 -1
  104. package/lib/typescript/controllers/BlockchainApiController.d.ts +30 -11
  105. package/lib/typescript/controllers/BlockchainApiController.d.ts.map +1 -1
  106. package/lib/typescript/controllers/ConnectionController.d.ts +5 -16
  107. package/lib/typescript/controllers/ConnectionController.d.ts.map +1 -1
  108. package/lib/typescript/controllers/ConnectionsController.d.ts +45 -0
  109. package/lib/typescript/controllers/ConnectionsController.d.ts.map +1 -0
  110. package/lib/typescript/controllers/ModalController.d.ts.map +1 -1
  111. package/lib/typescript/controllers/OnRampController.d.ts +1 -2
  112. package/lib/typescript/controllers/OnRampController.d.ts.map +1 -1
  113. package/lib/typescript/controllers/OptionsController.d.ts +8 -2
  114. package/lib/typescript/controllers/OptionsController.d.ts.map +1 -1
  115. package/lib/typescript/controllers/PublicStateController.d.ts +1 -1
  116. package/lib/typescript/controllers/PublicStateController.d.ts.map +1 -1
  117. package/lib/typescript/controllers/RouterController.d.ts +4 -16
  118. package/lib/typescript/controllers/RouterController.d.ts.map +1 -1
  119. package/lib/typescript/controllers/SendController.d.ts +5 -7
  120. package/lib/typescript/controllers/SendController.d.ts.map +1 -1
  121. package/lib/typescript/controllers/SnackController.d.ts +3 -3
  122. package/lib/typescript/controllers/SnackController.d.ts.map +1 -1
  123. package/lib/typescript/controllers/SwapController.d.ts +12 -11
  124. package/lib/typescript/controllers/SwapController.d.ts.map +1 -1
  125. package/lib/typescript/controllers/ThemeController.d.ts +1 -1
  126. package/lib/typescript/controllers/ThemeController.d.ts.map +1 -1
  127. package/lib/typescript/controllers/TransactionsController.d.ts +3 -3
  128. package/lib/typescript/controllers/TransactionsController.d.ts.map +1 -1
  129. package/lib/typescript/index.d.ts +1 -6
  130. package/lib/typescript/index.d.ts.map +1 -1
  131. package/lib/typescript/utils/AssetUtil.d.ts +2 -3
  132. package/lib/typescript/utils/AssetUtil.d.ts.map +1 -1
  133. package/lib/typescript/utils/ConstantsUtil.d.ts +11 -1
  134. package/lib/typescript/utils/ConstantsUtil.d.ts.map +1 -1
  135. package/lib/typescript/utils/CoreHelperUtil.d.ts +5 -4
  136. package/lib/typescript/utils/CoreHelperUtil.d.ts.map +1 -1
  137. package/lib/typescript/utils/FetchUtil.d.ts +1 -1
  138. package/lib/typescript/utils/FetchUtil.d.ts.map +1 -1
  139. package/lib/typescript/utils/StorageUtil.d.ts +18 -12
  140. package/lib/typescript/utils/StorageUtil.d.ts.map +1 -1
  141. package/lib/typescript/utils/SwapApiUtil.d.ts +3 -3
  142. package/lib/typescript/utils/SwapApiUtil.d.ts.map +1 -1
  143. package/lib/typescript/utils/TypeUtil.d.ts +44 -184
  144. package/lib/typescript/utils/TypeUtil.d.ts.map +1 -1
  145. package/package.json +7 -7
  146. package/src/controllers/ApiController.ts +28 -10
  147. package/src/controllers/BlockchainApiController.ts +152 -89
  148. package/src/controllers/ConnectionController.ts +14 -29
  149. package/src/controllers/ConnectionsController.ts +543 -0
  150. package/src/controllers/ModalController.ts +6 -7
  151. package/src/controllers/OnRampController.ts +91 -59
  152. package/src/controllers/OptionsController.ts +27 -13
  153. package/src/controllers/PublicStateController.ts +1 -1
  154. package/src/controllers/RouterController.ts +5 -54
  155. package/src/controllers/SendController.ts +122 -111
  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 +25 -19
  160. package/src/index.ts +3 -14
  161. package/src/utils/AssetUtil.ts +4 -20
  162. package/src/utils/ConstantsUtil.ts +126 -5
  163. package/src/utils/CoreHelperUtil.ts +34 -7
  164. package/src/utils/FetchUtil.ts +9 -3
  165. package/src/utils/StorageUtil.ts +180 -78
  166. package/src/utils/SwapApiUtil.ts +27 -38
  167. package/src/utils/TypeUtil.ts +54 -182
  168. package/lib/commonjs/controllers/AccountController.js +0 -93
  169. package/lib/commonjs/controllers/AccountController.js.map +0 -1
  170. package/lib/commonjs/controllers/ConnectorController.js +0 -49
  171. package/lib/commonjs/controllers/ConnectorController.js.map +0 -1
  172. package/lib/commonjs/controllers/NetworkController.js +0 -90
  173. package/lib/commonjs/controllers/NetworkController.js.map +0 -1
  174. package/lib/commonjs/controllers/WebviewController.js +0 -52
  175. package/lib/commonjs/controllers/WebviewController.js.map +0 -1
  176. package/lib/commonjs/utils/ConnectionUtil.js +0 -33
  177. package/lib/commonjs/utils/ConnectionUtil.js.map +0 -1
  178. package/lib/commonjs/utils/NetworkUtil.js +0 -46
  179. package/lib/commonjs/utils/NetworkUtil.js.map +0 -1
  180. package/lib/module/controllers/AccountController.js +0 -88
  181. package/lib/module/controllers/AccountController.js.map +0 -1
  182. package/lib/module/controllers/ConnectorController.js +0 -44
  183. package/lib/module/controllers/ConnectorController.js.map +0 -1
  184. package/lib/module/controllers/NetworkController.js +0 -85
  185. package/lib/module/controllers/NetworkController.js.map +0 -1
  186. package/lib/module/controllers/WebviewController.js +0 -47
  187. package/lib/module/controllers/WebviewController.js.map +0 -1
  188. package/lib/module/utils/ConnectionUtil.js +0 -27
  189. package/lib/module/utils/ConnectionUtil.js.map +0 -1
  190. package/lib/module/utils/NetworkUtil.js +0 -40
  191. package/lib/module/utils/NetworkUtil.js.map +0 -1
  192. package/lib/typescript/controllers/AccountController.d.ts +0 -33
  193. package/lib/typescript/controllers/AccountController.d.ts.map +0 -1
  194. package/lib/typescript/controllers/ConnectorController.d.ts +0 -18
  195. package/lib/typescript/controllers/ConnectorController.d.ts.map +0 -1
  196. package/lib/typescript/controllers/NetworkController.d.ts +0 -34
  197. package/lib/typescript/controllers/NetworkController.d.ts.map +0 -1
  198. package/lib/typescript/controllers/WebviewController.d.ts +0 -21
  199. package/lib/typescript/controllers/WebviewController.d.ts.map +0 -1
  200. package/lib/typescript/utils/ConnectionUtil.d.ts +0 -4
  201. package/lib/typescript/utils/ConnectionUtil.d.ts.map +0 -1
  202. package/lib/typescript/utils/NetworkUtil.d.ts +0 -8
  203. package/lib/typescript/utils/NetworkUtil.d.ts.map +0 -1
  204. package/src/controllers/AccountController.ts +0 -128
  205. package/src/controllers/ConnectorController.ts +0 -63
  206. package/src/controllers/NetworkController.ts +0 -120
  207. package/src/controllers/WebviewController.ts +0 -63
  208. package/src/utils/ConnectionUtil.ts +0 -27
  209. package/src/utils/NetworkUtil.ts +0 -33
@@ -1,32 +1,31 @@
1
- import { subscribeKey as subKey } from 'valtio/vanilla/utils';
2
- import { proxy, subscribe as sub } from 'valtio/vanilla';
3
- import type {
4
- OnRampPaymentMethod,
5
- OnRampCountry,
6
- OnRampFiatCurrency,
7
- OnRampQuote,
8
- OnRampFiatLimit,
9
- OnRampCryptoCurrency,
10
- OnRampServiceProvider,
11
- OnRampError,
12
- OnRampErrorTypeValues,
13
- OnRampCountryDefaults
1
+ import { subscribeKey as subKey } from 'valtio/utils';
2
+ import { proxy, subscribe as sub } from 'valtio';
3
+ import {
4
+ type OnRampPaymentMethod,
5
+ type OnRampCountry,
6
+ type OnRampFiatCurrency,
7
+ type OnRampQuote,
8
+ type OnRampFiatLimit,
9
+ type OnRampCryptoCurrency,
10
+ type OnRampServiceProvider,
11
+ type OnRampError,
12
+ type OnRampErrorTypeValues,
13
+ type OnRampCountryDefaults,
14
+ BlockchainOnRampError
14
15
  } from '../utils/TypeUtil';
15
16
 
16
17
  import { CoreHelperUtil } from '../utils/CoreHelperUtil';
17
- import { NetworkController } from './NetworkController';
18
- import { AccountController } from './AccountController';
19
18
  import { OptionsController } from './OptionsController';
20
19
  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 } from './BlockchainApiController';
23
+ import { BlockchainApiController, EXCLUDED_ONRAMP_PROVIDERS } from './BlockchainApiController';
24
+ import { ConnectionsController } from './ConnectionsController';
25
25
 
26
26
  // -- Helpers ------------------------------------------- //
27
27
 
28
28
  let quotesAbortController: AbortController | null = null;
29
- const excludeProviders = ['BINANCECONNECT', 'COINBASEPAY'];
30
29
 
31
30
  // -- Utils --------------------------------------------- //
32
31
 
@@ -116,27 +115,35 @@ export const OnRampController = {
116
115
  },
117
116
 
118
117
  async setSelectedCountry(country: OnRampCountry, updateCurrency = true) {
119
- state.selectedCountry = country;
120
- state.loading = true;
118
+ try {
119
+ state.selectedCountry = country;
120
+ state.loading = true;
121
121
 
122
- if (updateCurrency) {
123
- const currencyCode =
124
- state.countriesDefaults?.find(d => d.countryCode === country.countryCode)
125
- ?.defaultCurrencyCode || 'USD';
122
+ if (updateCurrency) {
123
+ const currencyCode =
124
+ state.countriesDefaults?.find(d => d.countryCode === country.countryCode)
125
+ ?.defaultCurrencyCode || 'USD';
126
126
 
127
- const currency = state.paymentCurrencies?.find(c => c.currencyCode === currencyCode);
127
+ const currency = state.paymentCurrencies?.find(c => c.currencyCode === currencyCode);
128
128
 
129
- if (currency) {
130
- this.setPaymentCurrency(currency);
129
+ if (currency) {
130
+ this.setPaymentCurrency(currency);
131
+ }
131
132
  }
132
- }
133
133
 
134
- await Promise.all([this.fetchPaymentMethods(), this.fetchCryptoCurrencies()]);
135
- this.clearQuotes();
134
+ await Promise.all([this.fetchPaymentMethods(), this.fetchCryptoCurrencies()]);
135
+ this.clearQuotes();
136
136
 
137
- state.loading = false;
137
+ state.loading = false;
138
138
 
139
- StorageUtil.setOnRampPreferredCountry(country);
139
+ StorageUtil.setOnRampPreferredCountry(country);
140
+ } catch (error) {
141
+ state.loading = false;
142
+ state.error = {
143
+ type: OnRampErrorType.FAILED_TO_LOAD_COUNTRIES,
144
+ message: 'Failed to load countries'
145
+ };
146
+ }
140
147
  },
141
148
 
142
149
  setSelectedPaymentMethod(paymentMethod: OnRampPaymentMethod) {
@@ -180,16 +187,16 @@ export const OnRampController = {
180
187
 
181
188
  updateSelectedPurchaseCurrency() {
182
189
  let selectedCurrency;
183
- if (NetworkController.state.caipNetwork?.id) {
190
+ if (ConnectionsController.state.activeNetwork?.caipNetworkId) {
184
191
  const defaultCurrency =
185
192
  ConstantsUtil.NETWORK_DEFAULT_CURRENCIES[
186
- NetworkController.state.caipNetwork
187
- ?.id as keyof typeof ConstantsUtil.NETWORK_DEFAULT_CURRENCIES
193
+ ConnectionsController.state.activeNetwork
194
+ ?.caipNetworkId as keyof typeof ConstantsUtil.NETWORK_DEFAULT_CURRENCIES
188
195
  ];
189
196
  selectedCurrency = state.purchaseCurrencies?.find(c => c.currencyCode === defaultCurrency);
190
197
  }
191
198
 
192
- state.purchaseCurrency = selectedCurrency ?? state.purchaseCurrencies?.[0] ?? undefined;
199
+ state.purchaseCurrency = selectedCurrency ?? undefined;
193
200
  },
194
201
 
195
202
  getServiceProviderImage(serviceProviderName?: string) {
@@ -320,16 +327,16 @@ export const OnRampController = {
320
327
  state.purchaseCurrencies = cryptoCurrencies || [];
321
328
 
322
329
  let selectedCurrency;
323
- if (NetworkController.state.caipNetwork?.id) {
330
+ if (ConnectionsController.state.activeNetwork?.caipNetworkId) {
324
331
  const defaultCurrency =
325
332
  ConstantsUtil.NETWORK_DEFAULT_CURRENCIES[
326
- NetworkController.state.caipNetwork
327
- ?.id as keyof typeof ConstantsUtil.NETWORK_DEFAULT_CURRENCIES
328
- ] || 'ETH';
333
+ ConnectionsController.state.activeNetwork
334
+ ?.caipNetworkId as keyof typeof ConstantsUtil.NETWORK_DEFAULT_CURRENCIES
335
+ ];
329
336
  selectedCurrency = state.purchaseCurrencies?.find(c => c.currencyCode === defaultCurrency);
330
337
  }
331
338
 
332
- state.purchaseCurrency = selectedCurrency || cryptoCurrencies?.[0] || undefined;
339
+ state.purchaseCurrency = selectedCurrency || undefined;
333
340
  } catch (error) {
334
341
  state.error = {
335
342
  type: OnRampErrorType.FAILED_TO_LOAD_CURRENCIES,
@@ -396,40 +403,53 @@ export const OnRampController = {
396
403
  }
397
404
  },
398
405
 
399
- getQuotesDebounced: CoreHelperUtil.debounce(function () {
400
- OnRampController.getQuotes();
401
- }, 500),
402
-
403
406
  async getQuotes() {
404
- if (!state.paymentAmount || state.paymentAmount <= 0) {
407
+ if (!this.canGenerateQuote()) {
405
408
  this.clearQuotes();
406
409
 
407
410
  return;
408
411
  }
409
412
 
410
- state.quotesLoading = true;
411
- state.selectedQuote = undefined;
412
- state.selectedServiceProvider = undefined;
413
- state.error = undefined;
414
-
415
413
  this.abortGetQuotes(false);
416
414
  quotesAbortController = new AbortController();
417
415
  const currentSignal = quotesAbortController.signal;
418
416
 
419
417
  try {
418
+ if (
419
+ !state.selectedCountry?.countryCode ||
420
+ !state.purchaseCurrency?.currencyCode ||
421
+ !state.paymentCurrency?.currencyCode ||
422
+ !ConnectionsController.state.activeAddress
423
+ ) {
424
+ throw new BlockchainOnRampError(OnRampErrorType.UNKNOWN, 'Invalid quote parameters');
425
+ }
426
+
427
+ state.quotesLoading = true;
428
+ state.selectedQuote = undefined;
429
+ state.selectedServiceProvider = undefined;
430
+ state.error = undefined;
431
+
432
+ const plainAddress = CoreHelperUtil.getPlainAddress(
433
+ ConnectionsController.state.activeAddress
434
+ );
435
+
436
+ if (!plainAddress) {
437
+ throw new Error('Invalid address');
438
+ }
439
+
420
440
  const body = {
421
- countryCode: state.selectedCountry?.countryCode!,
422
- destinationCurrencyCode: state.purchaseCurrency?.currencyCode!,
423
- sourceAmount: state.paymentAmount,
424
- sourceCurrencyCode: state.paymentCurrency?.currencyCode!,
425
- walletAddress: AccountController.state.address!,
426
- excludeProviders
441
+ countryCode: state.selectedCountry.countryCode,
442
+ destinationCurrencyCode: state.purchaseCurrency.currencyCode,
443
+ sourceAmount: state.paymentAmount!,
444
+ sourceCurrencyCode: state.paymentCurrency.currencyCode,
445
+ walletAddress: plainAddress,
446
+ excludeProviders: EXCLUDED_ONRAMP_PROVIDERS
427
447
  };
428
448
 
429
449
  const response = await BlockchainApiController.getOnRampQuotes(body, currentSignal);
430
450
 
431
451
  if (!response || !response.length) {
432
- throw { code: OnRampErrorType.NO_VALID_QUOTES };
452
+ throw new BlockchainOnRampError(OnRampErrorType.NO_VALID_QUOTES, 'No valid quotes');
433
453
  }
434
454
 
435
455
  const quotes = response.sort((a, b) => b.customerScore - a.customerScore);
@@ -511,7 +531,7 @@ export const OnRampController = {
511
531
  state.paymentCurrency?.currencyCode &&
512
532
  state.selectedCountry &&
513
533
  !state.loading &&
514
- AccountController.state.address
534
+ ConnectionsController.state.activeAddress
515
535
  );
516
536
  },
517
537
 
@@ -538,6 +558,10 @@ export const OnRampController = {
538
558
  },
539
559
 
540
560
  async generateWidget({ quote }: { quote: OnRampQuote }) {
561
+ if (!ConnectionsController.state.activeAddress) {
562
+ throw new Error('No active address');
563
+ }
564
+
541
565
  const metadata = OptionsController.state.metadata;
542
566
  const eventProperties = {
543
567
  asset: quote.destinationCurrencyCode,
@@ -554,6 +578,14 @@ export const OnRampController = {
554
578
  throw new Error('Invalid quote');
555
579
  }
556
580
 
581
+ const plainAddress = CoreHelperUtil.getPlainAddress(
582
+ ConnectionsController.state.activeAddress
583
+ );
584
+
585
+ if (!plainAddress) {
586
+ throw new Error('Invalid address');
587
+ }
588
+
557
589
  const body = {
558
590
  countryCode: quote.countryCode,
559
591
  destinationCurrencyCode: quote.destinationCurrencyCode,
@@ -561,7 +593,7 @@ export const OnRampController = {
561
593
  serviceProvider: quote.serviceProvider,
562
594
  sourceAmount: quote.sourceAmount,
563
595
  sourceCurrencyCode: quote.sourceCurrencyCode,
564
- walletAddress: AccountController.state.address!,
596
+ walletAddress: plainAddress,
565
597
  redirectUrl: metadata?.redirect?.universal ?? metadata?.redirect?.native
566
598
  };
567
599
 
@@ -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,30 @@ 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;
113
+ },
114
+
115
+ getStorage() {
116
+ if (!state.storage) {
117
+ throw new Error('AppKit: Storage is not set');
118
+ }
119
+
120
+ return state.storage;
107
121
  },
108
122
 
109
123
  copyToClipboard(value: string) {
110
- const client = state._clipboardClient;
124
+ const client = state.clipboardClient;
111
125
  if (client) {
112
126
  client?.setString(value);
113
127
  }
@@ -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];