@reown/appkit-core-react-native 0.0.0-fix-approved-networks-20250822000414 → 0.0.0-fix-improvements-20250827190629

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (245) hide show
  1. package/lib/commonjs/controllers/ApiController.js +75 -38
  2. package/lib/commonjs/controllers/ApiController.js.map +1 -1
  3. package/lib/commonjs/controllers/AssetController.js +0 -4
  4. package/lib/commonjs/controllers/AssetController.js.map +1 -1
  5. package/lib/commonjs/controllers/BlockchainApiController.js +156 -57
  6. package/lib/commonjs/controllers/BlockchainApiController.js.map +1 -1
  7. package/lib/commonjs/controllers/ConnectionsController.js +402 -0
  8. package/lib/commonjs/controllers/ConnectionsController.js.map +1 -0
  9. package/lib/commonjs/controllers/EnsController.js.map +1 -1
  10. package/lib/commonjs/controllers/EventsController.js.map +1 -1
  11. package/lib/commonjs/controllers/ModalController.js +6 -7
  12. package/lib/commonjs/controllers/ModalController.js.map +1 -1
  13. package/lib/commonjs/controllers/OnRampController.js +29 -19
  14. package/lib/commonjs/controllers/OnRampController.js.map +1 -1
  15. package/lib/commonjs/controllers/OptionsController.js +22 -7
  16. package/lib/commonjs/controllers/OptionsController.js.map +1 -1
  17. package/lib/commonjs/controllers/PublicStateController.js.map +1 -1
  18. package/lib/commonjs/controllers/RouterController.js +7 -22
  19. package/lib/commonjs/controllers/RouterController.js.map +1 -1
  20. package/lib/commonjs/controllers/SendController.js +96 -96
  21. package/lib/commonjs/controllers/SendController.js.map +1 -1
  22. package/lib/commonjs/controllers/SnackController.js +29 -5
  23. package/lib/commonjs/controllers/SnackController.js.map +1 -1
  24. package/lib/commonjs/controllers/SwapController.js +154 -151
  25. package/lib/commonjs/controllers/SwapController.js.map +1 -1
  26. package/lib/commonjs/controllers/ThemeController.js +9 -1
  27. package/lib/commonjs/controllers/ThemeController.js.map +1 -1
  28. package/lib/commonjs/controllers/TransactionsController.js +22 -18
  29. package/lib/commonjs/controllers/TransactionsController.js.map +1 -1
  30. package/lib/commonjs/controllers/WcController.js +73 -0
  31. package/lib/commonjs/controllers/WcController.js.map +1 -0
  32. package/lib/commonjs/index.js +13 -41
  33. package/lib/commonjs/index.js.map +1 -1
  34. package/lib/commonjs/package.json +1 -0
  35. package/lib/commonjs/utils/ApiUtil.js.map +1 -1
  36. package/lib/commonjs/utils/AssetUtil.js +15 -19
  37. package/lib/commonjs/utils/AssetUtil.js.map +1 -1
  38. package/lib/commonjs/utils/ConstantsUtil.js +122 -5
  39. package/lib/commonjs/utils/ConstantsUtil.js.map +1 -1
  40. package/lib/commonjs/utils/CoreHelperUtil.js +19 -7
  41. package/lib/commonjs/utils/CoreHelperUtil.js.map +1 -1
  42. package/lib/commonjs/utils/EventUtil.js.map +1 -1
  43. package/lib/commonjs/utils/FetchUtil.js.map +1 -1
  44. package/lib/commonjs/utils/RouterUtil.js.map +1 -1
  45. package/lib/commonjs/utils/StorageUtil.js +90 -108
  46. package/lib/commonjs/utils/StorageUtil.js.map +1 -1
  47. package/lib/commonjs/utils/SwapApiUtil.js +15 -21
  48. package/lib/commonjs/utils/SwapApiUtil.js.map +1 -1
  49. package/lib/commonjs/utils/SwapCalculationUtil.js.map +1 -1
  50. package/lib/commonjs/utils/WalletUtil.js +23 -0
  51. package/lib/commonjs/utils/WalletUtil.js.map +1 -0
  52. package/lib/module/controllers/ApiController.js +77 -38
  53. package/lib/module/controllers/ApiController.js.map +1 -1
  54. package/lib/module/controllers/AssetController.js +2 -4
  55. package/lib/module/controllers/AssetController.js.map +1 -1
  56. package/lib/module/controllers/BlockchainApiController.js +158 -57
  57. package/lib/module/controllers/BlockchainApiController.js.map +1 -1
  58. package/lib/module/controllers/ConnectionsController.js +399 -0
  59. package/lib/module/controllers/ConnectionsController.js.map +1 -0
  60. package/lib/module/controllers/EnsController.js +2 -0
  61. package/lib/module/controllers/EnsController.js.map +1 -1
  62. package/lib/module/controllers/EventsController.js +2 -0
  63. package/lib/module/controllers/EventsController.js.map +1 -1
  64. package/lib/module/controllers/ModalController.js +8 -7
  65. package/lib/module/controllers/ModalController.js.map +1 -1
  66. package/lib/module/controllers/OnRampController.js +27 -15
  67. package/lib/module/controllers/OnRampController.js.map +1 -1
  68. package/lib/module/controllers/OptionsController.js +24 -7
  69. package/lib/module/controllers/OptionsController.js.map +1 -1
  70. package/lib/module/controllers/PublicStateController.js +2 -0
  71. package/lib/module/controllers/PublicStateController.js.map +1 -1
  72. package/lib/module/controllers/RouterController.js +9 -22
  73. package/lib/module/controllers/RouterController.js.map +1 -1
  74. package/lib/module/controllers/SendController.js +98 -96
  75. package/lib/module/controllers/SendController.js.map +1 -1
  76. package/lib/module/controllers/SnackController.js +31 -5
  77. package/lib/module/controllers/SnackController.js.map +1 -1
  78. package/lib/module/controllers/SwapController.js +156 -151
  79. package/lib/module/controllers/SwapController.js.map +1 -1
  80. package/lib/module/controllers/ThemeController.js +11 -1
  81. package/lib/module/controllers/ThemeController.js.map +1 -1
  82. package/lib/module/controllers/TransactionsController.js +24 -18
  83. package/lib/module/controllers/TransactionsController.js.map +1 -1
  84. package/lib/module/controllers/WcController.js +70 -0
  85. package/lib/module/controllers/WcController.js.map +1 -0
  86. package/lib/module/index.js +7 -7
  87. package/lib/module/index.js.map +1 -1
  88. package/lib/module/utils/ApiUtil.js +2 -0
  89. package/lib/module/utils/ApiUtil.js.map +1 -1
  90. package/lib/module/utils/AssetUtil.js +17 -19
  91. package/lib/module/utils/AssetUtil.js.map +1 -1
  92. package/lib/module/utils/ConstantsUtil.js +124 -5
  93. package/lib/module/utils/ConstantsUtil.js.map +1 -1
  94. package/lib/module/utils/CoreHelperUtil.js +21 -5
  95. package/lib/module/utils/CoreHelperUtil.js.map +1 -1
  96. package/lib/module/utils/EventUtil.js +2 -0
  97. package/lib/module/utils/EventUtil.js.map +1 -1
  98. package/lib/module/utils/FetchUtil.js +2 -0
  99. package/lib/module/utils/FetchUtil.js.map +1 -1
  100. package/lib/module/utils/RouterUtil.js +2 -0
  101. package/lib/module/utils/RouterUtil.js.map +1 -1
  102. package/lib/module/utils/StorageUtil.js +93 -108
  103. package/lib/module/utils/StorageUtil.js.map +1 -1
  104. package/lib/module/utils/SwapApiUtil.js +17 -21
  105. package/lib/module/utils/SwapApiUtil.js.map +1 -1
  106. package/lib/module/utils/SwapCalculationUtil.js +3 -0
  107. package/lib/module/utils/SwapCalculationUtil.js.map +1 -1
  108. package/lib/module/utils/WalletUtil.js +19 -0
  109. package/lib/module/utils/WalletUtil.js.map +1 -0
  110. package/lib/typescript/controllers/ApiController.d.ts +4 -5
  111. package/lib/typescript/controllers/ApiController.d.ts.map +1 -1
  112. package/lib/typescript/controllers/AssetController.d.ts +0 -2
  113. package/lib/typescript/controllers/AssetController.d.ts.map +1 -1
  114. package/lib/typescript/controllers/BlockchainApiController.d.ts +29 -11
  115. package/lib/typescript/controllers/BlockchainApiController.d.ts.map +1 -1
  116. package/lib/typescript/controllers/ConnectionsController.d.ts +45 -0
  117. package/lib/typescript/controllers/ConnectionsController.d.ts.map +1 -0
  118. package/lib/typescript/controllers/EnsController.d.ts +1 -1
  119. package/lib/typescript/controllers/EventsController.d.ts +1 -1
  120. package/lib/typescript/controllers/EventsController.d.ts.map +1 -1
  121. package/lib/typescript/controllers/ModalController.d.ts.map +1 -1
  122. package/lib/typescript/controllers/OnRampController.d.ts +2 -2
  123. package/lib/typescript/controllers/OnRampController.d.ts.map +1 -1
  124. package/lib/typescript/controllers/OptionsController.d.ts +9 -4
  125. package/lib/typescript/controllers/OptionsController.d.ts.map +1 -1
  126. package/lib/typescript/controllers/PublicStateController.d.ts +1 -1
  127. package/lib/typescript/controllers/PublicStateController.d.ts.map +1 -1
  128. package/lib/typescript/controllers/RouterController.d.ts +6 -20
  129. package/lib/typescript/controllers/RouterController.d.ts.map +1 -1
  130. package/lib/typescript/controllers/SendController.d.ts +5 -7
  131. package/lib/typescript/controllers/SendController.d.ts.map +1 -1
  132. package/lib/typescript/controllers/SnackController.d.ts +3 -3
  133. package/lib/typescript/controllers/SnackController.d.ts.map +1 -1
  134. package/lib/typescript/controllers/SwapController.d.ts +12 -12
  135. package/lib/typescript/controllers/SwapController.d.ts.map +1 -1
  136. package/lib/typescript/controllers/ThemeController.d.ts +1 -1
  137. package/lib/typescript/controllers/ThemeController.d.ts.map +1 -1
  138. package/lib/typescript/controllers/TransactionsController.d.ts +3 -3
  139. package/lib/typescript/controllers/TransactionsController.d.ts.map +1 -1
  140. package/lib/typescript/controllers/WcController.d.ts +27 -0
  141. package/lib/typescript/controllers/WcController.d.ts.map +1 -0
  142. package/lib/typescript/index.d.ts +3 -8
  143. package/lib/typescript/index.d.ts.map +1 -1
  144. package/lib/typescript/utils/AssetUtil.d.ts +3 -4
  145. package/lib/typescript/utils/AssetUtil.d.ts.map +1 -1
  146. package/lib/typescript/utils/ConstantsUtil.d.ts +12 -2
  147. package/lib/typescript/utils/ConstantsUtil.d.ts.map +1 -1
  148. package/lib/typescript/utils/CoreHelperUtil.d.ts +5 -4
  149. package/lib/typescript/utils/CoreHelperUtil.d.ts.map +1 -1
  150. package/lib/typescript/utils/EventUtil.d.ts +1 -1
  151. package/lib/typescript/utils/EventUtil.d.ts.map +1 -1
  152. package/lib/typescript/utils/FetchUtil.d.ts +2 -2
  153. package/lib/typescript/utils/FetchUtil.d.ts.map +1 -1
  154. package/lib/typescript/utils/StorageUtil.d.ts +15 -16
  155. package/lib/typescript/utils/StorageUtil.d.ts.map +1 -1
  156. package/lib/typescript/utils/SwapApiUtil.d.ts +3 -4
  157. package/lib/typescript/utils/SwapApiUtil.d.ts.map +1 -1
  158. package/lib/typescript/utils/SwapCalculationUtil.d.ts +1 -1
  159. package/lib/typescript/utils/SwapCalculationUtil.d.ts.map +1 -1
  160. package/lib/typescript/utils/WalletUtil.d.ts +5 -0
  161. package/lib/typescript/utils/WalletUtil.d.ts.map +1 -0
  162. package/package.json +8 -22
  163. package/src/controllers/ApiController.ts +83 -40
  164. package/src/controllers/AssetController.ts +0 -6
  165. package/src/controllers/BlockchainApiController.ts +136 -44
  166. package/src/controllers/ConnectionsController.ts +521 -0
  167. package/src/controllers/EnsController.ts +1 -1
  168. package/src/controllers/EventsController.ts +1 -1
  169. package/src/controllers/ModalController.ts +6 -7
  170. package/src/controllers/OnRampController.ts +37 -18
  171. package/src/controllers/OptionsController.ts +37 -14
  172. package/src/controllers/PublicStateController.ts +1 -1
  173. package/src/controllers/RouterController.ts +17 -54
  174. package/src/controllers/SendController.ts +122 -111
  175. package/src/controllers/SnackController.ts +31 -5
  176. package/src/controllers/SwapController.ts +177 -183
  177. package/src/controllers/ThemeController.ts +11 -2
  178. package/src/controllers/TransactionsController.ts +25 -19
  179. package/src/controllers/WcController.ts +93 -0
  180. package/src/index.ts +6 -20
  181. package/src/utils/AssetUtil.ts +17 -22
  182. package/src/utils/ConstantsUtil.ts +126 -6
  183. package/src/utils/CoreHelperUtil.ts +45 -7
  184. package/src/utils/EventUtil.ts +1 -1
  185. package/src/utils/FetchUtil.ts +2 -2
  186. package/src/utils/StorageUtil.ts +163 -131
  187. package/src/utils/SwapApiUtil.ts +30 -37
  188. package/src/utils/SwapCalculationUtil.ts +1 -2
  189. package/src/utils/WalletUtil.ts +14 -0
  190. package/lib/commonjs/controllers/AccountController.js +0 -93
  191. package/lib/commonjs/controllers/AccountController.js.map +0 -1
  192. package/lib/commonjs/controllers/ConnectionController.js +0 -126
  193. package/lib/commonjs/controllers/ConnectionController.js.map +0 -1
  194. package/lib/commonjs/controllers/ConnectorController.js +0 -49
  195. package/lib/commonjs/controllers/ConnectorController.js.map +0 -1
  196. package/lib/commonjs/controllers/NetworkController.js +0 -90
  197. package/lib/commonjs/controllers/NetworkController.js.map +0 -1
  198. package/lib/commonjs/controllers/WebviewController.js +0 -52
  199. package/lib/commonjs/controllers/WebviewController.js.map +0 -1
  200. package/lib/commonjs/utils/ConnectionUtil.js +0 -33
  201. package/lib/commonjs/utils/ConnectionUtil.js.map +0 -1
  202. package/lib/commonjs/utils/NetworkUtil.js +0 -46
  203. package/lib/commonjs/utils/NetworkUtil.js.map +0 -1
  204. package/lib/commonjs/utils/TypeUtil.js +0 -35
  205. package/lib/commonjs/utils/TypeUtil.js.map +0 -1
  206. package/lib/module/controllers/AccountController.js +0 -88
  207. package/lib/module/controllers/AccountController.js.map +0 -1
  208. package/lib/module/controllers/ConnectionController.js +0 -121
  209. package/lib/module/controllers/ConnectionController.js.map +0 -1
  210. package/lib/module/controllers/ConnectorController.js +0 -44
  211. package/lib/module/controllers/ConnectorController.js.map +0 -1
  212. package/lib/module/controllers/NetworkController.js +0 -85
  213. package/lib/module/controllers/NetworkController.js.map +0 -1
  214. package/lib/module/controllers/WebviewController.js +0 -47
  215. package/lib/module/controllers/WebviewController.js.map +0 -1
  216. package/lib/module/utils/ConnectionUtil.js +0 -27
  217. package/lib/module/utils/ConnectionUtil.js.map +0 -1
  218. package/lib/module/utils/NetworkUtil.js +0 -40
  219. package/lib/module/utils/NetworkUtil.js.map +0 -1
  220. package/lib/module/utils/TypeUtil.js +0 -28
  221. package/lib/module/utils/TypeUtil.js.map +0 -1
  222. package/lib/typescript/controllers/AccountController.d.ts +0 -33
  223. package/lib/typescript/controllers/AccountController.d.ts.map +0 -1
  224. package/lib/typescript/controllers/ConnectionController.d.ts +0 -66
  225. package/lib/typescript/controllers/ConnectionController.d.ts.map +0 -1
  226. package/lib/typescript/controllers/ConnectorController.d.ts +0 -18
  227. package/lib/typescript/controllers/ConnectorController.d.ts.map +0 -1
  228. package/lib/typescript/controllers/NetworkController.d.ts +0 -35
  229. package/lib/typescript/controllers/NetworkController.d.ts.map +0 -1
  230. package/lib/typescript/controllers/WebviewController.d.ts +0 -21
  231. package/lib/typescript/controllers/WebviewController.d.ts.map +0 -1
  232. package/lib/typescript/utils/ConnectionUtil.d.ts +0 -4
  233. package/lib/typescript/utils/ConnectionUtil.d.ts.map +0 -1
  234. package/lib/typescript/utils/NetworkUtil.d.ts +0 -8
  235. package/lib/typescript/utils/NetworkUtil.d.ts.map +0 -1
  236. package/lib/typescript/utils/TypeUtil.d.ts +0 -850
  237. package/lib/typescript/utils/TypeUtil.d.ts.map +0 -1
  238. package/src/controllers/AccountController.ts +0 -128
  239. package/src/controllers/ConnectionController.ts +0 -200
  240. package/src/controllers/ConnectorController.ts +0 -63
  241. package/src/controllers/NetworkController.ts +0 -120
  242. package/src/controllers/WebviewController.ts +0 -63
  243. package/src/utils/ConnectionUtil.ts +0 -27
  244. package/src/utils/NetworkUtil.ts +0 -33
  245. package/src/utils/TypeUtil.ts +0 -1039
