@reown/appkit-core-react-native 0.0.0-develop-20250728141602 → 0.0.0-develop-20251008155354

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 (291) hide show
  1. package/lib/commonjs/controllers/ApiController.js +157 -91
  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 +180 -78
  6. package/lib/commonjs/controllers/BlockchainApiController.js.map +1 -1
  7. package/lib/commonjs/controllers/ConnectionsController.js +425 -0
  8. package/lib/commonjs/controllers/ConnectionsController.js.map +1 -0
  9. package/lib/commonjs/controllers/EnsController.js +2 -0
  10. package/lib/commonjs/controllers/EnsController.js.map +1 -1
  11. package/lib/commonjs/controllers/EventsController.js +51 -1
  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 +47 -20
  18. package/lib/commonjs/controllers/OnRampController.js.map +1 -1
  19. package/lib/commonjs/controllers/OptionsController.js +28 -10
  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 +111 -95
  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 +162 -151
  29. package/lib/commonjs/controllers/SwapController.js.map +1 -1
  30. package/lib/commonjs/controllers/ThemeController.js +14 -1
  31. package/lib/commonjs/controllers/ThemeController.js.map +1 -1
  32. package/lib/commonjs/controllers/TransactionsController.js +24 -18
  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 +33 -40
  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 -18
  48. package/lib/commonjs/utils/AssetUtil.js.map +1 -1
  49. package/lib/commonjs/utils/ConstantsUtil.js +117 -5
  50. package/lib/commonjs/utils/ConstantsUtil.js.map +1 -1
  51. package/lib/commonjs/utils/CoreHelperUtil.js +32 -9
  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 +7 -2
  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 +131 -150
  59. package/lib/commonjs/utils/StorageUtil.js.map +1 -1
  60. package/lib/commonjs/utils/SwapApiUtil.js +15 -21
  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 +159 -91
  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 +182 -78
  70. package/lib/module/controllers/BlockchainApiController.js.map +1 -1
  71. package/lib/module/controllers/ConnectionsController.js +422 -0
  72. package/lib/module/controllers/ConnectionsController.js.map +1 -0
  73. package/lib/module/controllers/EnsController.js +4 -0
  74. package/lib/module/controllers/EnsController.js.map +1 -1
  75. package/lib/module/controllers/EventsController.js +53 -1
  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 +45 -16
  82. package/lib/module/controllers/OnRampController.js.map +1 -1
  83. package/lib/module/controllers/OptionsController.js +30 -10
  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 +113 -95
  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 +164 -151
  94. package/lib/module/controllers/SwapController.js.map +1 -1
  95. package/lib/module/controllers/ThemeController.js +16 -1
  96. package/lib/module/controllers/ThemeController.js.map +1 -1
  97. package/lib/module/controllers/TransactionsController.js +26 -18
  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 +13 -8
  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 -18
  112. package/lib/module/utils/AssetUtil.js.map +1 -1
  113. package/lib/module/utils/ConstantsUtil.js +119 -5
  114. package/lib/module/utils/ConstantsUtil.js.map +1 -1
  115. package/lib/module/utils/CoreHelperUtil.js +34 -7
  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 +10 -2
  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 +134 -150
  124. package/lib/module/utils/StorageUtil.js.map +1 -1
  125. package/lib/module/utils/SwapApiUtil.js +17 -21
  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 +9 -8
  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 +29 -11
  136. package/lib/typescript/controllers/BlockchainApiController.d.ts.map +1 -1
  137. package/lib/typescript/controllers/ConnectionsController.d.ts +47 -0
  138. package/lib/typescript/controllers/ConnectionsController.d.ts.map +1 -0
  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.map +1 -1
  146. package/lib/typescript/controllers/OnRampController.d.ts +2 -2
  147. package/lib/typescript/controllers/OnRampController.d.ts.map +1 -1
  148. package/lib/typescript/controllers/OptionsController.d.ts +11 -6
  149. package/lib/typescript/controllers/OptionsController.d.ts.map +1 -1
  150. package/lib/typescript/controllers/PublicStateController.d.ts +1 -1
  151. package/lib/typescript/controllers/PublicStateController.d.ts.map +1 -1
  152. package/lib/typescript/controllers/RouterController.d.ts +6 -20
  153. package/lib/typescript/controllers/RouterController.d.ts.map +1 -1
  154. package/lib/typescript/controllers/SendController.d.ts +5 -7
  155. package/lib/typescript/controllers/SendController.d.ts.map +1 -1
  156. package/lib/typescript/controllers/SnackController.d.ts +3 -3
  157. package/lib/typescript/controllers/SnackController.d.ts.map +1 -1
  158. package/lib/typescript/controllers/SwapController.d.ts +12 -12
  159. package/lib/typescript/controllers/SwapController.d.ts.map +1 -1
  160. package/lib/typescript/controllers/ThemeController.d.ts +3 -1
  161. package/lib/typescript/controllers/ThemeController.d.ts.map +1 -1
  162. package/lib/typescript/controllers/TransactionsController.d.ts +3 -3
  163. package/lib/typescript/controllers/TransactionsController.d.ts.map +1 -1
  164. package/lib/typescript/controllers/WcController.d.ts +27 -0
  165. package/lib/typescript/controllers/WcController.d.ts.map +1 -0
  166. package/lib/typescript/features/reown-authentication/ReownAuthentication.d.ts +174 -0
  167. package/lib/typescript/features/reown-authentication/ReownAuthentication.d.ts.map +1 -0
  168. package/lib/typescript/features/reown-authentication/ReownAuthenticationMessenger.d.ts +16 -0
  169. package/lib/typescript/features/reown-authentication/ReownAuthenticationMessenger.d.ts.map +1 -0
  170. package/lib/typescript/features/reown-authentication/index.d.ts +3 -0
  171. package/lib/typescript/features/reown-authentication/index.d.ts.map +1 -0
  172. package/lib/typescript/index.d.ts +7 -9
  173. package/lib/typescript/index.d.ts.map +1 -1
  174. package/lib/typescript/utils/ApiUtil.d.ts +1 -1
  175. package/lib/typescript/utils/AssetUtil.d.ts +3 -4
  176. package/lib/typescript/utils/AssetUtil.d.ts.map +1 -1
  177. package/lib/typescript/utils/ConstantsUtil.d.ts +11 -2
  178. package/lib/typescript/utils/ConstantsUtil.d.ts.map +1 -1
  179. package/lib/typescript/utils/CoreHelperUtil.d.ts +8 -6
  180. package/lib/typescript/utils/CoreHelperUtil.d.ts.map +1 -1
  181. package/lib/typescript/utils/EventUtil.d.ts +1 -1
  182. package/lib/typescript/utils/EventUtil.d.ts.map +1 -1
  183. package/lib/typescript/utils/FetchUtil.d.ts +4 -4
  184. package/lib/typescript/utils/FetchUtil.d.ts.map +1 -1
  185. package/lib/typescript/utils/LogUtils.d.ts +15 -0
  186. package/lib/typescript/utils/LogUtils.d.ts.map +1 -0
  187. package/lib/typescript/utils/StorageUtil.d.ts +15 -16
  188. package/lib/typescript/utils/StorageUtil.d.ts.map +1 -1
  189. package/lib/typescript/utils/SwapApiUtil.d.ts +3 -4
  190. package/lib/typescript/utils/SwapApiUtil.d.ts.map +1 -1
  191. package/lib/typescript/utils/SwapCalculationUtil.d.ts +1 -1
  192. package/lib/typescript/utils/SwapCalculationUtil.d.ts.map +1 -1
  193. package/lib/typescript/utils/WalletUtil.d.ts +5 -0
  194. package/lib/typescript/utils/WalletUtil.d.ts.map +1 -0
  195. package/package.json +11 -24
  196. package/src/controllers/ApiController.ts +167 -84
  197. package/src/controllers/AssetController.ts +0 -6
  198. package/src/controllers/BlockchainApiController.ts +168 -66
  199. package/src/controllers/ConnectionsController.ts +575 -0
  200. package/src/controllers/EnsController.ts +3 -1
  201. package/src/controllers/EventsController.ts +73 -2
  202. package/src/controllers/LogController.ts +250 -0
  203. package/src/controllers/ModalController.ts +10 -7
  204. package/src/controllers/OnRampController.ts +54 -19
  205. package/src/controllers/OptionsController.ts +46 -18
  206. package/src/controllers/PublicStateController.ts +1 -1
  207. package/src/controllers/RouterController.ts +20 -57
  208. package/src/controllers/SendController.ts +147 -111
  209. package/src/controllers/SnackController.ts +31 -5
  210. package/src/controllers/SwapController.ts +185 -183
  211. package/src/controllers/ThemeController.ts +18 -2
  212. package/src/controllers/TransactionsController.ts +27 -19
  213. package/src/controllers/WcController.ts +93 -0
  214. package/src/features/reown-authentication/ReownAuthentication.ts +475 -0
  215. package/src/features/reown-authentication/ReownAuthenticationMessenger.ts +80 -0
  216. package/src/features/reown-authentication/index.ts +2 -0
  217. package/src/index.ts +17 -20
  218. package/src/utils/ApiUtil.ts +1 -1
  219. package/src/utils/AssetUtil.ts +9 -22
  220. package/src/utils/ConstantsUtil.ts +121 -6
  221. package/src/utils/CoreHelperUtil.ts +66 -10
  222. package/src/utils/EventUtil.ts +1 -1
  223. package/src/utils/FetchUtil.ts +14 -5
  224. package/src/utils/LogUtils.ts +179 -0
  225. package/src/utils/StorageUtil.ts +191 -176
  226. package/src/utils/SwapApiUtil.ts +30 -37
  227. package/src/utils/SwapCalculationUtil.ts +1 -2
  228. package/src/utils/WalletUtil.ts +14 -0
  229. package/lib/commonjs/controllers/AccountController.js +0 -93
  230. package/lib/commonjs/controllers/AccountController.js.map +0 -1
  231. package/lib/commonjs/controllers/ConnectionController.js +0 -126
  232. package/lib/commonjs/controllers/ConnectionController.js.map +0 -1
  233. package/lib/commonjs/controllers/ConnectorController.js +0 -49
  234. package/lib/commonjs/controllers/ConnectorController.js.map +0 -1
  235. package/lib/commonjs/controllers/NetworkController.js +0 -90
  236. package/lib/commonjs/controllers/NetworkController.js.map +0 -1
  237. package/lib/commonjs/controllers/WebviewController.js +0 -52
  238. package/lib/commonjs/controllers/WebviewController.js.map +0 -1
  239. package/lib/commonjs/utils/ConnectionUtil.js +0 -33
  240. package/lib/commonjs/utils/ConnectionUtil.js.map +0 -1
  241. package/lib/commonjs/utils/NetworkUtil.js +0 -46
  242. package/lib/commonjs/utils/NetworkUtil.js.map +0 -1
  243. package/lib/commonjs/utils/RouterUtil.js +0 -25
  244. package/lib/commonjs/utils/RouterUtil.js.map +0 -1
  245. package/lib/commonjs/utils/TypeUtil.js +0 -35
  246. package/lib/commonjs/utils/TypeUtil.js.map +0 -1
  247. package/lib/module/controllers/AccountController.js +0 -88
  248. package/lib/module/controllers/AccountController.js.map +0 -1
  249. package/lib/module/controllers/ConnectionController.js +0 -121
  250. package/lib/module/controllers/ConnectionController.js.map +0 -1
  251. package/lib/module/controllers/ConnectorController.js +0 -44
  252. package/lib/module/controllers/ConnectorController.js.map +0 -1
  253. package/lib/module/controllers/NetworkController.js +0 -85
  254. package/lib/module/controllers/NetworkController.js.map +0 -1
  255. package/lib/module/controllers/WebviewController.js +0 -47
  256. package/lib/module/controllers/WebviewController.js.map +0 -1
  257. package/lib/module/utils/ConnectionUtil.js +0 -27
  258. package/lib/module/utils/ConnectionUtil.js.map +0 -1
  259. package/lib/module/utils/NetworkUtil.js +0 -40
  260. package/lib/module/utils/NetworkUtil.js.map +0 -1
  261. package/lib/module/utils/RouterUtil.js +0 -19
  262. package/lib/module/utils/RouterUtil.js.map +0 -1
  263. package/lib/module/utils/TypeUtil.js +0 -28
  264. package/lib/module/utils/TypeUtil.js.map +0 -1
  265. package/lib/typescript/controllers/AccountController.d.ts +0 -33
  266. package/lib/typescript/controllers/AccountController.d.ts.map +0 -1
  267. package/lib/typescript/controllers/ConnectionController.d.ts +0 -66
  268. package/lib/typescript/controllers/ConnectionController.d.ts.map +0 -1
  269. package/lib/typescript/controllers/ConnectorController.d.ts +0 -18
  270. package/lib/typescript/controllers/ConnectorController.d.ts.map +0 -1
  271. package/lib/typescript/controllers/NetworkController.d.ts +0 -34
  272. package/lib/typescript/controllers/NetworkController.d.ts.map +0 -1
  273. package/lib/typescript/controllers/WebviewController.d.ts +0 -21
  274. package/lib/typescript/controllers/WebviewController.d.ts.map +0 -1
  275. package/lib/typescript/utils/ConnectionUtil.d.ts +0 -4
  276. package/lib/typescript/utils/ConnectionUtil.d.ts.map +0 -1
  277. package/lib/typescript/utils/NetworkUtil.d.ts +0 -8
  278. package/lib/typescript/utils/NetworkUtil.d.ts.map +0 -1
  279. package/lib/typescript/utils/RouterUtil.d.ts +0 -5
  280. package/lib/typescript/utils/RouterUtil.d.ts.map +0 -1
  281. package/lib/typescript/utils/TypeUtil.d.ts +0 -849
  282. package/lib/typescript/utils/TypeUtil.d.ts.map +0 -1
  283. package/src/controllers/AccountController.ts +0 -128
  284. package/src/controllers/ConnectionController.ts +0 -200
  285. package/src/controllers/ConnectorController.ts +0 -63
  286. package/src/controllers/NetworkController.ts +0 -120
  287. package/src/controllers/WebviewController.ts +0 -63
  288. package/src/utils/ConnectionUtil.ts +0 -27
  289. package/src/utils/NetworkUtil.ts +0 -33
  290. package/src/utils/RouterUtil.ts +0 -21
  291. package/src/utils/TypeUtil.ts +0 -1036
