@reown/appkit-core 0.0.3

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 (181) hide show
  1. package/LICENSE +190 -0
  2. package/dist/esm/exports/index.js +30 -0
  3. package/dist/esm/exports/index.js.map +1 -0
  4. package/dist/esm/exports/react.js +20 -0
  5. package/dist/esm/exports/react.js.map +1 -0
  6. package/dist/esm/src/controllers/AccountController.js +150 -0
  7. package/dist/esm/src/controllers/AccountController.js.map +1 -0
  8. package/dist/esm/src/controllers/ApiController.js +230 -0
  9. package/dist/esm/src/controllers/ApiController.js.map +1 -0
  10. package/dist/esm/src/controllers/AssetController.js +43 -0
  11. package/dist/esm/src/controllers/AssetController.js.map +1 -0
  12. package/dist/esm/src/controllers/BlockchainApiController.js +334 -0
  13. package/dist/esm/src/controllers/BlockchainApiController.js.map +1 -0
  14. package/dist/esm/src/controllers/ChainController.js +289 -0
  15. package/dist/esm/src/controllers/ChainController.js.map +1 -0
  16. package/dist/esm/src/controllers/ConnectionController.js +128 -0
  17. package/dist/esm/src/controllers/ConnectionController.js.map +1 -0
  18. package/dist/esm/src/controllers/ConnectorController.js +111 -0
  19. package/dist/esm/src/controllers/ConnectorController.js.map +1 -0
  20. package/dist/esm/src/controllers/EnsController.js +135 -0
  21. package/dist/esm/src/controllers/EnsController.js.map +1 -0
  22. package/dist/esm/src/controllers/EventsController.js +60 -0
  23. package/dist/esm/src/controllers/EventsController.js.map +1 -0
  24. package/dist/esm/src/controllers/ModalController.js +73 -0
  25. package/dist/esm/src/controllers/ModalController.js.map +1 -0
  26. package/dist/esm/src/controllers/NetworkController.js +236 -0
  27. package/dist/esm/src/controllers/NetworkController.js.map +1 -0
  28. package/dist/esm/src/controllers/OnRampController.js +133 -0
  29. package/dist/esm/src/controllers/OnRampController.js.map +1 -0
  30. package/dist/esm/src/controllers/OptionsController.js +84 -0
  31. package/dist/esm/src/controllers/OptionsController.js.map +1 -0
  32. package/dist/esm/src/controllers/PublicStateController.js +19 -0
  33. package/dist/esm/src/controllers/PublicStateController.js.map +1 -0
  34. package/dist/esm/src/controllers/RouterController.js +101 -0
  35. package/dist/esm/src/controllers/RouterController.js.map +1 -0
  36. package/dist/esm/src/controllers/SendController.js +214 -0
  37. package/dist/esm/src/controllers/SendController.js.map +1 -0
  38. package/dist/esm/src/controllers/SnackController.js +36 -0
  39. package/dist/esm/src/controllers/SnackController.js.map +1 -0
  40. package/dist/esm/src/controllers/SwapController.js +627 -0
  41. package/dist/esm/src/controllers/SwapController.js.map +1 -0
  42. package/dist/esm/src/controllers/ThemeController.js +55 -0
  43. package/dist/esm/src/controllers/ThemeController.js.map +1 -0
  44. package/dist/esm/src/controllers/TooltipController.js +41 -0
  45. package/dist/esm/src/controllers/TooltipController.js.map +1 -0
  46. package/dist/esm/src/controllers/TransactionsController.js +115 -0
  47. package/dist/esm/src/controllers/TransactionsController.js.map +1 -0
  48. package/dist/esm/src/utils/AssetUtil.js +62 -0
  49. package/dist/esm/src/utils/AssetUtil.js.map +1 -0
  50. package/dist/esm/src/utils/ConstantsUtil.js +194 -0
  51. package/dist/esm/src/utils/ConstantsUtil.js.map +1 -0
  52. package/dist/esm/src/utils/CoreHelperUtil.js +238 -0
  53. package/dist/esm/src/utils/CoreHelperUtil.js.map +1 -0
  54. package/dist/esm/src/utils/EnsUtil.js +10 -0
  55. package/dist/esm/src/utils/EnsUtil.js.map +1 -0
  56. package/dist/esm/src/utils/FetchUtil.js +73 -0
  57. package/dist/esm/src/utils/FetchUtil.js.map +1 -0
  58. package/dist/esm/src/utils/OptionsUtil.js +11 -0
  59. package/dist/esm/src/utils/OptionsUtil.js.map +1 -0
  60. package/dist/esm/src/utils/RouterUtil.js +23 -0
  61. package/dist/esm/src/utils/RouterUtil.js.map +1 -0
  62. package/dist/esm/src/utils/StorageUtil.js +107 -0
  63. package/dist/esm/src/utils/StorageUtil.js.map +1 -0
  64. package/dist/esm/src/utils/SwapApiUtil.js +92 -0
  65. package/dist/esm/src/utils/SwapApiUtil.js.map +1 -0
  66. package/dist/esm/src/utils/SwapCalculationUtil.js +74 -0
  67. package/dist/esm/src/utils/SwapCalculationUtil.js.map +1 -0
  68. package/dist/esm/src/utils/TypeUtil.js +2 -0
  69. package/dist/esm/src/utils/TypeUtil.js.map +1 -0
  70. package/dist/esm/tests/constants/OnrampTransactions.js +151 -0
  71. package/dist/esm/tests/constants/OnrampTransactions.js.map +1 -0
  72. package/dist/esm/tests/controllers/AccountController.test.js +82 -0
  73. package/dist/esm/tests/controllers/AccountController.test.js.map +1 -0
  74. package/dist/esm/tests/controllers/ApiController.test.js +532 -0
  75. package/dist/esm/tests/controllers/ApiController.test.js.map +1 -0
  76. package/dist/esm/tests/controllers/AssetController.test.js +92 -0
  77. package/dist/esm/tests/controllers/AssetController.test.js.map +1 -0
  78. package/dist/esm/tests/controllers/ChainController.test.js +70 -0
  79. package/dist/esm/tests/controllers/ChainController.test.js.map +1 -0
  80. package/dist/esm/tests/controllers/ConnectionController.test.js +116 -0
  81. package/dist/esm/tests/controllers/ConnectionController.test.js.map +1 -0
  82. package/dist/esm/tests/controllers/ConnectorController.test.js +133 -0
  83. package/dist/esm/tests/controllers/ConnectorController.test.js.map +1 -0
  84. package/dist/esm/tests/controllers/EnsController.test.js +166 -0
  85. package/dist/esm/tests/controllers/EnsController.test.js.map +1 -0
  86. package/dist/esm/tests/controllers/EventsController.test.js +18 -0
  87. package/dist/esm/tests/controllers/EventsController.test.js.map +1 -0
  88. package/dist/esm/tests/controllers/ModalController.test.js +18 -0
  89. package/dist/esm/tests/controllers/ModalController.test.js.map +1 -0
  90. package/dist/esm/tests/controllers/NetworkController.test.js +134 -0
  91. package/dist/esm/tests/controllers/NetworkController.test.js.map +1 -0
  92. package/dist/esm/tests/controllers/OnRampController.test.js +118 -0
  93. package/dist/esm/tests/controllers/OnRampController.test.js.map +1 -0
  94. package/dist/esm/tests/controllers/OptionsController.test.js +23 -0
  95. package/dist/esm/tests/controllers/OptionsController.test.js.map +1 -0
  96. package/dist/esm/tests/controllers/PublicStateController.test.js +27 -0
  97. package/dist/esm/tests/controllers/PublicStateController.test.js.map +1 -0
  98. package/dist/esm/tests/controllers/RouterController.test.js +76 -0
  99. package/dist/esm/tests/controllers/RouterController.test.js.map +1 -0
  100. package/dist/esm/tests/controllers/SendController.test.js +51 -0
  101. package/dist/esm/tests/controllers/SendController.test.js.map +1 -0
  102. package/dist/esm/tests/controllers/SnackController.test.js +37 -0
  103. package/dist/esm/tests/controllers/SnackController.test.js.map +1 -0
  104. package/dist/esm/tests/controllers/SwapController.test.js +70 -0
  105. package/dist/esm/tests/controllers/SwapController.test.js.map +1 -0
  106. package/dist/esm/tests/controllers/ThemeController.test.js +26 -0
  107. package/dist/esm/tests/controllers/ThemeController.test.js.map +1 -0
  108. package/dist/esm/tests/controllers/TooltipController.test.js +40 -0
  109. package/dist/esm/tests/controllers/TooltipController.test.js.map +1 -0
  110. package/dist/esm/tests/controllers/TransactionsController.test.js +247 -0
  111. package/dist/esm/tests/controllers/TransactionsController.test.js.map +1 -0
  112. package/dist/esm/tests/mocks/SwapController.js +118 -0
  113. package/dist/esm/tests/mocks/SwapController.js.map +1 -0
  114. package/dist/esm/tests/utils/AssetUtil.test.js +87 -0
  115. package/dist/esm/tests/utils/AssetUtil.test.js.map +1 -0
  116. package/dist/esm/tests/utils/CoreHelperUtil.test.js +27 -0
  117. package/dist/esm/tests/utils/CoreHelperUtil.test.js.map +1 -0
  118. package/dist/esm/tests/utils/SwapCalculationUtil.test.js +80 -0
  119. package/dist/esm/tests/utils/SwapCalculationUtil.test.js.map +1 -0
  120. package/dist/esm/tsconfig.tsbuildinfo +1 -0
  121. package/dist/types/exports/index.d.ts +48 -0
  122. package/dist/types/exports/react.d.ts +19 -0
  123. package/dist/types/src/controllers/AccountController.d.ts +59 -0
  124. package/dist/types/src/controllers/ApiController.d.ts +43 -0
  125. package/dist/types/src/controllers/AssetController.d.ts +20 -0
  126. package/dist/types/src/controllers/BlockchainApiController.d.ts +49 -0
  127. package/dist/types/src/controllers/ChainController.d.ts +42 -0
  128. package/dist/types/src/controllers/ConnectionController.d.ts +63 -0
  129. package/dist/types/src/controllers/ConnectorController.d.ts +24 -0
  130. package/dist/types/src/controllers/EnsController.d.ts +21 -0
  131. package/dist/types/src/controllers/EventsController.d.ts +16 -0
  132. package/dist/types/src/controllers/ModalController.d.ts +20 -0
  133. package/dist/types/src/controllers/NetworkController.d.ts +42 -0
  134. package/dist/types/src/controllers/OnRampController.d.ts +53 -0
  135. package/dist/types/src/controllers/OptionsController.d.ts +43 -0
  136. package/dist/types/src/controllers/PublicStateController.d.ts +12 -0
  137. package/dist/types/src/controllers/RouterController.d.ts +55 -0
  138. package/dist/types/src/controllers/SendController.d.ts +42 -0
  139. package/dist/types/src/controllers/SnackController.d.ts +13 -0
  140. package/dist/types/src/controllers/SwapController.d.ts +126 -0
  141. package/dist/types/src/controllers/ThemeController.d.ts +29 -0
  142. package/dist/types/src/controllers/TooltipController.d.ts +24 -0
  143. package/dist/types/src/controllers/TransactionsController.d.ts +25 -0
  144. package/dist/types/src/utils/AssetUtil.d.ts +11 -0
  145. package/dist/types/src/utils/ConstantsUtil.d.ts +45 -0
  146. package/dist/types/src/utils/CoreHelperUtil.d.ts +43 -0
  147. package/dist/types/src/utils/EnsUtil.d.ts +3 -0
  148. package/dist/types/src/utils/FetchUtil.d.ts +26 -0
  149. package/dist/types/src/utils/OptionsUtil.d.ts +4 -0
  150. package/dist/types/src/utils/RouterUtil.d.ts +4 -0
  151. package/dist/types/src/utils/StorageUtil.d.ts +16 -0
  152. package/dist/types/src/utils/SwapApiUtil.d.ts +23 -0
  153. package/dist/types/src/utils/SwapCalculationUtil.d.ts +22 -0
  154. package/dist/types/src/utils/TypeUtil.d.ts +744 -0
  155. package/dist/types/tests/constants/OnrampTransactions.d.ts +138 -0
  156. package/dist/types/tests/controllers/AccountController.test.d.ts +1 -0
  157. package/dist/types/tests/controllers/ApiController.test.d.ts +1 -0
  158. package/dist/types/tests/controllers/AssetController.test.d.ts +1 -0
  159. package/dist/types/tests/controllers/ChainController.test.d.ts +1 -0
  160. package/dist/types/tests/controllers/ConnectionController.test.d.ts +1 -0
  161. package/dist/types/tests/controllers/ConnectorController.test.d.ts +1 -0
  162. package/dist/types/tests/controllers/EnsController.test.d.ts +1 -0
  163. package/dist/types/tests/controllers/EventsController.test.d.ts +1 -0
  164. package/dist/types/tests/controllers/ModalController.test.d.ts +1 -0
  165. package/dist/types/tests/controllers/NetworkController.test.d.ts +1 -0
  166. package/dist/types/tests/controllers/OnRampController.test.d.ts +1 -0
  167. package/dist/types/tests/controllers/OptionsController.test.d.ts +1 -0
  168. package/dist/types/tests/controllers/PublicStateController.test.d.ts +1 -0
  169. package/dist/types/tests/controllers/RouterController.test.d.ts +1 -0
  170. package/dist/types/tests/controllers/SendController.test.d.ts +1 -0
  171. package/dist/types/tests/controllers/SnackController.test.d.ts +1 -0
  172. package/dist/types/tests/controllers/SwapController.test.d.ts +1 -0
  173. package/dist/types/tests/controllers/ThemeController.test.d.ts +1 -0
  174. package/dist/types/tests/controllers/TooltipController.test.d.ts +1 -0
  175. package/dist/types/tests/controllers/TransactionsController.test.d.ts +1 -0
  176. package/dist/types/tests/mocks/SwapController.d.ts +74 -0
  177. package/dist/types/tests/utils/AssetUtil.test.d.ts +1 -0
  178. package/dist/types/tests/utils/CoreHelperUtil.test.d.ts +1 -0
  179. package/dist/types/tests/utils/SwapCalculationUtil.test.d.ts +1 -0
  180. package/package.json +52 -0
  181. package/readme.md +11 -0
