@reown/appkit-core-react-native 0.0.0-accounts-canary.1-20251023174733

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 (234) hide show
  1. package/lib/commonjs/controllers/ApiController.js +410 -0
  2. package/lib/commonjs/controllers/ApiController.js.map +1 -0
  3. package/lib/commonjs/controllers/AssetController.js +30 -0
  4. package/lib/commonjs/controllers/AssetController.js.map +1 -0
  5. package/lib/commonjs/controllers/BlockchainApiController.js +384 -0
  6. package/lib/commonjs/controllers/BlockchainApiController.js.map +1 -0
  7. package/lib/commonjs/controllers/ConnectionsController.js +425 -0
  8. package/lib/commonjs/controllers/ConnectionsController.js.map +1 -0
  9. package/lib/commonjs/controllers/EnsController.js +37 -0
  10. package/lib/commonjs/controllers/EnsController.js.map +1 -0
  11. package/lib/commonjs/controllers/EventsController.js +122 -0
  12. package/lib/commonjs/controllers/EventsController.js.map +1 -0
  13. package/lib/commonjs/controllers/LogController.js +188 -0
  14. package/lib/commonjs/controllers/LogController.js.map +1 -0
  15. package/lib/commonjs/controllers/ModalController.js +68 -0
  16. package/lib/commonjs/controllers/ModalController.js.map +1 -0
  17. package/lib/commonjs/controllers/OnRampController.js +502 -0
  18. package/lib/commonjs/controllers/OnRampController.js.map +1 -0
  19. package/lib/commonjs/controllers/OptionsController.js +96 -0
  20. package/lib/commonjs/controllers/OptionsController.js.map +1 -0
  21. package/lib/commonjs/controllers/PublicStateController.js +33 -0
  22. package/lib/commonjs/controllers/PublicStateController.js.map +1 -0
  23. package/lib/commonjs/controllers/RouterController.js +63 -0
  24. package/lib/commonjs/controllers/RouterController.js.map +1 -0
  25. package/lib/commonjs/controllers/SendController.js +192 -0
  26. package/lib/commonjs/controllers/SendController.js.map +1 -0
  27. package/lib/commonjs/controllers/SnackController.js +83 -0
  28. package/lib/commonjs/controllers/SnackController.js.map +1 -0
  29. package/lib/commonjs/controllers/SwapController.js +674 -0
  30. package/lib/commonjs/controllers/SwapController.js.map +1 -0
  31. package/lib/commonjs/controllers/ThemeController.js +45 -0
  32. package/lib/commonjs/controllers/ThemeController.js.map +1 -0
  33. package/lib/commonjs/controllers/TransactionsController.js +118 -0
  34. package/lib/commonjs/controllers/TransactionsController.js.map +1 -0
  35. package/lib/commonjs/controllers/WcController.js +73 -0
  36. package/lib/commonjs/controllers/WcController.js.map +1 -0
  37. package/lib/commonjs/features/reown-authentication/ReownAuthentication.js +272 -0
  38. package/lib/commonjs/features/reown-authentication/ReownAuthentication.js.map +1 -0
  39. package/lib/commonjs/features/reown-authentication/ReownAuthenticationMessenger.js +48 -0
  40. package/lib/commonjs/features/reown-authentication/ReownAuthenticationMessenger.js.map +1 -0
  41. package/lib/commonjs/features/reown-authentication/index.js +28 -0
  42. package/lib/commonjs/features/reown-authentication/index.js.map +1 -0
  43. package/lib/commonjs/index.js +202 -0
  44. package/lib/commonjs/index.js.map +1 -0
  45. package/lib/commonjs/package.json +1 -0
  46. package/lib/commonjs/utils/ApiUtil.js +43 -0
  47. package/lib/commonjs/utils/ApiUtil.js.map +1 -0
  48. package/lib/commonjs/utils/AssetUtil.js +27 -0
  49. package/lib/commonjs/utils/AssetUtil.js.map +1 -0
  50. package/lib/commonjs/utils/ConstantsUtil.js +226 -0
  51. package/lib/commonjs/utils/ConstantsUtil.js.map +1 -0
  52. package/lib/commonjs/utils/CoreHelperUtil.js +298 -0
  53. package/lib/commonjs/utils/CoreHelperUtil.js.map +1 -0
  54. package/lib/commonjs/utils/EventUtil.js +25 -0
  55. package/lib/commonjs/utils/EventUtil.js.map +1 -0
  56. package/lib/commonjs/utils/FetchUtil.js +158 -0
  57. package/lib/commonjs/utils/FetchUtil.js.map +1 -0
  58. package/lib/commonjs/utils/LogUtils.js +131 -0
  59. package/lib/commonjs/utils/LogUtils.js.map +1 -0
  60. package/lib/commonjs/utils/StorageUtil.js +319 -0
  61. package/lib/commonjs/utils/StorageUtil.js.map +1 -0
  62. package/lib/commonjs/utils/SwapApiUtil.js +75 -0
  63. package/lib/commonjs/utils/SwapApiUtil.js.map +1 -0
  64. package/lib/commonjs/utils/SwapCalculationUtil.js +97 -0
  65. package/lib/commonjs/utils/SwapCalculationUtil.js.map +1 -0
  66. package/lib/commonjs/utils/WalletUtil.js +23 -0
  67. package/lib/commonjs/utils/WalletUtil.js.map +1 -0
  68. package/lib/module/controllers/ApiController.js +407 -0
  69. package/lib/module/controllers/ApiController.js.map +1 -0
  70. package/lib/module/controllers/AssetController.js +27 -0
  71. package/lib/module/controllers/AssetController.js.map +1 -0
  72. package/lib/module/controllers/BlockchainApiController.js +381 -0
  73. package/lib/module/controllers/BlockchainApiController.js.map +1 -0
  74. package/lib/module/controllers/ConnectionsController.js +422 -0
  75. package/lib/module/controllers/ConnectionsController.js.map +1 -0
  76. package/lib/module/controllers/EnsController.js +34 -0
  77. package/lib/module/controllers/EnsController.js.map +1 -0
  78. package/lib/module/controllers/EventsController.js +118 -0
  79. package/lib/module/controllers/EventsController.js.map +1 -0
  80. package/lib/module/controllers/LogController.js +185 -0
  81. package/lib/module/controllers/LogController.js.map +1 -0
  82. package/lib/module/controllers/ModalController.js +65 -0
  83. package/lib/module/controllers/ModalController.js.map +1 -0
  84. package/lib/module/controllers/OnRampController.js +499 -0
  85. package/lib/module/controllers/OnRampController.js.map +1 -0
  86. package/lib/module/controllers/OptionsController.js +93 -0
  87. package/lib/module/controllers/OptionsController.js.map +1 -0
  88. package/lib/module/controllers/PublicStateController.js +30 -0
  89. package/lib/module/controllers/PublicStateController.js.map +1 -0
  90. package/lib/module/controllers/RouterController.js +60 -0
  91. package/lib/module/controllers/RouterController.js.map +1 -0
  92. package/lib/module/controllers/SendController.js +189 -0
  93. package/lib/module/controllers/SendController.js.map +1 -0
  94. package/lib/module/controllers/SnackController.js +80 -0
  95. package/lib/module/controllers/SnackController.js.map +1 -0
  96. package/lib/module/controllers/SwapController.js +671 -0
  97. package/lib/module/controllers/SwapController.js.map +1 -0
  98. package/lib/module/controllers/ThemeController.js +42 -0
  99. package/lib/module/controllers/ThemeController.js.map +1 -0
  100. package/lib/module/controllers/TransactionsController.js +115 -0
  101. package/lib/module/controllers/TransactionsController.js.map +1 -0
  102. package/lib/module/controllers/WcController.js +70 -0
  103. package/lib/module/controllers/WcController.js.map +1 -0
  104. package/lib/module/features/reown-authentication/ReownAuthentication.js +268 -0
  105. package/lib/module/features/reown-authentication/ReownAuthentication.js.map +1 -0
  106. package/lib/module/features/reown-authentication/ReownAuthenticationMessenger.js +43 -0
  107. package/lib/module/features/reown-authentication/ReownAuthenticationMessenger.js.map +1 -0
  108. package/lib/module/features/reown-authentication/index.js +5 -0
  109. package/lib/module/features/reown-authentication/index.js.map +1 -0
  110. package/lib/module/index.js +38 -0
  111. package/lib/module/index.js.map +1 -0
  112. package/lib/module/utils/ApiUtil.js +39 -0
  113. package/lib/module/utils/ApiUtil.js.map +1 -0
  114. package/lib/module/utils/AssetUtil.js +23 -0
  115. package/lib/module/utils/AssetUtil.js.map +1 -0
  116. package/lib/module/utils/ConstantsUtil.js +222 -0
  117. package/lib/module/utils/ConstantsUtil.js.map +1 -0
  118. package/lib/module/utils/CoreHelperUtil.js +294 -0
  119. package/lib/module/utils/CoreHelperUtil.js.map +1 -0
  120. package/lib/module/utils/EventUtil.js +21 -0
  121. package/lib/module/utils/EventUtil.js.map +1 -0
  122. package/lib/module/utils/FetchUtil.js +154 -0
  123. package/lib/module/utils/FetchUtil.js.map +1 -0
  124. package/lib/module/utils/LogUtils.js +121 -0
  125. package/lib/module/utils/LogUtils.js.map +1 -0
  126. package/lib/module/utils/StorageUtil.js +315 -0
  127. package/lib/module/utils/StorageUtil.js.map +1 -0
  128. package/lib/module/utils/SwapApiUtil.js +71 -0
  129. package/lib/module/utils/SwapApiUtil.js.map +1 -0
  130. package/lib/module/utils/SwapCalculationUtil.js +94 -0
  131. package/lib/module/utils/SwapCalculationUtil.js.map +1 -0
  132. package/lib/module/utils/WalletUtil.js +19 -0
  133. package/lib/module/utils/WalletUtil.js.map +1 -0
  134. package/lib/typescript/controllers/ApiController.d.ts +40 -0
  135. package/lib/typescript/controllers/ApiController.d.ts.map +1 -0
  136. package/lib/typescript/controllers/AssetController.d.ts +12 -0
  137. package/lib/typescript/controllers/AssetController.d.ts.map +1 -0
  138. package/lib/typescript/controllers/BlockchainApiController.d.ts +55 -0
  139. package/lib/typescript/controllers/BlockchainApiController.d.ts.map +1 -0
  140. package/lib/typescript/controllers/ConnectionsController.d.ts +47 -0
  141. package/lib/typescript/controllers/ConnectionsController.d.ts.map +1 -0
  142. package/lib/typescript/controllers/EnsController.d.ts +10 -0
  143. package/lib/typescript/controllers/EnsController.d.ts.map +1 -0
  144. package/lib/typescript/controllers/EventsController.d.ts +25 -0
  145. package/lib/typescript/controllers/EventsController.d.ts.map +1 -0
  146. package/lib/typescript/controllers/LogController.d.ts +65 -0
  147. package/lib/typescript/controllers/LogController.d.ts.map +1 -0
  148. package/lib/typescript/controllers/ModalController.d.ts +17 -0
  149. package/lib/typescript/controllers/ModalController.d.ts.map +1 -0
  150. package/lib/typescript/controllers/OnRampController.d.ts +55 -0
  151. package/lib/typescript/controllers/OnRampController.d.ts.map +1 -0
  152. package/lib/typescript/controllers/OptionsController.d.ts +46 -0
  153. package/lib/typescript/controllers/OptionsController.d.ts.map +1 -0
  154. package/lib/typescript/controllers/PublicStateController.d.ts +12 -0
  155. package/lib/typescript/controllers/PublicStateController.d.ts.map +1 -0
  156. package/lib/typescript/controllers/RouterController.d.ts +21 -0
  157. package/lib/typescript/controllers/RouterController.d.ts.map +1 -0
  158. package/lib/typescript/controllers/SendController.d.ts +39 -0
  159. package/lib/typescript/controllers/SendController.d.ts.map +1 -0
  160. package/lib/typescript/controllers/SnackController.d.ts +20 -0
  161. package/lib/typescript/controllers/SnackController.d.ts.map +1 -0
  162. package/lib/typescript/controllers/SwapController.d.ts +116 -0
  163. package/lib/typescript/controllers/SwapController.d.ts.map +1 -0
  164. package/lib/typescript/controllers/ThemeController.d.ts +14 -0
  165. package/lib/typescript/controllers/ThemeController.d.ts.map +1 -0
  166. package/lib/typescript/controllers/TransactionsController.d.ts +21 -0
  167. package/lib/typescript/controllers/TransactionsController.d.ts.map +1 -0
  168. package/lib/typescript/controllers/WcController.d.ts +27 -0
  169. package/lib/typescript/controllers/WcController.d.ts.map +1 -0
  170. package/lib/typescript/features/reown-authentication/ReownAuthentication.d.ts +174 -0
  171. package/lib/typescript/features/reown-authentication/ReownAuthentication.d.ts.map +1 -0
  172. package/lib/typescript/features/reown-authentication/ReownAuthenticationMessenger.d.ts +16 -0
  173. package/lib/typescript/features/reown-authentication/ReownAuthenticationMessenger.d.ts.map +1 -0
  174. package/lib/typescript/features/reown-authentication/index.d.ts +3 -0
  175. package/lib/typescript/features/reown-authentication/index.d.ts.map +1 -0
  176. package/lib/typescript/index.d.ts +29 -0
  177. package/lib/typescript/index.d.ts.map +1 -0
  178. package/lib/typescript/utils/ApiUtil.d.ts +7 -0
  179. package/lib/typescript/utils/ApiUtil.d.ts.map +1 -0
  180. package/lib/typescript/utils/AssetUtil.d.ts +6 -0
  181. package/lib/typescript/utils/AssetUtil.d.ts.map +1 -0
  182. package/lib/typescript/utils/ConstantsUtil.d.ts +79 -0
  183. package/lib/typescript/utils/ConstantsUtil.d.ts.map +1 -0
  184. package/lib/typescript/utils/CoreHelperUtil.d.ts +43 -0
  185. package/lib/typescript/utils/CoreHelperUtil.d.ts.map +1 -0
  186. package/lib/typescript/utils/EventUtil.d.ts +5 -0
  187. package/lib/typescript/utils/EventUtil.d.ts.map +1 -0
  188. package/lib/typescript/utils/FetchUtil.d.ts +29 -0
  189. package/lib/typescript/utils/FetchUtil.d.ts.map +1 -0
  190. package/lib/typescript/utils/LogUtils.d.ts +15 -0
  191. package/lib/typescript/utils/LogUtils.d.ts.map +1 -0
  192. package/lib/typescript/utils/StorageUtil.d.ts +36 -0
  193. package/lib/typescript/utils/StorageUtil.d.ts.map +1 -0
  194. package/lib/typescript/utils/SwapApiUtil.d.ts +11 -0
  195. package/lib/typescript/utils/SwapApiUtil.d.ts.map +1 -0
  196. package/lib/typescript/utils/SwapCalculationUtil.d.ts +24 -0
  197. package/lib/typescript/utils/SwapCalculationUtil.d.ts.map +1 -0
  198. package/lib/typescript/utils/WalletUtil.d.ts +5 -0
  199. package/lib/typescript/utils/WalletUtil.d.ts.map +1 -0
  200. package/package.json +57 -0
  201. package/readme.md +9 -0
  202. package/src/controllers/ApiController.ts +454 -0
  203. package/src/controllers/AssetController.ts +32 -0
  204. package/src/controllers/BlockchainApiController.ts +418 -0
  205. package/src/controllers/ConnectionsController.ts +575 -0
  206. package/src/controllers/EnsController.ts +41 -0
  207. package/src/controllers/EventsController.ts +146 -0
  208. package/src/controllers/LogController.ts +250 -0
  209. package/src/controllers/ModalController.ts +68 -0
  210. package/src/controllers/OnRampController.ts +698 -0
  211. package/src/controllers/OptionsController.ts +143 -0
  212. package/src/controllers/PublicStateController.ts +37 -0
  213. package/src/controllers/RouterController.ts +112 -0
  214. package/src/controllers/SendController.ts +270 -0
  215. package/src/controllers/SnackController.ts +95 -0
  216. package/src/controllers/SwapController.ts +863 -0
  217. package/src/controllers/ThemeController.ts +47 -0
  218. package/src/controllers/TransactionsController.ts +150 -0
  219. package/src/controllers/WcController.ts +93 -0
  220. package/src/features/reown-authentication/ReownAuthentication.ts +475 -0
  221. package/src/features/reown-authentication/ReownAuthenticationMessenger.ts +80 -0
  222. package/src/features/reown-authentication/index.ts +2 -0
  223. package/src/index.ts +70 -0
  224. package/src/utils/ApiUtil.ts +50 -0
  225. package/src/utils/AssetUtil.ts +27 -0
  226. package/src/utils/ConstantsUtil.ts +303 -0
  227. package/src/utils/CoreHelperUtil.ts +377 -0
  228. package/src/utils/EventUtil.ts +22 -0
  229. package/src/utils/FetchUtil.ts +164 -0
  230. package/src/utils/LogUtils.ts +179 -0
  231. package/src/utils/StorageUtil.ts +405 -0
  232. package/src/utils/SwapApiUtil.ts +101 -0
  233. package/src/utils/SwapCalculationUtil.ts +145 -0
  234. package/src/utils/WalletUtil.ts +14 -0
