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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (195) hide show
  1. package/lib/commonjs/controllers/AccountController.js +17 -20
  2. package/lib/commonjs/controllers/AccountController.js.map +1 -1
  3. package/lib/commonjs/controllers/ApiController.js +16 -28
  4. package/lib/commonjs/controllers/ApiController.js.map +1 -1
  5. package/lib/commonjs/controllers/BlockchainApiController.js +74 -204
  6. package/lib/commonjs/controllers/BlockchainApiController.js.map +1 -1
  7. package/lib/commonjs/controllers/ConnectionController.js +11 -8
  8. package/lib/commonjs/controllers/ConnectionController.js.map +1 -1
  9. package/lib/commonjs/controllers/ConnectorController.js +49 -0
  10. package/lib/commonjs/controllers/ConnectorController.js.map +1 -0
  11. package/lib/commonjs/controllers/EnsController.js +4 -4
  12. package/lib/commonjs/controllers/EnsController.js.map +1 -1
  13. package/lib/commonjs/controllers/EventsController.js +4 -4
  14. package/lib/commonjs/controllers/EventsController.js.map +1 -1
  15. package/lib/commonjs/controllers/ModalController.js +7 -6
  16. package/lib/commonjs/controllers/ModalController.js.map +1 -1
  17. package/lib/commonjs/controllers/OnRampController.js +69 -22
  18. package/lib/commonjs/controllers/OnRampController.js.map +1 -1
  19. package/lib/commonjs/controllers/OptionsController.js +3 -11
  20. package/lib/commonjs/controllers/OptionsController.js.map +1 -1
  21. package/lib/commonjs/controllers/RouterController.js +22 -1
  22. package/lib/commonjs/controllers/RouterController.js.map +1 -1
  23. package/lib/commonjs/controllers/SendController.js +101 -101
  24. package/lib/commonjs/controllers/SendController.js.map +1 -1
  25. package/lib/commonjs/controllers/SnackController.js +5 -29
  26. package/lib/commonjs/controllers/SnackController.js.map +1 -1
  27. package/lib/commonjs/controllers/SwapController.js +150 -151
  28. package/lib/commonjs/controllers/SwapController.js.map +1 -1
  29. package/lib/commonjs/controllers/ThemeController.js +1 -9
  30. package/lib/commonjs/controllers/ThemeController.js.map +1 -1
  31. package/lib/commonjs/controllers/TransactionsController.js +21 -25
  32. package/lib/commonjs/controllers/TransactionsController.js.map +1 -1
  33. package/lib/commonjs/controllers/WebviewController.js +52 -0
  34. package/lib/commonjs/controllers/WebviewController.js.map +1 -0
  35. package/lib/commonjs/index.js +24 -3
  36. package/lib/commonjs/index.js.map +1 -1
  37. package/lib/commonjs/utils/AssetUtil.js +15 -3
  38. package/lib/commonjs/utils/AssetUtil.js.map +1 -1
  39. package/lib/commonjs/utils/ConnectionUtil.js +33 -0
  40. package/lib/commonjs/utils/ConnectionUtil.js.map +1 -0
  41. package/lib/commonjs/utils/ConstantsUtil.js +9 -538
  42. package/lib/commonjs/utils/ConstantsUtil.js.map +1 -1
  43. package/lib/commonjs/utils/CoreHelperUtil.js +6 -12
  44. package/lib/commonjs/utils/CoreHelperUtil.js.map +1 -1
  45. package/lib/commonjs/utils/FetchUtil.js +28 -9
  46. package/lib/commonjs/utils/FetchUtil.js.map +1 -1
  47. package/lib/commonjs/utils/NetworkUtil.js +46 -0
  48. package/lib/commonjs/utils/NetworkUtil.js.map +1 -0
  49. package/lib/commonjs/utils/StorageUtil.js +42 -51
  50. package/lib/commonjs/utils/StorageUtil.js.map +1 -1
  51. package/lib/commonjs/utils/SwapApiUtil.js +21 -15
  52. package/lib/commonjs/utils/SwapApiUtil.js.map +1 -1
  53. package/lib/module/controllers/AccountController.js +17 -20
  54. package/lib/module/controllers/AccountController.js.map +1 -1
  55. package/lib/module/controllers/ApiController.js +16 -27
  56. package/lib/module/controllers/ApiController.js.map +1 -1
  57. package/lib/module/controllers/BlockchainApiController.js +73 -203
  58. package/lib/module/controllers/BlockchainApiController.js.map +1 -1
  59. package/lib/module/controllers/ConnectionController.js +11 -8
  60. package/lib/module/controllers/ConnectionController.js.map +1 -1
  61. package/lib/module/controllers/ConnectorController.js +44 -0
  62. package/lib/module/controllers/ConnectorController.js.map +1 -0
  63. package/lib/module/controllers/EnsController.js +2 -2
  64. package/lib/module/controllers/EnsController.js.map +1 -1
  65. package/lib/module/controllers/EventsController.js +1 -1
  66. package/lib/module/controllers/EventsController.js.map +1 -1
  67. package/lib/module/controllers/ModalController.js +7 -6
  68. package/lib/module/controllers/ModalController.js.map +1 -1
  69. package/lib/module/controllers/OnRampController.js +70 -23
  70. package/lib/module/controllers/OnRampController.js.map +1 -1
  71. package/lib/module/controllers/OptionsController.js +3 -11
  72. package/lib/module/controllers/OptionsController.js.map +1 -1
  73. package/lib/module/controllers/RouterController.js +22 -1
  74. package/lib/module/controllers/RouterController.js.map +1 -1
  75. package/lib/module/controllers/SendController.js +98 -98
  76. package/lib/module/controllers/SendController.js.map +1 -1
  77. package/lib/module/controllers/SnackController.js +5 -29
  78. package/lib/module/controllers/SnackController.js.map +1 -1
  79. package/lib/module/controllers/SwapController.js +150 -151
  80. package/lib/module/controllers/SwapController.js.map +1 -1
  81. package/lib/module/controllers/ThemeController.js +1 -9
  82. package/lib/module/controllers/ThemeController.js.map +1 -1
  83. package/lib/module/controllers/TransactionsController.js +19 -23
  84. package/lib/module/controllers/TransactionsController.js.map +1 -1
  85. package/lib/module/controllers/WebviewController.js +47 -0
  86. package/lib/module/controllers/WebviewController.js.map +1 -0
  87. package/lib/module/index.js +4 -1
  88. package/lib/module/index.js.map +1 -1
  89. package/lib/module/utils/AssetUtil.js +15 -3
  90. package/lib/module/utils/AssetUtil.js.map +1 -1
  91. package/lib/module/utils/ConnectionUtil.js +27 -0
  92. package/lib/module/utils/ConnectionUtil.js.map +1 -0
  93. package/lib/module/utils/ConstantsUtil.js +9 -538
  94. package/lib/module/utils/ConstantsUtil.js.map +1 -1
  95. package/lib/module/utils/CoreHelperUtil.js +6 -12
  96. package/lib/module/utils/CoreHelperUtil.js.map +1 -1
  97. package/lib/module/utils/FetchUtil.js +28 -9
  98. package/lib/module/utils/FetchUtil.js.map +1 -1
  99. package/lib/module/utils/NetworkUtil.js +40 -0
  100. package/lib/module/utils/NetworkUtil.js.map +1 -0
  101. package/lib/module/utils/StorageUtil.js +42 -51
  102. package/lib/module/utils/StorageUtil.js.map +1 -1
  103. package/lib/module/utils/SwapApiUtil.js +21 -15
  104. package/lib/module/utils/SwapApiUtil.js.map +1 -1
  105. package/lib/typescript/controllers/AccountController.d.ts +4 -4
  106. package/lib/typescript/controllers/AccountController.d.ts.map +1 -1
  107. package/lib/typescript/controllers/ApiController.d.ts +2 -3
  108. package/lib/typescript/controllers/ApiController.d.ts.map +1 -1
  109. package/lib/typescript/controllers/BlockchainApiController.d.ts +15 -29
  110. package/lib/typescript/controllers/BlockchainApiController.d.ts.map +1 -1
  111. package/lib/typescript/controllers/ConnectionController.d.ts +11 -3
  112. package/lib/typescript/controllers/ConnectionController.d.ts.map +1 -1
  113. package/lib/typescript/controllers/ConnectorController.d.ts +18 -0
  114. package/lib/typescript/controllers/ConnectorController.d.ts.map +1 -0
  115. package/lib/typescript/controllers/ModalController.d.ts +1 -1
  116. package/lib/typescript/controllers/ModalController.d.ts.map +1 -1
  117. package/lib/typescript/controllers/NetworkController.d.ts +1 -1
  118. package/lib/typescript/controllers/NetworkController.d.ts.map +1 -1
  119. package/lib/typescript/controllers/OnRampController.d.ts +3 -1
  120. package/lib/typescript/controllers/OnRampController.d.ts.map +1 -1
  121. package/lib/typescript/controllers/OptionsController.d.ts +2 -7
  122. package/lib/typescript/controllers/OptionsController.d.ts.map +1 -1
  123. package/lib/typescript/controllers/PublicStateController.d.ts +1 -1
  124. package/lib/typescript/controllers/PublicStateController.d.ts.map +1 -1
  125. package/lib/typescript/controllers/RouterController.d.ts +16 -4
  126. package/lib/typescript/controllers/RouterController.d.ts.map +1 -1
  127. package/lib/typescript/controllers/SendController.d.ts +7 -5
  128. package/lib/typescript/controllers/SendController.d.ts.map +1 -1
  129. package/lib/typescript/controllers/SnackController.d.ts +3 -3
  130. package/lib/typescript/controllers/SnackController.d.ts.map +1 -1
  131. package/lib/typescript/controllers/SwapController.d.ts +11 -12
  132. package/lib/typescript/controllers/SwapController.d.ts.map +1 -1
  133. package/lib/typescript/controllers/ThemeController.d.ts +1 -1
  134. package/lib/typescript/controllers/ThemeController.d.ts.map +1 -1
  135. package/lib/typescript/controllers/TransactionsController.d.ts +3 -3
  136. package/lib/typescript/controllers/TransactionsController.d.ts.map +1 -1
  137. package/lib/typescript/controllers/WebviewController.d.ts +21 -0
  138. package/lib/typescript/controllers/WebviewController.d.ts.map +1 -0
  139. package/lib/typescript/index.d.ts +4 -1
  140. package/lib/typescript/index.d.ts.map +1 -1
  141. package/lib/typescript/utils/AssetUtil.d.ts +3 -2
  142. package/lib/typescript/utils/AssetUtil.d.ts.map +1 -1
  143. package/lib/typescript/utils/ConnectionUtil.d.ts +4 -0
  144. package/lib/typescript/utils/ConnectionUtil.d.ts.map +1 -0
  145. package/lib/typescript/utils/ConstantsUtil.d.ts +3 -422
  146. package/lib/typescript/utils/ConstantsUtil.d.ts.map +1 -1
  147. package/lib/typescript/utils/CoreHelperUtil.d.ts +4 -5
  148. package/lib/typescript/utils/CoreHelperUtil.d.ts.map +1 -1
  149. package/lib/typescript/utils/FetchUtil.d.ts +1 -1
  150. package/lib/typescript/utils/FetchUtil.d.ts.map +1 -1
  151. package/lib/typescript/utils/NetworkUtil.d.ts +8 -0
  152. package/lib/typescript/utils/NetworkUtil.d.ts.map +1 -0
  153. package/lib/typescript/utils/StorageUtil.d.ts +7 -14
  154. package/lib/typescript/utils/StorageUtil.d.ts.map +1 -1
  155. package/lib/typescript/utils/SwapApiUtil.d.ts +3 -3
  156. package/lib/typescript/utils/SwapApiUtil.d.ts.map +1 -1
  157. package/lib/typescript/utils/TypeUtil.d.ts +191 -42
  158. package/lib/typescript/utils/TypeUtil.d.ts.map +1 -1
  159. package/package.json +4 -4
  160. package/src/controllers/AccountController.ts +27 -23
  161. package/src/controllers/ApiController.ts +10 -29
  162. package/src/controllers/BlockchainApiController.ts +65 -179
  163. package/src/controllers/ConnectionController.ts +24 -12
  164. package/src/controllers/ConnectorController.ts +63 -0
  165. package/src/controllers/EnsController.ts +2 -2
  166. package/src/controllers/EventsController.ts +1 -1
  167. package/src/controllers/ModalController.ts +8 -8
  168. package/src/controllers/NetworkController.ts +1 -1
  169. package/src/controllers/OnRampController.ts +99 -35
  170. package/src/controllers/OptionsController.ts +13 -19
  171. package/src/controllers/PublicStateController.ts +1 -1
  172. package/src/controllers/RouterController.ts +54 -5
  173. package/src/controllers/SendController.ts +113 -124
  174. package/src/controllers/SnackController.ts +5 -31
  175. package/src/controllers/SwapController.ts +181 -174
  176. package/src/controllers/ThemeController.ts +2 -11
  177. package/src/controllers/TransactionsController.ts +20 -26
  178. package/src/controllers/WebviewController.ts +63 -0
  179. package/src/index.ts +6 -3
  180. package/src/utils/AssetUtil.ts +20 -4
  181. package/src/utils/ConnectionUtil.ts +27 -0
  182. package/src/utils/ConstantsUtil.ts +9 -544
  183. package/src/utils/CoreHelperUtil.ts +9 -34
  184. package/src/utils/FetchUtil.ts +31 -10
  185. package/src/utils/NetworkUtil.ts +33 -0
  186. package/src/utils/StorageUtil.ts +48 -60
  187. package/src/utils/SwapApiUtil.ts +38 -27
  188. package/src/utils/TypeUtil.ts +193 -43
  189. package/lib/commonjs/controllers/ConnectionsController.js +0 -387
  190. package/lib/commonjs/controllers/ConnectionsController.js.map +0 -1
  191. package/lib/module/controllers/ConnectionsController.js +0 -382
  192. package/lib/module/controllers/ConnectionsController.js.map +0 -1
  193. package/lib/typescript/controllers/ConnectionsController.d.ts +0 -53
  194. package/lib/typescript/controllers/ConnectionsController.d.ts.map +0 -1
  195. package/src/controllers/ConnectionsController.ts +0 -509
