@reown/appkit-react-native 0.0.0-fix-ui-changes-20250829182619 → 0.0.0-fix-singleton-appkit-20251001153745

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 (437) hide show
  1. package/lib/commonjs/AppKit.js +147 -102
  2. package/lib/commonjs/AppKit.js.map +1 -1
  3. package/lib/commonjs/AppKitContext.js +16 -10
  4. package/lib/commonjs/AppKitContext.js.map +1 -1
  5. package/lib/commonjs/connectors/WalletConnectConnector.js +36 -63
  6. package/lib/commonjs/connectors/WalletConnectConnector.js.map +1 -1
  7. package/lib/commonjs/hooks/useAccount.js +9 -4
  8. package/lib/commonjs/hooks/useAccount.js.map +1 -1
  9. package/lib/commonjs/hooks/useAppKit.js +12 -12
  10. package/lib/commonjs/hooks/useAppKit.js.map +1 -1
  11. package/lib/commonjs/hooks/useAppKitLogs.js +88 -0
  12. package/lib/commonjs/hooks/useAppKitLogs.js.map +1 -0
  13. package/lib/commonjs/hooks/useAppKitState.js +32 -0
  14. package/lib/commonjs/hooks/useAppKitState.js.map +1 -0
  15. package/lib/commonjs/hooks/useProvider.js +14 -8
  16. package/lib/commonjs/hooks/useProvider.js.map +1 -1
  17. package/lib/commonjs/hooks/useWalletInfo.js +6 -4
  18. package/lib/commonjs/hooks/useWalletInfo.js.map +1 -1
  19. package/lib/commonjs/index.js +21 -0
  20. package/lib/commonjs/index.js.map +1 -1
  21. package/lib/commonjs/modal/w3m-modal/index.js +18 -2
  22. package/lib/commonjs/modal/w3m-modal/index.js.map +1 -1
  23. package/lib/commonjs/modal/w3m-router/index.js +21 -23
  24. package/lib/commonjs/modal/w3m-router/index.js.map +1 -1
  25. package/lib/commonjs/partials/w3m-account-activity/index.js +1 -1
  26. package/lib/commonjs/partials/w3m-account-activity/index.js.map +1 -1
  27. package/lib/commonjs/partials/w3m-account-wallet-features/index.js +1 -1
  28. package/lib/commonjs/partials/w3m-account-wallet-features/index.js.map +1 -1
  29. package/lib/commonjs/partials/w3m-all-wallets-list/components/Loading.js +4 -2
  30. package/lib/commonjs/partials/w3m-all-wallets-list/components/Loading.js.map +1 -1
  31. package/lib/commonjs/partials/w3m-all-wallets-list/components/WalletItem.js +6 -3
  32. package/lib/commonjs/partials/w3m-all-wallets-list/components/WalletItem.js.map +1 -1
  33. package/lib/commonjs/partials/w3m-all-wallets-list/components/WalletList.js +13 -5
  34. package/lib/commonjs/partials/w3m-all-wallets-list/components/WalletList.js.map +1 -1
  35. package/lib/commonjs/partials/w3m-all-wallets-list/index.js +14 -3
  36. package/lib/commonjs/partials/w3m-all-wallets-list/index.js.map +1 -1
  37. package/lib/commonjs/partials/w3m-all-wallets-list/styles.js +3 -0
  38. package/lib/commonjs/partials/w3m-all-wallets-list/styles.js.map +1 -1
  39. package/lib/commonjs/partials/w3m-all-wallets-search/index.js +21 -12
  40. package/lib/commonjs/partials/w3m-all-wallets-search/index.js.map +1 -1
  41. package/lib/commonjs/partials/w3m-all-wallets-search/styles.js +3 -1
  42. package/lib/commonjs/partials/w3m-all-wallets-search/styles.js.map +1 -1
  43. package/lib/commonjs/partials/w3m-connecting-mobile/index.js +21 -1
  44. package/lib/commonjs/partials/w3m-connecting-mobile/index.js.map +1 -1
  45. package/lib/commonjs/partials/w3m-connecting-mobile/styles.js +2 -1
  46. package/lib/commonjs/partials/w3m-connecting-mobile/styles.js.map +1 -1
  47. package/lib/commonjs/partials/w3m-connecting-qrcode/index.js +6 -2
  48. package/lib/commonjs/partials/w3m-connecting-qrcode/index.js.map +1 -1
  49. package/lib/commonjs/partials/w3m-connecting-web/index.js +10 -3
  50. package/lib/commonjs/partials/w3m-connecting-web/index.js.map +1 -1
  51. package/lib/commonjs/partials/w3m-connecting-web/styles.js +3 -0
  52. package/lib/commonjs/partials/w3m-connecting-web/styles.js.map +1 -1
  53. package/lib/commonjs/partials/w3m-header/index.js +5 -4
  54. package/lib/commonjs/partials/w3m-header/index.js.map +1 -1
  55. package/lib/commonjs/partials/w3m-selector-modal/index.js +10 -2
  56. package/lib/commonjs/partials/w3m-selector-modal/index.js.map +1 -1
  57. package/lib/commonjs/utils/SIWXUtil.js +281 -0
  58. package/lib/commonjs/utils/SIWXUtil.js.map +1 -0
  59. package/lib/commonjs/views/w3m-account-default-view/index.js +6 -5
  60. package/lib/commonjs/views/w3m-account-default-view/index.js.map +1 -1
  61. package/lib/commonjs/views/w3m-account-view/index.js +2 -2
  62. package/lib/commonjs/views/w3m-account-view/index.js.map +1 -1
  63. package/lib/commonjs/views/w3m-account-view/styles.js +0 -5
  64. package/lib/commonjs/views/w3m-account-view/styles.js.map +1 -1
  65. package/lib/commonjs/views/w3m-all-wallets-view/index.js +7 -4
  66. package/lib/commonjs/views/w3m-all-wallets-view/index.js.map +1 -1
  67. package/lib/commonjs/views/w3m-connect-socials-view/index.js +2 -2
  68. package/lib/commonjs/views/w3m-connect-socials-view/index.js.map +1 -1
  69. package/lib/commonjs/views/w3m-connect-view/components/all-wallet-list.js +20 -13
  70. package/lib/commonjs/views/w3m-connect-view/components/all-wallet-list.js.map +1 -1
  71. package/lib/commonjs/views/w3m-connect-view/index.js +9 -14
  72. package/lib/commonjs/views/w3m-connect-view/index.js.map +1 -1
  73. package/lib/commonjs/views/w3m-connecting-external-view/index.js +21 -1
  74. package/lib/commonjs/views/w3m-connecting-external-view/index.js.map +1 -1
  75. package/lib/commonjs/views/w3m-connecting-external-view/styles.js +1 -1
  76. package/lib/commonjs/views/w3m-connecting-external-view/styles.js.map +1 -1
  77. package/lib/commonjs/views/w3m-connecting-social-view/index.js +2 -1
  78. package/lib/commonjs/views/w3m-connecting-social-view/index.js.map +1 -1
  79. package/lib/commonjs/views/w3m-connecting-view/index.js +12 -31
  80. package/lib/commonjs/views/w3m-connecting-view/index.js.map +1 -1
  81. package/lib/commonjs/views/w3m-get-wallet-view/index.js +1 -1
  82. package/lib/commonjs/views/w3m-get-wallet-view/index.js.map +1 -1
  83. package/lib/commonjs/views/w3m-network-switch-view/index.js +62 -80
  84. package/lib/commonjs/views/w3m-network-switch-view/index.js.map +1 -1
  85. package/lib/commonjs/views/w3m-networks-view/index.js +19 -11
  86. package/lib/commonjs/views/w3m-networks-view/index.js.map +1 -1
  87. package/lib/commonjs/views/w3m-onramp-checkout-view/index.js +1 -1
  88. package/lib/commonjs/views/w3m-onramp-checkout-view/index.js.map +1 -1
  89. package/lib/commonjs/views/w3m-onramp-loading-view/styles.js +1 -1
  90. package/lib/commonjs/views/w3m-onramp-loading-view/styles.js.map +1 -1
  91. package/lib/commonjs/views/w3m-onramp-settings-view/components/Country.js +3 -1
  92. package/lib/commonjs/views/w3m-onramp-settings-view/components/Country.js.map +1 -1
  93. package/lib/commonjs/views/w3m-onramp-settings-view/index.js +11 -4
  94. package/lib/commonjs/views/w3m-onramp-settings-view/index.js.map +1 -1
  95. package/lib/commonjs/views/w3m-onramp-settings-view/utils.js +17 -1
  96. package/lib/commonjs/views/w3m-onramp-settings-view/utils.js.map +1 -1
  97. package/lib/commonjs/views/w3m-onramp-transaction-view/index.js +1 -1
  98. package/lib/commonjs/views/w3m-onramp-transaction-view/index.js.map +1 -1
  99. package/lib/commonjs/views/w3m-onramp-view/components/Header.js +1 -1
  100. package/lib/commonjs/views/w3m-onramp-view/components/LoadingView.js +1 -1
  101. package/lib/commonjs/views/w3m-onramp-view/components/LoadingView.js.map +1 -1
  102. package/lib/commonjs/views/w3m-onramp-view/index.js +3 -3
  103. package/lib/commonjs/views/w3m-onramp-view/index.js.map +1 -1
  104. package/lib/commonjs/views/w3m-siwx-sign-view/index.js +110 -0
  105. package/lib/commonjs/views/w3m-siwx-sign-view/index.js.map +1 -0
  106. package/lib/commonjs/views/{w3m-connecting-siwe-view → w3m-siwx-sign-view}/styles.js +0 -7
  107. package/lib/commonjs/views/w3m-siwx-sign-view/styles.js.map +1 -0
  108. package/lib/commonjs/views/w3m-swap-preview-view/index.js +1 -1
  109. package/lib/commonjs/views/w3m-swap-preview-view/index.js.map +1 -1
  110. package/lib/commonjs/views/w3m-swap-view/components/select-token-modal/index.js +1 -2
  111. package/lib/commonjs/views/w3m-swap-view/components/select-token-modal/index.js.map +1 -1
  112. package/lib/commonjs/views/w3m-swap-view/index.js +9 -6
  113. package/lib/commonjs/views/w3m-swap-view/index.js.map +1 -1
  114. package/lib/commonjs/views/w3m-unsupported-chain-view/index.js +6 -12
  115. package/lib/commonjs/views/w3m-unsupported-chain-view/index.js.map +1 -1
  116. package/lib/commonjs/views/w3m-unsupported-chain-view/styles.js +1 -1
  117. package/lib/commonjs/views/w3m-unsupported-chain-view/styles.js.map +1 -1
  118. package/lib/commonjs/views/w3m-upgrade-email-wallet-view/index.js +3 -5
  119. package/lib/commonjs/views/w3m-upgrade-email-wallet-view/index.js.map +1 -1
  120. package/lib/commonjs/views/w3m-wallet-receive-view/index.js +1 -1
  121. package/lib/commonjs/views/w3m-wallet-receive-view/index.js.map +1 -1
  122. package/lib/commonjs/views/w3m-wallet-send-preview-view/index.js +1 -1
  123. package/lib/commonjs/views/w3m-wallet-send-preview-view/index.js.map +1 -1
  124. package/lib/commonjs/views/w3m-wallet-send-select-token-view/index.js +1 -1
  125. package/lib/commonjs/views/w3m-wallet-send-select-token-view/index.js.map +1 -1
  126. package/lib/commonjs/views/w3m-wallet-send-view/index.js +8 -5
  127. package/lib/commonjs/views/w3m-wallet-send-view/index.js.map +1 -1
  128. package/lib/commonjs/views/w3m-what-is-a-network-view/index.js +1 -1
  129. package/lib/commonjs/views/w3m-what-is-a-network-view/index.js.map +1 -1
  130. package/lib/commonjs/views/w3m-what-is-a-wallet-view/index.js +2 -2
  131. package/lib/commonjs/views/w3m-what-is-a-wallet-view/index.js.map +1 -1
  132. package/lib/module/AppKit.js +147 -102
  133. package/lib/module/AppKit.js.map +1 -1
  134. package/lib/module/AppKitContext.js +17 -11
  135. package/lib/module/AppKitContext.js.map +1 -1
  136. package/lib/module/connectors/WalletConnectConnector.js +34 -62
  137. package/lib/module/connectors/WalletConnectConnector.js.map +1 -1
  138. package/lib/module/hooks/useAccount.js +9 -5
  139. package/lib/module/hooks/useAccount.js.map +1 -1
  140. package/lib/module/hooks/useAppKit.js +13 -13
  141. package/lib/module/hooks/useAppKit.js.map +1 -1
  142. package/lib/module/hooks/useAppKitLogs.js +83 -0
  143. package/lib/module/hooks/useAppKitLogs.js.map +1 -0
  144. package/lib/module/hooks/useAppKitState.js +27 -0
  145. package/lib/module/hooks/useAppKitState.js.map +1 -0
  146. package/lib/module/hooks/useProvider.js +13 -8
  147. package/lib/module/hooks/useProvider.js.map +1 -1
  148. package/lib/module/hooks/useWalletInfo.js +6 -4
  149. package/lib/module/hooks/useWalletInfo.js.map +1 -1
  150. package/lib/module/index.js +5 -0
  151. package/lib/module/index.js.map +1 -1
  152. package/lib/module/modal/w3m-modal/index.js +18 -2
  153. package/lib/module/modal/w3m-modal/index.js.map +1 -1
  154. package/lib/module/modal/w3m-router/index.js +22 -24
  155. package/lib/module/modal/w3m-router/index.js.map +1 -1
  156. package/lib/module/partials/w3m-account-activity/index.js +1 -1
  157. package/lib/module/partials/w3m-account-activity/index.js.map +1 -1
  158. package/lib/module/partials/w3m-account-wallet-features/index.js +1 -1
  159. package/lib/module/partials/w3m-account-wallet-features/index.js.map +1 -1
  160. package/lib/module/partials/w3m-all-wallets-list/components/Loading.js +4 -2
  161. package/lib/module/partials/w3m-all-wallets-list/components/Loading.js.map +1 -1
  162. package/lib/module/partials/w3m-all-wallets-list/components/WalletItem.js +6 -3
  163. package/lib/module/partials/w3m-all-wallets-list/components/WalletItem.js.map +1 -1
  164. package/lib/module/partials/w3m-all-wallets-list/components/WalletList.js +13 -5
  165. package/lib/module/partials/w3m-all-wallets-list/components/WalletList.js.map +1 -1
  166. package/lib/module/partials/w3m-all-wallets-list/index.js +15 -4
  167. package/lib/module/partials/w3m-all-wallets-list/index.js.map +1 -1
  168. package/lib/module/partials/w3m-all-wallets-list/styles.js +3 -0
  169. package/lib/module/partials/w3m-all-wallets-list/styles.js.map +1 -1
  170. package/lib/module/partials/w3m-all-wallets-search/index.js +22 -13
  171. package/lib/module/partials/w3m-all-wallets-search/index.js.map +1 -1
  172. package/lib/module/partials/w3m-all-wallets-search/styles.js +3 -1
  173. package/lib/module/partials/w3m-all-wallets-search/styles.js.map +1 -1
  174. package/lib/module/partials/w3m-connecting-mobile/index.js +22 -2
  175. package/lib/module/partials/w3m-connecting-mobile/index.js.map +1 -1
  176. package/lib/module/partials/w3m-connecting-mobile/styles.js +2 -1
  177. package/lib/module/partials/w3m-connecting-mobile/styles.js.map +1 -1
  178. package/lib/module/partials/w3m-connecting-qrcode/index.js +7 -3
  179. package/lib/module/partials/w3m-connecting-qrcode/index.js.map +1 -1
  180. package/lib/module/partials/w3m-connecting-web/index.js +11 -4
  181. package/lib/module/partials/w3m-connecting-web/index.js.map +1 -1
  182. package/lib/module/partials/w3m-connecting-web/styles.js +3 -0
  183. package/lib/module/partials/w3m-connecting-web/styles.js.map +1 -1
  184. package/lib/module/partials/w3m-header/index.js +5 -4
  185. package/lib/module/partials/w3m-header/index.js.map +1 -1
  186. package/lib/module/partials/w3m-selector-modal/index.js +10 -2
  187. package/lib/module/partials/w3m-selector-modal/index.js.map +1 -1
  188. package/lib/module/utils/SIWXUtil.js +278 -0
  189. package/lib/module/utils/SIWXUtil.js.map +1 -0
  190. package/lib/module/views/w3m-account-default-view/index.js +7 -6
  191. package/lib/module/views/w3m-account-default-view/index.js.map +1 -1
  192. package/lib/module/views/w3m-account-view/index.js +2 -2
  193. package/lib/module/views/w3m-account-view/index.js.map +1 -1
  194. package/lib/module/views/w3m-account-view/styles.js +1 -6
  195. package/lib/module/views/w3m-account-view/styles.js.map +1 -1
  196. package/lib/module/views/w3m-all-wallets-view/index.js +7 -4
  197. package/lib/module/views/w3m-all-wallets-view/index.js.map +1 -1
  198. package/lib/module/views/w3m-connect-socials-view/index.js +2 -2
  199. package/lib/module/views/w3m-connect-socials-view/index.js.map +1 -1
  200. package/lib/module/views/w3m-connect-view/components/all-wallet-list.js +21 -14
  201. package/lib/module/views/w3m-connect-view/components/all-wallet-list.js.map +1 -1
  202. package/lib/module/views/w3m-connect-view/index.js +9 -14
  203. package/lib/module/views/w3m-connect-view/index.js.map +1 -1
  204. package/lib/module/views/w3m-connecting-external-view/index.js +22 -2
  205. package/lib/module/views/w3m-connecting-external-view/index.js.map +1 -1
  206. package/lib/module/views/w3m-connecting-external-view/styles.js +1 -1
  207. package/lib/module/views/w3m-connecting-external-view/styles.js.map +1 -1
  208. package/lib/module/views/w3m-connecting-social-view/index.js +3 -2
  209. package/lib/module/views/w3m-connecting-social-view/index.js.map +1 -1
  210. package/lib/module/views/w3m-connecting-view/index.js +14 -33
  211. package/lib/module/views/w3m-connecting-view/index.js.map +1 -1
  212. package/lib/module/views/w3m-get-wallet-view/index.js +1 -1
  213. package/lib/module/views/w3m-get-wallet-view/index.js.map +1 -1
  214. package/lib/module/views/w3m-network-switch-view/index.js +66 -85
  215. package/lib/module/views/w3m-network-switch-view/index.js.map +1 -1
  216. package/lib/module/views/w3m-networks-view/index.js +18 -11
  217. package/lib/module/views/w3m-networks-view/index.js.map +1 -1
  218. package/lib/module/views/w3m-onramp-checkout-view/index.js +1 -1
  219. package/lib/module/views/w3m-onramp-checkout-view/index.js.map +1 -1
  220. package/lib/module/views/w3m-onramp-loading-view/styles.js +1 -1
  221. package/lib/module/views/w3m-onramp-loading-view/styles.js.map +1 -1
  222. package/lib/module/views/w3m-onramp-settings-view/components/Country.js +3 -1
  223. package/lib/module/views/w3m-onramp-settings-view/components/Country.js.map +1 -1
  224. package/lib/module/views/w3m-onramp-settings-view/index.js +12 -5
  225. package/lib/module/views/w3m-onramp-settings-view/index.js.map +1 -1
  226. package/lib/module/views/w3m-onramp-settings-view/utils.js +14 -0
  227. package/lib/module/views/w3m-onramp-settings-view/utils.js.map +1 -1
  228. package/lib/module/views/w3m-onramp-transaction-view/index.js +1 -1
  229. package/lib/module/views/w3m-onramp-transaction-view/index.js.map +1 -1
  230. package/lib/module/views/w3m-onramp-view/components/Header.js +1 -1
  231. package/lib/module/views/w3m-onramp-view/components/LoadingView.js +1 -1
  232. package/lib/module/views/w3m-onramp-view/components/LoadingView.js.map +1 -1
  233. package/lib/module/views/w3m-onramp-view/index.js +3 -3
  234. package/lib/module/views/w3m-onramp-view/index.js.map +1 -1
  235. package/lib/module/views/w3m-siwx-sign-view/index.js +105 -0
  236. package/lib/module/views/w3m-siwx-sign-view/index.js.map +1 -0
  237. package/lib/module/views/{w3m-connecting-siwe-view → w3m-siwx-sign-view}/styles.js +0 -7
  238. package/lib/module/views/w3m-siwx-sign-view/styles.js.map +1 -0
  239. package/lib/module/views/w3m-swap-preview-view/index.js +1 -1
  240. package/lib/module/views/w3m-swap-preview-view/index.js.map +1 -1
  241. package/lib/module/views/w3m-swap-view/components/select-token-modal/index.js +1 -2
  242. package/lib/module/views/w3m-swap-view/components/select-token-modal/index.js.map +1 -1
  243. package/lib/module/views/w3m-swap-view/index.js +9 -6
  244. package/lib/module/views/w3m-swap-view/index.js.map +1 -1
  245. package/lib/module/views/w3m-unsupported-chain-view/index.js +8 -14
  246. package/lib/module/views/w3m-unsupported-chain-view/index.js.map +1 -1
  247. package/lib/module/views/w3m-unsupported-chain-view/styles.js +1 -1
  248. package/lib/module/views/w3m-unsupported-chain-view/styles.js.map +1 -1
  249. package/lib/module/views/w3m-upgrade-email-wallet-view/index.js +4 -6
  250. package/lib/module/views/w3m-upgrade-email-wallet-view/index.js.map +1 -1
  251. package/lib/module/views/w3m-wallet-receive-view/index.js +1 -1
  252. package/lib/module/views/w3m-wallet-receive-view/index.js.map +1 -1
  253. package/lib/module/views/w3m-wallet-send-preview-view/index.js +1 -1
  254. package/lib/module/views/w3m-wallet-send-preview-view/index.js.map +1 -1
  255. package/lib/module/views/w3m-wallet-send-select-token-view/index.js +1 -1
  256. package/lib/module/views/w3m-wallet-send-select-token-view/index.js.map +1 -1
  257. package/lib/module/views/w3m-wallet-send-view/index.js +8 -5
  258. package/lib/module/views/w3m-wallet-send-view/index.js.map +1 -1
  259. package/lib/module/views/w3m-what-is-a-network-view/index.js +1 -1
  260. package/lib/module/views/w3m-what-is-a-network-view/index.js.map +1 -1
  261. package/lib/module/views/w3m-what-is-a-wallet-view/index.js +2 -2
  262. package/lib/module/views/w3m-what-is-a-wallet-view/index.js.map +1 -1
  263. package/lib/typescript/AppKit.d.ts +13 -4
  264. package/lib/typescript/AppKit.d.ts.map +1 -1
  265. package/lib/typescript/AppKitContext.d.ts +1 -1
  266. package/lib/typescript/AppKitContext.d.ts.map +1 -1
  267. package/lib/typescript/connectors/WalletConnectConnector.d.ts.map +1 -1
  268. package/lib/typescript/hooks/useAccount.d.ts +33 -1
  269. package/lib/typescript/hooks/useAccount.d.ts.map +1 -1
  270. package/lib/typescript/hooks/useAppKit.d.ts +2 -2
  271. package/lib/typescript/hooks/useAppKit.d.ts.map +1 -1
  272. package/lib/typescript/hooks/useAppKitEvents.d.ts +75 -21
  273. package/lib/typescript/hooks/useAppKitEvents.d.ts.map +1 -1
  274. package/lib/typescript/hooks/useAppKitLogs.d.ts +57 -0
  275. package/lib/typescript/hooks/useAppKitLogs.d.ts.map +1 -0
  276. package/lib/typescript/hooks/useAppKitState.d.ts +38 -0
  277. package/lib/typescript/hooks/useAppKitState.d.ts.map +1 -0
  278. package/lib/typescript/hooks/useProvider.d.ts.map +1 -1
  279. package/lib/typescript/hooks/useWalletInfo.d.ts +1 -0
  280. package/lib/typescript/hooks/useWalletInfo.d.ts.map +1 -1
  281. package/lib/typescript/index.d.ts +5 -0
  282. package/lib/typescript/index.d.ts.map +1 -1
  283. package/lib/typescript/modal/w3m-modal/index.d.ts.map +1 -1
  284. package/lib/typescript/modal/w3m-router/index.d.ts.map +1 -1
  285. package/lib/typescript/partials/w3m-all-wallets-list/components/Loading.d.ts +3 -1
  286. package/lib/typescript/partials/w3m-all-wallets-list/components/Loading.d.ts.map +1 -1
  287. package/lib/typescript/partials/w3m-all-wallets-list/components/WalletItem.d.ts +4 -2
  288. package/lib/typescript/partials/w3m-all-wallets-list/components/WalletItem.d.ts.map +1 -1
  289. package/lib/typescript/partials/w3m-all-wallets-list/components/WalletList.d.ts +5 -2
  290. package/lib/typescript/partials/w3m-all-wallets-list/components/WalletList.d.ts.map +1 -1
  291. package/lib/typescript/partials/w3m-all-wallets-list/index.d.ts +1 -1
  292. package/lib/typescript/partials/w3m-all-wallets-list/index.d.ts.map +1 -1
  293. package/lib/typescript/partials/w3m-all-wallets-list/styles.d.ts +3 -0
  294. package/lib/typescript/partials/w3m-all-wallets-list/styles.d.ts.map +1 -1
  295. package/lib/typescript/partials/w3m-all-wallets-search/index.d.ts +1 -1
  296. package/lib/typescript/partials/w3m-all-wallets-search/index.d.ts.map +1 -1
  297. package/lib/typescript/partials/w3m-all-wallets-search/styles.d.ts +2 -0
  298. package/lib/typescript/partials/w3m-all-wallets-search/styles.d.ts.map +1 -1
  299. package/lib/typescript/partials/w3m-connecting-mobile/index.d.ts.map +1 -1
  300. package/lib/typescript/partials/w3m-connecting-mobile/styles.d.ts +1 -0
  301. package/lib/typescript/partials/w3m-connecting-mobile/styles.d.ts.map +1 -1
  302. package/lib/typescript/partials/w3m-connecting-qrcode/index.d.ts.map +1 -1
  303. package/lib/typescript/partials/w3m-connecting-web/index.d.ts.map +1 -1
  304. package/lib/typescript/partials/w3m-connecting-web/styles.d.ts +3 -0
  305. package/lib/typescript/partials/w3m-connecting-web/styles.d.ts.map +1 -1
  306. package/lib/typescript/partials/w3m-header/index.d.ts.map +1 -1
  307. package/lib/typescript/partials/w3m-selector-modal/index.d.ts +3 -1
  308. package/lib/typescript/partials/w3m-selector-modal/index.d.ts.map +1 -1
  309. package/lib/typescript/types.d.ts +6 -7
  310. package/lib/typescript/types.d.ts.map +1 -1
  311. package/lib/typescript/utils/SIWXUtil.d.ts +34 -0
  312. package/lib/typescript/utils/SIWXUtil.d.ts.map +1 -0
  313. package/lib/typescript/views/w3m-account-default-view/index.d.ts.map +1 -1
  314. package/lib/typescript/views/w3m-account-view/index.d.ts.map +1 -1
  315. package/lib/typescript/views/w3m-account-view/styles.d.ts +0 -3
  316. package/lib/typescript/views/w3m-account-view/styles.d.ts.map +1 -1
  317. package/lib/typescript/views/w3m-all-wallets-view/index.d.ts.map +1 -1
  318. package/lib/typescript/views/w3m-connect-view/components/all-wallet-list.d.ts +1 -1
  319. package/lib/typescript/views/w3m-connect-view/components/all-wallet-list.d.ts.map +1 -1
  320. package/lib/typescript/views/w3m-connect-view/index.d.ts.map +1 -1
  321. package/lib/typescript/views/w3m-connecting-external-view/index.d.ts.map +1 -1
  322. package/lib/typescript/views/w3m-connecting-social-view/index.d.ts.map +1 -1
  323. package/lib/typescript/views/w3m-connecting-view/index.d.ts.map +1 -1
  324. package/lib/typescript/views/w3m-network-switch-view/index.d.ts.map +1 -1
  325. package/lib/typescript/views/w3m-networks-view/index.d.ts.map +1 -1
  326. package/lib/typescript/views/w3m-onramp-settings-view/components/Country.d.ts +2 -1
  327. package/lib/typescript/views/w3m-onramp-settings-view/components/Country.d.ts.map +1 -1
  328. package/lib/typescript/views/w3m-onramp-settings-view/index.d.ts.map +1 -1
  329. package/lib/typescript/views/w3m-onramp-settings-view/utils.d.ts +2 -0
  330. package/lib/typescript/views/w3m-onramp-settings-view/utils.d.ts.map +1 -1
  331. package/lib/typescript/views/w3m-siwx-sign-view/index.d.ts +2 -0
  332. package/lib/typescript/views/w3m-siwx-sign-view/index.d.ts.map +1 -0
  333. package/lib/typescript/views/{w3m-connecting-siwe-view → w3m-siwx-sign-view}/styles.d.ts +0 -7
  334. package/lib/typescript/views/w3m-siwx-sign-view/styles.d.ts.map +1 -0
  335. package/lib/typescript/views/w3m-swap-view/components/select-token-modal/index.d.ts.map +1 -1
  336. package/lib/typescript/views/w3m-unsupported-chain-view/index.d.ts.map +1 -1
  337. package/lib/typescript/views/w3m-upgrade-email-wallet-view/index.d.ts.map +1 -1
  338. package/lib/typescript/views/w3m-wallet-send-view/index.d.ts.map +1 -1
  339. package/package.json +10 -9
  340. package/src/AppKit.ts +161 -116
  341. package/src/AppKitContext.tsx +19 -11
  342. package/src/connectors/WalletConnectConnector.ts +47 -75
  343. package/src/hooks/useAccount.ts +15 -5
  344. package/src/hooks/useAppKit.ts +19 -13
  345. package/src/hooks/useAppKitLogs.ts +129 -0
  346. package/src/hooks/useAppKitState.ts +26 -0
  347. package/src/hooks/useProvider.ts +11 -5
  348. package/src/hooks/useWalletInfo.ts +5 -2
  349. package/src/index.ts +12 -0
  350. package/src/modal/w3m-modal/index.tsx +12 -2
  351. package/src/modal/w3m-router/index.tsx +17 -20
  352. package/src/partials/w3m-account-activity/index.tsx +1 -1
  353. package/src/partials/w3m-account-wallet-features/index.tsx +1 -1
  354. package/src/partials/w3m-all-wallets-list/components/Loading.tsx +10 -2
  355. package/src/partials/w3m-all-wallets-list/components/WalletItem.tsx +13 -3
  356. package/src/partials/w3m-all-wallets-list/components/WalletList.tsx +15 -6
  357. package/src/partials/w3m-all-wallets-list/index.tsx +21 -10
  358. package/src/partials/w3m-all-wallets-list/styles.ts +3 -0
  359. package/src/partials/w3m-all-wallets-search/index.tsx +28 -16
  360. package/src/partials/w3m-all-wallets-search/styles.ts +3 -1
  361. package/src/partials/w3m-connecting-mobile/index.tsx +24 -2
  362. package/src/partials/w3m-connecting-mobile/styles.ts +2 -1
  363. package/src/partials/w3m-connecting-qrcode/index.tsx +9 -3
  364. package/src/partials/w3m-connecting-web/index.tsx +13 -5
  365. package/src/partials/w3m-connecting-web/styles.ts +3 -0
  366. package/src/partials/w3m-header/index.tsx +7 -4
  367. package/src/partials/w3m-selector-modal/index.tsx +10 -2
  368. package/src/types.ts +7 -8
  369. package/src/utils/SIWXUtil.ts +364 -0
  370. package/src/views/w3m-account-default-view/index.tsx +8 -6
  371. package/src/views/w3m-account-view/index.tsx +1 -9
  372. package/src/views/w3m-account-view/styles.ts +1 -4
  373. package/src/views/w3m-all-wallets-view/index.tsx +11 -4
  374. package/src/views/w3m-connect-socials-view/index.tsx +2 -2
  375. package/src/views/w3m-connect-view/components/all-wallet-list.tsx +31 -22
  376. package/src/views/w3m-connect-view/index.tsx +8 -9
  377. package/src/views/w3m-connecting-external-view/index.tsx +24 -2
  378. package/src/views/w3m-connecting-external-view/styles.ts +1 -1
  379. package/src/views/w3m-connecting-social-view/index.tsx +4 -2
  380. package/src/views/w3m-connecting-view/index.tsx +16 -33
  381. package/src/views/w3m-get-wallet-view/index.tsx +1 -1
  382. package/src/views/w3m-network-switch-view/index.tsx +72 -98
  383. package/src/views/w3m-networks-view/index.tsx +20 -14
  384. package/src/views/w3m-onramp-checkout-view/index.tsx +1 -1
  385. package/src/views/w3m-onramp-loading-view/styles.ts +1 -1
  386. package/src/views/w3m-onramp-settings-view/components/Country.tsx +3 -1
  387. package/src/views/w3m-onramp-settings-view/index.tsx +13 -3
  388. package/src/views/w3m-onramp-settings-view/utils.ts +18 -0
  389. package/src/views/w3m-onramp-transaction-view/index.tsx +1 -1
  390. package/src/views/w3m-onramp-view/components/Header.tsx +1 -1
  391. package/src/views/w3m-onramp-view/components/LoadingView.tsx +1 -1
  392. package/src/views/w3m-onramp-view/index.tsx +3 -3
  393. package/src/views/w3m-siwx-sign-view/index.tsx +98 -0
  394. package/src/views/{w3m-connecting-siwe-view → w3m-siwx-sign-view}/styles.ts +0 -7
  395. package/src/views/w3m-swap-preview-view/index.tsx +1 -1
  396. package/src/views/w3m-swap-view/components/select-token-modal/index.tsx +2 -4
  397. package/src/views/w3m-swap-view/index.tsx +7 -7
  398. package/src/views/w3m-unsupported-chain-view/index.tsx +5 -7
  399. package/src/views/w3m-unsupported-chain-view/styles.ts +1 -1
  400. package/src/views/w3m-upgrade-email-wallet-view/index.tsx +4 -6
  401. package/src/views/w3m-wallet-receive-view/index.tsx +1 -1
  402. package/src/views/w3m-wallet-send-preview-view/index.tsx +1 -1
  403. package/src/views/w3m-wallet-send-select-token-view/index.tsx +1 -1
  404. package/src/views/w3m-wallet-send-view/index.tsx +4 -3
  405. package/src/views/w3m-what-is-a-network-view/index.tsx +1 -1
  406. package/src/views/w3m-what-is-a-wallet-view/index.tsx +2 -2
  407. package/lib/commonjs/views/w3m-connect-view/components/custom-wallet-list.js +0 -45
  408. package/lib/commonjs/views/w3m-connect-view/components/custom-wallet-list.js.map +0 -1
  409. package/lib/commonjs/views/w3m-connect-view/components/recent-wallet-list.js +0 -41
  410. package/lib/commonjs/views/w3m-connect-view/components/recent-wallet-list.js.map +0 -1
  411. package/lib/commonjs/views/w3m-connect-view/utils.js +0 -14
  412. package/lib/commonjs/views/w3m-connect-view/utils.js.map +0 -1
  413. package/lib/commonjs/views/w3m-connecting-siwe-view/index.js +0 -145
  414. package/lib/commonjs/views/w3m-connecting-siwe-view/index.js.map +0 -1
  415. package/lib/commonjs/views/w3m-connecting-siwe-view/styles.js.map +0 -1
  416. package/lib/module/views/w3m-connect-view/components/custom-wallet-list.js +0 -41
  417. package/lib/module/views/w3m-connect-view/components/custom-wallet-list.js.map +0 -1
  418. package/lib/module/views/w3m-connect-view/components/recent-wallet-list.js +0 -37
  419. package/lib/module/views/w3m-connect-view/components/recent-wallet-list.js.map +0 -1
  420. package/lib/module/views/w3m-connect-view/utils.js +0 -9
  421. package/lib/module/views/w3m-connect-view/utils.js.map +0 -1
  422. package/lib/module/views/w3m-connecting-siwe-view/index.js +0 -140
  423. package/lib/module/views/w3m-connecting-siwe-view/index.js.map +0 -1
  424. package/lib/module/views/w3m-connecting-siwe-view/styles.js.map +0 -1
  425. package/lib/typescript/views/w3m-connect-view/components/custom-wallet-list.d.ts +0 -9
  426. package/lib/typescript/views/w3m-connect-view/components/custom-wallet-list.d.ts.map +0 -1
  427. package/lib/typescript/views/w3m-connect-view/components/recent-wallet-list.d.ts +0 -9
  428. package/lib/typescript/views/w3m-connect-view/components/recent-wallet-list.d.ts.map +0 -1
  429. package/lib/typescript/views/w3m-connect-view/utils.d.ts +0 -3
  430. package/lib/typescript/views/w3m-connect-view/utils.d.ts.map +0 -1
  431. package/lib/typescript/views/w3m-connecting-siwe-view/index.d.ts +0 -2
  432. package/lib/typescript/views/w3m-connecting-siwe-view/index.d.ts.map +0 -1
  433. package/lib/typescript/views/w3m-connecting-siwe-view/styles.d.ts.map +0 -1
  434. package/src/views/w3m-connect-view/components/custom-wallet-list.tsx +0 -51
  435. package/src/views/w3m-connect-view/components/recent-wallet-list.tsx +0 -45
  436. package/src/views/w3m-connect-view/utils.ts +0 -14
  437. package/src/views/w3m-connecting-siwe-view/index.tsx +0 -126