@@ -0,0 +1,502 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.OnRampController = void 0;
7
+ var _utils = require("valtio/utils");
8
+ var _valtio = require("valtio");
9
+ var _appkitCommonReactNative = require("@reown/appkit-common-react-native");
10
+ var _CoreHelperUtil = require("../utils/CoreHelperUtil");
11
+ var _OptionsController = require("./OptionsController");
12
+ var _ConstantsUtil = require("../utils/ConstantsUtil");
13
+ var _StorageUtil = require("../utils/StorageUtil");
14
+ var _SnackController = require("./SnackController");
15
+ var _LogController = require("./LogController");
16
+ var _EventsController = require("./EventsController");
17
+ var _BlockchainApiController = require("./BlockchainApiController");
18
+ var _ConnectionsController = require("./ConnectionsController");
19
+ // -- Helpers ------------------------------------------- //
20
+
21
+ let quotesAbortController = null;
22
+
23
+ // -- Utils --------------------------------------------- //
24
+
25
+ const mapErrorMessage = errorCode => {
26
+ const errorMap = {
27
+ [_ConstantsUtil.OnRampErrorType.AMOUNT_TOO_LOW]: {
28
+ type: _ConstantsUtil.OnRampErrorType.AMOUNT_TOO_LOW,
29
+ message: 'The amount is too low'
30
+ },
31
+ [_ConstantsUtil.OnRampErrorType.AMOUNT_TOO_HIGH]: {
32
+ type: _ConstantsUtil.OnRampErrorType.AMOUNT_TOO_HIGH,
33
+ message: 'The amount is too high'
34
+ },
35
+ [_ConstantsUtil.OnRampErrorType.INVALID_AMOUNT]: {
36
+ type: _ConstantsUtil.OnRampErrorType.INVALID_AMOUNT,
37
+ message: 'Enter a valid amount'
38
+ },
39
+ [_ConstantsUtil.OnRampErrorType.INCOMPATIBLE_REQUEST]: {
40
+ type: _ConstantsUtil.OnRampErrorType.INCOMPATIBLE_REQUEST,
41
+ message: 'Enter a valid amount'
42
+ },
43
+ [_ConstantsUtil.OnRampErrorType.BAD_REQUEST]: {
44
+ type: _ConstantsUtil.OnRampErrorType.BAD_REQUEST,
45
+ message: 'Enter a valid amount'
46
+ },
47
+ [_ConstantsUtil.OnRampErrorType.NO_VALID_QUOTES]: {
48
+ type: _ConstantsUtil.OnRampErrorType.NO_VALID_QUOTES,
49
+ message: 'No quotes available'
50
+ }
51
+ };
52
+ return errorMap[errorCode] || {
53
+ type: _ConstantsUtil.OnRampErrorType.UNKNOWN,
54
+ message: 'Something went wrong. Please try again'
55
+ };
56
+ };
57
+
58
+ // -- Types --------------------------------------------- //
59
+
60
+ const defaultState = {
61
+ quotesLoading: false,
62
+ countries: [],
63
+ paymentMethods: [],
64
+ serviceProviders: [],
65
+ paymentAmount: undefined
66
+ };
67
+
68
+ // -- State --------------------------------------------- //
69
+ const state = (0, _valtio.proxy)(defaultState);
70
+
71
+ // -- Controller ---------------------------------------- //
72
+ const OnRampController = exports.OnRampController = {
73
+ state,
74
+ subscribe(callback) {
75
+ return (0, _valtio.subscribe)(state, () => callback(state));
76
+ },
77
+ subscribeKey(key, callback) {
78
+ return (0, _utils.subscribeKey)(state, key, callback);
79
+ },
80
+ async setSelectedCountry(country, updateCurrency = true) {
81
+ try {
82
+ state.selectedCountry = country;
83
+ state.loading = true;
84
+ if (updateCurrency) {
85
+ const currencyCode = state.countriesDefaults?.find(d => d.countryCode === country.countryCode)?.defaultCurrencyCode || 'USD';
86
+ let currency = state.paymentCurrencies?.find(c => c.currencyCode === currencyCode);
87
+ if (!currency) {
88
+ currency = state.paymentCurrencies?.find(c => c.currencyCode === 'USD');
89
+ }
90
+ if (currency) {
91
+ this.setPaymentCurrency(currency);
92
+ }
93
+ }
94
+ await Promise.all([this.fetchPaymentMethods(), this.fetchCryptoCurrencies()]);
95
+ this.clearQuotes();
96
+ state.loading = false;
97
+ _StorageUtil.StorageUtil.setOnRampPreferredCountry(country);
98
+ } catch (error) {
99
+ _LogController.LogController.sendError(error, 'OnRampController.ts', 'setSelectedCountry');
100
+ state.loading = false;
101
+ state.error = {
102
+ type: _ConstantsUtil.OnRampErrorType.FAILED_TO_LOAD_COUNTRIES,
103
+ message: 'Failed to load countries'
104
+ };
105
+ }
106
+ },
107
+ setSelectedPaymentMethod(paymentMethod) {
108
+ state.selectedPaymentMethod = paymentMethod;
109
+ },
110
+ setPurchaseCurrency(currency) {
111
+ state.purchaseCurrency = currency;
112
+ _EventsController.EventsController.sendEvent({
113
+ type: 'track',
114
+ event: 'SELECT_BUY_ASSET',
115
+ properties: {
116
+ asset: currency.currencyCode
117
+ }
118
+ });
119
+ this.clearQuotes();
120
+ },
121
+ setPaymentCurrency(currency, updateAmount = true) {
122
+ state.paymentCurrency = currency;
123
+ _StorageUtil.StorageUtil.setOnRampPreferredFiatCurrency(currency);
124
+ if (updateAmount) {
125
+ state.paymentAmount = undefined;
126
+ }
127
+ this.clearQuotes();
128
+ this.clearError();
129
+ },
130
+ setPaymentAmount(amount) {
131
+ state.paymentAmount = amount ? Number(amount) : undefined;
132
+ },
133
+ setSelectedQuote(quote) {
134
+ state.selectedQuote = quote;
135
+ },
136
+ updateSelectedPurchaseCurrency() {
137
+ let selectedCurrency;
138
+ if (_ConnectionsController.ConnectionsController.state.activeNetwork?.caipNetworkId) {
139
+ const defaultCurrency = _ConstantsUtil.ConstantsUtil.NETWORK_DEFAULT_CURRENCIES[_ConnectionsController.ConnectionsController.state.activeNetwork?.caipNetworkId];
140
+ selectedCurrency = state.purchaseCurrencies?.find(c => c.currencyCode === defaultCurrency);
141
+ }
142
+ state.purchaseCurrency = selectedCurrency ?? undefined;
143
+ },
144
+ getServiceProviderImage(serviceProviderName) {
145
+ if (!serviceProviderName) return undefined;
146
+ const provider = state.serviceProviders.find(p => p.serviceProvider === serviceProviderName);
147
+ return provider?.logos?.lightShort;
148
+ },
149
+ getCurrencyLimit(currency) {
150
+ return state.paymentCurrenciesLimits?.find(l => l.currencyCode === currency.currencyCode);
151
+ },
152
+ async fetchCountries() {
153
+ try {
154
+ let countries = await _StorageUtil.StorageUtil.getOnRampCountries();
155
+ if (!countries.length) {
156
+ countries = (await _BlockchainApiController.BlockchainApiController.fetchOnRampCountries()) ?? [];
157
+ if (countries.length) {
158
+ _StorageUtil.StorageUtil.setOnRampCountries(countries);
159
+ }
160
+ }
161
+ state.countries = countries;
162
+ const preferredCountry = await _StorageUtil.StorageUtil.getOnRampPreferredCountry();
163
+ if (preferredCountry) {
164
+ state.selectedCountry = preferredCountry;
165
+ } else {
166
+ const countryCode = _CoreHelperUtil.CoreHelperUtil.getCountryFromTimezone();
167
+ state.selectedCountry = countries.find(c => c.countryCode === countryCode) || countries[0] || undefined;
168
+ }
169
+ } catch (error) {
170
+ _LogController.LogController.sendError(error, 'OnRampController.ts', 'fetchCountries');
171
+ state.error = {
172
+ type: _ConstantsUtil.OnRampErrorType.FAILED_TO_LOAD_COUNTRIES,
173
+ message: 'Failed to load countries'
174
+ };
175
+ }
176
+ },
177
+ async fetchCountriesDefaults() {
178
+ try {
179
+ let countriesDefaults = await _StorageUtil.StorageUtil.getOnRampCountriesDefaults();
180
+ if (!countriesDefaults.length) {
181
+ countriesDefaults = (await _BlockchainApiController.BlockchainApiController.fetchOnRampCountriesDefaults()) ?? [];
182
+ if (countriesDefaults.length) {
183
+ _StorageUtil.StorageUtil.setOnRampCountriesDefaults(countriesDefaults);
184
+ }
185
+ }
186
+ state.countriesDefaults = countriesDefaults;
187
+ } catch (error) {
188
+ _LogController.LogController.sendError(error, 'OnRampController.ts', 'fetchCountriesDefaults');
189
+ state.error = {
190
+ type: _ConstantsUtil.OnRampErrorType.FAILED_TO_LOAD_COUNTRIES,
191
+ message: 'Failed to load countries defaults'
192
+ };
193
+ }
194
+ },
195
+ async fetchServiceProviders() {
196
+ try {
197
+ let serviceProviders = await _StorageUtil.StorageUtil.getOnRampServiceProviders();
198
+ if (!serviceProviders.length) {
199
+ serviceProviders = (await _BlockchainApiController.BlockchainApiController.fetchOnRampServiceProviders()) ?? [];
200
+ if (serviceProviders.length) {
201
+ _StorageUtil.StorageUtil.setOnRampServiceProviders(serviceProviders);
202
+ }
203
+ }
204
+ state.serviceProviders = serviceProviders || [];
205
+ } catch (error) {
206
+ _LogController.LogController.sendError(error, 'OnRampController.ts', 'fetchServiceProviders');
207
+ state.error = {
208
+ type: _ConstantsUtil.OnRampErrorType.FAILED_TO_LOAD_PROVIDERS,
209
+ message: 'Failed to load service providers'
210
+ };
211
+ }
212
+ },
213
+ async fetchPaymentMethods() {
214
+ try {
215
+ const paymentMethods = await _BlockchainApiController.BlockchainApiController.fetchOnRampPaymentMethods({
216
+ countries: state.selectedCountry?.countryCode
217
+ });
218
+ const defaultCountryPaymentMethods = state.countriesDefaults?.find(d => d.countryCode === state.selectedCountry?.countryCode)?.defaultPaymentMethods || [];
219
+ state.paymentMethods = paymentMethods?.sort((a, b) => {
220
+ const aIndex = defaultCountryPaymentMethods?.indexOf(a.paymentMethod);
221
+ const bIndex = defaultCountryPaymentMethods?.indexOf(b.paymentMethod);
222
+ if (aIndex === -1 && bIndex === -1) return 0;
223
+ if (aIndex === -1) return 1;
224
+ if (bIndex === -1) return -1;
225
+ return aIndex - bIndex;
226
+ }) || [];
227
+ state.selectedPaymentMethod = state.paymentMethods[0];
228
+ } catch (error) {
229
+ _LogController.LogController.sendError(error, 'OnRampController.ts', 'fetchPaymentMethods');
230
+ state.error = {
231
+ type: _ConstantsUtil.OnRampErrorType.FAILED_TO_LOAD_METHODS,
232
+ message: 'Failed to load payment methods'
233
+ };
234
+ state.paymentMethods = [];
235
+ state.selectedPaymentMethod = undefined;
236
+ }
237
+ },
238
+ async fetchCryptoCurrencies() {
239
+ try {
240
+ const cryptoCurrencies = await _BlockchainApiController.BlockchainApiController.fetchOnRampCryptoCurrencies({
241
+ countries: state.selectedCountry?.countryCode
242
+ });
243
+ state.purchaseCurrencies = cryptoCurrencies || [];
244
+ let selectedCurrency;
245
+ if (_ConnectionsController.ConnectionsController.state.activeNetwork?.caipNetworkId) {
246
+ const defaultCurrency = _ConstantsUtil.ConstantsUtil.NETWORK_DEFAULT_CURRENCIES[_ConnectionsController.ConnectionsController.state.activeNetwork?.caipNetworkId];
247
+ selectedCurrency = state.purchaseCurrencies?.find(c => c.currencyCode === defaultCurrency);
248
+ }
249
+ state.purchaseCurrency = selectedCurrency || undefined;
250
+ } catch (error) {
251
+ _LogController.LogController.sendError(error, 'OnRampController.ts', 'fetchCryptoCurrencies');
252
+ state.error = {
253
+ type: _ConstantsUtil.OnRampErrorType.FAILED_TO_LOAD_CURRENCIES,
254
+ message: 'Failed to load crypto currencies'
255
+ };
256
+ state.purchaseCurrencies = [];
257
+ state.purchaseCurrency = undefined;
258
+ }
259
+ },
260
+ async fetchFiatCurrencies() {
261
+ try {
262
+ let fiatCurrencies = await _StorageUtil.StorageUtil.getOnRampFiatCurrencies();
263
+ let currencyCode = 'USD';
264
+ const countryCode = state.selectedCountry?.countryCode;
265
+ if (!fiatCurrencies.length) {
266
+ fiatCurrencies = (await _BlockchainApiController.BlockchainApiController.fetchOnRampFiatCurrencies()) ?? [];
267
+ if (fiatCurrencies.length) {
268
+ _StorageUtil.StorageUtil.setOnRampFiatCurrencies(fiatCurrencies);
269
+ }
270
+ }
271
+ state.paymentCurrencies = fiatCurrencies || [];
272
+ if (countryCode) {
273
+ currencyCode = state.countriesDefaults?.find(d => d.countryCode === countryCode)?.defaultCurrencyCode || 'USD';
274
+ }
275
+ const preferredCurrency = await _StorageUtil.StorageUtil.getOnRampPreferredFiatCurrency();
276
+ const defaultCurrency = preferredCurrency || fiatCurrencies?.find(c => c.currencyCode === currencyCode) || fiatCurrencies?.[0] || undefined;
277
+ if (defaultCurrency) {
278
+ this.setPaymentCurrency(defaultCurrency);
279
+ }
280
+ } catch (error) {
281
+ _LogController.LogController.sendError(error, 'OnRampController.ts', 'fetchFiatCurrencies');
282
+ state.error = {
283
+ type: _ConstantsUtil.OnRampErrorType.FAILED_TO_LOAD_CURRENCIES,
284
+ message: 'Failed to load fiat currencies'
285
+ };
286
+ state.paymentCurrencies = [];
287
+ state.paymentCurrency = undefined;
288
+ }
289
+ },
290
+ abortGetQuotes(clearState = true) {
291
+ if (quotesAbortController) {
292
+ quotesAbortController.abort();
293
+ quotesAbortController = null;
294
+ }
295
+ if (clearState) {
296
+ this.clearQuotes();
297
+ state.quotesLoading = false;
298
+ state.error = undefined;
299
+ }
300
+ },
301
+ async getQuotes() {
302
+ if (!this.canGenerateQuote()) {
303
+ this.clearQuotes();
304
+ return;
305
+ }
306
+ this.abortGetQuotes(false);
307
+ quotesAbortController = new AbortController();
308
+ const currentSignal = quotesAbortController.signal;
309
+ try {
310
+ if (!state.selectedCountry?.countryCode || !state.purchaseCurrency?.currencyCode || !state.paymentCurrency?.currencyCode || !_ConnectionsController.ConnectionsController.state.activeAddress) {
311
+ throw new _appkitCommonReactNative.BlockchainOnRampError(_ConstantsUtil.OnRampErrorType.UNKNOWN, 'Invalid quote parameters');
312
+ }
313
+ state.quotesLoading = true;
314
+ state.selectedQuote = undefined;
315
+ state.selectedServiceProvider = undefined;
316
+ state.error = undefined;
317
+ const plainAddress = _CoreHelperUtil.CoreHelperUtil.getPlainAddress(_ConnectionsController.ConnectionsController.state.activeAddress);
318
+ if (!plainAddress) {
319
+ throw new Error('Invalid address');
320
+ }
321
+ const body = {
322
+ countryCode: state.selectedCountry.countryCode,
323
+ destinationCurrencyCode: state.purchaseCurrency.currencyCode,
324
+ sourceAmount: state.paymentAmount,
325
+ sourceCurrencyCode: state.paymentCurrency.currencyCode,
326
+ walletAddress: plainAddress,
327
+ excludeProviders: _BlockchainApiController.EXCLUDED_ONRAMP_PROVIDERS
328
+ };
329
+ const response = await _BlockchainApiController.BlockchainApiController.getOnRampQuotes(body, currentSignal);
330
+ if (!response || !response.length) {
331
+ throw new _appkitCommonReactNative.BlockchainOnRampError(_ConstantsUtil.OnRampErrorType.NO_VALID_QUOTES, 'No valid quotes');
332
+ }
333
+ const quotes = response.sort((a, b) => b.customerScore - a.customerScore);
334
+ state.quotes = quotes;
335
+
336
+ //Replace payment method if it's not in the quotes
337
+ const isValidPaymentMethod = state.selectedPaymentMethod && quotes.some(quote => quote.paymentMethodType === state.selectedPaymentMethod?.paymentMethod);
338
+ if (!isValidPaymentMethod) {
339
+ const countryMethods = state.countriesDefaults?.find(d => d.countryCode === state.selectedCountry?.countryCode)?.defaultPaymentMethods || [];
340
+ const availableQuoteMethods = new Set(quotes.map(q => q.paymentMethodType));
341
+ let newPaymentMethodType;
342
+ for (const dpm of countryMethods) {
343
+ if (availableQuoteMethods.has(dpm)) {
344
+ newPaymentMethodType = dpm;
345
+ break;
346
+ }
347
+ }
348
+ if (newPaymentMethodType) {
349
+ state.selectedPaymentMethod = state.paymentMethods.find(m => m.paymentMethod === newPaymentMethodType) || state.paymentMethods.find(method => method.paymentMethod === quotes[0]?.paymentMethodType);
350
+ } else {
351
+ state.selectedPaymentMethod = state.paymentMethods.find(method => method.paymentMethod === quotes[0]?.paymentMethodType);
352
+ }
353
+ }
354
+ state.selectedQuote = quotes.find(quote => quote.paymentMethodType === state.selectedPaymentMethod?.paymentMethod);
355
+ state.selectedServiceProvider = state.serviceProviders.find(sp => sp.serviceProvider === state.selectedQuote?.serviceProvider);
356
+ } catch (error) {
357
+ _LogController.LogController.sendError(error, 'OnRampController.ts', 'getQuotes');
358
+ if (error.name === 'AbortError') {
359
+ // Do nothing, another request was made
360
+ return;
361
+ }
362
+ _EventsController.EventsController.sendEvent({
363
+ type: 'track',
364
+ event: 'BUY_FAIL',
365
+ properties: {
366
+ message: error?.message ?? error?.code ?? 'Error getting quotes'
367
+ }
368
+ });
369
+ this.clearQuotes();
370
+ state.error = mapErrorMessage(error?.code || 'UNKNOWN_ERROR');
371
+ } finally {
372
+ if (!currentSignal.aborted) {
373
+ state.quotesLoading = false;
374
+ }
375
+ }
376
+ },
377
+ canGenerateQuote() {
378
+ return !!(state.selectedCountry?.countryCode && state.selectedPaymentMethod?.paymentMethod && state.purchaseCurrency?.currencyCode && state.paymentAmount && state.paymentAmount > 0 && state.paymentCurrency?.currencyCode && state.selectedCountry && !state.loading && _ConnectionsController.ConnectionsController.state.activeAddress);
379
+ },
380
+ async fetchFiatLimits() {
381
+ try {
382
+ let limits = await _StorageUtil.StorageUtil.getOnRampFiatLimits();
383
+ if (!limits.length) {
384
+ limits = (await _BlockchainApiController.BlockchainApiController.fetchOnRampFiatLimits()) ?? [];
385
+ if (limits.length) {
386
+ _StorageUtil.StorageUtil.setOnRampFiatLimits(limits);
387
+ }
388
+ }
389
+ state.paymentCurrenciesLimits = limits;
390
+ } catch (error) {
391
+ _LogController.LogController.sendError(error, 'OnRampController.ts', 'fetchFiatLimits');
392
+ state.error = {
393
+ type: _ConstantsUtil.OnRampErrorType.FAILED_TO_LOAD_LIMITS,
394
+ message: 'Failed to load fiat limits'
395
+ };
396
+ state.paymentCurrenciesLimits = [];
397
+ }
398
+ },
399
+ async generateWidget({
400
+ quote
401
+ }) {
402
+ if (!_ConnectionsController.ConnectionsController.state.activeAddress) {
403
+ throw new Error('No active address');
404
+ }
405
+ const metadata = _OptionsController.OptionsController.state.metadata;
406
+ const eventProperties = {
407
+ asset: quote.destinationCurrencyCode,
408
+ network: state.purchaseCurrency?.chainName ?? '',
409
+ amount: quote.destinationAmount.toString(),
410
+ currency: quote.destinationCurrencyCode,
411
+ paymentMethod: quote.paymentMethodType,
412
+ provider: 'MELD',
413
+ serviceProvider: quote.serviceProvider
414
+ };
415
+ try {
416
+ if (!quote) {
417
+ throw new Error('Invalid quote');
418
+ }
419
+ const plainAddress = _CoreHelperUtil.CoreHelperUtil.getPlainAddress(_ConnectionsController.ConnectionsController.state.activeAddress);
420
+ if (!plainAddress) {
421
+ throw new Error('Invalid address');
422
+ }
423
+ const body = {
424
+ countryCode: quote.countryCode,
425
+ destinationCurrencyCode: quote.destinationCurrencyCode,
426
+ paymentMethodType: quote.paymentMethodType,
427
+ serviceProvider: quote.serviceProvider,
428
+ sourceAmount: quote.sourceAmount,
429
+ sourceCurrencyCode: quote.sourceCurrencyCode,
430
+ walletAddress: plainAddress,
431
+ redirectUrl: metadata?.redirect?.universal ?? metadata?.redirect?.native
432
+ };
433
+ const widget = await _BlockchainApiController.BlockchainApiController.getOnRampWidget(body);
434
+ if (!widget || !widget.widgetUrl) {
435
+ throw new Error('Invalid widget response');
436
+ }
437
+ _EventsController.EventsController.sendEvent({
438
+ type: 'track',
439
+ event: 'BUY_SUBMITTED',
440
+ properties: eventProperties
441
+ });
442
+ state.widgetUrl = widget.widgetUrl;
443
+ return widget;
444
+ } catch (e) {
445
+ _LogController.LogController.sendError(e, 'OnRampController.ts', 'generateWidget', {
446
+ quote
447
+ });
448
+ _EventsController.EventsController.sendEvent({
449
+ type: 'track',
450
+ event: 'BUY_FAIL',
451
+ properties: {
452
+ ...eventProperties,
453
+ message: e?.message ?? e?.code ?? 'Error generating widget url'
454
+ }
455
+ });
456
+ state.error = mapErrorMessage(e?.code || 'UNKNOWN_ERROR');
457
+ _SnackController.SnackController.showInternalError({
458
+ shortMessage: 'Error creating purchase URL',
459
+ longMessage: e?.message ?? e?.code
460
+ });
461
+ return undefined;
462
+ }
463
+ },
464
+ clearError() {
465
+ state.error = undefined;
466
+ },
467
+ clearQuotes() {
468
+ state.quotes = [];
469
+ state.selectedQuote = undefined;
470
+ state.selectedServiceProvider = undefined;
471
+ },
472
+ async loadOnRampData() {
473
+ state.initialLoading = true;
474
+ state.error = undefined;
475
+ try {
476
+ await this.fetchCountries();
477
+ await this.fetchServiceProviders();
478
+ await Promise.all([this.fetchCountriesDefaults(), this.fetchPaymentMethods(), this.fetchFiatLimits(), this.fetchCryptoCurrencies(), this.fetchFiatCurrencies()]);
479
+ } catch (error) {
480
+ _LogController.LogController.sendError(error, 'OnRampController.ts', 'loadOnRampData');
481
+ if (!state.error) {
482
+ state.error = {
483
+ type: _ConstantsUtil.OnRampErrorType.FAILED_TO_LOAD,
484
+ message: 'Failed to load onramp data'
485
+ };
486
+ }
487
+ } finally {
488
+ state.initialLoading = false;
489
+ }
490
+ },
491
+ resetState() {
492
+ state.error = undefined;
493
+ state.quotesLoading = false;
494
+ state.quotes = [];
495
+ state.selectedQuote = undefined;
496
+ state.selectedServiceProvider = undefined;
497
+ state.widgetUrl = undefined;
498
+ state.paymentAmount = undefined;
499
+ this.updateSelectedPurchaseCurrency();
500
+ }
501
+ };
502
+ //# sourceMappingURL=OnRampController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_utils","require","_valtio","_appkitCommonReactNative","_CoreHelperUtil","_OptionsController","_ConstantsUtil","_StorageUtil","_SnackController","_LogController","_EventsController","_BlockchainApiController","_ConnectionsController","quotesAbortController","mapErrorMessage","errorCode","errorMap","OnRampErrorType","AMOUNT_TOO_LOW","type","message","AMOUNT_TOO_HIGH","INVALID_AMOUNT","INCOMPATIBLE_REQUEST","BAD_REQUEST","NO_VALID_QUOTES","UNKNOWN","defaultState","quotesLoading","countries","paymentMethods","serviceProviders","paymentAmount","undefined","state","proxy","OnRampController","exports","subscribe","callback","sub","subscribeKey","key","subKey","setSelectedCountry","country","updateCurrency","selectedCountry","loading","currencyCode","countriesDefaults","find","d","countryCode","defaultCurrencyCode","currency","paymentCurrencies","c","setPaymentCurrency","Promise","all","fetchPaymentMethods","fetchCryptoCurrencies","clearQuotes","StorageUtil","setOnRampPreferredCountry","error","LogController","sendError","FAILED_TO_LOAD_COUNTRIES","setSelectedPaymentMethod","paymentMethod","selectedPaymentMethod","setPurchaseCurrency","purchaseCurrency","EventsController","sendEvent","event","properties","asset","updateAmount","paymentCurrency","setOnRampPreferredFiatCurrency","clearError","setPaymentAmount","amount","Number","setSelectedQuote","quote","selectedQuote","updateSelectedPurchaseCurrency","selectedCurrency","ConnectionsController","activeNetwork","caipNetworkId","defaultCurrency","ConstantsUtil","NETWORK_DEFAULT_CURRENCIES","purchaseCurrencies","getServiceProviderImage","serviceProviderName","provider","p","serviceProvider","logos","lightShort","getCurrencyLimit","paymentCurrenciesLimits","l","fetchCountries","getOnRampCountries","length","BlockchainApiController","fetchOnRampCountries","setOnRampCountries","preferredCountry","getOnRampPreferredCountry","CoreHelperUtil","getCountryFromTimezone","fetchCountriesDefaults","getOnRampCountriesDefaults","fetchOnRampCountriesDefaults","setOnRampCountriesDefaults","fetchServiceProviders","getOnRampServiceProviders","fetchOnRampServiceProviders","setOnRampServiceProviders","FAILED_TO_LOAD_PROVIDERS","fetchOnRampPaymentMethods","defaultCountryPaymentMethods","defaultPaymentMethods","sort","a","b","aIndex","indexOf","bIndex","FAILED_TO_LOAD_METHODS","cryptoCurrencies","fetchOnRampCryptoCurrencies","FAILED_TO_LOAD_CURRENCIES","fetchFiatCurrencies","fiatCurrencies","getOnRampFiatCurrencies","fetchOnRampFiatCurrencies","setOnRampFiatCurrencies","preferredCurrency","getOnRampPreferredFiatCurrency","abortGetQuotes","clearState","abort","getQuotes","canGenerateQuote","AbortController","currentSignal","signal","activeAddress","BlockchainOnRampError","selectedServiceProvider","plainAddress","getPlainAddress","Error","body","destinationCurrencyCode","sourceAmount","sourceCurrencyCode","walletAddress","excludeProviders","EXCLUDED_ONRAMP_PROVIDERS","response","getOnRampQuotes","quotes","customerScore","isValidPaymentMethod","some","paymentMethodType","countryMethods","availableQuoteMethods","Set","map","q","newPaymentMethodType","dpm","has","m","method","sp","name","code","aborted","fetchFiatLimits","limits","getOnRampFiatLimits","fetchOnRampFiatLimits","setOnRampFiatLimits","FAILED_TO_LOAD_LIMITS","generateWidget","metadata","OptionsController","eventProperties","network","chainName","destinationAmount","toString","redirectUrl","redirect","universal","native","widget","getOnRampWidget","widgetUrl","e","SnackController","showInternalError","shortMessage","longMessage","loadOnRampData","initialLoading","FAILED_TO_LOAD","resetState"],"sourceRoot":"../../../src","sources":["controllers/OnRampController.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.OptionsController = void 0;
7
+ var _valtio = require("valtio");
8
+ var _ConstantsUtil = require("../utils/ConstantsUtil");
9
+ // -- Types --------------------------------------------- //
10
+
11
+ // -- State --------------------------------------------- //
12
+ const state = (0, _valtio.proxy)({
13
+ projectId: '',
14
+ sdkType: 'appkit',
15
+ sdkVersion: 'react-native-undefined-undefined',
16
+ features: _ConstantsUtil.ConstantsUtil.DEFAULT_FEATURES,
17
+ customWallets: [],
18
+ debug: false
19
+ });
20
+
21
+ // -- Controller ---------------------------------------- //
22
+ const OptionsController = exports.OptionsController = {
23
+ state,
24
+ setClipboardClient(client) {
25
+ state.clipboardClient = (0, _valtio.ref)(client);
26
+ },
27
+ setProjectId(projectId) {
28
+ state.projectId = projectId;
29
+ },
30
+ setIncludeWalletIds(includeWalletIds) {
31
+ state.includeWalletIds = includeWalletIds;
32
+ },
33
+ setExcludeWalletIds(excludeWalletIds) {
34
+ state.excludeWalletIds = excludeWalletIds;
35
+ },
36
+ setFeaturedWalletIds(featuredWalletIds) {
37
+ state.featuredWalletIds = featuredWalletIds;
38
+ },
39
+ setCustomWallets(customWallets) {
40
+ state.customWallets = customWallets;
41
+ },
42
+ setEnableAnalytics(enableAnalytics) {
43
+ state.enableAnalytics = enableAnalytics;
44
+ },
45
+ setSdkVersion(sdkVersion) {
46
+ state.sdkVersion = sdkVersion;
47
+ },
48
+ setMetadata(metadata) {
49
+ state.metadata = metadata;
50
+ },
51
+ setFeatures(features) {
52
+ state.features = {
53
+ ..._ConstantsUtil.ConstantsUtil.DEFAULT_FEATURES,
54
+ ...features
55
+ };
56
+ },
57
+ setDebug(debug) {
58
+ state.debug = debug;
59
+ },
60
+ setIsOnRampEnabled(isOnRampEnabled) {
61
+ state.isOnRampEnabled = isOnRampEnabled;
62
+ },
63
+ setStorage(storage) {
64
+ if (storage) {
65
+ state.storage = (0, _valtio.ref)(storage);
66
+ }
67
+ },
68
+ setDefaultNetwork(defaultNetwork) {
69
+ state.defaultNetwork = defaultNetwork;
70
+ },
71
+ setRequestedNetworks(requestedNetworks) {
72
+ state.requestedNetworks = requestedNetworks;
73
+ },
74
+ setSiwx(siwx) {
75
+ if (siwx && (siwx?.signOutOnDisconnect === undefined || siwx?.signOutOnDisconnect === null)) {
76
+ siwx.signOutOnDisconnect = true;
77
+ }
78
+ state.siwx = siwx;
79
+ },
80
+ isClipboardAvailable() {
81
+ return !!state.clipboardClient;
82
+ },
83
+ getStorage() {
84
+ if (!state.storage) {
85
+ throw new Error('AppKit: Storage is not set');
86
+ }
87
+ return state.storage;
88
+ },
89
+ copyToClipboard(value) {
90
+ const client = state.clipboardClient;
91
+ if (client) {
92
+ client?.setString(value);
93
+ }
94
+ }
95
+ };
96
+ //# sourceMappingURL=OptionsController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_valtio","require","_ConstantsUtil","state","proxy","projectId","sdkType","sdkVersion","features","ConstantsUtil","DEFAULT_FEATURES","customWallets","debug","OptionsController","exports","setClipboardClient","client","clipboardClient","ref","setProjectId","setIncludeWalletIds","includeWalletIds","setExcludeWalletIds","excludeWalletIds","setFeaturedWalletIds","featuredWalletIds","setCustomWallets","setEnableAnalytics","enableAnalytics","setSdkVersion","setMetadata","metadata","setFeatures","setDebug","setIsOnRampEnabled","isOnRampEnabled","setStorage","storage","setDefaultNetwork","defaultNetwork","setRequestedNetworks","requestedNetworks","setSiwx","siwx","signOutOnDisconnect","undefined","isClipboardAvailable","getStorage","Error","copyToClipboard","value","setString"],"sourceRoot":"../../../src","sources":["controllers/OptionsController.ts"],"mappings":"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","ignoreList":[]}