@reown/appkit-core-react-native 0.0.0-fix-approved-networks-20250822000414 → 0.0.0-fix-ui-changes-20250828183750

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 (245) hide show
  1. package/lib/commonjs/controllers/ApiController.js +75 -38
  2. package/lib/commonjs/controllers/ApiController.js.map +1 -1
  3. package/lib/commonjs/controllers/AssetController.js +0 -4
  4. package/lib/commonjs/controllers/AssetController.js.map +1 -1
  5. package/lib/commonjs/controllers/BlockchainApiController.js +156 -57
  6. package/lib/commonjs/controllers/BlockchainApiController.js.map +1 -1
  7. package/lib/commonjs/controllers/ConnectionsController.js +402 -0
  8. package/lib/commonjs/controllers/ConnectionsController.js.map +1 -0
  9. package/lib/commonjs/controllers/EnsController.js.map +1 -1
  10. package/lib/commonjs/controllers/EventsController.js.map +1 -1
  11. package/lib/commonjs/controllers/ModalController.js +6 -7
  12. package/lib/commonjs/controllers/ModalController.js.map +1 -1
  13. package/lib/commonjs/controllers/OnRampController.js +29 -19
  14. package/lib/commonjs/controllers/OnRampController.js.map +1 -1
  15. package/lib/commonjs/controllers/OptionsController.js +22 -7
  16. package/lib/commonjs/controllers/OptionsController.js.map +1 -1
  17. package/lib/commonjs/controllers/PublicStateController.js.map +1 -1
  18. package/lib/commonjs/controllers/RouterController.js +7 -22
  19. package/lib/commonjs/controllers/RouterController.js.map +1 -1
  20. package/lib/commonjs/controllers/SendController.js +96 -96
  21. package/lib/commonjs/controllers/SendController.js.map +1 -1
  22. package/lib/commonjs/controllers/SnackController.js +29 -5
  23. package/lib/commonjs/controllers/SnackController.js.map +1 -1
  24. package/lib/commonjs/controllers/SwapController.js +154 -151
  25. package/lib/commonjs/controllers/SwapController.js.map +1 -1
  26. package/lib/commonjs/controllers/ThemeController.js +9 -1
  27. package/lib/commonjs/controllers/ThemeController.js.map +1 -1
  28. package/lib/commonjs/controllers/TransactionsController.js +22 -18
  29. package/lib/commonjs/controllers/TransactionsController.js.map +1 -1
  30. package/lib/commonjs/controllers/WcController.js +73 -0
  31. package/lib/commonjs/controllers/WcController.js.map +1 -0
  32. package/lib/commonjs/index.js +13 -41
  33. package/lib/commonjs/index.js.map +1 -1
  34. package/lib/commonjs/package.json +1 -0
  35. package/lib/commonjs/utils/ApiUtil.js.map +1 -1
  36. package/lib/commonjs/utils/AssetUtil.js +8 -18
  37. package/lib/commonjs/utils/AssetUtil.js.map +1 -1
  38. package/lib/commonjs/utils/ConstantsUtil.js +122 -5
  39. package/lib/commonjs/utils/ConstantsUtil.js.map +1 -1
  40. package/lib/commonjs/utils/CoreHelperUtil.js +19 -7
  41. package/lib/commonjs/utils/CoreHelperUtil.js.map +1 -1
  42. package/lib/commonjs/utils/EventUtil.js.map +1 -1
  43. package/lib/commonjs/utils/FetchUtil.js.map +1 -1
  44. package/lib/commonjs/utils/RouterUtil.js.map +1 -1
  45. package/lib/commonjs/utils/StorageUtil.js +90 -108
  46. package/lib/commonjs/utils/StorageUtil.js.map +1 -1
  47. package/lib/commonjs/utils/SwapApiUtil.js +15 -21
  48. package/lib/commonjs/utils/SwapApiUtil.js.map +1 -1
  49. package/lib/commonjs/utils/SwapCalculationUtil.js.map +1 -1
  50. package/lib/commonjs/utils/WalletUtil.js +23 -0
  51. package/lib/commonjs/utils/WalletUtil.js.map +1 -0
  52. package/lib/module/controllers/ApiController.js +77 -38
  53. package/lib/module/controllers/ApiController.js.map +1 -1
  54. package/lib/module/controllers/AssetController.js +2 -4
  55. package/lib/module/controllers/AssetController.js.map +1 -1
  56. package/lib/module/controllers/BlockchainApiController.js +158 -57
  57. package/lib/module/controllers/BlockchainApiController.js.map +1 -1
  58. package/lib/module/controllers/ConnectionsController.js +399 -0
  59. package/lib/module/controllers/ConnectionsController.js.map +1 -0
  60. package/lib/module/controllers/EnsController.js +2 -0
  61. package/lib/module/controllers/EnsController.js.map +1 -1
  62. package/lib/module/controllers/EventsController.js +2 -0
  63. package/lib/module/controllers/EventsController.js.map +1 -1
  64. package/lib/module/controllers/ModalController.js +8 -7
  65. package/lib/module/controllers/ModalController.js.map +1 -1
  66. package/lib/module/controllers/OnRampController.js +27 -15
  67. package/lib/module/controllers/OnRampController.js.map +1 -1
  68. package/lib/module/controllers/OptionsController.js +24 -7
  69. package/lib/module/controllers/OptionsController.js.map +1 -1
  70. package/lib/module/controllers/PublicStateController.js +2 -0
  71. package/lib/module/controllers/PublicStateController.js.map +1 -1
  72. package/lib/module/controllers/RouterController.js +9 -22
  73. package/lib/module/controllers/RouterController.js.map +1 -1
  74. package/lib/module/controllers/SendController.js +98 -96
  75. package/lib/module/controllers/SendController.js.map +1 -1
  76. package/lib/module/controllers/SnackController.js +31 -5
  77. package/lib/module/controllers/SnackController.js.map +1 -1
  78. package/lib/module/controllers/SwapController.js +156 -151
  79. package/lib/module/controllers/SwapController.js.map +1 -1
  80. package/lib/module/controllers/ThemeController.js +11 -1
  81. package/lib/module/controllers/ThemeController.js.map +1 -1
  82. package/lib/module/controllers/TransactionsController.js +24 -18
  83. package/lib/module/controllers/TransactionsController.js.map +1 -1
  84. package/lib/module/controllers/WcController.js +70 -0
  85. package/lib/module/controllers/WcController.js.map +1 -0
  86. package/lib/module/index.js +7 -7
  87. package/lib/module/index.js.map +1 -1
  88. package/lib/module/utils/ApiUtil.js +2 -0
  89. package/lib/module/utils/ApiUtil.js.map +1 -1
  90. package/lib/module/utils/AssetUtil.js +10 -18
  91. package/lib/module/utils/AssetUtil.js.map +1 -1
  92. package/lib/module/utils/ConstantsUtil.js +124 -5
  93. package/lib/module/utils/ConstantsUtil.js.map +1 -1
  94. package/lib/module/utils/CoreHelperUtil.js +21 -5
  95. package/lib/module/utils/CoreHelperUtil.js.map +1 -1
  96. package/lib/module/utils/EventUtil.js +2 -0
  97. package/lib/module/utils/EventUtil.js.map +1 -1
  98. package/lib/module/utils/FetchUtil.js +2 -0
  99. package/lib/module/utils/FetchUtil.js.map +1 -1
  100. package/lib/module/utils/RouterUtil.js +2 -0
  101. package/lib/module/utils/RouterUtil.js.map +1 -1
  102. package/lib/module/utils/StorageUtil.js +93 -108
  103. package/lib/module/utils/StorageUtil.js.map +1 -1
  104. package/lib/module/utils/SwapApiUtil.js +17 -21
  105. package/lib/module/utils/SwapApiUtil.js.map +1 -1
  106. package/lib/module/utils/SwapCalculationUtil.js +3 -0
  107. package/lib/module/utils/SwapCalculationUtil.js.map +1 -1
  108. package/lib/module/utils/WalletUtil.js +19 -0
  109. package/lib/module/utils/WalletUtil.js.map +1 -0
  110. package/lib/typescript/controllers/ApiController.d.ts +4 -5
  111. package/lib/typescript/controllers/ApiController.d.ts.map +1 -1
  112. package/lib/typescript/controllers/AssetController.d.ts +0 -2
  113. package/lib/typescript/controllers/AssetController.d.ts.map +1 -1
  114. package/lib/typescript/controllers/BlockchainApiController.d.ts +29 -11
  115. package/lib/typescript/controllers/BlockchainApiController.d.ts.map +1 -1
  116. package/lib/typescript/controllers/ConnectionsController.d.ts +45 -0
  117. package/lib/typescript/controllers/ConnectionsController.d.ts.map +1 -0
  118. package/lib/typescript/controllers/EnsController.d.ts +1 -1
  119. package/lib/typescript/controllers/EventsController.d.ts +1 -1
  120. package/lib/typescript/controllers/EventsController.d.ts.map +1 -1
  121. package/lib/typescript/controllers/ModalController.d.ts.map +1 -1
  122. package/lib/typescript/controllers/OnRampController.d.ts +2 -2
  123. package/lib/typescript/controllers/OnRampController.d.ts.map +1 -1
  124. package/lib/typescript/controllers/OptionsController.d.ts +9 -4
  125. package/lib/typescript/controllers/OptionsController.d.ts.map +1 -1
  126. package/lib/typescript/controllers/PublicStateController.d.ts +1 -1
  127. package/lib/typescript/controllers/PublicStateController.d.ts.map +1 -1
  128. package/lib/typescript/controllers/RouterController.d.ts +6 -20
  129. package/lib/typescript/controllers/RouterController.d.ts.map +1 -1
  130. package/lib/typescript/controllers/SendController.d.ts +5 -7
  131. package/lib/typescript/controllers/SendController.d.ts.map +1 -1
  132. package/lib/typescript/controllers/SnackController.d.ts +3 -3
  133. package/lib/typescript/controllers/SnackController.d.ts.map +1 -1
  134. package/lib/typescript/controllers/SwapController.d.ts +12 -12
  135. package/lib/typescript/controllers/SwapController.d.ts.map +1 -1
  136. package/lib/typescript/controllers/ThemeController.d.ts +1 -1
  137. package/lib/typescript/controllers/ThemeController.d.ts.map +1 -1
  138. package/lib/typescript/controllers/TransactionsController.d.ts +3 -3
  139. package/lib/typescript/controllers/TransactionsController.d.ts.map +1 -1
  140. package/lib/typescript/controllers/WcController.d.ts +27 -0
  141. package/lib/typescript/controllers/WcController.d.ts.map +1 -0
  142. package/lib/typescript/index.d.ts +3 -8
  143. package/lib/typescript/index.d.ts.map +1 -1
  144. package/lib/typescript/utils/AssetUtil.d.ts +3 -4
  145. package/lib/typescript/utils/AssetUtil.d.ts.map +1 -1
  146. package/lib/typescript/utils/ConstantsUtil.d.ts +12 -2
  147. package/lib/typescript/utils/ConstantsUtil.d.ts.map +1 -1
  148. package/lib/typescript/utils/CoreHelperUtil.d.ts +5 -4
  149. package/lib/typescript/utils/CoreHelperUtil.d.ts.map +1 -1
  150. package/lib/typescript/utils/EventUtil.d.ts +1 -1
  151. package/lib/typescript/utils/EventUtil.d.ts.map +1 -1
  152. package/lib/typescript/utils/FetchUtil.d.ts +2 -2
  153. package/lib/typescript/utils/FetchUtil.d.ts.map +1 -1
  154. package/lib/typescript/utils/StorageUtil.d.ts +15 -16
  155. package/lib/typescript/utils/StorageUtil.d.ts.map +1 -1
  156. package/lib/typescript/utils/SwapApiUtil.d.ts +3 -4
  157. package/lib/typescript/utils/SwapApiUtil.d.ts.map +1 -1
  158. package/lib/typescript/utils/SwapCalculationUtil.d.ts +1 -1
  159. package/lib/typescript/utils/SwapCalculationUtil.d.ts.map +1 -1
  160. package/lib/typescript/utils/WalletUtil.d.ts +5 -0
  161. package/lib/typescript/utils/WalletUtil.d.ts.map +1 -0
  162. package/package.json +8 -22
  163. package/src/controllers/ApiController.ts +83 -40
  164. package/src/controllers/AssetController.ts +0 -6
  165. package/src/controllers/BlockchainApiController.ts +136 -44
  166. package/src/controllers/ConnectionsController.ts +521 -0
  167. package/src/controllers/EnsController.ts +1 -1
  168. package/src/controllers/EventsController.ts +1 -1
  169. package/src/controllers/ModalController.ts +6 -7
  170. package/src/controllers/OnRampController.ts +37 -18
  171. package/src/controllers/OptionsController.ts +37 -14
  172. package/src/controllers/PublicStateController.ts +1 -1
  173. package/src/controllers/RouterController.ts +17 -54
  174. package/src/controllers/SendController.ts +122 -111
  175. package/src/controllers/SnackController.ts +31 -5
  176. package/src/controllers/SwapController.ts +177 -183
  177. package/src/controllers/ThemeController.ts +11 -2
  178. package/src/controllers/TransactionsController.ts +25 -19
  179. package/src/controllers/WcController.ts +93 -0
  180. package/src/index.ts +6 -20
  181. package/src/utils/AssetUtil.ts +9 -22
  182. package/src/utils/ConstantsUtil.ts +126 -6
  183. package/src/utils/CoreHelperUtil.ts +45 -7
  184. package/src/utils/EventUtil.ts +1 -1
  185. package/src/utils/FetchUtil.ts +2 -2
  186. package/src/utils/StorageUtil.ts +163 -131
  187. package/src/utils/SwapApiUtil.ts +30 -37
  188. package/src/utils/SwapCalculationUtil.ts +1 -2
  189. package/src/utils/WalletUtil.ts +14 -0
  190. package/lib/commonjs/controllers/AccountController.js +0 -93
  191. package/lib/commonjs/controllers/AccountController.js.map +0 -1
  192. package/lib/commonjs/controllers/ConnectionController.js +0 -126
  193. package/lib/commonjs/controllers/ConnectionController.js.map +0 -1
  194. package/lib/commonjs/controllers/ConnectorController.js +0 -49
  195. package/lib/commonjs/controllers/ConnectorController.js.map +0 -1
  196. package/lib/commonjs/controllers/NetworkController.js +0 -90
  197. package/lib/commonjs/controllers/NetworkController.js.map +0 -1
  198. package/lib/commonjs/controllers/WebviewController.js +0 -52
  199. package/lib/commonjs/controllers/WebviewController.js.map +0 -1
  200. package/lib/commonjs/utils/ConnectionUtil.js +0 -33
  201. package/lib/commonjs/utils/ConnectionUtil.js.map +0 -1
  202. package/lib/commonjs/utils/NetworkUtil.js +0 -46
  203. package/lib/commonjs/utils/NetworkUtil.js.map +0 -1
  204. package/lib/commonjs/utils/TypeUtil.js +0 -35
  205. package/lib/commonjs/utils/TypeUtil.js.map +0 -1
  206. package/lib/module/controllers/AccountController.js +0 -88
  207. package/lib/module/controllers/AccountController.js.map +0 -1
  208. package/lib/module/controllers/ConnectionController.js +0 -121
  209. package/lib/module/controllers/ConnectionController.js.map +0 -1
  210. package/lib/module/controllers/ConnectorController.js +0 -44
  211. package/lib/module/controllers/ConnectorController.js.map +0 -1
  212. package/lib/module/controllers/NetworkController.js +0 -85
  213. package/lib/module/controllers/NetworkController.js.map +0 -1
  214. package/lib/module/controllers/WebviewController.js +0 -47
  215. package/lib/module/controllers/WebviewController.js.map +0 -1
  216. package/lib/module/utils/ConnectionUtil.js +0 -27
  217. package/lib/module/utils/ConnectionUtil.js.map +0 -1
  218. package/lib/module/utils/NetworkUtil.js +0 -40
  219. package/lib/module/utils/NetworkUtil.js.map +0 -1
  220. package/lib/module/utils/TypeUtil.js +0 -28
  221. package/lib/module/utils/TypeUtil.js.map +0 -1
  222. package/lib/typescript/controllers/AccountController.d.ts +0 -33
  223. package/lib/typescript/controllers/AccountController.d.ts.map +0 -1
  224. package/lib/typescript/controllers/ConnectionController.d.ts +0 -66
  225. package/lib/typescript/controllers/ConnectionController.d.ts.map +0 -1
  226. package/lib/typescript/controllers/ConnectorController.d.ts +0 -18
  227. package/lib/typescript/controllers/ConnectorController.d.ts.map +0 -1
  228. package/lib/typescript/controllers/NetworkController.d.ts +0 -35
  229. package/lib/typescript/controllers/NetworkController.d.ts.map +0 -1
  230. package/lib/typescript/controllers/WebviewController.d.ts +0 -21
  231. package/lib/typescript/controllers/WebviewController.d.ts.map +0 -1
  232. package/lib/typescript/utils/ConnectionUtil.d.ts +0 -4
  233. package/lib/typescript/utils/ConnectionUtil.d.ts.map +0 -1
  234. package/lib/typescript/utils/NetworkUtil.d.ts +0 -8
  235. package/lib/typescript/utils/NetworkUtil.d.ts.map +0 -1
  236. package/lib/typescript/utils/TypeUtil.d.ts +0 -850
  237. package/lib/typescript/utils/TypeUtil.d.ts.map +0 -1
  238. package/src/controllers/AccountController.ts +0 -128
  239. package/src/controllers/ConnectionController.ts +0 -200
  240. package/src/controllers/ConnectorController.ts +0 -63
  241. package/src/controllers/NetworkController.ts +0 -120
  242. package/src/controllers/WebviewController.ts +0 -63
  243. package/src/utils/ConnectionUtil.ts +0 -27
  244. package/src/utils/NetworkUtil.ts +0 -33
  245. package/src/utils/TypeUtil.ts +0 -1039