@@ -1,5 +1,5 @@
1
1
  import { WcController } from '@reown/appkit-core-react-native';
2
- import { UniversalProvider, type IUniversalProvider } from '@walletconnect/universal-provider';
2
+ import UniversalProvider from '@walletconnect/universal-provider';
3
3
  import {
4
4
  WalletConnector,
5
5
  type AppKitNetwork,
@@ -14,7 +14,7 @@ import {
14
14
  type ConnectionProperties,
15
15
  type RequestArguments
16
16
  } from '@reown/appkit-common-react-native';
17
- import { getDidAddress, getDidChainId, SIWEController } from '@reown/appkit-siwe-react-native';
17
+ import { SIWXUtil } from '../utils/SIWXUtil';
18
18
 
19
19
  interface WalletConnectConnectorConfig {
20
20
  projectId: string;
@@ -42,7 +42,7 @@ export class WalletConnectConnector extends WalletConnector {
42
42
  }
43
43
 
44
44
  override async restoreSession(): Promise<boolean> {
45
- const provider = this.getProvider() as IUniversalProvider;
45
+ const provider = this.getProvider() as UniversalProvider;
46
46
  if (!provider) {
47
47
  return false;
48
48
  }
@@ -67,9 +67,15 @@ export class WalletConnectConnector extends WalletConnector {
67
67
  this.wallet = {
68
68
  ...metadata,
69
69
  name: metadata.name,
70
- icon: metadata.icons?.[0]
70
+ icon: metadata.icons?.[0],
71
+ type: 'walletconnect'
71
72
  };
72
73
  }
74
+ } else {
75
+ this.wallet = {
76
+ name: 'Unknown Wallet',
77
+ type: 'walletconnect'
78
+ };
73
79
  }
74
80
 
75
81
  return true;
@@ -81,7 +87,7 @@ export class WalletConnectConnector extends WalletConnector {
81
87
  }: {
82
88
  projectId: string;
83
89
  metadata: Metadata;
84
- }): Promise<IUniversalProvider> {
90
+ }): Promise<UniversalProvider> {
85
91
  if (!this.provider) {
86
92
  this.provider = (await UniversalProvider.init({
87
93
  projectId,
@@ -90,82 +96,36 @@ export class WalletConnectConnector extends WalletConnector {
90
96
  })) as Provider;
91
97
  }
92
98
 
93
- return this.provider as IUniversalProvider;
99
+ return this.provider as UniversalProvider;
94
100
  }
95
101
 
96
102
  override async connect(opts: ConnectOptions) {
97
- const { siweConfig, namespaces, defaultNetwork, universalLink } = opts;
103
+ const { namespaces, defaultNetwork, universalLink } = opts;
98
104
  function onUri(uri: string) {
99
105
  WcController.setWcUri(uri);
100
106
  }
101
107
 
102
- const provider = this.getProvider() as IUniversalProvider;
108
+ const provider = this.getProvider() as UniversalProvider;
103
109
 
104
110
  // @ts-ignore
105
111
  provider.on('display_uri', onUri);
106
112
 
107
- let session: IUniversalProvider['session'];
113
+ let session: UniversalProvider['session'];
108
114
 
109
115
  // SIWE
110
116
  const isEVMOnly = Object.keys(namespaces ?? {}).length === 1 && namespaces?.['eip155'];
111
- const params = await siweConfig?.getMessageParams?.();
112
- if (siweConfig?.options?.enabled && params && Object.keys(params).length > 0 && isEVMOnly) {
117
+
118
+ if (isEVMOnly && SIWXUtil.getSIWX()) {
113
119
  // 1CA is only supported on EVM
114
120
 
115
- // @ts-ignore
116
- const result = await provider.authenticate(
117
- {
118
- ...params,
119
- nonce: await siweConfig.getNonce(),
120
- methods: namespaces?.['eip155']?.methods,
121
- chains: params.chains
122
- },
121
+ session = await SIWXUtil.universalProviderAuthenticate({
122
+ universalProvider: this.provider as UniversalProvider,
123
+ chains: namespaces?.['eip155']?.chains ?? [],
124
+ methods: namespaces?.['eip155']?.methods ?? [],
123
125
  universalLink
124
- );
125
-
126
- // Auths is an array of signed CACAO objects https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-74.md
127
- const signedCacao = result?.auths?.[0];
128
- if (signedCacao) {
129
- const { p, s } = signedCacao;
130
- const chainId = getDidChainId(p.iss);
131
- const address = getDidAddress(p.iss);
132
-
133
- try {
134
- // Kicks off verifyMessage and populates external states
135
- const message = provider?.client?.formatAuthMessage({
136
- request: p,
137
- iss: p.iss
138
- })!;
139
-
140
- await SIWEController.verifyMessage({
141
- message,
142
- signature: s.s,
143
- cacao: signedCacao
144
- });
145
-
146
- if (address && chainId) {
147
- const siweSession = {
148
- address,
149
- chainId: parseInt(chainId, 10)
150
- };
151
-
152
- SIWEController.setSession(siweSession);
153
- SIWEController.onSignIn?.(siweSession);
154
- }
155
- } catch (error) {
156
- // eslint-disable-next-line no-console
157
- console.error('Error verifying message', error);
158
- // eslint-disable-next-line no-console
159
- await provider.disconnect().catch(console.error);
160
- // eslint-disable-next-line no-console
161
- await SIWEController.signOut().catch(console.error);
162
- throw error;
163
- }
164
- }
165
- session = result?.session;
126
+ });
166
127
  } else {
167
- session = await (this.provider as IUniversalProvider).connect({
168
- namespaces: {},
128
+ session = await (this.provider as UniversalProvider).connect({
169
129
  optionalNamespaces: namespaces
170
130
  });
171
131
  }
@@ -175,14 +135,18 @@ export class WalletConnectConnector extends WalletConnector {
175
135
  this.wallet = {
176
136
  ...metadata,
177
137
  name: metadata?.name,
178
- icon: metadata?.icons?.[0]
138
+ icon: metadata?.icons?.[0],
139
+ type: 'walletconnect'
179
140
  };
180
141
  } else {
181
- this.wallet = undefined;
142
+ this.wallet = {
143
+ name: 'Unknown Wallet',
144
+ type: 'walletconnect'
145
+ };
182
146
  }
183
147
 
184
148
  if (defaultNetwork?.caipNetworkId) {
185
- (this.provider as IUniversalProvider).setDefaultChain(defaultNetwork.caipNetworkId);
149
+ (this.provider as UniversalProvider).setDefaultChain(defaultNetwork.caipNetworkId);
186
150
  }
187
151
 
188
152
  if (session?.sessionProperties) {
@@ -199,7 +163,7 @@ export class WalletConnectConnector extends WalletConnector {
199
163
 
200
164
  provider.off('display_uri', onUri);
201
165
 
202
- return this.namespaces;
166
+ return (session?.namespaces as Namespaces) ?? {};
203
167
  }
204
168
 
205
169
  override getProvider(namespace?: ChainNamespace): Provider {
@@ -207,13 +171,16 @@ export class WalletConnectConnector extends WalletConnector {
207
171
  throw new Error('WalletConnectConnector: Provider not initialized. Call init() first.');
208
172
  }
209
173
 
210
- const provider = this.provider as IUniversalProvider;
174
+ const provider = this.provider;
211
175
 
212
176
  if (namespace) {
213
- // @ts-ignore
214
177
  return {
215
- ...provider,
216
- request: (args: RequestArguments, chainId?: CaipNetworkId) => {
178
+ ...this.provider,
179
+ connect: async (params?: any) => provider.connect(params) as Promise<any>,
180
+ disconnect: provider.disconnect.bind(provider),
181
+ on: provider.on.bind(provider),
182
+ off: provider.off.bind(provider),
183
+ request: async (args: RequestArguments, chainId?: CaipNetworkId) => {
217
184
  const _chainId = this.getChainId(namespace);
218
185
 
219
186
  return provider.request(args, chainId || _chainId);
@@ -225,7 +192,11 @@ export class WalletConnectConnector extends WalletConnector {
225
192
  }
226
193
 
227
194
  override getNamespaces(): Namespaces {
228
- return this.namespaces ?? {};
195
+ const namespaces =
196
+ ((this.provider as UniversalProvider)?.session?.namespaces as Namespaces) ?? {};
197
+ this.namespaces = namespaces;
198
+
199
+ return namespaces;
229
200
  }
230
201
 
231
202
  override getProperties(): ConnectionProperties | undefined {
@@ -237,7 +208,7 @@ export class WalletConnectConnector extends WalletConnector {
237
208
 
238
209
  let caipNetworkId = network.caipNetworkId ?? `eip155:${network.id}`;
239
210
 
240
- (this.provider as IUniversalProvider).setDefaultChain(caipNetworkId);
211
+ (this.provider as UniversalProvider).setDefaultChain(caipNetworkId);
241
212
 
242
213
  return Promise.resolve();
243
214
  }
@@ -247,11 +218,12 @@ export class WalletConnectConnector extends WalletConnector {
247
218
  }
248
219
 
249
220
  override getChainId(namespace: ChainNamespace): CaipNetworkId | undefined {
250
- if (!this.namespaces || !this.namespaces[namespace]) {
221
+ const namespaces = this.getNamespaces();
222
+ if (!namespaces || !namespaces[namespace]) {
251
223
  return undefined;
252
224
  }
253
225
 
254
- const chainId = (this.provider as IUniversalProvider).rpcProviders[
226
+ const chainId = (this.provider as UniversalProvider).rpcProviders[
255
227
  namespace
256
228
  ]?.getDefaultChain?.();
257
229
 
@@ -1,5 +1,7 @@
1
+ /* eslint-disable valtio/state-snapshot-rule */
2
+ import { useMemo } from 'react';
1
3
  import { useSnapshot } from 'valtio';
2
- import { ConnectionsController } from '@reown/appkit-core-react-native';
4
+ import { ConnectionsController, CoreHelperUtil } from '@reown/appkit-core-react-native';
3
5
  import { useAppKit } from './useAppKit';
4
6
 
5
7
  export function useAccount() {
@@ -8,15 +10,23 @@ export function useAccount() {
8
10
  const {
9
11
  activeAddress: address,
10
12
  activeNamespace,
11
- connections
13
+ connection,
14
+ networks
12
15
  } = useSnapshot(ConnectionsController.state);
13
16
 
14
- const connection = activeNamespace ? connections.get(activeNamespace) : undefined;
17
+ const activeChain = useMemo(
18
+ () =>
19
+ connection?.caipNetwork
20
+ ? networks.find(network => network.caipNetworkId === connection?.caipNetwork)
21
+ : undefined,
22
+ [connection?.caipNetwork, networks]
23
+ );
15
24
 
16
25
  return {
17
- address: address?.split(':')[2],
26
+ address: CoreHelperUtil.getPlainAddress(address),
18
27
  isConnected: !!address,
19
- chainId: connection?.caipNetwork,
28
+ chainId: activeChain?.id,
29
+ chain: activeChain,
20
30
  namespace: activeNamespace
21
31
  };
22
32
  }
@@ -1,6 +1,5 @@
1
- import { useContext } from 'react';
2
- import { useSnapshot } from 'valtio';
3
- import { ModalController } from '@reown/appkit-core-react-native';
1
+ import { useContext, useMemo } from 'react';
2
+ import type { ChainNamespace } from '@reown/appkit-common-react-native';
4
3
 
5
4
  import type { AppKit } from '../AppKit';
6
5
  import { AppKitContext } from '../AppKitContext';
@@ -8,28 +7,35 @@ import { AppKitContext } from '../AppKitContext';
8
7
  interface UseAppKitReturn {
9
8
  open: AppKit['open'];
10
9
  close: AppKit['close'];
11
- disconnect: (namespace?: string) => void;
10
+ disconnect: (namespace?: ChainNamespace) => void;
12
11
  switchNetwork: AppKit['switchNetwork'];
13
- isOpen: boolean;
14
12
  }
15
13
 
16
14
  export const useAppKit = (): UseAppKitReturn => {
17
15
  const context = useContext(AppKitContext);
18
- const { open } = useSnapshot(ModalController.state);
19
16
 
20
17
  if (context === undefined) {
21
18
  throw new Error('useAppKit must be used within an AppKitProvider');
22
19
  }
20
+
23
21
  if (!context.appKit) {
24
22
  // This might happen if the provider is rendered before AppKit is initialized
25
23
  throw new Error('AppKit instance is not yet available in context.');
26
24
  }
27
25
 
28
- return {
29
- open: context.appKit.open.bind(context.appKit),
30
- close: context.appKit.close.bind(context.appKit),
31
- disconnect: (namespace?: string) => context.appKit?.disconnect.bind(context.appKit)(namespace),
32
- switchNetwork: context.appKit.switchNetwork.bind(context.appKit),
33
- isOpen: open
34
- };
26
+ const stableFunctions = useMemo(() => {
27
+ if (!context.appKit) {
28
+ throw new Error('AppKit instance is not available');
29
+ }
30
+
31
+ return {
32
+ open: context.appKit.open.bind(context.appKit),
33
+ close: context.appKit.close.bind(context.appKit),
34
+ disconnect: (namespace?: ChainNamespace) =>
35
+ context.appKit!.disconnect.bind(context.appKit!)(namespace),
36
+ switchNetwork: context.appKit.switchNetwork.bind(context.appKit)
37
+ };
38
+ }, [context.appKit]);
39
+
40
+ return stableFunctions;
35
41
  };
@@ -0,0 +1,129 @@
1
+ import { useContext, useMemo } from 'react';
2
+ import { useSnapshot } from 'valtio';
3
+ import { LogController, type LogEntry, type LogLevel } from '@reown/appkit-core-react-native';
4
+ import { AppKitContext } from '../AppKitContext';
5
+
6
+ export interface UseAppKitLogsReturn {
7
+ /**
8
+ * All logs from AppKit
9
+ */
10
+ logs: LogEntry[];
11
+
12
+ /**
13
+ * Get logs filtered by level
14
+ */
15
+ getLogsByLevel: (level: LogLevel) => LogEntry[];
16
+
17
+ /**
18
+ * Get recent logs (default: 100)
19
+ */
20
+ getRecentLogs: (count?: number) => LogEntry[];
21
+
22
+ /**
23
+ * Export all logs as JSON string
24
+ */
25
+ exportLogs: () => string;
26
+
27
+ /**
28
+ * Get logging statistics by level
29
+ */
30
+ getLogsStats: () => Record<LogLevel, number>;
31
+
32
+ /**
33
+ * Clear all logs
34
+ */
35
+ clearLogs: () => void;
36
+
37
+ /**
38
+ * Convenience getters for different log levels (regular arrays, safe for console.log)
39
+ */
40
+ errorLogs: LogEntry[];
41
+ warningLogs: LogEntry[];
42
+ infoLogs: LogEntry[];
43
+ debugLogs: LogEntry[];
44
+ }
45
+
46
+ /**
47
+ * React hook for accessing AppKit logs
48
+ *
49
+ * This hook provides reactive access to AppKit's internal logging system.
50
+ * It automatically updates when new logs are added or when logs are cleaned up.
51
+ *
52
+ * @example
53
+ * ```typescript
54
+ * function MyComponent() {
55
+ * const { logs, errorLogs, exportLogs, clearLogs } = useAppKitLogs();
56
+ *
57
+ * return (
58
+ * <View>
59
+ * <Text>Total logs: {logs.length}</Text>
60
+ * <Text>Error logs: {errorLogs.length}</Text>
61
+ * <Button onPress={clearLogs} title="Clear Logs" />
62
+ * </View>
63
+ * );
64
+ * }
65
+ * ```
66
+ */
67
+ export const useAppKitLogs = (): UseAppKitLogsReturn => {
68
+ const context = useContext(AppKitContext);
69
+
70
+ if (context === undefined) {
71
+ throw new Error('useAppKitLogs must be used within an AppKitProvider');
72
+ }
73
+
74
+ if (!context.appKit) {
75
+ throw new Error('AppKit instance is not yet available in context.');
76
+ }
77
+
78
+ const { logs } = useSnapshot(LogController.state);
79
+
80
+ // Memoized functions that don't need to change on every render
81
+ const stableFunctions = useMemo(
82
+ () => ({
83
+ getLogsByLevel: (level: LogLevel) => LogController.getLogsByLevel(level),
84
+ getRecentLogs: (count?: number) => LogController.getRecentLogs(count),
85
+ exportLogs: () => LogController.exportLogs(),
86
+ getLogsStats: () => LogController.getLogsStats(),
87
+ clearLogs: () => LogController.clearLogs()
88
+ }),
89
+ []
90
+ );
91
+
92
+ const regularArrays = useMemo(() => {
93
+ const allLogs = [...logs]; // Convert proxy to regular array
94
+ const errorLogs: LogEntry[] = [];
95
+ const warningLogs: LogEntry[] = [];
96
+ const infoLogs: LogEntry[] = [];
97
+ const debugLogs: LogEntry[] = [];
98
+
99
+ for (const log of allLogs) {
100
+ switch (log.level) {
101
+ case 'error':
102
+ errorLogs.push(log);
103
+ break;
104
+ case 'warn':
105
+ warningLogs.push(log);
106
+ break;
107
+ case 'info':
108
+ infoLogs.push(log);
109
+ break;
110
+ case 'debug':
111
+ debugLogs.push(log);
112
+ break;
113
+ }
114
+ }
115
+
116
+ return {
117
+ logs: allLogs,
118
+ errorLogs,
119
+ warningLogs,
120
+ infoLogs,
121
+ debugLogs
122
+ };
123
+ }, [logs]);
124
+
125
+ return {
126
+ ...regularArrays,
127
+ ...stableFunctions
128
+ };
129
+ };
@@ -0,0 +1,26 @@
1
+ /* eslint-disable valtio/state-snapshot-rule */
2
+ import { useMemo } from 'react';
3
+ import { useSnapshot } from 'valtio';
4
+ import { ConnectionsController, ModalController } from '@reown/appkit-core-react-native';
5
+ import { useAppKit } from './useAppKit';
6
+
7
+ export function useAppKitState() {
8
+ useAppKit(); // Use the hook for checks
9
+ const { activeAddress: address, connection, networks } = useSnapshot(ConnectionsController.state);
10
+ const { open, loading } = useSnapshot(ModalController.state);
11
+
12
+ const activeChain = useMemo(
13
+ () =>
14
+ connection?.caipNetwork
15
+ ? networks.find(network => network.caipNetworkId === connection?.caipNetwork)
16
+ : undefined,
17
+ [connection?.caipNetwork, networks]
18
+ );
19
+
20
+ return {
21
+ isOpen: open,
22
+ isLoading: loading,
23
+ isConnected: !!address,
24
+ chain: activeChain
25
+ };
26
+ }
@@ -1,3 +1,5 @@
1
+ /* eslint-disable valtio/state-snapshot-rule */
2
+ import { useMemo } from 'react';
1
3
  import { useSnapshot } from 'valtio';
2
4
  import { ConnectionsController } from '@reown/appkit-core-react-native';
3
5
  import type { Provider, ChainNamespace } from '@reown/appkit-common-react-native';
@@ -37,10 +39,14 @@ interface ProviderResult {
37
39
  export function useProvider(): ProviderResult {
38
40
  const { connection } = useSnapshot(ConnectionsController.state);
39
41
 
40
- if (!connection) return { provider: undefined, providerType: undefined };
42
+ const returnValue = useMemo(() => {
43
+ if (!connection) return { provider: undefined, providerType: undefined };
41
44
 
42
- return {
43
- provider: connection.adapter.getProvider(),
44
- providerType: connection.adapter.getSupportedNamespace()
45
- };
45
+ return {
46
+ provider: connection.adapter.getProvider(),
47
+ providerType: connection.adapter.getSupportedNamespace()
48
+ };
49
+ }, [connection]);
50
+
51
+ return returnValue;
46
52
  }
@@ -1,10 +1,13 @@
1
+ import { useMemo } from 'react';
1
2
  import { useSnapshot } from 'valtio';
2
3
  import { ConnectionsController } from '@reown/appkit-core-react-native';
3
4
  import { useAppKit } from './useAppKit';
4
5
 
5
6
  export function useWalletInfo() {
6
7
  useAppKit(); // Use the hook for checks
7
- const { walletInfo } = useSnapshot(ConnectionsController.state);
8
+ const { walletInfo: walletInfoSnapshot } = useSnapshot(ConnectionsController.state);
8
9
 
9
- return { walletInfo };
10
+ const walletInfo = useMemo(() => ({ walletInfo: walletInfoSnapshot }), [walletInfoSnapshot]);
11
+
12
+ return walletInfo;
10
13
  }
package/src/index.ts CHANGED
@@ -17,6 +17,13 @@ export { AppKit } from './modal/w3m-modal';
17
17
  /********** Types **********/
18
18
  export type * from '@reown/appkit-core-react-native';
19
19
  export type { AppKitNetwork, Storage } from '@reown/appkit-common-react-native';
20
+ export type {
21
+ SIWXConfig,
22
+ SIWXMessage,
23
+ SIWXSession,
24
+ SIWXStorage,
25
+ SIWXVerifier
26
+ } from '@reown/appkit-common-react-native';
20
27
  export type { AppKitConfig } from './types';
21
28
 
22
29
  /****** Hooks *******/
@@ -25,11 +32,16 @@ export { useProvider } from './hooks/useProvider';
25
32
  export { useAccount } from './hooks/useAccount';
26
33
  export { useWalletInfo } from './hooks/useWalletInfo';
27
34
  export { useAppKitEvents, useAppKitEventSubscription } from './hooks/useAppKitEvents';
35
+ export { useAppKitState } from './hooks/useAppKitState';
36
+ export { useAppKitLogs, type UseAppKitLogsReturn } from './hooks/useAppKitLogs';
28
37
 
29
38
  /********** Networks **********/
30
39
  export { solana, solanaDevnet, solanaTestnet } from '@reown/appkit-common-react-native';
31
40
  export { bitcoin, bitcoinTestnet } from '@reown/appkit-common-react-native';
32
41
 
42
+ /********** SIWX **********/
43
+ export { ReownAuthentication } from '@reown/appkit-core-react-native';
44
+
33
45
  /********** Main **********/
34
46
  export { createAppKit } from './AppKit';
35
47
  export { AppKitProvider } from './AppKitContext';
@@ -1,5 +1,6 @@
1
1
  import { useSnapshot } from 'valtio';
2
2
  import { useCallback, useEffect } from 'react';
3
+ import { useColorScheme } from 'react-native';
3
4
  import { Card, Modal, ThemeProvider } from '@reown/appkit-ui-react-native';
4
5
  import {
5
6
  ApiController,
@@ -9,6 +10,7 @@ import {
9
10
  RouterController,
10
11
  ThemeController
11
12
  } from '@reown/appkit-core-react-native';
13
+ import { useSafeAreaInsets } from 'react-native-safe-area-context';
12
14
 
13
15
  import { AppKitRouter } from '../w3m-router';
14
16
  import { Header } from '../../partials/w3m-header';
@@ -17,9 +19,11 @@ import { useInternalAppKit } from '../../AppKitContext';
17
19
  import styles from './styles';
18
20
 
19
21
  export function AppKit() {
22
+ const theme = useColorScheme();
23
+ const { bottom, top } = useSafeAreaInsets();
20
24
  const { close } = useInternalAppKit();
21
25
  const { open } = useSnapshot(ModalController.state);
22
- const { themeMode, themeVariables } = useSnapshot(ThemeController.state);
26
+ const { themeMode, themeVariables, defaultThemeMode } = useSnapshot(ThemeController.state);
23
27
  const { projectId } = useSnapshot(OptionsController.state);
24
28
 
25
29
  const handleBackPress = () => {
@@ -30,6 +34,12 @@ export function AppKit() {
30
34
  return handleModalClose();
31
35
  };
32
36
 
37
+ useEffect(() => {
38
+ if (theme && !defaultThemeMode) {
39
+ ThemeController.setThemeMode(theme);
40
+ }
41
+ }, [theme, defaultThemeMode]);
42
+
33
43
  const prefetch = useCallback(async () => {
34
44
  await ApiController.prefetch();
35
45
  EventsController.sendEvent({ type: 'track', event: 'MODAL_LOADED' });
@@ -53,7 +63,7 @@ export function AppKit() {
53
63
  onBackdropPress={handleModalClose}
54
64
  testID="w3m-modal"
55
65
  >
56
- <Card style={styles.card}>
66
+ <Card style={[styles.card, { paddingBottom: bottom, marginTop: top }]}>
57
67
  <Header />
58
68
  <AppKitRouter />
59
69
  <Snackbar />