@@ -0,0 +1,80 @@
1
+ import type { SIWXMessage, CaipNetworkId } from '@reown/appkit-common-react-native';
2
+ import { ConnectionsController } from '../../controllers/ConnectionsController';
3
+ import { OptionsController } from '../../controllers/OptionsController';
4
+ import { CoreHelperUtil } from '../../utils/CoreHelperUtil';
5
+
6
+ export class ReownAuthenticationMessenger {
7
+ public resources?: SIWXMessage['resources'];
8
+
9
+ protected getNonce: (params: SIWXMessage.Input) => Promise<SIWXMessage['nonce']>;
10
+
11
+ constructor(params: ReownAuthenticationMessenger.ConstructorParams) {
12
+ this.getNonce = params.getNonce;
13
+ }
14
+
15
+ async createMessage(input: SIWXMessage.Input): Promise<SIWXMessage> {
16
+ const metadata = OptionsController.state.metadata;
17
+ const domain = CoreHelperUtil.getBundleId();
18
+ const params = {
19
+ accountAddress: input.accountAddress,
20
+ chainId: input.chainId,
21
+ version: '1',
22
+ domain: domain ?? 'Unknown Domain',
23
+ uri: metadata?.redirect?.universal ?? metadata?.redirect?.native ?? 'Unknown URI',
24
+ resources: this.resources,
25
+ nonce: await this.getNonce(input),
26
+ issuedAt: this.stringifyDate(new Date()),
27
+ statement: undefined,
28
+ expirationTime: undefined,
29
+ notBefore: undefined
30
+ };
31
+
32
+ const methods = {
33
+ toString: () => this.stringify(params)
34
+ } satisfies SIWXMessage.Methods;
35
+
36
+ return Object.assign(params, methods);
37
+ }
38
+
39
+ private stringify(params: SIWXMessage.Data): string {
40
+ const networkName = this.getNetworkName(params.chainId);
41
+
42
+ return [
43
+ `${params.domain} wants you to sign in with your ${networkName} account:`,
44
+ params.accountAddress,
45
+ params.statement ? `\n${params.statement}\n` : '',
46
+ `URI: ${params.uri}`,
47
+ `Version: ${params.version}`,
48
+ `Chain ID: ${params.chainId}`,
49
+ `Nonce: ${params.nonce}`,
50
+ params.issuedAt && `Issued At: ${params.issuedAt}`,
51
+ params.expirationTime && `Expiration Time: ${params.expirationTime}`,
52
+ params.notBefore && `Not Before: ${params.notBefore}`,
53
+ params.requestId && `Request ID: ${params.requestId}`,
54
+ params.resources?.length &&
55
+ params.resources.reduce((acc, resource) => `${acc}\n- ${resource}`, 'Resources:')
56
+ ]
57
+ .filter(line => typeof line === 'string')
58
+ .join('\n')
59
+ .trim();
60
+ }
61
+
62
+ private getNetworkName(chainId: CaipNetworkId): string | undefined {
63
+ const requestedNetworks = ConnectionsController.state.networks;
64
+
65
+ return (
66
+ requestedNetworks.find(network => network.caipNetworkId === chainId)?.name ||
67
+ 'Unknown Network'
68
+ );
69
+ }
70
+
71
+ private stringifyDate(date: Date): string {
72
+ return date.toISOString();
73
+ }
74
+ }
75
+
76
+ export namespace ReownAuthenticationMessenger {
77
+ export interface ConstructorParams {
78
+ getNonce: (params: SIWXMessage.Input) => Promise<SIWXMessage['nonce']>;
79
+ }
80
+ }
@@ -0,0 +1,2 @@
1
+ export * from './ReownAuthentication';
2
+ export * from './ReownAuthenticationMessenger';
package/src/index.ts CHANGED
@@ -7,26 +7,21 @@ 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';
13
+ ConnectionsController,
14
+ type ConnectionsControllerState
15
+ } from './controllers/ConnectionsController';
17
16
 