@@ -1,37 +1,27 @@
1
1
  /* eslint-disable no-console */
2
- import AsyncStorage from '@react-native-async-storage/async-storage';
3
- import type {
4
- OnRampCountry,
5
- OnRampCountryDefaults,
6
- OnRampFiatCurrency,
7
- OnRampFiatLimit,
8
- OnRampServiceProvider,
9
- WcWallet
10
- } from './TypeUtil';
11
2
  import {
3
+ type OnRampCountry,
4
+ type OnRampFiatCurrency,
5
+ type OnRampFiatLimit,
6
+ type OnRampServiceProvider,
7
+ type OnRampCountryDefaults,
8
+ type WcWallet,
12
9
  DateUtil,
13
- type SocialProvider,
14
- type ConnectorType
10
+ type ConnectorType,
11
+ type ChainNamespace,
12
+ type WalletDeepLink,
13
+ ConstantsUtil
15
14
  } from '@reown/appkit-common-react-native';
15
+ import { OptionsController } from '../controllers/OptionsController';
16
16
 
17
- // -- Helpers -----------------------------------------------------------------
18
- const WC_DEEPLINK = 'WALLETCONNECT_DEEPLINK_CHOICE';
19
- const RECENT_WALLET = '@w3m/recent';
20
- const CONNECTED_WALLET_IMAGE_URL = '@w3m/connected_wallet_image_url';
21
- const CONNECTED_CONNECTOR = '@w3m/connected_connector';
22
- const CONNECTED_SOCIAL = '@appkit/connected_social';
23
- const ONRAMP_PREFERRED_COUNTRY = '@appkit/onramp_preferred_country';
24
- const ONRAMP_COUNTRIES = '@appkit/onramp_countries';
25
- const ONRAMP_COUNTRIES_DEFAULTS = '@appkit/onramp_countries_defaults';
26
- const ONRAMP_SERVICE_PROVIDERS = '@appkit/onramp_service_providers';
27
- const ONRAMP_FIAT_LIMITS = '@appkit/onramp_fiat_limits';
28
- const ONRAMP_FIAT_CURRENCIES = '@appkit/onramp_fiat_currencies';
29
- const ONRAMP_PREFERRED_FIAT_CURRENCY = '@appkit/onramp_preferred_fiat_currency';
30
17
  // -- Utility -----------------------------------------------------------------