@@ -1,11 +1,10 @@
1
- import type { Transaction } from '@reown/appkit-common-react-native';
1
+ import type { CaipAddress, Transaction } from '@reown/appkit-common-react-native';
2
2
  import { proxy, subscribe as sub } from 'valtio';
3
3
  import { OptionsController } from './OptionsController';
4
4
  import { EventsController } from './EventsController';
5
5
  import { SnackController } from './SnackController';
6
- import { NetworkController } from './NetworkController';
7
6
  import { BlockchainApiController } from './BlockchainApiController';
8
- import { AccountController } from './AccountController';
7
+ import { ConnectionsController } from './ConnectionsController';
9
8
 
10
9
  // -- Types --------------------------------------------- //
11
10
  type TransactionByMonthMap = Record<string, Transaction[]>;
@@ -34,22 +33,29 @@ export const TransactionsController = {
34
33
  return sub(state, () => callback(state));
35
34
  },
36
35
 
37
- async fetchTransactions(accountAddress?: string, reset?: boolean) {
38
- const { projectId } = OptionsController.state;
36
+ async fetchTransactions(accountAddress: CaipAddress, reset?: boolean) {
37
+ try {
38
+ const { projectId } = OptionsController.state;
39
39
 
40
- if (!projectId || !accountAddress) {
41
- throw new Error("Transactions can't be fetched without a projectId and an accountAddress");
42
- }
40
+ if (!projectId || !accountAddress) {
41
+ throw new Error("Transactions can't be fetched without a projectId and an accountAddress");
42
+ }
43
43
 
44
- state.loading = true;
44
+ state.loading = true;
45
45
 
46
- if (reset) {
47
- state.next = undefined;
48
- }
46
+ if (reset) {
47
+ state.next = undefined;
48
+ }
49
+
50
+ const [namespace, chain, address] = accountAddress?.split(':') ?? [];
51
+
52
+ if (!namespace || !chain || !address) {
53
+ throw new Error('Invalid address');
54
+ }
49
55
 
50
- try {
51
56
  const response = await BlockchainApiController.fetchTransactions({
52
- account: accountAddress,
57
+ account: address,
58
+ chainId: `${namespace}:${chain}`,
53
59
  projectId,
54
60
  cursor: state.next
55
61
  });
@@ -72,10 +78,10 @@ export const TransactionsController = {
72
78
  type: 'track',
73
79
  event: 'ERROR_FETCH_TRANSACTIONS',
74
80
  properties: {
75
- address: accountAddress,
76
- projectId,
81
+ address: accountAddress ?? '',
82
+ projectId: OptionsController.state.projectId,
77
83
  cursor: state.next,
78
- isSmartAccount: AccountController.state.preferredAccountType === 'smartAccount'
84
+ isSmartAccount: ConnectionsController.state.accountType === 'smartAccount'
79
85
  }
80
86
  });
81
87
  SnackController.showError('Failed to fetch transactions');
@@ -121,7 +127,7 @@ export const TransactionsController = {
121
127
  },
122
128
 
123
129
  filterByConnectedChain(transactions: Transaction[]) {
124
- const chainId = NetworkController.state.caipNetwork?.id;
130
+ const chainId = ConnectionsController.state.activeCaipNetworkId;
125
131
  const filteredTransactions = transactions.filter(
126
132
  transaction => transaction.metadata.chain === chainId
127
133
  );
@@ -133,7 +139,7 @@ export const TransactionsController = {
133
139
  state.next = undefined;
134
140
  },
135
141
 
136
- resetTransactions() {
142
+ resetState() {
137
143
  state.transactions = [];
138
144
  state.loading = false;
139
145
  state.empty = false;
@@ -0,0 +1,93 @@
1
+ import { proxy } from 'valtio';
2
+ import { subscribeKey as subKey } from 'valtio/utils';
3
+ import type { WalletDeepLink, WcWallet } from '@reown/appkit-common-react-native';
4
+ import { CoreHelperUtil } from '../utils/CoreHelperUtil';
5
+ import { StorageUtil } from '../utils/StorageUtil';
6
+
7
+ // -- Types --------------------------------------------- //
8
+ export interface WcControllerState {
9
+ wcUri?: string;
10
+ wcPromise?: Promise<void>;
11
+ wcPairingExpiry?: number;
12
+ wcLinking?: WalletDeepLink;
13
+ wcError?: boolean;
14
+ pressedWallet?: WcWallet;
15
+ recentWallets?: WcWallet[];
16
+ }
17
+
18
+ type StateKey = keyof WcControllerState;
19
+
20
+ // -- State --------------------------------------------- //
21
+ const state = proxy<WcControllerState>({
22
+ wcError: false
23
+ });
24
+
25
+ // -- Controller ---------------------------------------- //
26
+ export const WcController = {
27
+ state,
28
+
29
+ subscribeKey<K extends StateKey>(key: K, callback: (value: WcControllerState[K]) => void) {
30
+ return subKey(state, key, callback);
31
+ },
32
+
33
+ setWcLinking(wcLinking: WcControllerState['wcLinking']) {
34
+ state.wcLinking = wcLinking;
35
+ },
36
+
37
+ removeWcLinking() {
38
+ state.wcLinking = undefined;
39
+ },
40
+
41
+ setWcError(wcError: WcControllerState['wcError']) {
42
+ state.wcError = wcError;
43
+ },
44
+
45
+ setPressedWallet(wallet: WcControllerState['pressedWallet']) {
46
+ state.pressedWallet = wallet;
47
+ },
48
+
49
+ removePressedWallet() {
50
+ state.pressedWallet = undefined;
51
+ },
52
+
53
+ setWcPromise(wcPromise: WcControllerState['wcPromise']) {
54
+ state.wcPromise = wcPromise;
55
+ },
56
+
57
+ setWcUri(wcUri: WcControllerState['wcUri']) {
58
+ state.wcUri = wcUri;
59
+ state.wcPairingExpiry = CoreHelperUtil.getPairingExpiry();
60
+ },
61
+
62
+ setRecentWallets(wallets: WcControllerState['recentWallets']) {
63
+ state.recentWallets = wallets;
64
+ },
65
+
66
+ async addRecentWallet(wallet: WcWallet) {
67
+ const recentWallets = await StorageUtil.addRecentWallet(wallet);
68
+ if (recentWallets) {
69
+ WcController.setRecentWallets(recentWallets);
70
+ }
71
+ },
72
+
73
+ setConnectedWallet: async (wcLinking: WalletDeepLink, pressedWallet?: WcWallet) => {
74
+ StorageUtil.setWalletConnectDeepLink(wcLinking);
75
+
76
+ if (pressedWallet) {
77
+ WcController.addRecentWallet(pressedWallet);
78
+ }
79
+ },
80
+
81
+ clearUri() {
82
+ state.wcUri = undefined;
83
+ state.wcPairingExpiry = undefined;
84
+ state.wcPromise = undefined;
85
+ state.wcLinking = undefined;
86
+ },
87
+
88
+ resetState() {
89
+ this.clearUri();
90
+ state.pressedWallet = undefined;
91
+ StorageUtil.removeWalletConnectDeepLink();
92
+ }
93
+ };
package/src/index.ts CHANGED
@@ -7,24 +7,12 @@ export {
7
7
 
8
8
  export { RouterController, type RouterControllerState } from './controllers/RouterController';
9
9
 
10
- export { AccountController, type AccountControllerState } from './controllers/AccountController';
10
+ export { WcController, type WcControllerState } from './controllers/WcController';
11
11
 
12
12
  export {
13
- NetworkController,
14
- type NetworkControllerClient,
15
- type NetworkControllerState
16
- } from './controllers/NetworkController';
17
-
18
- export {
19
- ConnectionController,
20
- type ConnectionControllerClient,
21
- type ConnectionControllerState
22
- } from './controllers/ConnectionController';
23
-
24
- export {
25
- ConnectorController,
26
- type ConnectorControllerState
27
- } from './controllers/ConnectorController';
13
+ ConnectionsController,
14
+ type ConnectionsControllerState
15
+ } from './controllers/ConnectionsController';
28
16
 
29
17
  export { SnackController, type SnackControllerState } from './controllers/SnackController';
30
18
 
@@ -57,17 +45,15 @@ export {
57
45
  export { SendController, type SendControllerState } from './controllers/SendController';
58
46
 
59
47
  export { OnRampController, type OnRampControllerState } from './controllers/OnRampController';
60
- export { WebviewController, type WebviewControllerState } from './controllers/WebviewController';
61
48
 
62
49
  // -- Utils -------------------------------------------------------------------
63
50
  export { ApiUtil } from './utils/ApiUtil';
64
51
  export { AssetUtil } from './utils/AssetUtil';
65
- export { ConnectionUtil } from './utils/ConnectionUtil';
66
52
  export { ConstantsUtil } from './utils/ConstantsUtil';
67
53
  export { CoreHelperUtil } from './utils/CoreHelperUtil';
68
54
  export { StorageUtil } from './utils/StorageUtil';
69
55
  export { EventUtil } from './utils/EventUtil';
70
56
  export { RouterUtil } from './utils/RouterUtil';
71
- export { NetworkUtil } from './utils/NetworkUtil';
57
+ export { WalletUtil } from './utils/WalletUtil';
72
58
 
73
- export type * from './utils/TypeUtil';
59
+ // Types are now exported from @reown/appkit-common-react-native
@@ -1,38 +1,33 @@
1
- import { AssetController } from '../controllers/AssetController';
2
- import type { CaipNetwork, Connector, WcWallet } from './TypeUtil';
1
+ import type { AppKitNetwork, WcWallet } from '@reown/appkit-common-react-native';
3
2
 
4
3
  export const AssetUtil = {
5
- getWalletImage(wallet?: WcWallet) {
6
- if (wallet?.image_url) {
7
- return wallet?.image_url;
4
+ getWalletImage(wallet?: WcWallet, walletImages?: Record<string, string>) {
5
+ if (!wallet) {
6
+ return undefined;
8
7
  }
9
8
 
10
- if (wallet?.image_id) {
11
- return AssetController.state.walletImages[wallet.image_id];
9
+ if (wallet.image_url) {
10
+ return wallet.image_url;
12
11
  }
13
12
 
14
- return undefined;
15
- },
16
-
17
- getNetworkImage(network?: CaipNetwork) {
18
- if (network?.imageUrl) {
19
- return network?.imageUrl;
20
- }
21
-
22
- if (network?.imageId) {
23
- return AssetController.state.networkImages[network.imageId];
13
+ if (wallet.image_id) {
14
+ return walletImages?.[wallet.image_id];
24
15
  }
25
16
 
26
17
  return undefined;
27
18
  },
28
19
 
29
- getConnectorImage(connector?: Connector) {
30
- if (connector?.imageUrl) {
31
- return connector.imageUrl;
20
+ getNetworkImage(network?: AppKitNetwork, networkImages?: Record<string, string>) {
21
+ if (!network) {
22
+ return undefined;
23
+ }
24
+
25
+ if (network?.imageUrl) {
26
+ return network.imageUrl;
32
27
  }
33
28
 
34
- if (connector?.imageId) {
35
- return AssetController.state.connectorImages[connector.imageId];
29
+ if (network?.id) {
30
+ return networkImages?.[network.id];
36
31
  }
37
32
 
38
33
  return undefined;
@@ -1,11 +1,10 @@
1
- import type { Features } from './TypeUtil';
1
+ import type { ChainNamespace, Features } from '@reown/appkit-common-react-native';
2
2
 
3
3
  const defaultFeatures: Features = {
4
4
  swaps: true,
5
5
  onramp: true,
6
- email: true,
7
- emailShowWallets: true,
8
- socials: ['x', 'discord', 'apple']
6
+ socials: ['email', 'google', 'x', 'discord', 'apple', 'facebook', 'github', 'farcaster'],
7
+ showWallets: true
9
8
  };
10
9
 
11
10
  export const OnRampErrorType = {
@@ -35,7 +34,12 @@ export const ConstantsUtil = {
35
34
 
36
35
  LINKING_ERROR: 'LINKING_ERROR',
37
36
 
38
- NATIVE_TOKEN_ADDRESS: '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
37
+ NATIVE_TOKEN_ADDRESS: {
38
+ eip155: '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee',
39
+ solana: 'So11111111111111111111111111111111111111111',
40
+ polkadot: '0x',
41
+ bip122: '0x'
42
+ } as const satisfies Record<ChainNamespace, string>,
39
43
 
40
44
  ONRAMP_ERROR_TYPES: OnRampErrorType,
41
45
 
@@ -129,6 +133,116 @@ export const ConstantsUtil = {
129
133
  'WNT'
130
134
  ],
131
135
 
136
+ //TODO: replace with supported chains from backend
137
+ ACTIVITY_SUPPORTED_CHAINS: [
138
+ // Arbitrum
139
+ 'eip155:42161',
140
+ // BNB Chain
141
+ 'eip155:56',
142
+ // Ethereum
143
+ 'eip155:1',
144
+ // Blast
145
+ 'eip155:81457',
146
+ // Ape Chain
147
+ 'eip155:99999',
148
+ // Avalanche
149
+ 'eip155:43114',
150
+ // Abstract
151
+ 'eip155:900',
152
+ // opBNB
153
+ 'eip155:204',
154
+ // Astar zkEVM
155
+ 'eip155:3776',
156
+ // ZKsync Era
157
+ 'eip155:324',
158
+ // Berachain
159
+ 'eip155:80085',
160
+ // BOB
161
+ 'eip155:60808',
162
+ // Cyber
163
+ 'eip155:7560',
164
+ // Degen Chain
165
+ 'eip155:666666666',
166
+ // Fraxtal
167
+ 'eip155:252',
168
+ // Gravity Alpha
169
+ 'eip155:10003',
170
+ // Ink
171
+ 'eip155:999',
172
+ // Lens
173
+ 'eip155:1348',
174
+ // Lisk
175
+ 'eip155:113',
176
+ // Mode
177
+ 'eip155:34443',
178
+ // Base
179
+ 'eip155:8453',
180
+ // Mantle
181
+ 'eip155:5000',
182
+ // Optimism
183
+ 'eip155:10',
184
+ // Polygon
185
+ 'eip155:137',
186
+ // Celo
187
+ 'eip155:42220',
188
+ // Manta Pacific
189
+ 'eip155:169',
190
+ // Gnosis Chain
191
+ 'eip155:100',
192
+ // Fantom
193
+ 'eip155:250',
194
+ // Ronin
195
+ 'eip155:2020',
196
+ // Linea
197
+ 'eip155:59144',
198
+ // Metis Andromeda
199
+ 'eip155:1088',
200
+ // Aurora
201
+ 'eip155:1313161554',
202
+ // XDC
203
+ 'eip155:50',
204
+ // Cronos zkEVM
205
+ 'eip155:1030',
206
+ // Polygon zkEVM
207
+ 'eip155:1101',
208
+ // Polynomial
209
+ 'eip155:80001',
210
+ // Rari
211
+ 'eip155:1380012617',
212
+ // Redstone
213
+ 'eip155:690',
214
+ // Scroll
215
+ 'eip155:534352',
216
+ // Sei
217
+ 'eip155:1329',
218
+ // Soneium
219
+ 'eip155:1499',
220
+ // Sonic
221
+ 'eip155:7007',
222
+ // Swellchain
223
+ 'eip155:7777777',
224
+ // Taiko
225
+ 'eip155:167000',
226
+ // Viction
227
+ 'eip155:88',
228
+ // Unichain
229
+ 'eip155:12345',
230
+ // Wonder
231
+ 'eip155:8787',
232
+ // X Layer
233
+ 'eip155:196',
234
+ // World Chain
235
+ 'eip155:2008',
236
+ // ZERϴ
237
+ 'eip155:77777',
238
+ // ZkLink Nova
239
+ 'eip155:810180',
240
+ // re.al
241
+ 'eip155:666',
242
+ // Zora
243
+ 'eip155:7777777'
244
+ ],
245
+
132
246
  SWAP_SUPPORTED_NETWORKS: [
133
247
  // Ethereum'
134
248
  'eip155:1',
@@ -156,6 +270,10 @@ export const ConstantsUtil = {
156
270
  'eip155:1313161554'
157
271
  ],
158
272
 
273
+ SEND_SUPPORTED_NAMESPACES: ['eip155', 'solana'],
274
+
275
+ ONRAMP_SUPPORTED_NAMESPACES: ['eip155', 'solana', 'bip122'],
276
+
159
277
  CONVERT_SLIPPAGE_TOLERANCE: 1,
160
278
 
161
279
  DEFAULT_FEATURES: defaultFeatures,
@@ -183,6 +301,8 @@ export const ConstantsUtil = {
183
301
  'eip155:7700': 'CANTO', // Canto
184
302
  'eip155:59144': 'ETH_LINEA', // Linea
185
303
  'eip155:1101': 'ETH_POLYGONZKEVM', // Polygon zkEVM
186
- 'eip155:196': 'XIN' // Mixin
304
+ 'eip155:196': 'XIN', // Mixin
305
+ 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp': 'SOL',
306
+ 'bip122:000000000019d6689c085ae165831e93': 'BTC'
187
307
  }
188
308
  };
@@ -1,11 +1,24 @@
1
1
  /* eslint-disable no-bitwise */
2
2
 
3
3
  import { Linking, Platform } from 'react-native';
4
- import { ConstantsUtil as CommonConstants, type Balance } from '@reown/appkit-common-react-native';
4
+ import {
5
+ BlockchainAdapter,
6
+ ConstantsUtil as CommonConstants,
7
+ type AdapterType,
8
+ type Balance,
9
+ type CaipAddress,
10
+ type CaipNetwork,
11
+ type ChainNamespace,
12
+ type SocialProvider,
13
+ type LinkingRecord,
14
+ type DataWallet,
15
+ type SdkVersion
16
+ } from '@reown/appkit-common-react-native';
17
+
5
18
  import * as ct from 'countries-and-timezones';
6
19
 
7
20
  import { ConstantsUtil } from './ConstantsUtil';
8
- import type { CaipAddress, CaipNetwork, DataWallet, LinkingRecord } from './TypeUtil';
21
+ import { OptionsController } from '../controllers/OptionsController';
9
22
 
10
23
  // -- Helpers -----------------------------------------------------------------
11
24
  async function isAppInstalledIos(deepLink?: string): Promise<boolean> {
@@ -97,7 +110,7 @@ export const CoreHelperUtil = {
97
110
  };
98
111
  },
99
112
 
100
- formatUniversalUrl(appUrl: string, wcUri: string): LinkingRecord {
113
+ formatUniversalUrl(appUrl: string, wcUri: string, provider?: SocialProvider): LinkingRecord {
101
114
  if (CoreHelperUtil.isLinkModeURL(wcUri)) {
102
115
  return {
103
116
  redirect: wcUri,
@@ -115,7 +128,9 @@ export const CoreHelperUtil = {
115
128
  const encodedWcUrl = encodeURIComponent(wcUri);
116
129
 
117
130
  return {
118
- redirect: `${safeAppUrl}wc?uri=${encodedWcUrl}`,
131
+ redirect: provider
132
+ ? `${safeAppUrl}wc?uri=${encodedWcUrl}&provider=${provider}`
133
+ : `${safeAppUrl}wc?uri=${encodedWcUrl}`,
119
134
  href: safeAppUrl
120
135
  };
121
136
  },
@@ -144,8 +159,8 @@ export const CoreHelperUtil = {
144
159
  return formattedBalance ? `${formattedBalance} ${symbol}` : `0.000 ${symbol || ''}`;
145
160
  },
146
161
 
147
- isAddress(address: string, chain = 'eip155'): boolean {
148
- switch (chain) {
162
+ isAddress(address: string, namespace: ChainNamespace = 'eip155'): boolean {
163
+ switch (namespace) {
149
164
  case 'eip155':
150
165
  if (!/^(?:0x)?[0-9a-f]{40}$/iu.test(address)) {
151
166
  return false;
@@ -277,7 +292,7 @@ export const CoreHelperUtil = {
277
292
 
278
293
  let sum = 0;
279
294
  for (const item of array) {
280
- sum += item.value ?? 0;
295
+ sum += item?.value ?? 0;
281
296
  }
282
297
 
283
298
  const roundedNumber = sum.toFixed(2);
@@ -317,5 +332,28 @@ export const CoreHelperUtil = {
317
332
  func(...args);
318
333
  }, wait);
319
334
  };
335
+ },
336
+
337
+ generateSdkVersion(adapters: BlockchainAdapter[], version: string): SdkVersion {
338
+ const hasNoAdapters = adapters.length === 0;
339
+ const universalType: AdapterType = 'universal';
340
+
341
+ const adapterNames = hasNoAdapters
342
+ ? universalType
343
+ : adapters
344
+ .sort((a, b) => a.adapterType.localeCompare(b.adapterType))
345
+ .map(adapter => adapter.adapterType)
346
+ .join(',');
347
+
348
+ return `react-native-${adapterNames}-${version}`;
349
+ },
350
+
351
+ getRequestedCaipNetworkIds() {
352
+ const chains = OptionsController.state.requestedNetworks;
353
+ if (!chains) return [];
354
+
355
+ const requestedIds = chains.map(caipNetwork => caipNetwork.caipNetworkId);
356
+
357
+ return requestedIds;
320
358
  }
321
359
  };
@@ -1,4 +1,4 @@
1
- import type { Platform, WcWallet } from './TypeUtil';
1
+ import type { Platform, WcWallet } from '@reown/appkit-common-react-native';
2
2
 
3
3
  export const EventUtil = {
4
4
  getWalletPlatform(wallet: WcWallet, installed?: boolean): Platform | undefined {
@@ -1,4 +1,4 @@
1
- import type { RequestCache } from './TypeUtil';
1
+ import type { RequestCache } from '@reown/appkit-common-react-native';
2
2
 
3
3
  // -- Types ----------------------------------------------------------------------
4
4
  interface Options {
@@ -8,7 +8,7 @@ interface Options {
8
8
 
9
9
  interface RequestArguments {
10
10
  path: string;
11
- headers?: HeadersInit_;
11
+ headers?: HeadersInit;
12
12
  params?: Record<string, string | undefined>;
13
13
  cache?: RequestCache;
14
14
  signal?: AbortSignal;