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