31
18
  export const StorageUtil = {
32
- setWalletConnectDeepLink({ href, name }: { href: string; name: string }) {
19
+ setWalletConnectDeepLink({ href, name }: WalletDeepLink) {
33
20
  try {
34
- AsyncStorage.setItem(WC_DEEPLINK, JSON.stringify({ href, name }));
21
+ OptionsController.getStorage().setItem(ConstantsUtil.STORAGE_KEYS.WC_DEEPLINK, {
22
+ href,
23
+ name
24
+ });
35
25
  } catch {
36
26
  console.info('Unable to set WalletConnect deep link');
37
27
  }
@@ -39,9 +29,11 @@ export const StorageUtil = {
39
29
 
40
30
  async getWalletConnectDeepLink() {
41
31
  try {
42
- const deepLink = await AsyncStorage.getItem(WC_DEEPLINK);
32
+ const deepLink = await OptionsController.getStorage().getItem<WalletDeepLink>(
33
+ ConstantsUtil.STORAGE_KEYS.WC_DEEPLINK
34
+ );
43
35
  if (deepLink) {
44
- return JSON.parse(deepLink);
36
+ return deepLink;
45
37
  }
46
38
  } catch {
47
39
  console.info('Unable to get WalletConnect deep link');
@@ -52,9 +44,9 @@ export const StorageUtil = {
52
44
 
53
45
  async removeWalletConnectDeepLink() {
54
46
  try {
55
- await AsyncStorage.removeItem(WC_DEEPLINK);
47
+ await OptionsController.getStorage().removeItem(ConstantsUtil.STORAGE_KEYS.WC_DEEPLINK);
56
48
  } catch {
57
- console.info('Unable to delete WalletConnect deep link');
49
+ console.info('Unable to remove WalletConnect deep link');
58
50
  }
59
51
  },
60
52
 
@@ -71,7 +63,10 @@ export const StorageUtil = {
71
63
  if (recentWallets.length > 2) {
72
64
  recentWallets.pop();
73
65
  }
74
- AsyncStorage.setItem(RECENT_WALLET, JSON.stringify(recentWallets));
66
+ OptionsController.getStorage().setItem(
67
+ ConstantsUtil.STORAGE_KEYS.RECENT_WALLET,
68
+ recentWallets
69
+ );
75
70
 
76
71
  return recentWallets;
77
72
  } catch {
@@ -83,7 +78,10 @@ export const StorageUtil = {
83
78
 
84
79
  async setRecentWallets(wallets: WcWallet[]) {
85
80
  try {
86
- await AsyncStorage.setItem(RECENT_WALLET, JSON.stringify(wallets));
81
+ await OptionsController.getStorage().setItem(
82
+ ConstantsUtil.STORAGE_KEYS.RECENT_WALLET,
83
+ wallets
84
+ );
87
85
  } catch {
88
86
  console.info('Unable to set recent wallets');
89
87
  }
@@ -91,9 +89,11 @@ export const StorageUtil = {
91
89
 
92
90
  async getRecentWallets(): Promise<WcWallet[]> {
93
91
  try {
94
- const recent = await AsyncStorage.getItem(RECENT_WALLET);
92
+ const recent = await OptionsController.getStorage().getItem(
93
+ ConstantsUtil.STORAGE_KEYS.RECENT_WALLET
94
+ );
95
95
 
96
- return recent ? JSON.parse(recent) : [];
96
+ return recent ?? [];
97
97
  } catch {
98
98
  console.info('Unable to get recent wallets');
99
99
  }
@@ -101,91 +101,61 @@ export const StorageUtil = {
101
101
  return [];
102
102
  },
103
103
 
104
- async setConnectedConnector(connectorType: ConnectorType) {
104
+ async setConnectedConnectors({
105
+ type,
106
+ namespaces
107
+ }: {
108
+ type: ConnectorType;
109
+ namespaces: string[];
110
+ }) {
105
111
  try {
106
- await AsyncStorage.setItem(CONNECTED_CONNECTOR, JSON.stringify(connectorType));
112
+ const currentConnectors = (await StorageUtil.getConnectedConnectors()) || [];
113
+ // Only add if it doesn't exist already
114
+ if (!currentConnectors.some(c => c.type === type)) {
115
+ const updatedConnectors = [...currentConnectors, { type, namespaces }];
116
+ await OptionsController.getStorage().setItem(
117
+ ConstantsUtil.STORAGE_KEYS.CONNECTED_CONNECTORS,
118
+ updatedConnectors
119
+ );
120
+ }
107
121
  } catch {
108
122
  console.info('Unable to set Connected Connector');
109
123
  }
110
124
  },
111
125
 
112
- async getConnectedConnector(): Promise<ConnectorType | undefined> {
126
+ async getConnectedConnectors(): Promise<{ type: ConnectorType; namespaces: string[] }[]> {
113
127
  try {
114
- const connector = (await AsyncStorage.getItem(CONNECTED_CONNECTOR)) as ConnectorType;
128
+ const connectors = await OptionsController.getStorage().getItem<
129
+ { type: ConnectorType; namespaces: string[] }[]
130
+ >(ConstantsUtil.STORAGE_KEYS.CONNECTED_CONNECTORS);
115
131
 
116
- return connector ? JSON.parse(connector) : undefined;
117
- } catch {
132
+ return connectors ?? [];
133
+ } catch (err) {
118
134
  console.info('Unable to get Connected Connector');
119
135
  }
120
136
 
121
- return undefined;
137
+ return [];
122
138
  },
123
139
 
124
- async removeConnectedConnector() {
140
+ async removeConnectedConnectors(type: ConnectorType) {
125
141
  try {
126
- await AsyncStorage.removeItem(CONNECTED_CONNECTOR);
142
+ const currentConnectors = await StorageUtil.getConnectedConnectors();
143
+ const updatedConnectors = currentConnectors.filter(c => c.type !== type);
144
+ await OptionsController.getStorage().setItem(
145
+ ConstantsUtil.STORAGE_KEYS.CONNECTED_CONNECTORS,
146
+ updatedConnectors
147
+ );
127
148
  } catch {
128
149
  console.info('Unable to remove Connected Connector');
129
150
  }
130
151
  },
131
152
 
132
- async setConnectedWalletImageUrl(url: string) {
133
- try {
134
- await AsyncStorage.setItem(CONNECTED_WALLET_IMAGE_URL, url);
135
- } catch {
136
- console.info('Unable to set Connected Wallet Image URL');
137
- }
138
- },
139
-
140
- async getConnectedWalletImageUrl() {
141
- try {
142
- return await AsyncStorage.getItem(CONNECTED_WALLET_IMAGE_URL);
143
- } catch {
144
- console.info('Unable to get Connected Wallet Image URL');
145
- }
146
-
147
- return undefined;
148
- },
149
-
150
- async removeConnectedWalletImageUrl() {
151
- try {
152
- await AsyncStorage.removeItem(CONNECTED_WALLET_IMAGE_URL);
153
- } catch {
154
- console.info('Unable to remove Connected Wallet Image URL');
155
- }
156
- },
157
-
158
- async setConnectedSocialProvider(provider: SocialProvider) {
159
- try {
160
- await AsyncStorage.setItem(CONNECTED_SOCIAL, JSON.stringify(provider));
161
- } catch {
162
- console.info('Unable to set Connected Social Provider');
163
- }
164
- },
165
-
166
- async getConnectedSocialProvider() {
167
- try {
168
- const provider = (await AsyncStorage.getItem(CONNECTED_SOCIAL)) as SocialProvider;
169
-
170
- return provider ? JSON.parse(provider) : undefined;
171
- } catch {
172
- console.info('Unable to get Connected Social Provider');
173
- }
174
-
175
- return undefined;
176
- },
177
-
178
- async removeConnectedSocialProvider() {
179
- try {
180
- await AsyncStorage.removeItem(CONNECTED_SOCIAL);
181
- } catch {
182
- console.info('Unable to remove Connected Social Provider');
183
- }
184
- },
185
-
186
153
  async setOnRampPreferredCountry(country: OnRampCountry) {
187
154
  try {
188
- await AsyncStorage.setItem(ONRAMP_PREFERRED_COUNTRY, JSON.stringify(country));
155
+ await OptionsController.getStorage().setItem(
156
+ ConstantsUtil.STORAGE_KEYS.ONRAMP_PREFERRED_COUNTRY,
157
+ country
158
+ );
189
159
  } catch {
190
160
  console.info('Unable to set OnRamp Preferred Country');
191
161
  }
@@ -193,9 +163,11 @@ export const StorageUtil = {
193
163
 
194
164
  async getOnRampPreferredCountry() {
195
165
  try {
196
- const country = await AsyncStorage.getItem(ONRAMP_PREFERRED_COUNTRY);
166
+ const country = await OptionsController.getStorage().getItem<OnRampCountry>(
167
+ ConstantsUtil.STORAGE_KEYS.ONRAMP_PREFERRED_COUNTRY
168
+ );
197
169
 
198
- return country ? (JSON.parse(country) as OnRampCountry) : undefined;
170
+ return country ?? undefined;
199
171
  } catch {
200
172
  console.info('Unable to get OnRamp Preferred Country');
201
173
  }
@@ -205,7 +177,10 @@ export const StorageUtil = {
205
177
 
206
178
  async setOnRampPreferredFiatCurrency(currency: OnRampFiatCurrency) {
207
179
  try {
208
- await AsyncStorage.setItem(ONRAMP_PREFERRED_FIAT_CURRENCY, JSON.stringify(currency));
180
+ await OptionsController.getStorage().setItem(
181
+ ConstantsUtil.STORAGE_KEYS.ONRAMP_PREFERRED_FIAT_CURRENCY,
182
+ currency
183
+ );
209
184
  } catch {
210
185
  console.info('Unable to set OnRamp Preferred Fiat Currency');
211
186
  }
@@ -213,9 +188,11 @@ export const StorageUtil = {
213
188
 
214
189
  async getOnRampPreferredFiatCurrency() {
215
190
  try {
216
- const currency = await AsyncStorage.getItem(ONRAMP_PREFERRED_FIAT_CURRENCY);
191
+ const currency = await OptionsController.getStorage().getItem<OnRampFiatCurrency>(
192
+ ConstantsUtil.STORAGE_KEYS.ONRAMP_PREFERRED_FIAT_CURRENCY
193
+ );
217
194
 
218
- return currency ? (JSON.parse(currency) as OnRampFiatCurrency) : undefined;
195
+ return currency ?? undefined;
219
196
  } catch {
220
197
  console.info('Unable to get OnRamp Preferred Fiat Currency');
221
198
  }
@@ -225,7 +202,10 @@ export const StorageUtil = {
225
202
 
226
203
  async setOnRampCountries(countries: OnRampCountry[]) {
227
204
  try {
228
- await AsyncStorage.setItem(ONRAMP_COUNTRIES, JSON.stringify(countries));
205
+ await OptionsController.getStorage().setItem(
206
+ ConstantsUtil.STORAGE_KEYS.ONRAMP_COUNTRIES,
207
+ countries
208
+ );
229
209
  } catch {
230
210
  console.info('Unable to set OnRamp Countries');
231
211
  }
@@ -233,9 +213,11 @@ export const StorageUtil = {
233
213
 
234
214
  async getOnRampCountries() {
235
215
  try {
236
- const countries = await AsyncStorage.getItem(ONRAMP_COUNTRIES);
216
+ const countries = await OptionsController.getStorage().getItem<OnRampCountry[]>(
217
+ ConstantsUtil.STORAGE_KEYS.ONRAMP_COUNTRIES
218
+ );
237
219
 
238
- return countries ? (JSON.parse(countries) as OnRampCountry[]) : [];
220
+ return countries ?? [];
239
221
  } catch {
240
222
  console.info('Unable to get OnRamp Countries');
241
223
  }
@@ -247,9 +229,9 @@ export const StorageUtil = {
247
229
  try {
248
230
  const timestamp = Date.now();
249
231
 
250
- await AsyncStorage.setItem(
251
- ONRAMP_COUNTRIES_DEFAULTS,
252
- JSON.stringify({ data: countriesDefaults, timestamp })
232
+ await OptionsController.getStorage().setItem(
233
+ ConstantsUtil.STORAGE_KEYS.ONRAMP_COUNTRIES_DEFAULTS,
234
+ { data: countriesDefaults, timestamp }
253
235
  );
254
236
  } catch {
255
237
  console.info('Unable to set OnRamp Countries Defaults');
@@ -258,20 +240,22 @@ export const StorageUtil = {
258
240
 
259
241
  async getOnRampCountriesDefaults() {
260
242
  try {
261
- const result = await AsyncStorage.getItem(ONRAMP_COUNTRIES_DEFAULTS);
243
+ const result = await OptionsController.getStorage().getItem(
244
+ ConstantsUtil.STORAGE_KEYS.ONRAMP_COUNTRIES_DEFAULTS
245
+ );
262
246
 
263
247
  if (!result) {
264
248
  return [];
265
249
  }
266
250
 
267
- const { data, timestamp } = JSON.parse(result);
251
+ const { data, timestamp } = result;
268
252
 
269
253
  // Cache for 1 week
270
254
  if (timestamp && DateUtil.isMoreThanOneWeekAgo(timestamp)) {
271
255
  return [];
272
256
  }
273
257
 
274
- return data ? (data as OnRampCountryDefaults[]) : [];
258
+ return (data as OnRampCountryDefaults[]) ?? [];
275
259
  } catch {
276
260
  console.info('Unable to get OnRamp Countries Defaults');
277
261
  }
@@ -283,9 +267,9 @@ export const StorageUtil = {
283
267
  try {
284
268
  const timestamp = Date.now();
285
269
 
286
- await AsyncStorage.setItem(
287
- ONRAMP_SERVICE_PROVIDERS,
288
- JSON.stringify({ data: serviceProviders, timestamp })
270
+ await OptionsController.getStorage().setItem(
271
+ ConstantsUtil.STORAGE_KEYS.ONRAMP_SERVICE_PROVIDERS,
272
+ { data: serviceProviders, timestamp }
289
273
  );
290
274
  } catch {
291
275
  console.info('Unable to set OnRamp Service Providers');
@@ -294,20 +278,22 @@ export const StorageUtil = {
294
278
 
295
279
  async getOnRampServiceProviders() {
296
280
  try {
297
- const result = await AsyncStorage.getItem(ONRAMP_SERVICE_PROVIDERS);
281
+ const result = await OptionsController.getStorage().getItem(
282
+ ConstantsUtil.STORAGE_KEYS.ONRAMP_SERVICE_PROVIDERS
283
+ );
298
284
 
299
285
  if (!result) {
300
286
  return [];
301
287
  }
302
288
 
303
- const { data, timestamp } = JSON.parse(result);
289
+ const { data, timestamp } = result;
304
290
 
305
291
  // Cache for 1 week
306
292
  if (timestamp && DateUtil.isMoreThanOneWeekAgo(timestamp)) {
307
293
  return [];
308
294
  }
309
295
 
310
- return data ? (data as OnRampServiceProvider[]) : [];
296
+ return (data as OnRampServiceProvider[]) ?? [];
311
297
  } catch (err) {
312
298
  console.error(err);
313
299
  console.info('Unable to get OnRamp Service Providers');
@@ -320,10 +306,10 @@ export const StorageUtil = {
320
306
  try {
321
307
  const timestamp = Date.now();
322
308
 
323
- await AsyncStorage.setItem(
324
- ONRAMP_FIAT_LIMITS,
325
- JSON.stringify({ data: fiatLimits, timestamp })
326
- );
309
+ await OptionsController.getStorage().setItem(ConstantsUtil.STORAGE_KEYS.ONRAMP_FIAT_LIMITS, {
310
+ data: fiatLimits,
311
+ timestamp
312
+ });
327
313
  } catch {
328
314
  console.info('Unable to set OnRamp Fiat Limits');
329
315
  }
@@ -331,20 +317,22 @@ export const StorageUtil = {
331
317
 
332
318
  async getOnRampFiatLimits() {
333
319
  try {
334
- const result = await AsyncStorage.getItem(ONRAMP_FIAT_LIMITS);
320
+ const result = await OptionsController.getStorage().getItem(
321
+ ConstantsUtil.STORAGE_KEYS.ONRAMP_FIAT_LIMITS
322
+ );
335
323
 
336
324
  if (!result) {
337
325
  return [];
338
326
  }
339
327
 
340
- const { data, timestamp } = JSON.parse(result);
328
+ const { data, timestamp } = result;
341
329
 
342
330
  // Cache for 1 week
343
331
  if (timestamp && DateUtil.isMoreThanOneWeekAgo(timestamp)) {
344
332
  return [];
345
333
  }
346
334
 
347
- return data ? (data as OnRampFiatLimit[]) : [];
335
+ return (data as OnRampFiatLimit[]) ?? [];
348
336
  } catch {
349
337
  console.info('Unable to get OnRamp Fiat Limits');
350
338
  }
@@ -356,9 +344,9 @@ export const StorageUtil = {
356
344
  try {
357
345
  const timestamp = Date.now();
358
346
 
359
- await AsyncStorage.setItem(
360
- ONRAMP_FIAT_CURRENCIES,
361
- JSON.stringify({ data: fiatCurrencies, timestamp })
347
+ await OptionsController.getStorage().setItem(
348
+ ConstantsUtil.STORAGE_KEYS.ONRAMP_FIAT_CURRENCIES,
349
+ { data: fiatCurrencies, timestamp }
362
350
  );
363
351
  } catch {
364
352
  console.info('Unable to set OnRamp Fiat Currencies');
@@ -367,24 +355,68 @@ export const StorageUtil = {
367
355
 
368
356
  async getOnRampFiatCurrencies() {
369
357
  try {
370
- const result = await AsyncStorage.getItem(ONRAMP_FIAT_CURRENCIES);
358
+ const result = await OptionsController.getStorage().getItem(
359
+ ConstantsUtil.STORAGE_KEYS.ONRAMP_FIAT_CURRENCIES
360
+ );
371
361
 
372
362
  if (!result) {
373
363
  return [];
374
364
  }
375
365
 
376
- const { data, timestamp } = JSON.parse(result);
366
+ const { data, timestamp } = result;
377
367
 
378
368
  // Cache for 1 week
379
369
  if (timestamp && DateUtil.isMoreThanOneWeekAgo(timestamp)) {
380
370
  return [];
381
371
  }
382
372
 
383
- return data ? (data as OnRampFiatCurrency[]) : [];
373
+ return (data as OnRampFiatCurrency[]) ?? [];
384
374
  } catch {
385
375
  console.info('Unable to get OnRamp Fiat Currencies');
386
376
  }
387
377
 
388
378
  return [];
379
+ },
380
+
381
+ async setActiveNamespace(namespace?: ChainNamespace) {
382
+ try {
383
+ if (!namespace) {
384
+ await OptionsController.getStorage().removeItem(
385
+ ConstantsUtil.STORAGE_KEYS.ACTIVE_NAMESPACE
386
+ );
387
+
388
+ return;
389
+ }
390
+
391
+ await OptionsController.getStorage().setItem(
392
+ ConstantsUtil.STORAGE_KEYS.ACTIVE_NAMESPACE,
393
+ namespace
394
+ );
395
+ } catch {
396
+ console.info('Unable to set Active Namespace');
397
+ }
398
+ },
399
+
400
+ async getActiveNamespace() {
401
+ try {
402
+ const namespace = (await OptionsController.getStorage().getItem(
403
+ ConstantsUtil.STORAGE_KEYS.ACTIVE_NAMESPACE
404
+ )) as ChainNamespace;
405
+
406
+ return namespace ?? undefined;
407
+ } catch (err) {
408
+ console.error(err);
409
+ console.info('Unable to get Active Namespace');
410
+ }
411
+
412
+ return undefined;
413
+ },
414
+
415
+ async removeActiveNamespace() {
416
+ try {
417
+ await OptionsController.getStorage().removeItem(ConstantsUtil.STORAGE_KEYS.ACTIVE_NAMESPACE);
418
+ } catch {
419
+ console.info('Unable to remove Active Namespace');
420
+ }
389
421
  }
390
422
  };
@@ -1,19 +1,21 @@
1
- import { BlockchainApiController } from '../controllers/BlockchainApiController';
2
- import { OptionsController } from '../controllers/OptionsController';
3
- import { NetworkController } from '../controllers/NetworkController';
4
1
  import type {
5
- BlockchainApiBalanceResponse,
2
+ Balance,
3
+ CaipNetworkId,
6
4
  BlockchainApiSwapAllowanceRequest,
7
5
  SwapTokenWithBalance
8
- } from './TypeUtil';
9
- import { AccountController } from '../controllers/AccountController';
10
- import { ConnectionController } from '../controllers/ConnectionController';
6
+ } from '@reown/appkit-common-react-native';
7
+ import { BlockchainApiController } from '../controllers/BlockchainApiController';
8
+ import { OptionsController } from '../controllers/OptionsController';
9
+ import { ConnectionsController } from '../controllers/ConnectionsController';
10
+ import { ConstantsUtil } from './ConstantsUtil';
11
11
 
12
12
  export const SwapApiUtil = {
13
13
  async getTokenList() {
14
+ const chainId: CaipNetworkId =
15
+ ConnectionsController.state.activeNetwork?.caipNetworkId ?? 'eip155:1';
14
16
  const response = await BlockchainApiController.fetchSwapTokens({
15
17
  projectId: OptionsController.state.projectId,
16
- chainId: NetworkController.state.caipNetwork?.id
18
+ chainId
17
19
  });
18
20
  const tokens =
19
21
  response?.tokens?.map(
@@ -52,7 +54,7 @@ export const SwapApiUtil = {
52
54
 
53
55
  if (response?.allowance && sourceTokenAmount && sourceTokenDecimals) {
54
56
  const parsedValue =
55
- ConnectionController.parseUnits(sourceTokenAmount, sourceTokenDecimals) || 0;
57
+ ConnectionsController.parseUnits(sourceTokenAmount, sourceTokenDecimals) || 0;
56
58
  const hasAllowance = BigInt(response.allowance) >= parsedValue;
57
59
 
58
60
  return hasAllowance;
@@ -61,40 +63,31 @@ export const SwapApiUtil = {
61
63
  return false;
62
64
  },
63
65
 
64
- async getMyTokensWithBalance(forceUpdate?: string) {
65
- const address = AccountController.state.address;
66
- const chainId = NetworkController.state.caipNetwork?.id;
67
-
68
- if (!address) {
69
- return [];
70
- }
71
-
72
- const response = await BlockchainApiController.getBalance(address, chainId, forceUpdate);
73
- const balances = response?.balances.filter(balance => balance.quantity.decimals !== '0');
66
+ mapBalancesToSwapTokens(balances?: Balance[]) {
67
+ const { activeNamespace, activeCaipNetworkId } = ConnectionsController.state;
68
+ const address = activeNamespace
69
+ ? ConstantsUtil.NATIVE_TOKEN_ADDRESS[activeNamespace]
70
+ : undefined;
74
71
 
75
- AccountController.setTokenBalance(balances);
76
-
77
- return this.mapBalancesToSwapTokens(balances);
78
- },
79
-
80
- mapBalancesToSwapTokens(balances?: BlockchainApiBalanceResponse['balances']) {
81
72
  return (
82
- balances?.map(
83
- token =>
84
- ({
85
- ...token,
86
- address: token?.address || NetworkController.getActiveNetworkTokenAddress(),
87
- decimals: parseInt(token.quantity.decimals, 10),
88
- logoUri: token.iconUrl,
89
- eip2612: false
90
- }) as SwapTokenWithBalance
91
- ) || []
73
+ balances
74
+ ?.filter(balance => balance?.quantity?.numeric)
75
+ .map(
76
+ token =>
77
+ ({
78
+ ...token,
79
+ address: token?.address ?? `${token?.chainId ?? activeCaipNetworkId}:${address}`,
80
+ decimals: parseInt(token.quantity?.decimals ?? '0', 10),
81
+ logoUri: token.iconUrl,
82
+ eip2612: false
83
+ }) as SwapTokenWithBalance
84
+ ) || []
92
85
  );
93
86
  },
94
87
 
95
88
  async fetchGasPrice() {
96
89
  const projectId = OptionsController.state.projectId;
97
- const caipNetwork = NetworkController.state.caipNetwork;
90
+ const caipNetwork = ConnectionsController.state.activeNetwork;
98
91
 
99
92
  if (!caipNetwork) {
100
93
  return null;
@@ -102,7 +95,7 @@ export const SwapApiUtil = {
102
95
 
103
96
  return await BlockchainApiController.fetchGasPrice({
104
97
  projectId,
105
- chainId: caipNetwork.id
98
+ chainId: caipNetwork.caipNetworkId
106
99
  });
107
100
  }
108
101
  };
@@ -1,7 +1,6 @@
1
1
  // -- Types --------------------------------------------- //
2
2
 
3
- import { NumberUtil } from '@reown/appkit-common-react-native';
4
- import type { SwapTokenWithBalance } from './TypeUtil';
3
+ import { NumberUtil, type SwapTokenWithBalance } from '@reown/appkit-common-react-native';
5
4
 
6
5
  // -- Util ---------------------------------------- //
7
6
  export const SwapCalculationUtil = {
@@ -0,0 +1,14 @@
1
+ import type { WcWallet } from '@reown/appkit-common-react-native';
2
+ import { ApiController } from '../controllers/ApiController';
3
+ import { OptionsController } from '../controllers/OptionsController';
4
+
5
+ export const WalletUtil = {
6
+ getWallet: (walletId: string): WcWallet | undefined => {
7
+ const { wallets, recommended, featured, installed } = ApiController.state;
8
+ const customWallets = OptionsController.state.customWallets ?? [];
9
+ const allWallets = [...wallets, ...recommended, ...featured, ...installed, ...customWallets];
10
+ const wallet = allWallets.find(w => w.id === walletId);
11
+
12
+ return wallet;
13
+ }
14
+ };