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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. package/lib/commonjs/controllers/ApiController.js +410 -0
  2. package/lib/commonjs/controllers/ApiController.js.map +1 -0
  3. package/lib/commonjs/controllers/AssetController.js +30 -0
  4. package/lib/commonjs/controllers/AssetController.js.map +1 -0
  5. package/lib/commonjs/controllers/BlockchainApiController.js +384 -0
  6. package/lib/commonjs/controllers/BlockchainApiController.js.map +1 -0
  7. package/lib/commonjs/controllers/ConnectionsController.js +425 -0
  8. package/lib/commonjs/controllers/ConnectionsController.js.map +1 -0
  9. package/lib/commonjs/controllers/EnsController.js +37 -0
  10. package/lib/commonjs/controllers/EnsController.js.map +1 -0
  11. package/lib/commonjs/controllers/EventsController.js +122 -0
  12. package/lib/commonjs/controllers/EventsController.js.map +1 -0
  13. package/lib/commonjs/controllers/LogController.js +188 -0
  14. package/lib/commonjs/controllers/LogController.js.map +1 -0
  15. package/lib/commonjs/controllers/ModalController.js +68 -0
  16. package/lib/commonjs/controllers/ModalController.js.map +1 -0
  17. package/lib/commonjs/controllers/OnRampController.js +502 -0
  18. package/lib/commonjs/controllers/OnRampController.js.map +1 -0
  19. package/lib/commonjs/controllers/OptionsController.js +96 -0
  20. package/lib/commonjs/controllers/OptionsController.js.map +1 -0
  21. package/lib/commonjs/controllers/PublicStateController.js +33 -0
  22. package/lib/commonjs/controllers/PublicStateController.js.map +1 -0
  23. package/lib/commonjs/controllers/RouterController.js +63 -0
  24. package/lib/commonjs/controllers/RouterController.js.map +1 -0
  25. package/lib/commonjs/controllers/SendController.js +192 -0
  26. package/lib/commonjs/controllers/SendController.js.map +1 -0
  27. package/lib/commonjs/controllers/SnackController.js +83 -0
  28. package/lib/commonjs/controllers/SnackController.js.map +1 -0
  29. package/lib/commonjs/controllers/SwapController.js +674 -0
  30. package/lib/commonjs/controllers/SwapController.js.map +1 -0
  31. package/lib/commonjs/controllers/ThemeController.js +45 -0
  32. package/lib/commonjs/controllers/ThemeController.js.map +1 -0
  33. package/lib/commonjs/controllers/TransactionsController.js +118 -0
  34. package/lib/commonjs/controllers/TransactionsController.js.map +1 -0
  35. package/lib/commonjs/controllers/WcController.js +73 -0
  36. package/lib/commonjs/controllers/WcController.js.map +1 -0
  37. package/lib/commonjs/features/reown-authentication/ReownAuthentication.js +272 -0
  38. package/lib/commonjs/features/reown-authentication/ReownAuthentication.js.map +1 -0
  39. package/lib/commonjs/features/reown-authentication/ReownAuthenticationMessenger.js +48 -0
  40. package/lib/commonjs/features/reown-authentication/ReownAuthenticationMessenger.js.map +1 -0
  41. package/lib/commonjs/features/reown-authentication/index.js +28 -0
  42. package/lib/commonjs/features/reown-authentication/index.js.map +1 -0
  43. package/lib/commonjs/index.js +202 -0
  44. package/lib/commonjs/index.js.map +1 -0
  45. package/lib/commonjs/package.json +1 -0
  46. package/lib/commonjs/utils/ApiUtil.js +43 -0
  47. package/lib/commonjs/utils/ApiUtil.js.map +1 -0
  48. package/lib/commonjs/utils/AssetUtil.js +27 -0
  49. package/lib/commonjs/utils/AssetUtil.js.map +1 -0
  50. package/lib/commonjs/utils/ConstantsUtil.js +226 -0
  51. package/lib/commonjs/utils/ConstantsUtil.js.map +1 -0
  52. package/lib/commonjs/utils/CoreHelperUtil.js +298 -0
  53. package/lib/commonjs/utils/CoreHelperUtil.js.map +1 -0
  54. package/lib/commonjs/utils/EventUtil.js +25 -0
  55. package/lib/commonjs/utils/EventUtil.js.map +1 -0
  56. package/lib/commonjs/utils/FetchUtil.js +158 -0
  57. package/lib/commonjs/utils/FetchUtil.js.map +1 -0
  58. package/lib/commonjs/utils/LogUtils.js +131 -0
  59. package/lib/commonjs/utils/LogUtils.js.map +1 -0
  60. package/lib/commonjs/utils/StorageUtil.js +319 -0
  61. package/lib/commonjs/utils/StorageUtil.js.map +1 -0
  62. package/lib/commonjs/utils/SwapApiUtil.js +75 -0
  63. package/lib/commonjs/utils/SwapApiUtil.js.map +1 -0
  64. package/lib/commonjs/utils/SwapCalculationUtil.js +97 -0
  65. package/lib/commonjs/utils/SwapCalculationUtil.js.map +1 -0
  66. package/lib/commonjs/utils/WalletUtil.js +23 -0
  67. package/lib/commonjs/utils/WalletUtil.js.map +1 -0
  68. package/lib/module/controllers/ApiController.js +407 -0
  69. package/lib/module/controllers/ApiController.js.map +1 -0
  70. package/lib/module/controllers/AssetController.js +27 -0
  71. package/lib/module/controllers/AssetController.js.map +1 -0
  72. package/lib/module/controllers/BlockchainApiController.js +381 -0
  73. package/lib/module/controllers/BlockchainApiController.js.map +1 -0
  74. package/lib/module/controllers/ConnectionsController.js +422 -0
  75. package/lib/module/controllers/ConnectionsController.js.map +1 -0
  76. package/lib/module/controllers/EnsController.js +34 -0
  77. package/lib/module/controllers/EnsController.js.map +1 -0
  78. package/lib/module/controllers/EventsController.js +118 -0
  79. package/lib/module/controllers/EventsController.js.map +1 -0
  80. package/lib/module/controllers/LogController.js +185 -0
  81. package/lib/module/controllers/LogController.js.map +1 -0
  82. package/lib/module/controllers/ModalController.js +65 -0
  83. package/lib/module/controllers/ModalController.js.map +1 -0
  84. package/lib/module/controllers/OnRampController.js +499 -0
  85. package/lib/module/controllers/OnRampController.js.map +1 -0
  86. package/lib/module/controllers/OptionsController.js +93 -0
  87. package/lib/module/controllers/OptionsController.js.map +1 -0
  88. package/lib/module/controllers/PublicStateController.js +30 -0
  89. package/lib/module/controllers/PublicStateController.js.map +1 -0
  90. package/lib/module/controllers/RouterController.js +60 -0
  91. package/lib/module/controllers/RouterController.js.map +1 -0
  92. package/lib/module/controllers/SendController.js +189 -0
  93. package/lib/module/controllers/SendController.js.map +1 -0
  94. package/lib/module/controllers/SnackController.js +80 -0
  95. package/lib/module/controllers/SnackController.js.map +1 -0
  96. package/lib/module/controllers/SwapController.js +671 -0
  97. package/lib/module/controllers/SwapController.js.map +1 -0
  98. package/lib/module/controllers/ThemeController.js +42 -0
  99. package/lib/module/controllers/ThemeController.js.map +1 -0
  100. package/lib/module/controllers/TransactionsController.js +115 -0
  101. package/lib/module/controllers/TransactionsController.js.map +1 -0
  102. package/lib/module/controllers/WcController.js +70 -0
  103. package/lib/module/controllers/WcController.js.map +1 -0
  104. package/lib/module/features/reown-authentication/ReownAuthentication.js +268 -0
  105. package/lib/module/features/reown-authentication/ReownAuthentication.js.map +1 -0
  106. package/lib/module/features/reown-authentication/ReownAuthenticationMessenger.js +43 -0
  107. package/lib/module/features/reown-authentication/ReownAuthenticationMessenger.js.map +1 -0
  108. package/lib/module/features/reown-authentication/index.js +5 -0
  109. package/lib/module/features/reown-authentication/index.js.map +1 -0
  110. package/lib/module/index.js +38 -0
  111. package/lib/module/index.js.map +1 -0
  112. package/lib/module/utils/ApiUtil.js +39 -0
  113. package/lib/module/utils/ApiUtil.js.map +1 -0
  114. package/lib/module/utils/AssetUtil.js +23 -0
  115. package/lib/module/utils/AssetUtil.js.map +1 -0
  116. package/lib/module/utils/ConstantsUtil.js +222 -0
  117. package/lib/module/utils/ConstantsUtil.js.map +1 -0
  118. package/lib/module/utils/CoreHelperUtil.js +294 -0
  119. package/lib/module/utils/CoreHelperUtil.js.map +1 -0
  120. package/lib/module/utils/EventUtil.js +21 -0
  121. package/lib/module/utils/EventUtil.js.map +1 -0
  122. package/lib/module/utils/FetchUtil.js +154 -0
  123. package/lib/module/utils/FetchUtil.js.map +1 -0
  124. package/lib/module/utils/LogUtils.js +121 -0
  125. package/lib/module/utils/LogUtils.js.map +1 -0
  126. package/lib/module/utils/StorageUtil.js +315 -0
  127. package/lib/module/utils/StorageUtil.js.map +1 -0
  128. package/lib/module/utils/SwapApiUtil.js +71 -0
  129. package/lib/module/utils/SwapApiUtil.js.map +1 -0
  130. package/lib/module/utils/SwapCalculationUtil.js +94 -0
  131. package/lib/module/utils/SwapCalculationUtil.js.map +1 -0
  132. package/lib/module/utils/WalletUtil.js +19 -0
  133. package/lib/module/utils/WalletUtil.js.map +1 -0
  134. package/lib/typescript/controllers/ApiController.d.ts +40 -0
  135. package/lib/typescript/controllers/ApiController.d.ts.map +1 -0
  136. package/lib/typescript/controllers/AssetController.d.ts +12 -0
  137. package/lib/typescript/controllers/AssetController.d.ts.map +1 -0
  138. package/lib/typescript/controllers/BlockchainApiController.d.ts +55 -0
  139. package/lib/typescript/controllers/BlockchainApiController.d.ts.map +1 -0
  140. package/lib/typescript/controllers/ConnectionsController.d.ts +47 -0
  141. package/lib/typescript/controllers/ConnectionsController.d.ts.map +1 -0
  142. package/lib/typescript/controllers/EnsController.d.ts +10 -0
  143. package/lib/typescript/controllers/EnsController.d.ts.map +1 -0
  144. package/lib/typescript/controllers/EventsController.d.ts +25 -0
  145. package/lib/typescript/controllers/EventsController.d.ts.map +1 -0
  146. package/lib/typescript/controllers/LogController.d.ts +65 -0
  147. package/lib/typescript/controllers/LogController.d.ts.map +1 -0
  148. package/lib/typescript/controllers/ModalController.d.ts +17 -0
  149. package/lib/typescript/controllers/ModalController.d.ts.map +1 -0
  150. package/lib/typescript/controllers/OnRampController.d.ts +55 -0
  151. package/lib/typescript/controllers/OnRampController.d.ts.map +1 -0
  152. package/lib/typescript/controllers/OptionsController.d.ts +46 -0
  153. package/lib/typescript/controllers/OptionsController.d.ts.map +1 -0
  154. package/lib/typescript/controllers/PublicStateController.d.ts +12 -0
  155. package/lib/typescript/controllers/PublicStateController.d.ts.map +1 -0
  156. package/lib/typescript/controllers/RouterController.d.ts +21 -0
  157. package/lib/typescript/controllers/RouterController.d.ts.map +1 -0
  158. package/lib/typescript/controllers/SendController.d.ts +39 -0
  159. package/lib/typescript/controllers/SendController.d.ts.map +1 -0
  160. package/lib/typescript/controllers/SnackController.d.ts +20 -0
  161. package/lib/typescript/controllers/SnackController.d.ts.map +1 -0
  162. package/lib/typescript/controllers/SwapController.d.ts +116 -0
  163. package/lib/typescript/controllers/SwapController.d.ts.map +1 -0
  164. package/lib/typescript/controllers/ThemeController.d.ts +14 -0
  165. package/lib/typescript/controllers/ThemeController.d.ts.map +1 -0
  166. package/lib/typescript/controllers/TransactionsController.d.ts +21 -0
  167. package/lib/typescript/controllers/TransactionsController.d.ts.map +1 -0
  168. package/lib/typescript/controllers/WcController.d.ts +27 -0
  169. package/lib/typescript/controllers/WcController.d.ts.map +1 -0
  170. package/lib/typescript/features/reown-authentication/ReownAuthentication.d.ts +174 -0
  171. package/lib/typescript/features/reown-authentication/ReownAuthentication.d.ts.map +1 -0
  172. package/lib/typescript/features/reown-authentication/ReownAuthenticationMessenger.d.ts +16 -0
  173. package/lib/typescript/features/reown-authentication/ReownAuthenticationMessenger.d.ts.map +1 -0
  174. package/lib/typescript/features/reown-authentication/index.d.ts +3 -0
  175. package/lib/typescript/features/reown-authentication/index.d.ts.map +1 -0
  176. package/lib/typescript/index.d.ts +29 -0
  177. package/lib/typescript/index.d.ts.map +1 -0
  178. package/lib/typescript/utils/ApiUtil.d.ts +7 -0
  179. package/lib/typescript/utils/ApiUtil.d.ts.map +1 -0
  180. package/lib/typescript/utils/AssetUtil.d.ts +6 -0
  181. package/lib/typescript/utils/AssetUtil.d.ts.map +1 -0
  182. package/lib/typescript/utils/ConstantsUtil.d.ts +79 -0
  183. package/lib/typescript/utils/ConstantsUtil.d.ts.map +1 -0
  184. package/lib/typescript/utils/CoreHelperUtil.d.ts +43 -0
  185. package/lib/typescript/utils/CoreHelperUtil.d.ts.map +1 -0
  186. package/lib/typescript/utils/EventUtil.d.ts +5 -0
  187. package/lib/typescript/utils/EventUtil.d.ts.map +1 -0
  188. package/lib/typescript/utils/FetchUtil.d.ts +29 -0
  189. package/lib/typescript/utils/FetchUtil.d.ts.map +1 -0
  190. package/lib/typescript/utils/LogUtils.d.ts +15 -0
  191. package/lib/typescript/utils/LogUtils.d.ts.map +1 -0
  192. package/lib/typescript/utils/StorageUtil.d.ts +36 -0
  193. package/lib/typescript/utils/StorageUtil.d.ts.map +1 -0
  194. package/lib/typescript/utils/SwapApiUtil.d.ts +11 -0
  195. package/lib/typescript/utils/SwapApiUtil.d.ts.map +1 -0
  196. package/lib/typescript/utils/SwapCalculationUtil.d.ts +24 -0
  197. package/lib/typescript/utils/SwapCalculationUtil.d.ts.map +1 -0
  198. package/lib/typescript/utils/WalletUtil.d.ts +5 -0
  199. package/lib/typescript/utils/WalletUtil.d.ts.map +1 -0
  200. package/package.json +57 -0
  201. package/readme.md +9 -0
  202. package/src/controllers/ApiController.ts +454 -0
  203. package/src/controllers/AssetController.ts +32 -0
  204. package/src/controllers/BlockchainApiController.ts +418 -0
  205. package/src/controllers/ConnectionsController.ts +575 -0
  206. package/src/controllers/EnsController.ts +41 -0
  207. package/src/controllers/EventsController.ts +146 -0
  208. package/src/controllers/LogController.ts +250 -0
  209. package/src/controllers/ModalController.ts +68 -0
  210. package/src/controllers/OnRampController.ts +698 -0
  211. package/src/controllers/OptionsController.ts +143 -0
  212. package/src/controllers/PublicStateController.ts +37 -0
  213. package/src/controllers/RouterController.ts +112 -0
  214. package/src/controllers/SendController.ts +270 -0
  215. package/src/controllers/SnackController.ts +95 -0
  216. package/src/controllers/SwapController.ts +863 -0
  217. package/src/controllers/ThemeController.ts +47 -0
  218. package/src/controllers/TransactionsController.ts +150 -0
  219. package/src/controllers/WcController.ts +93 -0
  220. package/src/features/reown-authentication/ReownAuthentication.ts +475 -0
  221. package/src/features/reown-authentication/ReownAuthenticationMessenger.ts +80 -0
  222. package/src/features/reown-authentication/index.ts +2 -0
  223. package/src/index.ts +70 -0
  224. package/src/utils/ApiUtil.ts +50 -0
  225. package/src/utils/AssetUtil.ts +27 -0
  226. package/src/utils/ConstantsUtil.ts +303 -0
  227. package/src/utils/CoreHelperUtil.ts +377 -0
  228. package/src/utils/EventUtil.ts +22 -0
  229. package/src/utils/FetchUtil.ts +164 -0
  230. package/src/utils/LogUtils.ts +179 -0
  231. package/src/utils/StorageUtil.ts +405 -0
  232. package/src/utils/SwapApiUtil.ts +101 -0
  233. package/src/utils/SwapCalculationUtil.ts +145 -0
  234. package/src/utils/WalletUtil.ts +14 -0