@@ -1,387 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.ConnectionsController = void 0;
7
- var _valtio = require("valtio");
8
- var _utils = require("valtio/utils");
9
- var _appkitCommonReactNative = require("@reown/appkit-common-react-native");
10
- var _StorageUtil = require("../utils/StorageUtil");
11
- var _BlockchainApiController = require("./BlockchainApiController");
12
- var _SnackController = require("./SnackController");
13
- var _OptionsController = require("./OptionsController");
14
- // -- Types --------------------------------------------- //
15
-
16
- // -- State --------------------------------------------- //
17
- const baseState = (0, _valtio.proxy)({
18
- activeNamespace: undefined,
19
- connections: new Map(),
20
- networks: []
21
- });
22
-
23
- // -- Helper Functions --------------------------------------------- //
24
- const getActiveConnection = snap => {
25
- if (!snap.activeNamespace) return undefined;
26
- return snap.connections.get(snap.activeNamespace);
27
- };
28
- const hasValidAccounts = connection => {
29
- return connection?.accounts && connection.accounts.length > 0;
30
- };
31
- const findSmartAccountForNetwork = connection => {
32
- return connection.properties?.smartAccounts?.find(account => account.startsWith(connection.caipNetwork));
33
- };
34
- const findEOAForNetwork = connection => {
35
- const smartAccounts = connection.properties?.smartAccounts || [];
36
- return connection.accounts.find(account => account.startsWith(connection.caipNetwork) && !smartAccounts.includes(account));
37
- };
38
- const getActiveAddress = connection => {
39
- if (!hasValidAccounts(connection)) {
40
- return undefined;
41
- }
42
-
43
- // For smart accounts, prioritize smart account addresses
44
- if (connection.type === 'smartAccount') {
45
- const smartAccount = findSmartAccountForNetwork(connection);
46
- if (smartAccount) {
47
- return smartAccount;
48
- }
49
- }
50
-
51
- // Fall back to EOA or any account that matches the network
52
- return findEOAForNetwork(connection);
53
- };
54
- const updateConnection = (namespace, connection, updates) => {
55
- if (!connection) return;
56
- const newConnectionsMap = new Map(baseState.connections);
57
- newConnectionsMap.set(namespace, {
58
- ...connection,
59
- ...updates
60
- });
61
- baseState.connections = newConnectionsMap;
62
- };
63
- const derivedState = (0, _utils.derive)({
64
- isConnected: get => {
65
- const snap = get(baseState);
66
- return !!snap.activeNamespace && !!snap.connections.size;
67
- },
68
- activeAddress: get => {
69
- const snap = get(baseState);
70
- const connection = getActiveConnection(snap);
71
- return connection ? getActiveAddress(connection) : undefined;
72
- },
73
- activeBalance: get => {
74
- const snap = get(baseState);
75
- const connection = getActiveConnection(snap);
76
- if (!connection) {
77
- return undefined;
78
- }
79
- const activeAddress = getActiveAddress(connection);
80
- if (!activeAddress || !connection.balances || connection.balances.size === 0) {
81
- return undefined;
82
- }
83
- const addressBalances = connection.balances.get(activeAddress);
84
- if (!addressBalances || addressBalances.length === 0) {
85
- return undefined;
86
- }
87
-
88
- // Check if there's a specific token configured in OptionsController
89
- const configuredTokens = _OptionsController.OptionsController.state.tokens;
90
- const activeNetwork = snap.networks.find(network => network.chainNamespace === snap.activeNamespace && network.id?.toString() === connection.caipNetwork?.split(':')[1]);
91
- if (configuredTokens && activeNetwork) {
92
- const configuredToken = configuredTokens[activeNetwork.caipNetworkId];
93
- if (configuredToken) {
94
- // Find the configured token in the balances
95
- const specificToken = addressBalances.find(balance => balance.address === configuredToken.address);
96
- if (specificToken) {
97
- return specificToken;
98
- }
99
- }
100
- }
101
-
102
- // Return the native token (first balance without address)
103
- const nativeToken = addressBalances.find(balance => !balance.address);
104
- if (nativeToken) {
105
- return nativeToken;
106
- }
107
-
108
- // Fallback to first available balance
109
- return addressBalances[0];
110
- },
111
- activeNetwork: get => {
112
- const snap = get(baseState);
113
- const connection = getActiveConnection(snap);
114
- if (!connection) return undefined;
115
- return snap.networks.find(network => network.chainNamespace === snap.activeNamespace && network.id?.toString() === connection.caipNetwork?.split(':')[1]);
116
- },
117
- activeCaipNetworkId: get => {
118
- const snap = get(baseState);
119
- const connection = getActiveConnection(snap);
120
- return connection?.caipNetwork;
121
- },
122
- accountType: get => {
123
- const snap = get(baseState);
124
- const connection = getActiveConnection(snap);
125
- return connection?.type;
126
- },
127
- connection: get => {
128
- const snap = get(baseState);
129
- return getActiveConnection(snap);
130
- },
131
- balances: get => {
132
- const snap = get(baseState);
133
- const _connection = getActiveConnection(snap);
134
- if (!_connection) {
135
- return undefined;
136
- }
137
- const _activeAddress = getActiveAddress(_connection);
138
- if (!_activeAddress) return [];
139
- return _connection?.balances.get(_activeAddress)
140
- // Filter out tokens with no quantity
141
- ?.filter(balance => balance?.quantity?.numeric);
142
- },
143
- walletInfo: get => {
144
- const snap = get(baseState);
145
- const connection = getActiveConnection(snap);
146
- return connection?.wallet;
147
- }
148
- }, {
149
- proxy: baseState // Link derived proxy to the base state proxy
150
- });
151
-
152
- // -- Controller ---------------------------------------- //
153
- const ConnectionsController = exports.ConnectionsController = {
154
- state: derivedState,
155
- setActiveNamespace(namespace) {
156
- baseState.activeNamespace = namespace;
157
- _StorageUtil.StorageUtil.setActiveNamespace(namespace);
158
- },
159
- setConnection({
160
- accounts,
161
- adapter,
162
- caipNetwork,
163
- namespace,
164
- properties,
165
- wallet
166
- }) {
167
- const type = properties?.smartAccounts?.length && properties.smartAccounts.find(account => account.startsWith(caipNetwork)) ? 'smartAccount' : 'eoa';
168
- const newConnectionEntry = {
169
- balances: new Map(),
170
- caipNetwork,
171
- adapter: (0, _valtio.ref)(adapter),
172
- accounts,
173
- wallet,
174
- properties,
175
- type
176
- };
177
-
178
- // Create a new Map to ensure Valtio detects the change
179
- const newConnectionsMap = new Map(baseState.connections);
180
- newConnectionsMap.set(namespace, newConnectionEntry);
181
- baseState.connections = newConnectionsMap;
182
- },
183
- updateAccounts(namespace, accounts) {
184
- const connection = baseState.connections.get(namespace);
185
- if (!connection) {
186
- return;
187
- }
188
- const newConnectionsMap = new Map(baseState.connections);
189
- const updatedConnection = {
190
- ...connection,
191
- accounts
192
- };
193
- newConnectionsMap.set(namespace, updatedConnection);
194
- baseState.connections = newConnectionsMap;
195
- },
196
- updateBalance(namespace, address, balance) {
197
- const connection = baseState.connections.get(namespace);
198
- if (!connection) {
199
- console.warn(`No connection found for namespace: ${namespace}`);
200
- return;
201
- }
202
- const newBalances = new Map(connection.balances);
203
- const existingBalances = connection.balances.get(address) || [];
204
- // Check if this token already exists by contract address or symbol
205
- const existingIndex = existingBalances.findIndex(existingBalance => {
206
- if (balance.address) {
207
- return existingBalance.address === balance.address;
208
- }
209
- return existingBalance.symbol === balance.symbol;
210
- });
211
- let updatedBalances;
212
- if (existingIndex >= 0) {
213
- // Update existing token
214
- updatedBalances = [...existingBalances];
215
- updatedBalances[existingIndex] = {
216
- ...updatedBalances[existingIndex],
217
- ...balance
218
- };
219
- } else {
220
- // Add new token
221
- updatedBalances = [...existingBalances, balance];
222
- }
223
- newBalances.set(address, updatedBalances);
224
- updateConnection(namespace, connection, {
225
- balances: newBalances
226
- });
227
- },
228
- setActiveNetwork(namespace, networkId) {
229
- const connection = baseState.connections.get(namespace);
230
- if (!connection) {
231
- return;
232
- }
233
- baseState.connections.set(namespace, {
234
- ...connection,
235
- caipNetwork: networkId
236
- });
237
- },
238
- setNetworks(networks) {
239
- baseState.networks = networks;
240
- },
241
- getConnectedNetworks() {
242
- return baseState.networks.filter(network => baseState.connections.get(network.chainNamespace)?.accounts.some(account => account.startsWith(network.caipNetworkId)));
243
- },
244
- setAccountType(namespace, type) {
245
- const connection = baseState.connections.get(namespace);
246
- if (!connection) return;
247
- const newConnectionsMap = new Map(baseState.connections);
248
- const newConnection = {
249
- ...connection,
250
- type
251
- };
252
- newConnectionsMap.set(namespace, newConnection);
253
- baseState.connections = newConnectionsMap;
254
- },
255
- async disconnect(namespace, isInternal = true) {
256
- const connection = baseState.connections.get(namespace);
257
- if (!connection) return;
258
-
259
- // Get the current connector from the adapter
260
- const connector = connection.adapter.connector;
261
- if (!connector) return;
262
-
263
- // Find all namespaces that use the same connector
264
- const namespacesUsingConnector = Array.from(baseState.connections.keys()).filter(ns => baseState.connections.get(ns)?.adapter.connector === connector);
265
-
266
- // Unsubscribe all event listeners from the adapter
267
- namespacesUsingConnector.forEach(ns => {
268
- const _connection = baseState.connections.get(ns);
269
- if (_connection?.adapter) {
270
- _connection.adapter.removeAllListeners();
271
- }
272
- });
273
-
274
- // Disconnect the adapter
275
- if (isInternal) {
276
- await connection.adapter.disconnect();
277
- }
278
-
279
- // Remove all namespaces that used this connector
280
- const newConnectionsMap = new Map(baseState.connections);
281
- namespacesUsingConnector.forEach(ns => {
282
- newConnectionsMap.delete(ns);
283
- });
284
- baseState.connections = newConnectionsMap;
285
-
286
- // Remove activeNamespace if it is in the list of namespaces using the connector
287
- if (baseState.activeNamespace && (baseState.activeNamespace === namespace || namespacesUsingConnector.includes(baseState.activeNamespace))) {
288
- baseState.activeNamespace = undefined;
289
- _StorageUtil.StorageUtil.setActiveNamespace(undefined);
290
- }
291
- },
292
- parseUnits(value, decimals) {
293
- if (!baseState.activeNamespace) return undefined;
294
- return baseState.connections.get(baseState.activeNamespace)?.adapter.parseUnits(value, decimals);
295
- },
296
- async signMessage(address, message) {
297
- if (!baseState.activeNamespace) return undefined;
298
- const [namespace, chainId, plainAddress] = address.split(':');
299
- if (!namespace || namespace !== baseState.activeNamespace || !chainId || !plainAddress) {
300
- return undefined;
301
- }
302
- const adapter = baseState.connections.get(baseState.activeNamespace)?.adapter;
303
- if (adapter instanceof _appkitCommonReactNative.EVMAdapter && plainAddress && chainId) {
304
- return adapter.signMessage(plainAddress, message, chainId);
305
- }
306
- return undefined;
307
- },
308
- async sendTransaction(args) {
309
- if (!baseState.activeNamespace) return undefined;
310
- const adapter = baseState.connections.get(baseState.activeNamespace)?.adapter;
311
- if (adapter instanceof _appkitCommonReactNative.EVMAdapter || adapter instanceof _appkitCommonReactNative.SolanaBaseAdapter) {
312
- return adapter.sendTransaction(args);
313
- }
314
- return undefined;
315
- },
316
- async estimateGas(args) {
317
- if (!baseState.activeNamespace || baseState.activeNamespace !== 'eip155') return undefined;
318
- const adapter = baseState.connections.get(baseState.activeNamespace)?.adapter;
319
- if (adapter instanceof _appkitCommonReactNative.EVMAdapter) {
320
- return adapter.estimateGas(args);
321
- }
322
- return undefined;
323
- },
324
- async writeContract(args) {
325
- if (!baseState.activeNamespace) return undefined;
326
- const adapter = baseState.connections.get(baseState.activeNamespace)?.adapter;
327
- if (adapter instanceof _appkitCommonReactNative.EVMAdapter) {
328
- return adapter.writeContract(args);
329
- }
330
- return undefined;
331
- },
332
- async fetchBalance(forceUpdateAddresses) {
333
- const connection = getActiveConnection(baseState);
334
- if (!connection) {
335
- throw new Error('No active connection found for balance fetch');
336
- }
337
- const chainId = connection.caipNetwork;
338
- const address = getActiveAddress(connection);
339
- const namespace = baseState.activeNamespace;
340
- if (!namespace || !address || !chainId) {
341
- throw new Error('Missing required data for balance fetch');
342
- }
343
- try {
344
- const response = await _BlockchainApiController.BlockchainApiController.getBalance(address, forceUpdateAddresses);
345
- if (!response) {
346
- throw new Error('Failed to fetch token balance');
347
- }
348
- // Update balances for each token in the response
349
- response.balances.forEach(balance => {
350
- this.updateBalance(namespace, address, {
351
- name: balance.name,
352
- symbol: balance.symbol,
353
- amount: balance.quantity.numeric,
354
- address: balance.address,
355
- quantity: balance.quantity,
356
- price: balance.price,
357
- value: balance.value,
358
- iconUrl: balance.iconUrl
359
- });
360
- });
361
- } catch (error) {
362
- _SnackController.SnackController.showError('Failed to get account balance');
363
- }
364
- },
365
- getSmartAccountEnabledNetworks() {
366
- const activeConnection = getActiveConnection(baseState);
367
- if (!activeConnection) {
368
- return [];
369
- }
370
- if (!activeConnection.properties?.smartAccounts?.length) {
371
- return [];
372
- }
373
- const smartAccountNetworks = new Set();
374
- activeConnection.properties.smartAccounts.forEach(smartAccount => {
375
- const parts = smartAccount.split(':');
376
- if (parts.length >= 2) {
377
- const networkId = `${parts[0]}:${parts[1]}`;
378
- smartAccountNetworks.add(networkId);
379
- }
380
- });
381
- return baseState.networks.filter(network => {
382
- const networkId = `${network.chainNamespace}:${network.id}`;
383
- return smartAccountNetworks.has(networkId);
384
- });
385
- }
386
- };
387
- //# sourceMappingURL=ConnectionsController.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_valtio","require","_utils","_appkitCommonReactNative","_StorageUtil","_BlockchainApiController","_SnackController","_OptionsController","baseState","proxy","activeNamespace","undefined","connections","Map","networks","getActiveConnection","snap","get","hasValidAccounts","connection","accounts","length","findSmartAccountForNetwork","properties","smartAccounts","find","account","startsWith","caipNetwork","findEOAForNetwork","includes","getActiveAddress","type","smartAccount","updateConnection","namespace","updates","newConnectionsMap","set","derivedState","derive","isConnected","size","activeAddress","activeBalance","balances","addressBalances","configuredTokens","OptionsController","state","tokens","activeNetwork","network","chainNamespace","id","toString","split","configuredToken","caipNetworkId","specificToken","balance","address","nativeToken","activeCaipNetworkId","accountType","_connection","_activeAddress","filter","quantity","numeric","walletInfo","wallet","ConnectionsController","exports","setActiveNamespace","StorageUtil","setConnection","adapter","newConnectionEntry","ref","updateAccounts","updatedConnection","updateBalance","console","warn","newBalances","existingBalances","existingIndex","findIndex","existingBalance","symbol","updatedBalances","setActiveNetwork","networkId","setNetworks","getConnectedNetworks","some","setAccountType","newConnection","disconnect","isInternal","connector","namespacesUsingConnector","Array","from","keys","ns","forEach","removeAllListeners","delete","parseUnits","value","decimals","signMessage","message","chainId","plainAddress","EVMAdapter","sendTransaction","args","SolanaBaseAdapter","estimateGas","writeContract","fetchBalance","forceUpdateAddresses","Error","response","BlockchainApiController","getBalance","name","amount","price","iconUrl","error","SnackController","showError","getSmartAccountEnabledNetworks","activeConnection","smartAccountNetworks","Set","parts","add","has"],"sourceRoot":"../../../src","sources":["controllers/ConnectionsController.ts"],"mappings":"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"}