@reown/appkit-core-react-native 2.0.0 → 2.0.1

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 (282) hide show
  1. package/lib/commonjs/controllers/ApiController.js +148 -82
  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 +127 -134
  6. package/lib/commonjs/controllers/BlockchainApiController.js.map +1 -1
  7. package/lib/commonjs/controllers/ConnectionsController.js +280 -60
  8. package/lib/commonjs/controllers/ConnectionsController.js.map +1 -1
  9. package/lib/commonjs/controllers/EnsController.js +6 -4
  10. package/lib/commonjs/controllers/EnsController.js.map +1 -1
  11. package/lib/commonjs/controllers/EventsController.js +55 -5
  12. package/lib/commonjs/controllers/EventsController.js.map +1 -1
  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 +9 -7
  16. package/lib/commonjs/controllers/ModalController.js.map +1 -1
  17. package/lib/commonjs/controllers/OnRampController.js +134 -53
  18. package/lib/commonjs/controllers/OnRampController.js.map +1 -1
  19. package/lib/commonjs/controllers/OptionsController.js +20 -7
  20. package/lib/commonjs/controllers/OptionsController.js.map +1 -1
  21. package/lib/commonjs/controllers/PublicStateController.js.map +1 -1
  22. package/lib/commonjs/controllers/RouterController.js +7 -22
  23. package/lib/commonjs/controllers/RouterController.js.map +1 -1
  24. package/lib/commonjs/controllers/SendController.js +115 -99
  25. package/lib/commonjs/controllers/SendController.js.map +1 -1
  26. package/lib/commonjs/controllers/SnackController.js +29 -5
  27. package/lib/commonjs/controllers/SnackController.js.map +1 -1
  28. package/lib/commonjs/controllers/SwapController.js +119 -119
  29. package/lib/commonjs/controllers/SwapController.js.map +1 -1
  30. package/lib/commonjs/controllers/ThemeController.js +5 -0
  31. package/lib/commonjs/controllers/ThemeController.js.map +1 -1
  32. package/lib/commonjs/controllers/TransactionsController.js +25 -19
  33. package/lib/commonjs/controllers/TransactionsController.js.map +1 -1
  34. package/lib/commonjs/controllers/WcController.js +73 -0
  35. package/lib/commonjs/controllers/WcController.js.map +1 -0
  36. package/lib/commonjs/features/reown-authentication/ReownAuthentication.js +272 -0
  37. package/lib/commonjs/features/reown-authentication/ReownAuthentication.js.map +1 -0
  38. package/lib/commonjs/features/reown-authentication/ReownAuthenticationMessenger.js +48 -0
  39. package/lib/commonjs/features/reown-authentication/ReownAuthenticationMessenger.js.map +1 -0
  40. package/lib/commonjs/features/reown-authentication/index.js +28 -0
  41. package/lib/commonjs/features/reown-authentication/index.js.map +1 -0
  42. package/lib/commonjs/index.js +30 -37
  43. package/lib/commonjs/index.js.map +1 -1
  44. package/lib/commonjs/package.json +1 -0
  45. package/lib/commonjs/utils/ApiUtil.js +1 -1
  46. package/lib/commonjs/utils/ApiUtil.js.map +1 -1
  47. package/lib/commonjs/utils/AssetUtil.js +8 -17
  48. package/lib/commonjs/utils/AssetUtil.js.map +1 -1
  49. package/lib/commonjs/utils/ConstantsUtil.js +14 -431
  50. package/lib/commonjs/utils/ConstantsUtil.js.map +1 -1
  51. package/lib/commonjs/utils/CoreHelperUtil.js +33 -10
  52. package/lib/commonjs/utils/CoreHelperUtil.js.map +1 -1
  53. package/lib/commonjs/utils/EventUtil.js.map +1 -1
  54. package/lib/commonjs/utils/FetchUtil.js +41 -12
  55. package/lib/commonjs/utils/FetchUtil.js.map +1 -1
  56. package/lib/commonjs/utils/LogUtils.js +131 -0
  57. package/lib/commonjs/utils/LogUtils.js.map +1 -0
  58. package/lib/commonjs/utils/StorageUtil.js +119 -172
  59. package/lib/commonjs/utils/StorageUtil.js.map +1 -1
  60. package/lib/commonjs/utils/SwapApiUtil.js +2 -17
  61. package/lib/commonjs/utils/SwapApiUtil.js.map +1 -1
  62. package/lib/commonjs/utils/SwapCalculationUtil.js.map +1 -1
  63. package/lib/commonjs/utils/WalletUtil.js +23 -0
  64. package/lib/commonjs/utils/WalletUtil.js.map +1 -0
  65. package/lib/module/controllers/ApiController.js +150 -82
  66. package/lib/module/controllers/ApiController.js.map +1 -1
  67. package/lib/module/controllers/AssetController.js +2 -4
  68. package/lib/module/controllers/AssetController.js.map +1 -1
  69. package/lib/module/controllers/BlockchainApiController.js +128 -133
  70. package/lib/module/controllers/BlockchainApiController.js.map +1 -1
  71. package/lib/module/controllers/ConnectionsController.js +282 -60
  72. package/lib/module/controllers/ConnectionsController.js.map +1 -1
  73. package/lib/module/controllers/EnsController.js +6 -2
  74. package/lib/module/controllers/EnsController.js.map +1 -1
  75. package/lib/module/controllers/EventsController.js +54 -2
  76. package/lib/module/controllers/EventsController.js.map +1 -1
  77. package/lib/module/controllers/LogController.js +185 -0
  78. package/lib/module/controllers/LogController.js.map +1 -0
  79. package/lib/module/controllers/ModalController.js +11 -7
  80. package/lib/module/controllers/ModalController.js.map +1 -1
  81. package/lib/module/controllers/OnRampController.js +135 -52
  82. package/lib/module/controllers/OnRampController.js.map +1 -1
  83. package/lib/module/controllers/OptionsController.js +22 -7
  84. package/lib/module/controllers/OptionsController.js.map +1 -1
  85. package/lib/module/controllers/PublicStateController.js +2 -0
  86. package/lib/module/controllers/PublicStateController.js.map +1 -1
  87. package/lib/module/controllers/RouterController.js +9 -22
  88. package/lib/module/controllers/RouterController.js.map +1 -1
  89. package/lib/module/controllers/SendController.js +114 -96
  90. package/lib/module/controllers/SendController.js.map +1 -1
  91. package/lib/module/controllers/SnackController.js +31 -5
  92. package/lib/module/controllers/SnackController.js.map +1 -1
  93. package/lib/module/controllers/SwapController.js +121 -119
  94. package/lib/module/controllers/SwapController.js.map +1 -1
  95. package/lib/module/controllers/ThemeController.js +7 -0
  96. package/lib/module/controllers/ThemeController.js.map +1 -1
  97. package/lib/module/controllers/TransactionsController.js +25 -17
  98. package/lib/module/controllers/TransactionsController.js.map +1 -1
  99. package/lib/module/controllers/WcController.js +70 -0
  100. package/lib/module/controllers/WcController.js.map +1 -0
  101. package/lib/module/features/reown-authentication/ReownAuthentication.js +268 -0
  102. package/lib/module/features/reown-authentication/ReownAuthentication.js.map +1 -0
  103. package/lib/module/features/reown-authentication/ReownAuthenticationMessenger.js +43 -0
  104. package/lib/module/features/reown-authentication/ReownAuthenticationMessenger.js.map +1 -0
  105. package/lib/module/features/reown-authentication/index.js +5 -0
  106. package/lib/module/features/reown-authentication/index.js.map +1 -0
  107. package/lib/module/index.js +12 -7
  108. package/lib/module/index.js.map +1 -1
  109. package/lib/module/utils/ApiUtil.js +3 -1
  110. package/lib/module/utils/ApiUtil.js.map +1 -1
  111. package/lib/module/utils/AssetUtil.js +10 -17
  112. package/lib/module/utils/AssetUtil.js.map +1 -1
  113. package/lib/module/utils/ConstantsUtil.js +16 -431
  114. package/lib/module/utils/ConstantsUtil.js.map +1 -1
  115. package/lib/module/utils/CoreHelperUtil.js +35 -8
  116. package/lib/module/utils/CoreHelperUtil.js.map +1 -1
  117. package/lib/module/utils/EventUtil.js +2 -0
  118. package/lib/module/utils/EventUtil.js.map +1 -1
  119. package/lib/module/utils/FetchUtil.js +44 -12
  120. package/lib/module/utils/FetchUtil.js.map +1 -1
  121. package/lib/module/utils/LogUtils.js +121 -0
  122. package/lib/module/utils/LogUtils.js.map +1 -0
  123. package/lib/module/utils/StorageUtil.js +122 -172
  124. package/lib/module/utils/StorageUtil.js.map +1 -1
  125. package/lib/module/utils/SwapApiUtil.js +4 -17
  126. package/lib/module/utils/SwapApiUtil.js.map +1 -1
  127. package/lib/module/utils/SwapCalculationUtil.js +3 -0
  128. package/lib/module/utils/SwapCalculationUtil.js.map +1 -1
  129. package/lib/module/utils/WalletUtil.js +19 -0
  130. package/lib/module/utils/WalletUtil.js.map +1 -0
  131. package/lib/typescript/controllers/ApiController.d.ts +8 -7
  132. package/lib/typescript/controllers/ApiController.d.ts.map +1 -1
  133. package/lib/typescript/controllers/AssetController.d.ts +0 -2
  134. package/lib/typescript/controllers/AssetController.d.ts.map +1 -1
  135. package/lib/typescript/controllers/BlockchainApiController.d.ts +21 -13
  136. package/lib/typescript/controllers/BlockchainApiController.d.ts.map +1 -1
  137. package/lib/typescript/controllers/ConnectionsController.d.ts +22 -18
  138. package/lib/typescript/controllers/ConnectionsController.d.ts.map +1 -1
  139. package/lib/typescript/controllers/EnsController.d.ts +1 -1
  140. package/lib/typescript/controllers/EnsController.d.ts.map +1 -1
  141. package/lib/typescript/controllers/EventsController.d.ts +13 -1
  142. package/lib/typescript/controllers/EventsController.d.ts.map +1 -1
  143. package/lib/typescript/controllers/LogController.d.ts +65 -0
  144. package/lib/typescript/controllers/LogController.d.ts.map +1 -0
  145. package/lib/typescript/controllers/ModalController.d.ts +1 -1
  146. package/lib/typescript/controllers/ModalController.d.ts.map +1 -1
  147. package/lib/typescript/controllers/OnRampController.d.ts +4 -3
  148. package/lib/typescript/controllers/OnRampController.d.ts.map +1 -1
  149. package/lib/typescript/controllers/OptionsController.d.ts +8 -6
  150. package/lib/typescript/controllers/OptionsController.d.ts.map +1 -1
  151. package/lib/typescript/controllers/RouterController.d.ts +6 -21
  152. package/lib/typescript/controllers/RouterController.d.ts.map +1 -1
  153. package/lib/typescript/controllers/SendController.d.ts +5 -7
  154. package/lib/typescript/controllers/SendController.d.ts.map +1 -1
  155. package/lib/typescript/controllers/SnackController.d.ts +3 -3
  156. package/lib/typescript/controllers/SnackController.d.ts.map +1 -1
  157. package/lib/typescript/controllers/SwapController.d.ts +11 -11
  158. package/lib/typescript/controllers/SwapController.d.ts.map +1 -1
  159. package/lib/typescript/controllers/ThemeController.d.ts +2 -0
  160. package/lib/typescript/controllers/ThemeController.d.ts.map +1 -1
  161. package/lib/typescript/controllers/TransactionsController.d.ts +3 -3
  162. package/lib/typescript/controllers/TransactionsController.d.ts.map +1 -1
  163. package/lib/typescript/controllers/WcController.d.ts +27 -0
  164. package/lib/typescript/controllers/WcController.d.ts.map +1 -0
  165. package/lib/typescript/features/reown-authentication/ReownAuthentication.d.ts +174 -0
  166. package/lib/typescript/features/reown-authentication/ReownAuthentication.d.ts.map +1 -0
  167. package/lib/typescript/features/reown-authentication/ReownAuthenticationMessenger.d.ts +16 -0
  168. package/lib/typescript/features/reown-authentication/ReownAuthenticationMessenger.d.ts.map +1 -0
  169. package/lib/typescript/features/reown-authentication/index.d.ts +3 -0
  170. package/lib/typescript/features/reown-authentication/index.d.ts.map +1 -0
  171. package/lib/typescript/index.d.ts +6 -8
  172. package/lib/typescript/index.d.ts.map +1 -1
  173. package/lib/typescript/utils/ApiUtil.d.ts +1 -1
  174. package/lib/typescript/utils/AssetUtil.d.ts +3 -4
  175. package/lib/typescript/utils/AssetUtil.d.ts.map +1 -1
  176. package/lib/typescript/utils/ConstantsUtil.d.ts +7 -416
  177. package/lib/typescript/utils/ConstantsUtil.d.ts.map +1 -1
  178. package/lib/typescript/utils/CoreHelperUtil.d.ts +8 -6
  179. package/lib/typescript/utils/CoreHelperUtil.d.ts.map +1 -1
  180. package/lib/typescript/utils/EventUtil.d.ts +1 -1
  181. package/lib/typescript/utils/EventUtil.d.ts.map +1 -1
  182. package/lib/typescript/utils/FetchUtil.d.ts +3 -3
  183. package/lib/typescript/utils/FetchUtil.d.ts.map +1 -1
  184. package/lib/typescript/utils/LogUtils.d.ts +15 -0
  185. package/lib/typescript/utils/LogUtils.d.ts.map +1 -0
  186. package/lib/typescript/utils/StorageUtil.d.ts +8 -19
  187. package/lib/typescript/utils/StorageUtil.d.ts.map +1 -1
  188. package/lib/typescript/utils/SwapApiUtil.d.ts +3 -4
  189. package/lib/typescript/utils/SwapApiUtil.d.ts.map +1 -1
  190. package/lib/typescript/utils/SwapCalculationUtil.d.ts +1 -1
  191. package/lib/typescript/utils/SwapCalculationUtil.d.ts.map +1 -1
  192. package/lib/typescript/utils/WalletUtil.d.ts +5 -0
  193. package/lib/typescript/utils/WalletUtil.d.ts.map +1 -0
  194. package/package.json +12 -25
  195. package/src/controllers/ApiController.ts +158 -80
  196. package/src/controllers/AssetController.ts +0 -6
  197. package/src/controllers/BlockchainApiController.ts +109 -144
  198. package/src/controllers/ConnectionsController.ts +372 -88
  199. package/src/controllers/EnsController.ts +5 -3
  200. package/src/controllers/EventsController.ts +74 -3
  201. package/src/controllers/LogController.ts +250 -0
  202. package/src/controllers/ModalController.ts +11 -9
  203. package/src/controllers/OnRampController.ts +195 -82
  204. package/src/controllers/OptionsController.ts +40 -13
  205. package/src/controllers/RouterController.ts +20 -58
  206. package/src/controllers/SendController.ts +148 -112
  207. package/src/controllers/SnackController.ts +31 -5
  208. package/src/controllers/SwapController.ts +140 -148
  209. package/src/controllers/ThemeController.ts +7 -0
  210. package/src/controllers/TransactionsController.ts +26 -18
  211. package/src/controllers/WcController.ts +93 -0
  212. package/src/features/reown-authentication/ReownAuthentication.ts +475 -0
  213. package/src/features/reown-authentication/ReownAuthenticationMessenger.ts +80 -0
  214. package/src/features/reown-authentication/index.ts +2 -0
  215. package/src/index.ts +15 -22
  216. package/src/utils/ApiUtil.ts +1 -1
  217. package/src/utils/AssetUtil.ts +9 -20
  218. package/src/utils/ConstantsUtil.ts +16 -435
  219. package/src/utils/CoreHelperUtil.ts +62 -11
  220. package/src/utils/EventUtil.ts +1 -1
  221. package/src/utils/FetchUtil.ts +50 -14
  222. package/src/utils/LogUtils.ts +179 -0
  223. package/src/utils/StorageUtil.ts +171 -199
  224. package/src/utils/SwapApiUtil.ts +18 -37
  225. package/src/utils/SwapCalculationUtil.ts +1 -2
  226. package/src/utils/WalletUtil.ts +14 -0
  227. package/lib/commonjs/controllers/AccountController.js +0 -93
  228. package/lib/commonjs/controllers/AccountController.js.map +0 -1
  229. package/lib/commonjs/controllers/ConnectionController.js +0 -132
  230. package/lib/commonjs/controllers/ConnectionController.js.map +0 -1
  231. package/lib/commonjs/controllers/ConnectorController.js +0 -50
  232. package/lib/commonjs/controllers/ConnectorController.js.map +0 -1
  233. package/lib/commonjs/controllers/NetworkController.js +0 -90
  234. package/lib/commonjs/controllers/NetworkController.js.map +0 -1
  235. package/lib/commonjs/controllers/WebviewController.js +0 -52
  236. package/lib/commonjs/controllers/WebviewController.js.map +0 -1
  237. package/lib/commonjs/utils/NetworkUtil.js +0 -46
  238. package/lib/commonjs/utils/NetworkUtil.js.map +0 -1
  239. package/lib/commonjs/utils/RouterUtil.js +0 -25
  240. package/lib/commonjs/utils/RouterUtil.js.map +0 -1
  241. package/lib/commonjs/utils/TypeUtil.js +0 -6
  242. package/lib/commonjs/utils/TypeUtil.js.map +0 -1
  243. package/lib/module/controllers/AccountController.js +0 -88
  244. package/lib/module/controllers/AccountController.js.map +0 -1
  245. package/lib/module/controllers/ConnectionController.js +0 -127
  246. package/lib/module/controllers/ConnectionController.js.map +0 -1
  247. package/lib/module/controllers/ConnectorController.js +0 -45
  248. package/lib/module/controllers/ConnectorController.js.map +0 -1
  249. package/lib/module/controllers/NetworkController.js +0 -85
  250. package/lib/module/controllers/NetworkController.js.map +0 -1
  251. package/lib/module/controllers/WebviewController.js +0 -47
  252. package/lib/module/controllers/WebviewController.js.map +0 -1
  253. package/lib/module/utils/NetworkUtil.js +0 -40
  254. package/lib/module/utils/NetworkUtil.js.map +0 -1
  255. package/lib/module/utils/RouterUtil.js +0 -19
  256. package/lib/module/utils/RouterUtil.js.map +0 -1
  257. package/lib/module/utils/TypeUtil.js +0 -2
  258. package/lib/module/utils/TypeUtil.js.map +0 -1
  259. package/lib/typescript/controllers/AccountController.d.ts +0 -33
  260. package/lib/typescript/controllers/AccountController.d.ts.map +0 -1
  261. package/lib/typescript/controllers/ConnectionController.d.ts +0 -68
  262. package/lib/typescript/controllers/ConnectionController.d.ts.map +0 -1
  263. package/lib/typescript/controllers/ConnectorController.d.ts +0 -18
  264. package/lib/typescript/controllers/ConnectorController.d.ts.map +0 -1
  265. package/lib/typescript/controllers/NetworkController.d.ts +0 -34
  266. package/lib/typescript/controllers/NetworkController.d.ts.map +0 -1
  267. package/lib/typescript/controllers/WebviewController.d.ts +0 -21
  268. package/lib/typescript/controllers/WebviewController.d.ts.map +0 -1
  269. package/lib/typescript/utils/NetworkUtil.d.ts +0 -8
  270. package/lib/typescript/utils/NetworkUtil.d.ts.map +0 -1
  271. package/lib/typescript/utils/RouterUtil.d.ts +0 -5
  272. package/lib/typescript/utils/RouterUtil.d.ts.map +0 -1
  273. package/lib/typescript/utils/TypeUtil.d.ts +0 -817
  274. package/lib/typescript/utils/TypeUtil.d.ts.map +0 -1
  275. package/src/controllers/AccountController.ts +0 -128
  276. package/src/controllers/ConnectionController.ts +0 -208
  277. package/src/controllers/ConnectorController.ts +0 -64
  278. package/src/controllers/NetworkController.ts +0 -120
  279. package/src/controllers/WebviewController.ts +0 -63
  280. package/src/utils/NetworkUtil.ts +0 -33
  281. package/src/utils/RouterUtil.ts +0 -21
  282. package/src/utils/TypeUtil.ts +0 -995