18
- export {
19
- ConnectionController,
20
- type ConnectionControllerClient,
21
- type ConnectionControllerState
22
- } from './controllers/ConnectionController';
17
+ export { SnackController, type SnackControllerState } from './controllers/SnackController';
23
18
 
24
19
  export {
25
- ConnectorController,
26
- type ConnectorControllerState
27
- } from './controllers/ConnectorController';
28
-
29
- export { SnackController, type SnackControllerState } from './controllers/SnackController';
20
+ LogController,
21
+ type LogControllerState,
22
+ type LogEntry,
23
+ type LogLevel
24
+ } from './controllers/LogController';
30
25
 
31
26
  export { ApiController, type ApiControllerState } from './controllers/ApiController';
32
27
 
@@ -57,17 +52,19 @@ export {
57
52
  export { SendController, type SendControllerState } from './controllers/SendController';
58
53
 
59
54
  export { OnRampController, type OnRampControllerState } from './controllers/OnRampController';
60
- export { WebviewController, type WebviewControllerState } from './controllers/WebviewController';
61
55
 
62
56
  // -- Utils -------------------------------------------------------------------
63
57
  export { ApiUtil } from './utils/ApiUtil';
64
58
  export { AssetUtil } from './utils/AssetUtil';
65
- export { ConnectionUtil } from './utils/ConnectionUtil';
66
59
  export { ConstantsUtil } from './utils/ConstantsUtil';
67
60
  export { CoreHelperUtil } from './utils/CoreHelperUtil';
68
61
  export { StorageUtil } from './utils/StorageUtil';
69
62
  export { EventUtil } from './utils/EventUtil';
70
- export { RouterUtil } from './utils/RouterUtil';
71
- export { NetworkUtil } from './utils/NetworkUtil';
63
+ export { WalletUtil } from './utils/WalletUtil';
64
+ export { LogUtils } from './utils/LogUtils';
65
+
66
+ // -- Features ----------------------------------------------------------------
67
+ export { ReownAuthentication } from './features/reown-authentication/ReownAuthentication';
68
+ export { ReownAuthenticationMessenger } from './features/reown-authentication/ReownAuthenticationMessenger';
72
69
 
73
- export type * from './utils/TypeUtil';
70
+ // Types are now exported from @reown/appkit-common-react-native
@@ -3,7 +3,7 @@ import { CoreHelperUtil } from './CoreHelperUtil';
3
3
 
4
4
  export const ApiUtil = {
5
5
  getOrigin() {
6
- return CoreHelperUtil.getBundleId();
6
+ return CoreHelperUtil.getBundleId() ?? 'react-native-unknown-origin';
7
7
  },
8
8
 
9
9
  getReactNativeVersion() {
@@ -1,40 +1,27 @@
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) {
4
+ getWalletImage(wallet?: WcWallet, walletImages?: Record<string, string>) {
6
5
  if (wallet?.image_url) {
7
6
  return wallet?.image_url;
8
7
  }
9
8
 
10
9
  if (wallet?.image_id) {
11
- return AssetController.state.walletImages[wallet.image_id];
10
+ return walletImages?.[wallet.image_id];
12
11
  }
13
12
 
14
13
  return undefined;
15
14
  },
16
15
 
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];
24
- }
25
-
26
- return undefined;
27
- },
28
-
29
- getConnectorImage(connector?: Connector) {
30
- if (connector?.imageUrl) {
31
- return connector.imageUrl;
16
+ getNetworkImage(network?: AppKitNetwork, networkImages?: Record<string, string>) {
17
+ if (!network) {
18
+ return undefined;
32
19
  }
33
20
 
34
- if (connector?.imageId) {
35
- return AssetController.state.connectorImages[connector.imageId];
21
+ if (network?.imageUrl) {
22
+ return network.imageUrl;
36
23
  }
37
24
 
38
- return undefined;
25
+ return networkImages?.[network?.id];
39
26
  }
40
27
  };
@@ -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,11 @@ 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
+ bip122: '0x'
41
+ } as const satisfies Record<ChainNamespace, string>,
39
42
 
40
43
  ONRAMP_ERROR_TYPES: OnRampErrorType,
41
44
 
@@ -129,6 +132,112 @@ export const ConstantsUtil = {
129
132
  'WNT'
130
133
  ],
131
134
 
135
+ //TODO: replace with supported chains from backend
136
+ ACTIVITY_SUPPORTED_CHAINS: [
137
+ // Arbitrum
138
+ 'eip155:42161',
139
+ // BNB Chain
140
+ 'eip155:56',
141
+ // Ethereum
142
+ 'eip155:1',
143
+ // Blast
144
+ 'eip155:81457',
145
+ // Ape Chain
146
+ 'eip155:99999',
147
+ // Avalanche
148
+ 'eip155:43114',
149
+ // Abstract
150
+ 'eip155:900',
151
+ // opBNB
152
+ 'eip155:204',
153
+ // Astar zkEVM
154
+ 'eip155:3776',
155
+ // ZKsync Era
156
+ 'eip155:324',
157
+ // Berachain
158
+ 'eip155:80085',
159
+ // BOB
160
+ 'eip155:60808',
161
+ // Cyber
162
+ 'eip155:7560',
163
+ // Degen Chain
164
+ 'eip155:666666666',
165
+ // Fraxtal
166
+ 'eip155:252',
167
+ // Gravity Alpha
168
+ 'eip155:10003',
169
+ // Ink
170
+ 'eip155:999',
171
+ // Lens
172
+ 'eip155:1348',
173
+ // Lisk
174
+ 'eip155:113',
175
+ // Mode
176
+ 'eip155:34443',
177
+ // Base
178
+ 'eip155:8453',
179
+ // Mantle
180
+ 'eip155:5000',
181
+ // Optimism
182
+ 'eip155:10',
183
+ // Polygon
184
+ 'eip155:137',
185
+ // Celo
186
+ 'eip155:42220',
187
+ // Manta Pacific
188
+ 'eip155:169',
189
+ // Gnosis Chain
190
+ 'eip155:100',
191
+ // Fantom
192
+ 'eip155:250',
193
+ // Ronin
194
+ 'eip155:2020',
195
+ // Linea
196
+ 'eip155:59144',
197
+ // Metis Andromeda
198
+ 'eip155:1088',
199
+ // Aurora
200
+ 'eip155:1313161554',
201
+ // XDC
202
+ 'eip155:50',
203
+ // Cronos zkEVM
204
+ 'eip155:1030',
205
+ // Polygon zkEVM
206
+ 'eip155:1101',
207
+ // Polynomial
208
+ 'eip155:80001',
209
+ // Rari
210
+ 'eip155:1380012617',
211
+ // Redstone
212
+ 'eip155:690',
213
+ // Scroll
214
+ 'eip155:534352',
215
+ // Sei
216
+ 'eip155:1329',
217
+ // Soneium
218
+ 'eip155:1499',
219
+ // Sonic
220
+ 'eip155:7007',
221
+ // Taiko
222
+ 'eip155:167000',
223
+ // Viction
224
+ 'eip155:88',
225
+ // Unichain
226
+ 'eip155:12345',
227
+ // Wonder
228
+ 'eip155:8787',
229
+ // X Layer
230
+ 'eip155:196',
231
+ // World Chain
232
+ 'eip155:2008',
233
+ // ZERϴ
234
+ 'eip155:77777',
235
+ // ZkLink Nova
236
+ 'eip155:810180',
237
+ // re.al
238
+ 'eip155:666'
239
+ ],
240
+
132
241
  SWAP_SUPPORTED_NETWORKS: [
133
242
  // Ethereum'
134
243
  'eip155:1',
@@ -156,6 +265,10 @@ export const ConstantsUtil = {
156
265
  'eip155:1313161554'
157
266
  ],
158
267
 
268
+ SEND_SUPPORTED_NAMESPACES: ['eip155', 'solana'],
269
+
270
+ ONRAMP_SUPPORTED_NAMESPACES: ['eip155', 'solana', 'bip122'],
271
+
159
272
  CONVERT_SLIPPAGE_TOLERANCE: 1,
160
273
 
161
274
  DEFAULT_FEATURES: defaultFeatures,
@@ -183,6 +296,8 @@ export const ConstantsUtil = {
183
296
  'eip155:7700': 'CANTO', // Canto
184
297
  'eip155:59144': 'ETH_LINEA', // Linea
185
298
  'eip155:1101': 'ETH_POLYGONZKEVM', // Polygon zkEVM
186
- 'eip155:196': 'XIN' // Mixin
299
+ 'eip155:196': 'XIN', // Mixin
300
+ 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp': 'SOL',
301
+ 'bip122:000000000019d6689c085ae165831e93': 'BTC'
187
302
  }
188
303
  };
@@ -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> {
@@ -40,6 +53,20 @@ export const CoreHelperUtil = {
40
53
  return Date.now() - lastRetry >= ConstantsUtil.ONE_SEC_MS;
41
54
  },
42
55
 
56
+ isCaipAddress(address?: unknown): address is CaipAddress {
57
+ if (typeof address !== 'string') {
58
+ return false;
59
+ }
60
+
61
+ const sections = address.split(':');
62
+ const namespace = sections[0];
63
+
64
+ return (
65
+ sections.filter(Boolean).length === 3 &&
66
+ (namespace as string) in CommonConstants.CHAIN_NAME_MAP
67
+ );
68
+ },
69
+
43
70
  getPairingExpiry() {
44
71
  return Date.now() + ConstantsUtil.FOUR_MINUTES_MS;
45
72
  },
@@ -48,8 +75,12 @@ export const CoreHelperUtil = {
48
75
  return caipAddress?.split(':')[1];
49
76
  },
50
77
 
51
- getPlainAddress(caipAddress: CaipAddress | undefined) {
52
- return caipAddress?.split(':')[2];
78
+ getPlainAddress(address: CaipAddress | string | undefined) {
79
+ if (this.isCaipAddress(address)) {
80
+ return address?.split(':')[2];
81
+ }
82
+
83
+ return address;
53
84
  },
54
85
 
55
86
  async wait(milliseconds: number) {
@@ -97,7 +128,7 @@ export const CoreHelperUtil = {
97
128
  };
98
129
  },
99
130
 
100
- formatUniversalUrl(appUrl: string, wcUri: string): LinkingRecord {
131
+ formatUniversalUrl(appUrl: string, wcUri: string, provider?: SocialProvider): LinkingRecord {
101
132
  if (CoreHelperUtil.isLinkModeURL(wcUri)) {
102
133
  return {
103
134
  redirect: wcUri,
@@ -115,7 +146,9 @@ export const CoreHelperUtil = {
115
146
  const encodedWcUrl = encodeURIComponent(wcUri);
116
147
 
117
148
  return {
118
- redirect: `${safeAppUrl}wc?uri=${encodedWcUrl}`,
149
+ redirect: provider
150
+ ? `${safeAppUrl}wc?uri=${encodedWcUrl}&provider=${provider}`
151
+ : `${safeAppUrl}wc?uri=${encodedWcUrl}`,
119
152
  href: safeAppUrl
120
153
  };
121
154
  },
@@ -144,8 +177,8 @@ export const CoreHelperUtil = {
144
177
  return formattedBalance ? `${formattedBalance} ${symbol}` : `0.000 ${symbol || ''}`;
145
178
  },
146
179
 
147
- isAddress(address: string, chain = 'eip155'): boolean {
148
- switch (chain) {
180
+ isAddress(address: string, namespace: ChainNamespace = 'eip155'): boolean {
181
+ switch (namespace) {
149
182
  case 'eip155':
150
183
  if (!/^(?:0x)?[0-9a-f]{40}$/iu.test(address)) {
151
184
  return false;
@@ -219,7 +252,7 @@ export const CoreHelperUtil = {
219
252
  });
220
253
  },
221
254
 
222
- getBundleId() {
255
+ getBundleId(): string | undefined {
223
256
  if ((global as any)?.Application?.applicationId) {
224
257
  return (global as any)?.Application?.applicationId;
225
258
  }
@@ -277,7 +310,7 @@ export const CoreHelperUtil = {
277
310
 
278
311
  let sum = 0;
279
312
  for (const item of array) {
280
- sum += item.value ?? 0;
313
+ sum += item?.value ?? 0;
281
314
  }
282
315
 
283
316
  const roundedNumber = sum.toFixed(2);
@@ -317,5 +350,28 @@ export const CoreHelperUtil = {
317
350
  func(...args);
318
351
  }, wait);
319
352
  };
353
+ },
354
+
355
+ generateSdkVersion(adapters: BlockchainAdapter[], version: string): SdkVersion {
356
+ const hasNoAdapters = adapters.length === 0;
357
+ const universalType: AdapterType = 'universal';
358
+
359
+ const adapterNames = hasNoAdapters
360
+ ? universalType
361
+ : adapters
362
+ .sort((a, b) => a.adapterType.localeCompare(b.adapterType))
363
+ .map(adapter => adapter.adapterType)
364
+ .join(',');
365
+
366
+ return `react-native-${adapterNames}-${version}`;
367
+ },
368
+
369
+ getRequestedCaipNetworkIds() {
370
+ const chains = OptionsController.state.requestedNetworks;
371
+ if (!chains) return [];
372
+
373
+ const requestedIds = chains.map(caipNetwork => caipNetwork.caipNetworkId);
374
+
375
+ return requestedIds;
320
376
  }
321
377
  };
@@ -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,5 @@
1
- import type { RequestCache } from './TypeUtil';
1
+ import type { RequestCache } from '@reown/appkit-common-react-native';
2
+ import { LogController } from '../controllers/LogController';
2
3
 
3
4
  // -- Types ----------------------------------------------------------------------
4
5
  interface Options {
@@ -8,7 +9,7 @@ interface Options {
8
9
 
9
10
  interface RequestArguments {
10
11
  path: string;
11
- headers?: HeadersInit_;
12
+ headers?: HeadersInit;
12
13
  params?: Record<string, string | undefined>;
13
14
  cache?: RequestCache;
14
15
  signal?: AbortSignal;
@@ -71,9 +72,13 @@ export class FetchUtil {
71
72
  return this.processResponse<T>(response);
72
73
  }
73
74
 
74
- public async fetchImage(path: string, headers?: Record<string, string>) {
75
+ public async fetchImage(
76
+ path: string,
77
+ headers?: Record<string, string>,
78
+ params?: Record<string, string>
79
+ ) {
75
80
  try {
76
- const url = this.createUrl({ path }).toString();
81
+ const url = this.createUrl({ path, params }).toString();
77
82
  const response = await fetch(url, { headers });
78
83
  const blob = await response.blob();
79
84
  const reader = new FileReader();
@@ -87,7 +92,7 @@ export class FetchUtil {
87
92
  }
88
93
  }
89
94
 
90
- private createUrl({ path, params }: RequestArguments) {
95
+ public createUrl({ path, params }: RequestArguments) {
91
96
  let fullUrl: string;
92
97
 
93
98
  const isAbsoluteUrl = path.startsWith('http://') || path.startsWith('https://');
@@ -130,14 +135,18 @@ export class FetchUtil {
130
135
  if (response.headers.get('content-type')?.includes('application/json')) {
131
136
  try {
132
137
  const errorData = await response.json();
138
+ LogController.sendError(JSON.stringify(errorData), 'FetchUtil.ts', 'processResponse');
133
139
 
134
140
  return Promise.reject(errorData);
135
141
  } catch (jsonError) {
142
+ LogController.sendError(jsonError, 'FetchUtil.ts', 'processResponse');
143
+
136
144
  return Promise.reject(`Code: ${response.status} - ${response.statusText}`);
137
145
  }
138
146
  }
139
147
 
140
148
  const errorText = await response.text();
149
+ LogController.sendError(errorText, 'FetchUtil.ts', 'processResponse');
141
150
 
142
151
  return Promise.reject(`Code: ${response.status} - ${response.statusText} - ${errorText}`);
143
152
  }