@@ -0,0 +1,289 @@
1
+ import { proxyMap, subscribeKey as subKey } from 'valtio/vanilla/utils';
2
+ import { proxy, ref, subscribe as sub } from 'valtio/vanilla';
3
+ import { NetworkController } from './NetworkController.js';
4
+ import { AccountController } from './AccountController.js';
5
+ import { PublicStateController } from './PublicStateController.js';
6
+ import { SafeLocalStorage, SafeLocalStorageKeys } from '@reown/appkit-common';
7
+ // -- Constants ----------------------------------------- //
8
+ const accountState = {
9
+ isConnected: false,
10
+ currentTab: 0,
11
+ tokenBalance: [],
12
+ smartAccountDeployed: false,
13
+ addressLabels: new Map(),
14
+ allAccounts: []
15
+ };
16
+ const networkState = {
17
+ supportsAllNetworks: true,
18
+ isDefaultCaipNetwork: false,
19
+ smartAccountEnabledNetworks: []
20
+ };
21
+ // -- State --------------------------------------------- //
22
+ const state = proxy({
23
+ chains: proxyMap(),
24
+ activeChain: undefined,
25
+ activeCaipNetwork: undefined,
26
+ noAdapters: false,
27
+ universalAdapter: {
28
+ networkControllerClient: undefined,
29
+ connectionControllerClient: undefined
30
+ }
31
+ });
32
+ // -- Controller ---------------------------------------- //
33
+ export const ChainController = {
34
+ state,
35
+ subscribeKey(key, callback) {
36
+ return subKey(state, key, callback);
37
+ },
38
+ subscribeChainProp(property, callback, chain) {
39
+ let prev = undefined;
40
+ return sub(state.chains, () => {
41
+ const activeChain = chain || state.activeChain;
42
+ if (activeChain) {
43
+ const nextValue = state.chains.get(activeChain)?.[property];
44
+ if (prev !== nextValue) {
45
+ prev = nextValue;
46
+ callback(nextValue);
47
+ }
48
+ }
49
+ });
50
+ },
51
+ initialize(adapters) {
52
+ const adapterToActivate = adapters?.[0];
53
+ if (adapters?.length === 0) {
54
+ state.noAdapters = true;
55
+ }
56
+ if (!state.noAdapters) {
57
+ state.activeChain = adapterToActivate?.chainNamespace;
58
+ PublicStateController.set({ activeChain: adapterToActivate?.chainNamespace });
59
+ this.setActiveCaipNetwork(adapterToActivate?.defaultNetwork);
60
+ adapters.forEach((adapter) => {
61
+ state.chains.set(adapter.chainNamespace, {
62
+ chainNamespace: adapter.chainNamespace,
63
+ connectionControllerClient: adapter.connectionControllerClient,
64
+ networkControllerClient: adapter.networkControllerClient,
65
+ adapterType: adapter.adapterType,
66
+ accountState,
67
+ networkState
68
+ });
69
+ });
70
+ }
71
+ },
72
+ initializeUniversalAdapter(adapter, adapters) {
73
+ state.activeChain = 'eip155';
74
+ PublicStateController.set({ activeChain: 'eip155' });
75
+ state.universalAdapter = adapter;
76
+ if (adapters.length === 0) {
77
+ this.setActiveCaipNetwork(adapter?.defaultNetwork);
78
+ }
79
+ const chains = ['eip155', 'solana'];
80
+ chains.forEach((chain) => {
81
+ state.chains.set(chain, {
82
+ chainNamespace: chain,
83
+ connectionControllerClient: undefined,
84
+ networkControllerClient: undefined,
85
+ adapterType: adapter.adapterType,
86
+ accountState,
87
+ networkState
88
+ });
89
+ });
90
+ },
91
+ setChainNetworkData(chain, props, replaceState = false) {
92
+ if (!chain) {
93
+ throw new Error('Chain is required to update chain network data');
94
+ }
95
+ const chainAdapter = state.chains.get(chain);
96
+ if (chainAdapter) {
97
+ chainAdapter.networkState = ref({
98
+ ...chainAdapter.networkState,
99
+ ...props
100
+ });
101
+ state.chains.set(chain, ref(chainAdapter));
102
+ if (replaceState || state.chains.size === 1 || state.activeChain === chain) {
103
+ NetworkController.replaceState(chainAdapter.networkState);
104
+ }
105
+ }
106
+ },
107
+ setChainAccountData(chain, accountProps, replaceState = true) {
108
+ if (!chain) {
109
+ throw new Error('Chain is required to update chain account data');
110
+ }
111
+ const chainAdapter = state.chains.get(chain);
112
+ if (chainAdapter) {
113
+ chainAdapter.accountState = ref({
114
+ ...chainAdapter.accountState,
115
+ ...accountProps
116
+ });
117
+ state.chains.set(chain, chainAdapter);
118
+ if (replaceState || state.chains.size === 1 || state.activeChain === chain) {
119
+ AccountController.replaceState(chainAdapter.accountState);
120
+ }
121
+ }
122
+ },
123
+ // eslint-disable-next-line max-params
124
+ setAccountProp(prop, value, chain, replaceState = true) {
125
+ this.setChainAccountData(chain, {
126
+ [prop]: value
127
+ }, replaceState);
128
+ },
129
+ setActiveChain(chain) {
130
+ const newAdapter = chain ? state.chains.get(chain) : undefined;
131
+ if (newAdapter && newAdapter.chainNamespace !== state.activeChain) {
132
+ state.activeChain = newAdapter.chainNamespace;
133
+ state.activeCaipNetwork = newAdapter.networkState?.caipNetwork
134
+ ? ref(newAdapter.networkState?.caipNetwork)
135
+ : undefined;
136
+ if (!newAdapter.accountState) {
137
+ this.resetAccount(newAdapter.chainNamespace);
138
+ }
139
+ AccountController.replaceState(newAdapter.accountState);
140
+ NetworkController.replaceState(newAdapter.networkState);
141
+ this.setCaipNetwork(newAdapter.chainNamespace, newAdapter.networkState?.caipNetwork, true);
142
+ PublicStateController.set({
143
+ activeChain: chain,
144
+ selectedNetworkId: newAdapter.networkState?.caipNetwork?.id
145
+ });
146
+ }
147
+ },
148
+ setActiveCaipNetwork(caipNetwork) {
149
+ if (!caipNetwork) {
150
+ return;
151
+ }
152
+ if (caipNetwork.chainNamespace !== state.activeChain) {
153
+ this.setActiveChain(caipNetwork.chainNamespace);
154
+ }
155
+ state.activeCaipNetwork = ref(caipNetwork);
156
+ state.activeChain = caipNetwork.chainNamespace;
157
+ this.setCaipNetwork(caipNetwork.chainNamespace, caipNetwork, true);
158
+ PublicStateController.set({
159
+ activeChain: caipNetwork.chainNamespace,
160
+ selectedNetworkId: caipNetwork?.id
161
+ });
162
+ },
163
+ /**
164
+ * The setCaipNetwork function is being called for different purposes and it needs to be controlled if it should replace the NetworkController state or not.
165
+ * While we initializing the adapters, we need to set the caipNetwork without replacing the state.
166
+ * But when we switch the network, we need to replace the state.
167
+ * @param chain
168
+ * @param caipNetwork
169
+ * @param shouldReplace - if true, it will replace the NetworkController state
170
+ */
171
+ setCaipNetwork(chain, caipNetwork, shouldReplace = false) {
172
+ this.setChainNetworkData(chain, { caipNetwork }, shouldReplace);
173
+ },
174
+ setActiveConnector(connector) {
175
+ if (connector) {
176
+ state.activeConnector = ref(connector);
177
+ }
178
+ },
179
+ getNetworkControllerClient() {
180
+ const walletId = SafeLocalStorage.getItem(SafeLocalStorageKeys.WALLET_ID);
181
+ const chain = state.activeChain;
182
+ const isWcConnector = walletId === 'walletConnect';
183
+ const universalNetworkControllerClient = state.universalAdapter.networkControllerClient;
184
+ const hasWagmiAdapter = state.chains.get('eip155')?.adapterType === 'wagmi';
185
+ const shouldUseUniversalAdapter = (isWcConnector && !hasWagmiAdapter) || state.noAdapters;
186
+ if (shouldUseUniversalAdapter) {
187
+ if (!universalNetworkControllerClient) {
188
+ throw new Error("Universal Adapter's networkControllerClient is not set");
189
+ }
190
+ return universalNetworkControllerClient;
191
+ }
192
+ if (!chain) {
193
+ throw new Error('Chain is required to get network controller client');
194
+ }
195
+ const chainAdapter = state.chains.get(chain);
196
+ if (!chainAdapter) {
197
+ throw new Error('Chain adapter not found');
198
+ }
199
+ if (!chainAdapter.networkControllerClient) {
200
+ throw new Error('NetworkController client not set');
201
+ }
202
+ return chainAdapter.networkControllerClient;
203
+ },
204
+ getConnectionControllerClient(_chain) {
205
+ const chain = _chain || state.activeChain;
206
+ const isWcConnector = SafeLocalStorage.getItem(SafeLocalStorageKeys.WALLET_ID) === 'walletConnect';
207
+ const universalConnectionControllerClient = state.universalAdapter.connectionControllerClient;
208
+ const hasWagmiAdapter = state.chains.get('eip155')?.adapterType === 'wagmi';
209
+ const shouldUseUniversalAdapter = (isWcConnector && !hasWagmiAdapter) || state.noAdapters;
210
+ if (shouldUseUniversalAdapter) {
211
+ if (!universalConnectionControllerClient) {
212
+ throw new Error("Universal Adapter's ConnectionControllerClient is not set");
213
+ }
214
+ return universalConnectionControllerClient;
215
+ }
216
+ if (!chain) {
217
+ throw new Error('Chain is required to get connection controller client');
218
+ }
219
+ const chainAdapter = state.chains.get(chain);
220
+ if (!chainAdapter) {
221
+ throw new Error('Chain adapter not found');
222
+ }
223
+ if (!chainAdapter.connectionControllerClient) {
224
+ throw new Error('ConnectionController client not set');
225
+ }
226
+ return chainAdapter.connectionControllerClient;
227
+ },
228
+ getAccountProp(key, _chain) {
229
+ let chain = state.activeChain;
230
+ if (_chain) {
231
+ chain = _chain;
232
+ }
233
+ if (!chain) {
234
+ return undefined;
235
+ }
236
+ const chainAccountState = state.chains.get(chain)?.accountState;
237
+ if (!chainAccountState) {
238
+ return undefined;
239
+ }
240
+ return chainAccountState[key];
241
+ },
242
+ getNetworkProp(key, _chain) {
243
+ const chain = _chain || state.activeChain;
244
+ if (!chain) {
245
+ return undefined;
246
+ }
247
+ const chainNetworkState = state.chains.get(chain)?.networkState;
248
+ if (!chainNetworkState) {
249
+ return undefined;
250
+ }
251
+ return chainNetworkState[key];
252
+ },
253
+ getAllApprovedCaipNetworks() {
254
+ const approvedCaipNetworkIds = [];
255
+ state.chains.forEach(chainAdapter => {
256
+ const chainNetworkState = chainAdapter.networkState;
257
+ if (chainNetworkState?.approvedCaipNetworkIds) {
258
+ approvedCaipNetworkIds.push(...chainNetworkState.approvedCaipNetworkIds);
259
+ }
260
+ });
261
+ return approvedCaipNetworkIds;
262
+ },
263
+ resetAccount(chain) {
264
+ const chainToWrite = chain;
265
+ if (!chainToWrite) {
266
+ throw new Error('Chain is required to set account prop');
267
+ }
268
+ this.setChainAccountData(chainToWrite, ref({
269
+ isConnected: false,
270
+ smartAccountDeployed: false,
271
+ currentTab: 0,
272
+ caipAddress: undefined,
273
+ address: undefined,
274
+ balance: undefined,
275
+ balanceSymbol: undefined,
276
+ profileName: undefined,
277
+ profileImage: undefined,
278
+ addressExplorerUrl: undefined,
279
+ tokenBalance: [],
280
+ connectedWalletInfo: undefined,
281
+ preferredAccountType: undefined,
282
+ socialProvider: undefined,
283
+ socialWindow: undefined,
284
+ farcasterUrl: undefined,
285
+ provider: undefined
286
+ }));
287
+ }
288
+ };
289
+ //# sourceMappingURL=ChainController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChainController.js","sourceRoot":"","sources":["../../../../src/controllers/ChainController.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,128 @@
1
+ import { subscribeKey as subKey } from 'valtio/vanilla/utils';
2
+ import { proxy, ref } from 'valtio/vanilla';
3
+ import { CoreHelperUtil } from '../utils/CoreHelperUtil.js';
4
+ import { StorageUtil } from '../utils/StorageUtil.js';
5
+ import { TransactionsController } from './TransactionsController.js';
6
+ import { ChainController } from './ChainController.js';
7
+ import {} from '@reown/appkit-wallet';
8
+ import { ModalController } from './ModalController.js';
9
+ import { ConnectorController } from './ConnectorController.js';
10
+ import { EventsController } from './EventsController.js';
11
+ import { NetworkController } from './NetworkController.js';
12
+ import { RouterController } from './RouterController.js';
13
+ // -- State --------------------------------------------- //
14
+ const state = proxy({
15
+ wcError: false,
16
+ buffering: false,
17
+ status: 'disconnected'
18
+ });
19
+ // -- Controller ---------------------------------------- //
20
+ export const ConnectionController = {
21
+ state,
22
+ subscribeKey(key, callback) {
23
+ return subKey(state, key, callback);
24
+ },
25
+ _getClient(chain) {
26
+ return ChainController.getConnectionControllerClient(chain);
27
+ },
28
+ setClient(client) {
29
+ state._client = ref(client);
30
+ },
31
+ async connectWalletConnect() {
32
+ StorageUtil.setConnectedConnector('WALLET_CONNECT');
33
+ await ChainController.state?.universalAdapter?.connectionControllerClient?.connectWalletConnect?.(uri => {
34
+ state.wcUri = uri;
35
+ state.wcPairingExpiry = CoreHelperUtil.getPairingExpiry();
36
+ });
37
+ },
38
+ async connectExternal(options, chain) {
39
+ await this._getClient(chain).connectExternal?.(options);
40
+ ChainController.setActiveChain(chain);
41
+ StorageUtil.setConnectedConnector(options.type);
42
+ },
43
+ async reconnectExternal(options) {
44
+ await this._getClient().reconnectExternal?.(options);
45
+ StorageUtil.setConnectedConnector(options.type);
46
+ },
47
+ async setPreferredAccountType(accountType) {
48
+ ModalController.setLoading(true);
49
+ const authConnector = ConnectorController.getAuthConnector();
50
+ if (!authConnector) {
51
+ return;
52
+ }
53
+ await authConnector?.provider.setPreferredAccount(accountType);
54
+ await this.reconnectExternal(authConnector);
55
+ ModalController.setLoading(false);
56
+ EventsController.sendEvent({
57
+ type: 'track',
58
+ event: 'SET_PREFERRED_ACCOUNT_TYPE',
59
+ properties: { accountType, network: NetworkController.state.caipNetwork?.id || '' }
60
+ });
61
+ },
62
+ async signMessage(message) {
63
+ return this._getClient().signMessage(message);
64
+ },
65
+ parseUnits(value, decimals) {
66
+ return this._getClient().parseUnits(value, decimals);
67
+ },
68
+ formatUnits(value, decimals) {
69
+ return this._getClient().formatUnits(value, decimals);
70
+ },
71
+ async sendTransaction(args) {
72
+ return this._getClient().sendTransaction(args);
73
+ },
74
+ async estimateGas(args) {
75
+ return this._getClient().estimateGas(args);
76
+ },
77
+ async writeContract(args) {
78
+ return this._getClient().writeContract(args);
79
+ },
80
+ async getEnsAddress(value) {
81
+ return this._getClient().getEnsAddress(value);
82
+ },
83
+ async getEnsAvatar(value) {
84
+ return this._getClient().getEnsAvatar(value);
85
+ },
86
+ checkInstalled(ids, chain) {
87
+ return this._getClient(chain).checkInstalled?.(ids) || false;
88
+ },
89
+ resetWcConnection() {
90
+ state.wcUri = undefined;
91
+ state.wcPairingExpiry = undefined;
92
+ state.wcLinking = undefined;
93
+ state.recentWallet = undefined;
94
+ TransactionsController.resetTransactions();
95
+ StorageUtil.deleteWalletConnectDeepLink();
96
+ if (ModalController.state.open) {
97
+ ModalController.close();
98
+ RouterController.reset('Connect');
99
+ }
100
+ },
101
+ setWcLinking(wcLinking) {
102
+ state.wcLinking = wcLinking;
103
+ },
104
+ setWcError(wcError) {
105
+ state.wcError = wcError;
106
+ state.buffering = false;
107
+ },
108
+ setRecentWallet(wallet) {
109
+ state.recentWallet = wallet;
110
+ },
111
+ setBuffering(buffering) {
112
+ state.buffering = buffering;
113
+ },
114
+ setStatus(status) {
115
+ state.status = status;
116
+ },
117
+ async disconnect() {
118
+ const connectionControllerClient = this._getClient();
119
+ try {
120
+ await connectionControllerClient?.disconnect();
121
+ this.resetWcConnection();
122
+ }
123
+ catch (error) {
124
+ throw new Error('Failed to disconnect');
125
+ }
126
+ }
127
+ };
128
+ //# sourceMappingURL=ConnectionController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConnectionController.js","sourceRoot":"","sources":["../../../../src/controllers/ConnectionController.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,111 @@
1
+ import { subscribeKey as subKey } from 'valtio/vanilla/utils';
2
+ import { proxy, snapshot } from 'valtio/vanilla';
3
+ import { ConstantsUtil, getW3mThemeVariables } from '@reown/appkit-common';
4
+ import { OptionsController } from './OptionsController.js';
5
+ import { ThemeController } from './ThemeController.js';
6
+ // -- State --------------------------------------------- //
7
+ const state = proxy({
8
+ unMergedConnectors: [],
9
+ connectors: []
10
+ });
11
+ // -- Controller ---------------------------------------- //
12
+ export const ConnectorController = {
13
+ state,
14
+ subscribeKey(key, callback) {
15
+ return subKey(state, key, callback);
16
+ },
17
+ setConnectors(connectors) {
18
+ connectors.forEach(this.syncIfAuthConnector);
19
+ state.unMergedConnectors = [...state.unMergedConnectors, ...connectors];
20
+ state.connectors = this.mergeMultiChainConnectors(state.unMergedConnectors);
21
+ },
22
+ mergeMultiChainConnectors(connectors) {
23
+ const connectorsByNameMap = this.generateConnectorMapByName(connectors);
24
+ const refactoredConnectors = Array.from(connectorsByNameMap.values()).map(_connectors => {
25
+ if (_connectors.length > 1) {
26
+ return {
27
+ name: _connectors[0]?.name,
28
+ imageUrl: _connectors[0]?.imageUrl,
29
+ imageId: _connectors[0]?.imageId,
30
+ providers: this.getUniqueConnectorsByName(_connectors),
31
+ type: 'MULTI_CHAIN'
32
+ };
33
+ }
34
+ return _connectors[0];
35
+ });
36
+ return refactoredConnectors;
37
+ },
38
+ generateConnectorMapByName(connectors) {
39
+ const connectorsByNameMap = new Map();
40
+ connectors.forEach(connector => {
41
+ const { name } = connector;
42
+ const connectorName = this.getConnectorName(name);
43
+ if (!connectorName) {
44
+ return;
45
+ }
46
+ const connectorsByName = connectorsByNameMap.get(connectorName) || [];
47
+ const haveSameConnector = connectorsByName.find(c => c.chain === connector.chain);
48
+ if (!haveSameConnector) {
49
+ connectorsByName.push(connector);
50
+ }
51
+ connectorsByNameMap.set(connectorName, connectorsByName);
52
+ });
53
+ return connectorsByNameMap;
54
+ },
55
+ getConnectorName(name) {
56
+ if (!name) {
57
+ return name;
58
+ }
59
+ const nameOverrideMap = {
60
+ 'Trust Wallet': 'Trust'
61
+ };
62
+ return nameOverrideMap[name] || name;
63
+ },
64
+ getUniqueConnectorsByName(connectors) {
65
+ const uniqueConnectors = [];
66
+ connectors.forEach(c => {
67
+ if (!uniqueConnectors.find(uc => uc.chain === c.chain)) {
68
+ uniqueConnectors.push({
69
+ ...c,
70
+ name: ConstantsUtil.CHAIN_NAME_MAP[c.chain]
71
+ });
72
+ }
73
+ });
74
+ return uniqueConnectors;
75
+ },
76
+ addConnector(connector) {
77
+ this.setConnectors([connector]);
78
+ },
79
+ getAuthConnector() {
80
+ return state.connectors.find(c => c.type === 'AUTH');
81
+ },
82
+ getAnnouncedConnectorRdns() {
83
+ return state.connectors.filter(c => c.type === 'ANNOUNCED').map(c => c.info?.rdns);
84
+ },
85
+ getConnectors() {
86
+ return state.connectors;
87
+ },
88
+ getConnector(id, rdns) {
89
+ return state.connectors.find(c => c.explorerId === id || c.info?.rdns === rdns);
90
+ },
91
+ syncIfAuthConnector(connector) {
92
+ if (connector.id !== 'w3mAuth') {
93
+ return;
94
+ }
95
+ const authConnector = connector;
96
+ const optionsState = snapshot(OptionsController.state);
97
+ const themeMode = ThemeController.getSnapshot().themeMode;
98
+ const themeVariables = ThemeController.getSnapshot().themeVariables;
99
+ authConnector?.provider?.syncDappData?.({
100
+ metadata: optionsState.metadata,
101
+ sdkVersion: optionsState.sdkVersion,
102
+ projectId: optionsState.projectId
103
+ });
104
+ authConnector.provider.syncTheme({
105
+ themeMode,
106
+ themeVariables,
107
+ w3mThemeVariables: getW3mThemeVariables(themeVariables, themeMode)
108
+ });
109
+ }
110
+ };
111
+ //# sourceMappingURL=ConnectorController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConnectorController.js","sourceRoot":"","sources":["../../../../src/controllers/ConnectorController.ts"],"names":[],"mappings":"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"}