@@ -0,0 +1,422 @@
1
+ "use strict";
2
+
3
+ import { proxy, ref } from 'valtio';
4
+ import { derive } from 'derive-valtio';
5
+ import { EVMAdapter, SolanaBaseAdapter, BitcoinBaseAdapter } from '@reown/appkit-common-react-native';
6
+ import { StorageUtil } from '../utils/StorageUtil';
7
+ import { BlockchainApiController } from './BlockchainApiController';
8
+ import { SnackController } from './SnackController';
9
+ import { LogController } from './LogController';
10
+ import { CoreHelperUtil } from '../utils/CoreHelperUtil';
11
+
12
+ // -- Types --------------------------------------------- //
13
+
14
+ // -- State --------------------------------------------- //
15
+ const baseState = proxy({
16
+ activeNamespace: undefined,
17
+ connections: new Map(),
18
+ networks: []
19
+ });
20
+
21
+ // -- Helper Functions --------------------------------------------- //
22
+ const getActiveConnection = snap => {
23
+ if (!snap.activeNamespace) return undefined;
24
+ return snap.connections.get(snap.activeNamespace);
25
+ };
26
+ const hasValidAccounts = connection => {
27
+ return connection?.accounts && connection.accounts.length > 0;
28
+ };
29
+ const findSmartAccountForNetwork = connection => {
30
+ return connection.properties?.smartAccounts?.find(account => account.startsWith(connection.caipNetwork));
31
+ };
32
+ const findEOAForNetwork = connection => {
33
+ const smartAccounts = connection.properties?.smartAccounts || [];
34
+ return connection.accounts.find(account => account.startsWith(connection.caipNetwork) && !smartAccounts.includes(account));
35
+ };
36
+ const getActiveAddress = connection => {
37
+ if (!hasValidAccounts(connection)) {
38
+ return undefined;
39
+ }
40
+
41
+ // For smart accounts, prioritize smart account addresses
42
+ if (connection.type === 'smartAccount') {
43
+ const smartAccount = findSmartAccountForNetwork(connection);
44
+ if (smartAccount) {
45
+ return smartAccount;
46
+ }
47
+ }
48
+
49
+ // Fall back to EOA or any account that matches the network
50
+ return findEOAForNetwork(connection);
51
+ };
52
+ const updateConnection = (namespace, connection, updates) => {
53
+ const newConnectionsMap = new Map(baseState.connections);
54
+ const newConnection = {
55
+ ...connection,
56
+ ...updates
57
+ };
58
+ newConnectionsMap.set(namespace, newConnection);
59
+ baseState.connections = newConnectionsMap;
60
+ return newConnection;
61
+ };
62
+ const getActiveIdentity = connection => {
63
+ const activeAddress = getActiveAddress(connection);
64
+ if (!activeAddress) return undefined;
65
+ return connection.identities?.get(activeAddress);
66
+ };
67
+ const derivedState = derive({
68
+ isConnected: get => {
69
+ const snap = get(baseState);
70
+ return !!snap.activeNamespace && !!snap.connections.size;
71
+ },
72
+ activeAddress: get => {
73
+ const snap = get(baseState);
74
+ const connection = getActiveConnection(snap);
75
+ return connection ? getActiveAddress(connection) : undefined;
76
+ },
77
+ identity: get => {
78
+ const snap = get(baseState);
79
+ const connection = getActiveConnection(snap);
80
+ return connection ? getActiveIdentity(connection) : undefined;
81
+ },
82
+ activeBalance: get => {
83
+ const snap = get(baseState);
84
+ const connection = getActiveConnection(snap);
85
+ if (!connection) {
86
+ return undefined;
87
+ }
88
+ const activeAddress = getActiveAddress(connection);
89
+ if (!activeAddress || !connection.balances || connection.balances.size === 0) {
90
+ return undefined;
91
+ }
92
+ const addressBalances = connection.balances.get(activeAddress);
93
+ if (!addressBalances || addressBalances.length === 0) {
94
+ return undefined;
95
+ }
96
+
97
+ // Return the native token (first balance without address)
98
+ const nativeToken = addressBalances.find(balance => !balance.address);
99
+ if (nativeToken) {
100
+ return nativeToken;
101
+ }
102
+
103
+ // Fallback to first available balance
104
+ return addressBalances[0];
105
+ },
106
+ activeNetwork: get => {
107
+ const snap = get(baseState);
108
+ const connection = getActiveConnection(snap);
109
+ if (!connection) return undefined;
110
+ return snap.networks.find(network => network.chainNamespace === snap.activeNamespace && network.id?.toString() === connection.caipNetwork?.split(':')[1]);
111
+ },
112
+ activeCaipNetworkId: get => {
113
+ const snap = get(baseState);
114
+ const connection = getActiveConnection(snap);
115
+ return connection?.caipNetwork;
116
+ },
117
+ accountType: get => {
118
+ const snap = get(baseState);
119
+ const connection = getActiveConnection(snap);
120
+ return connection?.type;
121
+ },
122
+ connection: get => {
123
+ const snap = get(baseState);
124
+ return getActiveConnection(snap);
125
+ },
126
+ balances: get => {
127
+ const snap = get(baseState);
128
+ const _connection = getActiveConnection(snap);
129
+ if (!_connection) {
130
+ return undefined;
131
+ }
132
+ const _activeAddress = getActiveAddress(_connection);
133
+ if (!_activeAddress) return [];
134
+ return _connection?.balances.get(_activeAddress)
135
+ // Filter out tokens with no quantity
136
+ ?.filter(balance => balance?.quantity?.numeric);
137
+ },
138
+ walletInfo: get => {
139
+ const snap = get(baseState);
140
+ const connection = getActiveConnection(snap);
141
+ return connection?.wallet;
142
+ }
143
+ }, {
144
+ proxy: baseState // Link derived proxy to the base state proxy
145
+ });
146
+
147
+ // -- Controller ---------------------------------------- //
148
+ export const ConnectionsController = {
149
+ state: derivedState,
150
+ setActiveNamespace(namespace) {
151
+ if (baseState.activeNamespace === namespace) {
152
+ return;
153
+ }
154
+ baseState.activeNamespace = namespace;
155
+ StorageUtil.setActiveNamespace(namespace);
156
+ },
157
+ setConnection({
158
+ accounts,
159
+ adapter,
160
+ caipNetwork,
161
+ namespace,
162
+ properties,
163
+ wallet
164
+ }) {
165
+ const type = properties?.smartAccounts?.length && properties.smartAccounts.find(account => account.startsWith(caipNetwork)) ? 'smartAccount' : 'eoa';
166
+ const newConnectionEntry = {
167
+ balances: new Map(),
168
+ caipNetwork,
169
+ adapter: ref(adapter),
170
+ accounts,
171
+ wallet,
172
+ properties,
173
+ type
174
+ };
175
+
176
+ // Create a new Map to ensure Valtio detects the change
177
+ const newConnectionsMap = new Map(baseState.connections);
178
+ newConnectionsMap.set(namespace, newConnectionEntry);
179
+ baseState.connections = newConnectionsMap;
180
+ },
181
+ updateAccounts(namespace, accounts) {
182
+ const connection = baseState.connections.get(namespace);
183
+ if (!connection) {
184
+ return false;
185
+ }
186
+ if (connection.accounts.toString() === accounts.toString()) {
187
+ return false;
188
+ }
189
+ updateConnection(namespace, connection, {
190
+ accounts
191
+ });
192
+ return true;
193
+ },
194
+ updateBalance(namespace, address, balance) {
195
+ const connection = baseState.connections.get(namespace);
196
+ if (!connection) {
197
+ console.warn(`No connection found for namespace: ${namespace}`);
198
+ return;
199
+ }
200
+ const newBalances = new Map(connection.balances);
201
+ const existingBalances = connection.balances.get(address) || [];
202
+ // Check if this token already exists by contract address or symbol
203
+ const existingIndex = existingBalances.findIndex(existingBalance => {
204
+ if (balance.address && existingBalance.address) {
205
+ return CoreHelperUtil.getPlainAddress(existingBalance.address) === CoreHelperUtil.getPlainAddress(balance.address);
206
+ }
207
+ return existingBalance.symbol === balance.symbol;
208
+ });
209
+ let updatedBalances;
210
+ if (existingIndex >= 0) {
211
+ // Update existing token
212
+ updatedBalances = [...existingBalances];
213
+ updatedBalances[existingIndex] = {
214
+ ...updatedBalances[existingIndex],
215
+ ...balance
216
+ };
217
+ } else {
218
+ // Add new token
219
+ updatedBalances = [...existingBalances, balance];
220
+ }
221
+ newBalances.set(address, updatedBalances);
222
+ updateConnection(namespace, connection, {
223
+ balances: newBalances
224
+ });
225
+ },
226
+ updateIdentity(namespace, connection, plainAddress, identity) {
227
+ const accounts = connection.accounts.filter(account => CoreHelperUtil.getPlainAddress(account) === plainAddress);
228
+ if (accounts.length > 0) {
229
+ const newIdentities = new Map(connection.identities || []);
230
+ let hasChanges = false;
231
+ accounts.forEach(account => {
232
+ const existingIdentity = newIdentities.get(account);
233
+ if (!existingIdentity || existingIdentity.name !== identity.name) {
234
+ newIdentities.set(account, identity);
235
+ hasChanges = true;
236
+ }
237
+ });
238
+ if (hasChanges) {
239
+ updateConnection(namespace, connection, {
240
+ identities: newIdentities
241
+ });
242
+ }
243
+ }
244
+ },
245
+ setActiveNetwork(namespace, networkId) {
246
+ const connection = baseState.connections.get(namespace);
247
+ if (!connection) {
248
+ return;
249
+ }
250
+ updateConnection(namespace, connection, {
251
+ caipNetwork: networkId
252
+ });
253
+ this.setActiveNamespace(namespace);
254
+ },
255
+ setNetworks(networks) {
256
+ baseState.networks = networks;
257
+ },
258
+ getConnectedNetworks() {
259
+ const connection = getActiveConnection(baseState);
260
+ if (!connection) {
261
+ return [];
262
+ }
263
+ return baseState.networks.filter(network => baseState.connections.get(network.chainNamespace)?.accounts.some(account => account.startsWith(network.caipNetworkId)));
264
+ },
265
+ getAvailableNetworks() {
266
+ const connection = getActiveConnection(baseState);
267
+ if (!connection) {
268
+ return baseState.networks;
269
+ }
270
+ const canAddEvmChain = connection.properties?.canAddEvmChain;
271
+ return baseState.networks.filter(network => baseState.connections.get(network.chainNamespace)?.accounts.some(account => account.startsWith(network.caipNetworkId)) || canAddEvmChain && network.chainNamespace === 'eip155');
272
+ },
273
+ setAccountType(namespace, type) {
274
+ const connection = baseState.connections.get(namespace);
275
+ if (!connection) return;
276
+ const newConnection = updateConnection(namespace, connection, {
277
+ type
278
+ });
279
+ return getActiveAddress(newConnection);
280
+ },
281
+ getActiveNetworkId(namespace) {
282
+ const connection = namespace ? baseState.connections.get(namespace) : getActiveConnection(baseState);
283
+ if (!connection) return undefined;
284
+ return connection.caipNetwork;
285
+ },
286
+ async disconnect(namespace, isInternal = true) {
287
+ const connection = baseState.connections.get(namespace);
288
+ if (!connection) return;
289
+
290
+ // Get the current connector from the adapter
291
+ const connector = connection.adapter.connector;
292
+ if (!connector) return;
293
+
294
+ // Find all namespaces that use the same connector
295
+ const namespacesUsingConnector = Array.from(baseState.connections.keys()).filter(ns => baseState.connections.get(ns)?.adapter.connector === connector);
296
+
297
+ // Unsubscribe all event listeners from the adapter
298
+ namespacesUsingConnector.forEach(ns => {
299
+ const _connection = baseState.connections.get(ns);
300
+ if (_connection?.adapter) {
301
+ _connection.adapter.removeAllListeners();
302
+ }
303
+ });
304
+
305
+ // Disconnect the adapter
306
+ if (isInternal) {
307
+ await connection.adapter.disconnect();
308
+ }
309
+
310
+ // Remove all namespaces that used this connector
311
+ const newConnectionsMap = new Map(baseState.connections);
312
+ namespacesUsingConnector.forEach(ns => {
313
+ newConnectionsMap.delete(ns);
314
+ });
315
+ baseState.connections = newConnectionsMap;
316
+
317
+ // Remove activeNamespace if it is in the list of namespaces using the connector
318
+ if (baseState.activeNamespace && (baseState.activeNamespace === namespace || namespacesUsingConnector.includes(baseState.activeNamespace))) {
319
+ baseState.activeNamespace = undefined;
320
+ StorageUtil.setActiveNamespace(undefined);
321
+ }
322
+ },
323
+ parseUnits(value, decimals) {
324
+ if (!baseState.activeNamespace) return undefined;
325
+ return baseState.connections.get(baseState.activeNamespace)?.adapter.parseUnits(value, decimals);
326
+ },
327
+ async signMessage(address, message) {
328
+ if (!baseState.activeNamespace) return undefined;
329
+ const [namespace, chainId, plainAddress] = address.split(':');
330
+ if (!namespace || namespace !== baseState.activeNamespace || !chainId || !plainAddress) {
331
+ return undefined;
332
+ }
333
+ const adapter = baseState.connections.get(baseState.activeNamespace)?.adapter;
334
+ if ((adapter instanceof EVMAdapter || adapter instanceof SolanaBaseAdapter || adapter instanceof BitcoinBaseAdapter) && plainAddress && chainId) {
335
+ return adapter.signMessage(plainAddress, message, chainId);
336
+ }
337
+ return undefined;
338
+ },
339
+ async sendTransaction(args) {
340
+ if (!baseState.activeNamespace) return undefined;
341
+ const adapter = baseState.connections.get(baseState.activeNamespace)?.adapter;
342
+ if (adapter instanceof EVMAdapter || adapter instanceof SolanaBaseAdapter) {
343
+ return adapter.sendTransaction(args);
344
+ }
345
+ return undefined;
346
+ },
347
+ async estimateGas(args) {
348
+ if (!baseState.activeNamespace || baseState.activeNamespace !== 'eip155') return undefined;
349
+ const adapter = baseState.connections.get(baseState.activeNamespace)?.adapter;
350
+ if (adapter instanceof EVMAdapter) {
351
+ return adapter.estimateGas(args);
352
+ }
353
+ return undefined;
354
+ },
355
+ async writeContract(args) {
356
+ if (!baseState.activeNamespace) return undefined;
357
+ const adapter = baseState.connections.get(baseState.activeNamespace)?.adapter;
358
+ if (adapter instanceof EVMAdapter) {
359
+ return adapter.writeContract(args);
360
+ }
361
+ return undefined;
362
+ },
363
+ async fetchBalance(forceUpdateAddresses) {
364
+ const connection = getActiveConnection(baseState);
365
+ if (!connection) {
366
+ throw new Error('No active connection found for balance fetch');
367
+ }
368
+ const chainId = connection.caipNetwork;
369
+ const address = getActiveAddress(connection);
370
+ const namespace = baseState.activeNamespace;
371
+ if (!namespace || !address || !chainId) {
372
+ throw new Error('Missing required data for balance fetch');
373
+ }
374
+ try {
375
+ const response = await BlockchainApiController.getBalance(address, forceUpdateAddresses);
376
+ if (!response) {
377
+ throw new Error('Failed to fetch token balance');
378
+ }
379
+ // Update balances for each token in the response
380
+ response.balances.forEach(balance => {
381
+ this.updateBalance(namespace, address, {
382
+ name: balance.name,
383
+ symbol: balance.symbol,
384
+ amount: balance.quantity.numeric,
385
+ address: balance.address,
386
+ quantity: balance.quantity,
387
+ price: balance.price,
388
+ value: balance.value,
389
+ iconUrl: balance.iconUrl
390
+ });
391
+ });
392
+ } catch (error) {
393
+ LogController.sendError(error, 'ConnectionsController.ts', 'fetchBalance', {
394
+ address,
395
+ namespace
396
+ });
397
+ SnackController.showError('Failed to get account balance');
398
+ }
399
+ },
400
+ getSmartAccountEnabledNetworks() {
401
+ const activeConnection = getActiveConnection(baseState);
402
+ if (!activeConnection) {
403
+ return [];
404
+ }
405
+ if (!activeConnection.properties?.smartAccounts?.length) {
406
+ return [];
407
+ }
408
+ const smartAccountNetworks = new Set();
409
+ activeConnection.properties.smartAccounts.forEach(smartAccount => {
410
+ const parts = smartAccount.split(':');
411
+ if (parts.length >= 2) {
412
+ const networkId = `${parts[0]}:${parts[1]}`;
413
+ smartAccountNetworks.add(networkId);
414
+ }
415
+ });
416
+ return baseState.networks.filter(network => {
417
+ const networkId = `${network.chainNamespace}:${network.id}`;
418
+ return smartAccountNetworks.has(networkId);
419
+ });
420
+ }
421
+ };
422
+ //# sourceMappingURL=ConnectionsController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["proxy","ref","derive","EVMAdapter","SolanaBaseAdapter","BitcoinBaseAdapter","StorageUtil","BlockchainApiController","SnackController","LogController","CoreHelperUtil","baseState","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","newConnection","set","getActiveIdentity","activeAddress","identities","derivedState","isConnected","size","identity","activeBalance","balances","addressBalances","nativeToken","balance","address","activeNetwork","network","chainNamespace","id","toString","split","activeCaipNetworkId","accountType","_connection","_activeAddress","filter","quantity","numeric","walletInfo","wallet","ConnectionsController","state","setActiveNamespace","setConnection","adapter","newConnectionEntry","updateAccounts","updateBalance","console","warn","newBalances","existingBalances","existingIndex","findIndex","existingBalance","getPlainAddress","symbol","updatedBalances","updateIdentity","plainAddress","newIdentities","hasChanges","forEach","existingIdentity","name","setActiveNetwork","networkId","setNetworks","getConnectedNetworks","some","caipNetworkId","getAvailableNetworks","canAddEvmChain","setAccountType","getActiveNetworkId","disconnect","isInternal","connector","namespacesUsingConnector","Array","from","keys","ns","removeAllListeners","delete","parseUnits","value","decimals","signMessage","message","chainId","sendTransaction","args","estimateGas","writeContract","fetchBalance","forceUpdateAddresses","Error","response","getBalance","amount","price","iconUrl","error","sendError","showError","getSmartAccountEnabledNetworks","activeConnection","smartAccountNetworks","Set","parts","add","has"],"sourceRoot":"../../../src","sources":["controllers/ConnectionsController.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ import { subscribeKey as subKey } from 'valtio/utils';
4
+ import { proxy, subscribe as sub } from 'valtio';
5
+ import { BlockchainApiController } from './BlockchainApiController';
6
+ import { LogController } from './LogController';
7
+
8
+ // -- Types --------------------------------------------- //
9
+
10
+ // -- State --------------------------------------------- //
11
+ const state = proxy({
12
+ loading: false
13
+ });
14
+
15
+ // -- Controller ---------------------------------------- //
16
+ export const EnsController = {
17
+ state,
18
+ subscribe(callback) {
19
+ return sub(state, () => callback(state));
20
+ },
21
+ subscribeKey(key, callback) {
22
+ return subKey(state, key, callback);
23
+ },
24
+ async resolveName(name) {
25
+ try {
26
+ return await BlockchainApiController.lookupEnsName(name);
27
+ } catch (e) {
28
+ LogController.sendError(e, 'EnsController.ts', 'resolveName');
29
+ const error = e;
30
+ throw new Error(error?.reasons?.[0]?.description || 'Error resolving name');
31
+ }
32
+ }
33
+ };
34
+ //# sourceMappingURL=EnsController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["subscribeKey","subKey","proxy","subscribe","sub","BlockchainApiController","LogController","state","loading","EnsController","callback","key","resolveName","name","lookupEnsName","e","sendError","error","Error","reasons","description"],"sourceRoot":"../../../src","sources":["controllers/EnsController.ts"],"mappings":";;AAAA,SAASA,YAAY,IAAIC,MAAM,QAAQ,cAAc;AACrD,SAASC,KAAK,EAAEC,SAAS,IAAIC,GAAG,QAAQ,QAAQ;AAChD,SAASC,uBAAuB,QAAQ,2BAA2B;AAEnE,SAASC,aAAa,QAAQ,iBAAiB;;AAE/C;;AAQA;AACA,MAAMC,KAAK,GAAGL,KAAK,CAAqB;EACtCM,OAAO,EAAE;AACX,CAAC,CAAC;;AAEF;AACA,OAAO,MAAMC,aAAa,GAAG;EAC3BF,KAAK;EAELJ,SAASA,CAACO,QAAgD,EAAE;IAC1D,OAAON,GAAG,CAACG,KAAK,EAAE,MAAMG,QAAQ,CAACH,KAAK,CAAC,CAAC;EAC1C,CAAC;EAEDP,YAAYA,CAAqBW,GAAM,EAAED,QAAgD,EAAE;IACzF,OAAOT,MAAM,CAACM,KAAK,EAAEI,GAAG,EAAED,QAAQ,CAAC;EACrC,CAAC;EAED,MAAME,WAAWA,CAACC,IAAY,EAAE;IAC9B,IAAI;MACF,OAAO,MAAMR,uBAAuB,CAACS,aAAa,CAACD,IAAI,CAAC;IAC1D,CAAC,CAAC,OAAOE,CAAC,EAAE;MACVT,aAAa,CAACU,SAAS,CAACD,CAAC,EAAE,kBAAkB,EAAE,aAAa,CAAC;MAC7D,MAAME,KAAK,GAAGF,CAA0B;MACxC,MAAM,IAAIG,KAAK,CAACD,KAAK,EAAEE,OAAO,GAAG,CAAC,CAAC,EAAEC,WAAW,IAAI,sBAAsB,CAAC;IAC7E;EACF;AACF,CAAC","ignoreList":[]}
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+
3
+ import { proxy, subscribe as sub } from 'valtio';
4
+ import { ApiController } from './ApiController';
5
+ import { OptionsController } from './OptionsController';
6
+ import { CoreHelperUtil } from '../utils/CoreHelperUtil';
7
+ import { FetchUtil } from '../utils/FetchUtil';
8
+ // -- Helpers ------------------------------------------- //
9
+ const baseUrl = CoreHelperUtil.getAnalyticsUrl();
10
+ const api = new FetchUtil({
11
+ baseUrl
12
+ });
13
+ const excluded = ['MODAL_CREATED'];
14
+ const IMPRESSION_TIMEOUT = 3000;
15
+
16
+ // -- Types --------------------------------------------- //
17
+
18
+ // -- State --------------------------------------------- //
19
+ const state = proxy({
20
+ timestamp: Date.now(),
21
+ data: {
22
+ type: 'track',
23
+ event: 'MODAL_CREATED' // just for init purposes
24
+ },
25
+ pendingWalletImpressions: [],
26
+ pendingImpressionTimeout: undefined
27
+ });
28
+
29
+ // -- Controller ---------------------------------------- //
30
+ export const EventsController = {
31
+ state,
32
+ subscribe(callback) {
33
+ return sub(state, () => callback(state));
34
+ },
35
+ subscribeEvent(event, callback) {
36
+ return sub(state, () => {
37
+ if (state.data.event === event) {
38
+ callback(state);
39
+ }
40
+ });
41
+ },
42
+ trackWalletImpression(props) {
43
+ state.pendingWalletImpressions.push({
44
+ name: props.wallet.name ?? 'Unknown',
45
+ walletRank: props.wallet.order,
46
+ explorerId: props.wallet.id,
47
+ certified: props.wallet.badge_type === 'certified',
48
+ displayIndex: props.displayIndex,
49
+ view: props.view,
50
+ query: props.query,
51
+ installed: props.installed
52
+ });
53
+ if (state.pendingImpressionTimeout) {
54
+ clearTimeout(state.pendingImpressionTimeout);
55
+ }
56
+ state.pendingImpressionTimeout = setTimeout(() => {
57
+ EventsController.sendWalletImpressions();
58
+ }, IMPRESSION_TIMEOUT);
59
+ },
60
+ sendWalletImpressions() {
61
+ if (state.pendingImpressionTimeout) {
62
+ clearTimeout(state.pendingImpressionTimeout);
63
+ state.pendingImpressionTimeout = undefined;
64
+ }
65
+ const impressions = state.pendingWalletImpressions;
66
+ if (impressions.length === 0) {
67
+ return;
68
+ }
69
+ state.pendingWalletImpressions = [];
70
+ EventsController.sendEvent({
71
+ type: 'track',
72
+ event: 'WALLET_IMPRESSION',
73
+ items: impressions
74
+ });
75
+ },
76
+ async _sendAnalyticsEvent(data, timestamp) {
77
+ if (excluded.includes(data.event)) {
78
+ return;
79
+ }
80
+ try {
81
+ await api.post({
82
+ path: '/e',
83
+ headers: ApiController._getApiHeaders(),
84
+ params: ApiController._getApiParams(),
85
+ body: {
86
+ eventId: CoreHelperUtil.getUUID(),
87
+ bundleId: CoreHelperUtil.getBundleId(),
88
+ timestamp,
89
+ props: data
90
+ }
91
+ });
92
+ } catch {
93
+ // Catch silently
94
+ }
95
+ },
96
+ async sendEvent(data) {
97
+ const timestamp = Date.now();
98
+ state.timestamp = timestamp;
99
+ state.data = data;
100
+ await ApiController.state.prefetchPromise;
101
+ if (OptionsController.state.enableAnalytics) {
102
+ EventsController._sendAnalyticsEvent(data, timestamp);
103
+ }
104
+ },
105
+ resetState() {
106
+ if (state.pendingImpressionTimeout) {
107
+ clearTimeout(state.pendingImpressionTimeout);
108
+ state.pendingImpressionTimeout = undefined;
109
+ }
110
+ state.pendingWalletImpressions = [];
111
+ state.data = {
112
+ type: 'track',
113
+ event: 'MODAL_CREATED'
114
+ };
115
+ state.timestamp = Date.now();
116
+ }
117
+ };
118
+ //# sourceMappingURL=EventsController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["proxy","subscribe","sub","ApiController","OptionsController","CoreHelperUtil","FetchUtil","baseUrl","getAnalyticsUrl","api","excluded","IMPRESSION_TIMEOUT","state","timestamp","Date","now","data","type","event","pendingWalletImpressions","pendingImpressionTimeout","undefined","EventsController","callback","subscribeEvent","trackWalletImpression","props","push","name","wallet","walletRank","order","explorerId","id","certified","badge_type","displayIndex","view","query","installed","clearTimeout","setTimeout","sendWalletImpressions","impressions","length","sendEvent","items","_sendAnalyticsEvent","includes","post","path","headers","_getApiHeaders","params","_getApiParams","body","eventId","getUUID","bundleId","getBundleId","prefetchPromise","enableAnalytics","resetState"],"sourceRoot":"../../../src","sources":["controllers/EventsController.ts"],"mappings":"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","ignoreList":[]}