@@ -0,0 +1,5 @@
1
+ import type { WcWallet } from '@reown/appkit-common-react-native';
2
+ export declare const WalletUtil: {
3
+ getWallet: (walletId: string) => WcWallet | undefined;
4
+ };
5
+ //# sourceMappingURL=WalletUtil.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletUtil.d.ts","sourceRoot":"","sources":["../../../src/utils/WalletUtil.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAIlE,eAAO,MAAM,UAAU;0BACC,MAAM,KAAG,QAAQ,GAAG,SAAS;CAQpD,CAAC"}
package/package.json CHANGED
@@ -1,9 +1,10 @@
1
1
  {
2
2
  "name": "@reown/appkit-core-react-native",
3
- "version": "2.0.0",
3
+ "version": "2.0.1",
4
4
  "main": "lib/commonjs/index.js",
5
5
  "types": "lib/typescript/index.d.ts",
6
6
  "module": "lib/module/index.js",
7
+ "react-native": "src/index.ts",
7
8
  "source": "src/index.ts",
8
9
  "scripts": {
9
10
  "build": "bob build",
@@ -27,41 +28,27 @@
27
28
  "react-native"
28
29
  ],
29
30
  "repository": "https://github.com/reown-com/appkit-react-native",
30
- "author": "Reown <support@reown.com> (https://reown.com)",
31
+ "author": "Reown (https://discord.gg/reown)",
31
32
  "homepage": "https://reown.com/appkit",
32
- "license": "Apache-2.0",
33
+ "license": "SEE LICENSE IN LICENSE.md",
33
34
  "bugs": {
34
35
  "url": "https://github.com/reown-com/appkit-react-native/issues"
35
36
  },
36
37
  "publishConfig": {
37
38
  "registry": "https://registry.npmjs.org/",
38
- "access": "public"
39
+ "access": "public",
40
+ "provenance": true
39
41
  },
40
42
  "dependencies": {
41
- "@reown/appkit-common-react-native": "2.0.0",
43
+ "@reown/appkit-common-react-native": "2.0.1",
42
44
  "countries-and-timezones": "3.7.2",
43
- "valtio": "1.11.2"
45
+ "derive-valtio": "0.2.0",
46
+ "valtio": "2.1.8"
44
47
  },
45
48
  "peerDependencies": {
46
- "@react-native-async-storage/async-storage": ">=1.17.0",
47
- "@walletconnect/react-native-compat": ">=2.13.1",
48
- "react": ">=17",
49
- "react-native": ">=0.68.5"
50
- },
51
- "react-native": "src/index.ts",
52
- "react-native-builder-bob": {
53
- "source": "src",
54
- "output": "lib",
55
- "targets": [
56
- "commonjs",
57
- "module",
58
- [
59
- "typescript",
60
- {
61
- "tsc": "../../node_modules/.bin/tsc"
62
- }
63
- ]
64
- ]
49
+ "@walletconnect/react-native-compat": ">=2.16.1",
50
+ "react": ">=18",
51
+ "react-native": ">=0.72"
65
52
  },
66
53
  "eslintIgnore": [
67
54
  "node_modules/",
@@ -4,21 +4,22 @@ import { proxy } from 'valtio';
4
4
  import { CoreHelperUtil } from '../utils/CoreHelperUtil';
5
5
  import { FetchUtil } from '../utils/FetchUtil';
6
6
  import { StorageUtil } from '../utils/StorageUtil';
7
- import type {
8
- ApiGetAnalyticsConfigResponse,
9
- ApiGetDataWalletsResponse,
10
- ApiGetWalletsRequest,
11
- ApiGetWalletsResponse,
12
- WcWallet
13
- } from '../utils/TypeUtil';
7
+ import {
8
+ type ApiGetAnalyticsConfigResponse,
9
+ type ApiGetDataWalletsResponse,
10
+ type ApiGetWalletsRequest,
11
+ type ApiGetWalletsResponse,
12
+ type CustomWallet,
13
+ type WcWallet,
14
+ PresetsUtil
15
+ } from '@reown/appkit-common-react-native';
14
16
  import { AssetController } from './AssetController';
15
17
  import { OptionsController } from './OptionsController';
16
- import { ConnectorController } from './ConnectorController';
17
- import { ConnectionController } from './ConnectionController';
18
+ import { WcController } from './WcController';
18
19
  import { ApiUtil } from '../utils/ApiUtil';
19
20
  import { SnackController } from './SnackController';
20
21
  import { ConnectionsController } from './ConnectionsController';
21
- import { PresetsUtil } from '@reown/appkit-common-react-native';
22
+ import { LogController } from './LogController';
22
23
 
23
24
  // -- Helpers ------------------------------------------- //
24
25
  const baseUrl = CoreHelperUtil.getApiUrl();
@@ -65,13 +66,18 @@ export const ApiController = {
65
66
  return subKey(state, key, callback);
66
67
  },
67
68
 
68
- _getApiHeaders() {
69
+ _getApiParams() {
69
70
  const { projectId, sdkType, sdkVersion } = OptionsController.state;
70
71
 
71
72
  return {
72
- 'x-project-id': projectId,
73
- 'x-sdk-type': sdkType,
74
- 'x-sdk-version': sdkVersion,
73
+ projectId,
74
+ st: sdkType,
75
+ sv: sdkVersion
76
+ };
77
+ },
78
+
79
+ _getApiHeaders() {
80
+ return {
75
81
  'User-Agent': ApiUtil.getUserAgent(),
76
82
  'origin': ApiUtil.getOrigin()
77
83
  };
@@ -79,20 +85,16 @@ export const ApiController = {
79
85
 
80
86
  async _fetchWalletImage(imageId: string) {
81
87
  const headers = ApiController._getApiHeaders();
82
- const url = await api.fetchImage(`/getWalletImage/${imageId}`, headers);
88
+ const url = await api.fetchImage(
89
+ `/getWalletImage/${imageId}`,
90
+ headers,
91
+ ApiController._getApiParams()
92
+ );
83
93
  if (url) {
84
94
  AssetController.setWalletImage(imageId, url);
85
95
  }
86
96
  },
87
97
 
88
- async _fetchConnectorImage(imageId: string) {
89
- const headers = ApiController._getApiHeaders();
90
- const url = await api.fetchImage(`/public/getAssetImage/${imageId}`, headers);
91
- if (url) {
92
- AssetController.setConnectorImage(imageId, url);
93
- }
94
- },
95
-
96
98
  async _fetchNetworkImage(networkId: string) {
97
99
  const imageId = PresetsUtil.NetworkImageIds[networkId];
98
100
  if (!imageId) {
@@ -100,20 +102,16 @@ export const ApiController = {
100
102
  }
101
103
 
102
104
  const headers = ApiController._getApiHeaders();
103
- const url = await api.fetchImage(`/public/getAssetImage/${imageId}`, headers);
105
+ const url = await api.fetchImage(
106
+ `/public/getAssetImage/${imageId}`,
107
+ headers,
108
+ ApiController._getApiParams()
109
+ );
104
110
  if (url) {
105
111
  AssetController.setNetworkImage(networkId, url);
106
112
  }
107
113
  },
108
114
 
109
- async fetchConnectorImages() {
110
- const { connectors } = ConnectorController.state;
111
- const ids = connectors.map(({ imageId }) => imageId).filter(Boolean);
112
- await CoreHelperUtil.allSettled(
113
- (ids as string[]).map(id => ApiController._fetchConnectorImage(id))
114
- );
115
- },
116
-
117
115
  async fetchNetworkImages() {
118
116
  const networks = ConnectionsController.state.networks;
119
117
  if (networks) {
@@ -124,72 +122,127 @@ export const ApiController = {
124
122
  },
125
123
 
126
124
  async fetchInstalledWallets() {
127
- const { includeWalletIds } = OptionsController.state;
128
- const path = Platform.select({ default: 'getIosData', android: 'getAndroidData' });
129
- const response = await api.get<ApiGetDataWalletsResponse>({
130
- path,
131
- headers: ApiController._getApiHeaders()
132
- });
125
+ // Add timeout to prevent hanging
126
+ const controller = new AbortController();
127
+ let timeoutId: NodeJS.Timeout | undefined;
133
128
 
134
- if (!response) return;
129
+ try {
130
+ const { includeWalletIds, customWallets } = OptionsController.state;
131
+ const path = Platform.select({ default: 'getIosData', android: 'getAndroidData' });
132
+ const response = await api.get<ApiGetDataWalletsResponse>({
133
+ path,
134
+ params: ApiController._getApiParams(),
135
+ headers: ApiController._getApiHeaders()
136
+ });
135
137
 
136
- let { data: walletData } = response;
138
+ if (!response) return;
137
139
 
138
- if (includeWalletIds?.length) {
139
- walletData = walletData.filter(({ id }) => includeWalletIds.includes(id));
140
- }
140
+ let { data: walletData } = response;
141
141
 
142
- const promises = walletData.map(async item => {
143
- return {
144
- id: item.id,
145
- isInstalled: await CoreHelperUtil.checkInstalled(item)
146
- };
147
- });
142
+ if (includeWalletIds?.length) {
143
+ walletData = walletData.filter(({ id }) => includeWalletIds.includes(id));
144
+ }
148
145
 
149
- const results = await Promise.all(promises);
150
- const installed = results.filter(({ isInstalled }) => isInstalled).map(({ id }) => id);
151
- const { excludeWalletIds } = OptionsController.state;
146
+ const promises = walletData.map(async item => {
147
+ return {
148
+ id: item.id,
149
+ isInstalled: await CoreHelperUtil.checkInstalled(item)
150
+ };
151
+ });
152
152
 
153
- if (installed.length > 0) {
154
- const walletResponse = await api.get<ApiGetWalletsResponse>({
155
- path: '/getWallets',
156
- headers: ApiController._getApiHeaders(),
157
- params: {
158
- page: '1',
159
- platform: this.platform(),
160
- entries: installed?.length.toString(),
161
- include: installed?.join(','),
162
- exclude: excludeWalletIds?.join(',')
163
- }
153
+ const customPromises = customWallets?.map(async item => {
154
+ return {
155
+ id: item.id,
156
+ isInstalled: await CoreHelperUtil.checkInstalled(item)
157
+ };
164
158
  });
165
159
 
166
- if (walletResponse?.data) {
167
- const walletImages = walletResponse.data.map(d => d.image_id).filter(Boolean);
168
- await CoreHelperUtil.allSettled(
169
- (walletImages as string[]).map(id => ApiController._fetchWalletImage(id))
170
- );
171
- state.installed = walletResponse.data;
172
- this.updateRecentWalletsInfo(walletResponse.data);
160
+ const results = await Promise.all(promises);
161
+ const installed = results.filter(({ isInstalled }) => isInstalled).map(({ id }) => id);
162
+ const { excludeWalletIds } = OptionsController.state;
163
+ const chains = CoreHelperUtil.getRequestedCaipNetworkIds();
164
+
165
+ // Add timeout to prevent hanging
166
+ timeoutId = setTimeout(() => controller.abort(), 10000);
167
+
168
+ // Collect API-sourced installed wallets
169
+ let apiInstalledWallets: WcWallet[] = [];
170
+ if (installed.length > 0) {
171
+ const walletResponse = await api.get<ApiGetWalletsResponse>({
172
+ path: '/getWallets',
173
+ headers: ApiController._getApiHeaders(),
174
+ params: {
175
+ ...ApiController._getApiParams(),
176
+ page: '1',
177
+ platform: this.platform(),
178
+ entries: installed?.length.toString(),
179
+ include: installed?.join(','),
180
+ exclude: excludeWalletIds?.join(','),
181
+ chains: chains.join(',')
182
+ },
183
+ signal: controller.signal
184
+ });
185
+
186
+ if (walletResponse?.data) {
187
+ const walletImages = walletResponse.data.map(d => d.image_id).filter(Boolean);
188
+ await CoreHelperUtil.allSettled(
189
+ (walletImages as string[]).map(id => ApiController._fetchWalletImage(id))
190
+ );
191
+ apiInstalledWallets = walletResponse.data;
192
+ }
193
+ }
194
+
195
+ clearTimeout(timeoutId);
196
+
197
+ // Collect custom installed wallets
198
+ let customInstalledWallets: CustomWallet[] = [];
199
+ if (customPromises?.length) {
200
+ const customResults = await Promise.all(customPromises);
201
+ const customInstalled = customResults
202
+ .filter(({ isInstalled }) => isInstalled)
203
+ .map(({ id }) => id);
204
+ customInstalledWallets =
205
+ customWallets?.filter(wallet => customInstalled.includes(wallet.id)) ?? [];
173
206
  }
207
+
208
+ // Merge and de-duplicate by id, preserving order (API first, then custom)
209
+ const byId = new Map<string, WcWallet>();
210
+ [...apiInstalledWallets, ...customInstalledWallets].forEach(wallet => {
211
+ if (!byId.has(wallet.id)) {
212
+ byId.set(wallet.id, wallet);
213
+ }
214
+ });
215
+ const combinedInstalled = Array.from(byId.values());
216
+ state.installed = combinedInstalled;
217
+ if (combinedInstalled.length) {
218
+ this.updateRecentWalletsInfo(combinedInstalled);
219
+ }
220
+ } catch (error) {
221
+ state.installed = [];
222
+ clearTimeout(timeoutId);
223
+ LogController.sendError(error, 'ApiController.ts', 'fetchInstalledWallets');
174
224
  }
175
225
  },
176
226
 
177
227
  async fetchFeaturedWallets() {
178
228
  const { featuredWalletIds } = OptionsController.state;
179
229
  const exclude = state.installed.map(({ id }) => id);
230
+ const chains = CoreHelperUtil.getRequestedCaipNetworkIds();
180
231
 
181
232
  if (featuredWalletIds?.length) {
182
233
  const response = await api.get<ApiGetWalletsResponse>({
183
234
  path: '/getWallets',
184
235
  headers: ApiController._getApiHeaders(),
185
236
  params: {
237
+ ...ApiController._getApiParams(),
186
238
  page: '1',
187
239
  platform: this.platform(),
188
240
  entries: featuredWalletIds?.length
189
241
  ? String(featuredWalletIds.length)
190
242
  : recommendedEntries,
191
243
  include: featuredWalletIds?.join(','),
192
- exclude: exclude?.join(',')
244
+ exclude: exclude?.join(','),
245
+ chains: chains.join(',')
193
246
  }
194
247
  });
195
248
  if (!response) return;
@@ -206,9 +259,22 @@ export const ApiController = {
206
259
  }
207
260
  },
208
261
 
262
+ async fetchCustomWalletImages() {
263
+ const { customWallets } = OptionsController.state;
264
+ if (!customWallets?.length) {
265
+ return;
266
+ }
267
+
268
+ const images = customWallets.map(w => w.image_id).filter(Boolean);
269
+ await CoreHelperUtil.allSettled(
270
+ (images as string[]).map(id => ApiController._fetchWalletImage(id))
271
+ );
272
+ },
273
+
209
274
  async fetchRecommendedWallets() {
210
275
  const { installed } = ApiController.state;
211
276
  const { includeWalletIds, excludeWalletIds, featuredWalletIds } = OptionsController.state;
277
+ const chains = CoreHelperUtil.getRequestedCaipNetworkIds();
212
278
 
213
279
  const exclude = [
214
280
  ...installed.map(({ id }) => id),
@@ -220,11 +286,13 @@ export const ApiController = {
220
286
  path: '/getWallets',
221
287
  headers: ApiController._getApiHeaders(),
222
288
  params: {
289
+ ...ApiController._getApiParams(),
223
290
  page: '1',
224
291
  platform: this.platform(),
225
292
  entries: recommendedEntries,
226
293
  include: includeWalletIds?.join(','),
227
- exclude: exclude?.join(',')
294
+ exclude: exclude?.join(','),
295
+ chains: chains.join(',')
228
296
  }
229
297
  });
230
298
 
@@ -247,6 +315,7 @@ export const ApiController = {
247
315
 
248
316
  async fetchWallets({ page }: Pick<ApiGetWalletsRequest, 'page'>) {
249
317
  const { includeWalletIds, excludeWalletIds, featuredWalletIds } = OptionsController.state;
318
+ const chains = CoreHelperUtil.getRequestedCaipNetworkIds();
250
319
  const exclude = [
251
320
  ...state.installed.map(({ id }) => id),
252
321
  ...state.recommended.map(({ id }) => id),
@@ -257,11 +326,13 @@ export const ApiController = {
257
326
  path: '/getWallets',
258
327
  headers: ApiController._getApiHeaders(),
259
328
  params: {
329
+ ...ApiController._getApiParams(),
260
330
  page: String(page),
261
331
  platform: this.platform(),
262
332
  entries: String(defaultEntries),
263
333
  include: includeWalletIds?.join(','),
264
- exclude: exclude.join(',')
334
+ exclude: exclude.join(','),
335
+ chains: chains.join(',')
265
336
  }
266
337
  });
267
338
 
@@ -284,17 +355,20 @@ export const ApiController = {
284
355
 
285
356
  async searchWallet({ search }: Pick<ApiGetWalletsRequest, 'search'>) {
286
357
  const { includeWalletIds, excludeWalletIds } = OptionsController.state;
358
+ const chains = CoreHelperUtil.getRequestedCaipNetworkIds();
287
359
  state.search = [];
288
360
  const response = await api.get<ApiGetWalletsResponse>({
289
361
  path: '/getWallets',
290
362
  headers: ApiController._getApiHeaders(),
291
363
  params: {
364
+ ...ApiController._getApiParams(),
292
365
  page: '1',
293
366
  platform: this.platform(),
294
367
  entries: String(defaultEntries),
295
368
  search,
296
369
  include: includeWalletIds?.join(','),
297
- exclude: excludeWalletIds?.join(',')
370
+ exclude: excludeWalletIds?.join(','),
371
+ chains: chains.join(',')
298
372
  }
299
373
  });
300
374
 
@@ -329,7 +403,7 @@ export const ApiController = {
329
403
 
330
404
  if (update) {
331
405
  await StorageUtil.setRecentWallets(updatedRecent);
332
- ConnectionController.setRecentWallets(updatedRecent);
406
+ WcController.setRecentWallets(updatedRecent);
333
407
  }
334
408
  },
335
409
 
@@ -337,19 +411,22 @@ export const ApiController = {
337
411
  try {
338
412
  state.prefetchError = false;
339
413
  state.prefetchLoading = true;
340
- // this fetch must resolve first so we filter them in the other wallet requests
341
- await ApiController.fetchInstalledWallets();
342
414
 
343
415
  const promises = [
344
- ApiController.fetchFeaturedWallets(),
345
- ApiController.fetchRecommendedWallets(),
346
416
  ApiController.fetchNetworkImages(),
347
- ApiController.fetchConnectorImages()
417
+ ApiController.fetchCustomWalletImages()
348
418
  ];
419
+
349
420
  if (OptionsController.state.enableAnalytics === undefined) {
350
421
  promises.push(ApiController.fetchAnalyticsConfig());
351
422
  }
352
423
 
424
+ // this fetch must resolve first so we filter them in the other wallet requests
425
+ await ApiController.fetchInstalledWallets();
426
+
427
+ promises.push(ApiController.fetchFeaturedWallets());
428
+ promises.push(ApiController.fetchRecommendedWallets());
429
+
353
430
  state.prefetchPromise = Promise.race([
354
431
  CoreHelperUtil.allSettled(promises),
355
432
  CoreHelperUtil.wait(3000)
@@ -368,6 +445,7 @@ export const ApiController = {
368
445
  async fetchAnalyticsConfig() {
369
446
  const response = await api.get<ApiGetAnalyticsConfigResponse>({
370
447
  path: '/getAnalyticsConfig',
448
+ params: ApiController._getApiParams(),
371
449
  headers: ApiController._getApiHeaders()
372
450
  });
373
451
  if (!response) return;
@@ -4,7 +4,6 @@ import { proxy } from 'valtio';
4
4
  export interface AssetControllerState {
5
5
  walletImages: Record<string, string>;
6
6
  networkImages: Record<string, string>;
7
- connectorImages: Record<string, string>;
8
7
  tokenImages: Record<string, string>;
9
8
  }
10
9
 
@@ -12,7 +11,6 @@ export interface AssetControllerState {
12
11
  const state = proxy<AssetControllerState>({
13
12
  walletImages: {},
14
13
  networkImages: {},
15
- connectorImages: {},
16
14
  tokenImages: {}
17
15
  });
18
16
 
@@ -28,10 +26,6 @@ export const AssetController = {
28
26
  state.networkImages[key] = value;
29
27
  },
30
28
 
31
- setConnectorImage(key: string, value: string) {
32
- state.connectorImages[key] = value;
33
- },
34
-
35
29
  setTokenImage(key: string, value: string) {
36
30
  state.tokenImages[key] = value;
37
31
  }