@reown/appkit-react-native 0.0.0-fix-ui-changes-20250829201240 → 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 (433) 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 +5 -3
  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 +4 -3
  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/LoadingView.js +1 -1
  100. package/lib/commonjs/views/w3m-onramp-view/components/LoadingView.js.map +1 -1
  101. package/lib/commonjs/views/w3m-onramp-view/index.js +1 -1
  102. package/lib/commonjs/views/w3m-onramp-view/index.js.map +1 -1
  103. package/lib/commonjs/views/w3m-siwx-sign-view/index.js +110 -0
  104. package/lib/commonjs/views/w3m-siwx-sign-view/index.js.map +1 -0
  105. package/lib/commonjs/views/{w3m-connecting-siwe-view → w3m-siwx-sign-view}/styles.js +0 -7
  106. package/lib/commonjs/views/w3m-siwx-sign-view/styles.js.map +1 -0
  107. package/lib/commonjs/views/w3m-swap-preview-view/index.js +1 -1
  108. package/lib/commonjs/views/w3m-swap-preview-view/index.js.map +1 -1
  109. package/lib/commonjs/views/w3m-swap-view/components/select-token-modal/index.js +1 -2
  110. package/lib/commonjs/views/w3m-swap-view/components/select-token-modal/index.js.map +1 -1
  111. package/lib/commonjs/views/w3m-swap-view/index.js +9 -6
  112. package/lib/commonjs/views/w3m-swap-view/index.js.map +1 -1
  113. package/lib/commonjs/views/w3m-unsupported-chain-view/index.js +6 -12
  114. package/lib/commonjs/views/w3m-unsupported-chain-view/index.js.map +1 -1
  115. package/lib/commonjs/views/w3m-unsupported-chain-view/styles.js +1 -1
  116. package/lib/commonjs/views/w3m-unsupported-chain-view/styles.js.map +1 -1
  117. package/lib/commonjs/views/w3m-upgrade-email-wallet-view/index.js +1 -1
  118. package/lib/commonjs/views/w3m-upgrade-email-wallet-view/index.js.map +1 -1
  119. package/lib/commonjs/views/w3m-wallet-receive-view/index.js +1 -1
  120. package/lib/commonjs/views/w3m-wallet-receive-view/index.js.map +1 -1
  121. package/lib/commonjs/views/w3m-wallet-send-preview-view/index.js +1 -1
  122. package/lib/commonjs/views/w3m-wallet-send-preview-view/index.js.map +1 -1
  123. package/lib/commonjs/views/w3m-wallet-send-select-token-view/index.js +1 -1
  124. package/lib/commonjs/views/w3m-wallet-send-select-token-view/index.js.map +1 -1
  125. package/lib/commonjs/views/w3m-wallet-send-view/index.js +8 -5
  126. package/lib/commonjs/views/w3m-wallet-send-view/index.js.map +1 -1
  127. package/lib/commonjs/views/w3m-what-is-a-network-view/index.js +1 -1
  128. package/lib/commonjs/views/w3m-what-is-a-network-view/index.js.map +1 -1
  129. package/lib/commonjs/views/w3m-what-is-a-wallet-view/index.js +2 -2
  130. package/lib/commonjs/views/w3m-what-is-a-wallet-view/index.js.map +1 -1
  131. package/lib/module/AppKit.js +147 -102
  132. package/lib/module/AppKit.js.map +1 -1
  133. package/lib/module/AppKitContext.js +17 -11
  134. package/lib/module/AppKitContext.js.map +1 -1
  135. package/lib/module/connectors/WalletConnectConnector.js +34 -62
  136. package/lib/module/connectors/WalletConnectConnector.js.map +1 -1
  137. package/lib/module/hooks/useAccount.js +9 -5
  138. package/lib/module/hooks/useAccount.js.map +1 -1
  139. package/lib/module/hooks/useAppKit.js +13 -13
  140. package/lib/module/hooks/useAppKit.js.map +1 -1
  141. package/lib/module/hooks/useAppKitLogs.js +83 -0
  142. package/lib/module/hooks/useAppKitLogs.js.map +1 -0
  143. package/lib/module/hooks/useAppKitState.js +27 -0
  144. package/lib/module/hooks/useAppKitState.js.map +1 -0
  145. package/lib/module/hooks/useProvider.js +13 -8
  146. package/lib/module/hooks/useProvider.js.map +1 -1
  147. package/lib/module/hooks/useWalletInfo.js +6 -4
  148. package/lib/module/hooks/useWalletInfo.js.map +1 -1
  149. package/lib/module/index.js +5 -0
  150. package/lib/module/index.js.map +1 -1
  151. package/lib/module/modal/w3m-modal/index.js +18 -2
  152. package/lib/module/modal/w3m-modal/index.js.map +1 -1
  153. package/lib/module/modal/w3m-router/index.js +22 -24
  154. package/lib/module/modal/w3m-router/index.js.map +1 -1
  155. package/lib/module/partials/w3m-account-activity/index.js +1 -1
  156. package/lib/module/partials/w3m-account-activity/index.js.map +1 -1
  157. package/lib/module/partials/w3m-account-wallet-features/index.js +1 -1
  158. package/lib/module/partials/w3m-account-wallet-features/index.js.map +1 -1
  159. package/lib/module/partials/w3m-all-wallets-list/components/Loading.js +4 -2
  160. package/lib/module/partials/w3m-all-wallets-list/components/Loading.js.map +1 -1
  161. package/lib/module/partials/w3m-all-wallets-list/components/WalletItem.js +6 -3
  162. package/lib/module/partials/w3m-all-wallets-list/components/WalletItem.js.map +1 -1
  163. package/lib/module/partials/w3m-all-wallets-list/components/WalletList.js +13 -5
  164. package/lib/module/partials/w3m-all-wallets-list/components/WalletList.js.map +1 -1
  165. package/lib/module/partials/w3m-all-wallets-list/index.js +15 -4
  166. package/lib/module/partials/w3m-all-wallets-list/index.js.map +1 -1
  167. package/lib/module/partials/w3m-all-wallets-list/styles.js +3 -0
  168. package/lib/module/partials/w3m-all-wallets-list/styles.js.map +1 -1
  169. package/lib/module/partials/w3m-all-wallets-search/index.js +22 -13
  170. package/lib/module/partials/w3m-all-wallets-search/index.js.map +1 -1
  171. package/lib/module/partials/w3m-all-wallets-search/styles.js +3 -1
  172. package/lib/module/partials/w3m-all-wallets-search/styles.js.map +1 -1
  173. package/lib/module/partials/w3m-connecting-mobile/index.js +22 -2
  174. package/lib/module/partials/w3m-connecting-mobile/index.js.map +1 -1
  175. package/lib/module/partials/w3m-connecting-mobile/styles.js +2 -1
  176. package/lib/module/partials/w3m-connecting-mobile/styles.js.map +1 -1
  177. package/lib/module/partials/w3m-connecting-qrcode/index.js +7 -3
  178. package/lib/module/partials/w3m-connecting-qrcode/index.js.map +1 -1
  179. package/lib/module/partials/w3m-connecting-web/index.js +11 -4
  180. package/lib/module/partials/w3m-connecting-web/index.js.map +1 -1
  181. package/lib/module/partials/w3m-connecting-web/styles.js +3 -0
  182. package/lib/module/partials/w3m-connecting-web/styles.js.map +1 -1
  183. package/lib/module/partials/w3m-header/index.js +5 -4
  184. package/lib/module/partials/w3m-header/index.js.map +1 -1
  185. package/lib/module/partials/w3m-selector-modal/index.js +5 -3
  186. package/lib/module/partials/w3m-selector-modal/index.js.map +1 -1
  187. package/lib/module/utils/SIWXUtil.js +278 -0
  188. package/lib/module/utils/SIWXUtil.js.map +1 -0
  189. package/lib/module/views/w3m-account-default-view/index.js +5 -4
  190. package/lib/module/views/w3m-account-default-view/index.js.map +1 -1
  191. package/lib/module/views/w3m-account-view/index.js +2 -2
  192. package/lib/module/views/w3m-account-view/index.js.map +1 -1
  193. package/lib/module/views/w3m-account-view/styles.js +1 -6
  194. package/lib/module/views/w3m-account-view/styles.js.map +1 -1
  195. package/lib/module/views/w3m-all-wallets-view/index.js +7 -4
  196. package/lib/module/views/w3m-all-wallets-view/index.js.map +1 -1
  197. package/lib/module/views/w3m-connect-socials-view/index.js +2 -2
  198. package/lib/module/views/w3m-connect-socials-view/index.js.map +1 -1
  199. package/lib/module/views/w3m-connect-view/components/all-wallet-list.js +21 -14
  200. package/lib/module/views/w3m-connect-view/components/all-wallet-list.js.map +1 -1
  201. package/lib/module/views/w3m-connect-view/index.js +9 -14
  202. package/lib/module/views/w3m-connect-view/index.js.map +1 -1
  203. package/lib/module/views/w3m-connecting-external-view/index.js +22 -2
  204. package/lib/module/views/w3m-connecting-external-view/index.js.map +1 -1
  205. package/lib/module/views/w3m-connecting-external-view/styles.js +1 -1
  206. package/lib/module/views/w3m-connecting-external-view/styles.js.map +1 -1
  207. package/lib/module/views/w3m-connecting-social-view/index.js +3 -2
  208. package/lib/module/views/w3m-connecting-social-view/index.js.map +1 -1
  209. package/lib/module/views/w3m-connecting-view/index.js +14 -33
  210. package/lib/module/views/w3m-connecting-view/index.js.map +1 -1
  211. package/lib/module/views/w3m-get-wallet-view/index.js +1 -1
  212. package/lib/module/views/w3m-get-wallet-view/index.js.map +1 -1
  213. package/lib/module/views/w3m-network-switch-view/index.js +66 -85
  214. package/lib/module/views/w3m-network-switch-view/index.js.map +1 -1
  215. package/lib/module/views/w3m-networks-view/index.js +18 -11
  216. package/lib/module/views/w3m-networks-view/index.js.map +1 -1
  217. package/lib/module/views/w3m-onramp-checkout-view/index.js +1 -1
  218. package/lib/module/views/w3m-onramp-checkout-view/index.js.map +1 -1
  219. package/lib/module/views/w3m-onramp-loading-view/styles.js +1 -1
  220. package/lib/module/views/w3m-onramp-loading-view/styles.js.map +1 -1
  221. package/lib/module/views/w3m-onramp-settings-view/components/Country.js +3 -1
  222. package/lib/module/views/w3m-onramp-settings-view/components/Country.js.map +1 -1
  223. package/lib/module/views/w3m-onramp-settings-view/index.js +12 -5
  224. package/lib/module/views/w3m-onramp-settings-view/index.js.map +1 -1
  225. package/lib/module/views/w3m-onramp-settings-view/utils.js +14 -0
  226. package/lib/module/views/w3m-onramp-settings-view/utils.js.map +1 -1
  227. package/lib/module/views/w3m-onramp-transaction-view/index.js +1 -1
  228. package/lib/module/views/w3m-onramp-transaction-view/index.js.map +1 -1
  229. package/lib/module/views/w3m-onramp-view/components/LoadingView.js +1 -1
  230. package/lib/module/views/w3m-onramp-view/components/LoadingView.js.map +1 -1
  231. package/lib/module/views/w3m-onramp-view/index.js +1 -1
  232. package/lib/module/views/w3m-onramp-view/index.js.map +1 -1
  233. package/lib/module/views/w3m-siwx-sign-view/index.js +105 -0
  234. package/lib/module/views/w3m-siwx-sign-view/index.js.map +1 -0
  235. package/lib/module/views/{w3m-connecting-siwe-view → w3m-siwx-sign-view}/styles.js +0 -7
  236. package/lib/module/views/w3m-siwx-sign-view/styles.js.map +1 -0
  237. package/lib/module/views/w3m-swap-preview-view/index.js +1 -1
  238. package/lib/module/views/w3m-swap-preview-view/index.js.map +1 -1
  239. package/lib/module/views/w3m-swap-view/components/select-token-modal/index.js +1 -2
  240. package/lib/module/views/w3m-swap-view/components/select-token-modal/index.js.map +1 -1
  241. package/lib/module/views/w3m-swap-view/index.js +9 -6
  242. package/lib/module/views/w3m-swap-view/index.js.map +1 -1
  243. package/lib/module/views/w3m-unsupported-chain-view/index.js +8 -14
  244. package/lib/module/views/w3m-unsupported-chain-view/index.js.map +1 -1
  245. package/lib/module/views/w3m-unsupported-chain-view/styles.js +1 -1
  246. package/lib/module/views/w3m-unsupported-chain-view/styles.js.map +1 -1
  247. package/lib/module/views/w3m-upgrade-email-wallet-view/index.js +1 -1
  248. package/lib/module/views/w3m-upgrade-email-wallet-view/index.js.map +1 -1
  249. package/lib/module/views/w3m-wallet-receive-view/index.js +1 -1
  250. package/lib/module/views/w3m-wallet-receive-view/index.js.map +1 -1
  251. package/lib/module/views/w3m-wallet-send-preview-view/index.js +1 -1
  252. package/lib/module/views/w3m-wallet-send-preview-view/index.js.map +1 -1
  253. package/lib/module/views/w3m-wallet-send-select-token-view/index.js +1 -1
  254. package/lib/module/views/w3m-wallet-send-select-token-view/index.js.map +1 -1
  255. package/lib/module/views/w3m-wallet-send-view/index.js +8 -5
  256. package/lib/module/views/w3m-wallet-send-view/index.js.map +1 -1
  257. package/lib/module/views/w3m-what-is-a-network-view/index.js +1 -1
  258. package/lib/module/views/w3m-what-is-a-network-view/index.js.map +1 -1
  259. package/lib/module/views/w3m-what-is-a-wallet-view/index.js +2 -2
  260. package/lib/module/views/w3m-what-is-a-wallet-view/index.js.map +1 -1
  261. package/lib/typescript/AppKit.d.ts +13 -4
  262. package/lib/typescript/AppKit.d.ts.map +1 -1
  263. package/lib/typescript/AppKitContext.d.ts +1 -1
  264. package/lib/typescript/AppKitContext.d.ts.map +1 -1
  265. package/lib/typescript/connectors/WalletConnectConnector.d.ts.map +1 -1
  266. package/lib/typescript/hooks/useAccount.d.ts +33 -1
  267. package/lib/typescript/hooks/useAccount.d.ts.map +1 -1
  268. package/lib/typescript/hooks/useAppKit.d.ts +2 -2
  269. package/lib/typescript/hooks/useAppKit.d.ts.map +1 -1
  270. package/lib/typescript/hooks/useAppKitEvents.d.ts +75 -21
  271. package/lib/typescript/hooks/useAppKitEvents.d.ts.map +1 -1
  272. package/lib/typescript/hooks/useAppKitLogs.d.ts +57 -0
  273. package/lib/typescript/hooks/useAppKitLogs.d.ts.map +1 -0
  274. package/lib/typescript/hooks/useAppKitState.d.ts +38 -0
  275. package/lib/typescript/hooks/useAppKitState.d.ts.map +1 -0
  276. package/lib/typescript/hooks/useProvider.d.ts.map +1 -1
  277. package/lib/typescript/hooks/useWalletInfo.d.ts +1 -0
  278. package/lib/typescript/hooks/useWalletInfo.d.ts.map +1 -1
  279. package/lib/typescript/index.d.ts +5 -0
  280. package/lib/typescript/index.d.ts.map +1 -1
  281. package/lib/typescript/modal/w3m-modal/index.d.ts.map +1 -1
  282. package/lib/typescript/modal/w3m-router/index.d.ts.map +1 -1
  283. package/lib/typescript/partials/w3m-all-wallets-list/components/Loading.d.ts +3 -1
  284. package/lib/typescript/partials/w3m-all-wallets-list/components/Loading.d.ts.map +1 -1
  285. package/lib/typescript/partials/w3m-all-wallets-list/components/WalletItem.d.ts +4 -2
  286. package/lib/typescript/partials/w3m-all-wallets-list/components/WalletItem.d.ts.map +1 -1
  287. package/lib/typescript/partials/w3m-all-wallets-list/components/WalletList.d.ts +5 -2
  288. package/lib/typescript/partials/w3m-all-wallets-list/components/WalletList.d.ts.map +1 -1
  289. package/lib/typescript/partials/w3m-all-wallets-list/index.d.ts +1 -1
  290. package/lib/typescript/partials/w3m-all-wallets-list/index.d.ts.map +1 -1
  291. package/lib/typescript/partials/w3m-all-wallets-list/styles.d.ts +3 -0
  292. package/lib/typescript/partials/w3m-all-wallets-list/styles.d.ts.map +1 -1
  293. package/lib/typescript/partials/w3m-all-wallets-search/index.d.ts +1 -1
  294. package/lib/typescript/partials/w3m-all-wallets-search/index.d.ts.map +1 -1
  295. package/lib/typescript/partials/w3m-all-wallets-search/styles.d.ts +2 -0
  296. package/lib/typescript/partials/w3m-all-wallets-search/styles.d.ts.map +1 -1
  297. package/lib/typescript/partials/w3m-connecting-mobile/index.d.ts.map +1 -1
  298. package/lib/typescript/partials/w3m-connecting-mobile/styles.d.ts +1 -0
  299. package/lib/typescript/partials/w3m-connecting-mobile/styles.d.ts.map +1 -1
  300. package/lib/typescript/partials/w3m-connecting-qrcode/index.d.ts.map +1 -1
  301. package/lib/typescript/partials/w3m-connecting-web/index.d.ts.map +1 -1
  302. package/lib/typescript/partials/w3m-connecting-web/styles.d.ts +3 -0
  303. package/lib/typescript/partials/w3m-connecting-web/styles.d.ts.map +1 -1
  304. package/lib/typescript/partials/w3m-header/index.d.ts.map +1 -1
  305. package/lib/typescript/partials/w3m-selector-modal/index.d.ts +3 -1
  306. package/lib/typescript/partials/w3m-selector-modal/index.d.ts.map +1 -1
  307. package/lib/typescript/types.d.ts +6 -7
  308. package/lib/typescript/types.d.ts.map +1 -1
  309. package/lib/typescript/utils/SIWXUtil.d.ts +34 -0
  310. package/lib/typescript/utils/SIWXUtil.d.ts.map +1 -0
  311. package/lib/typescript/views/w3m-account-default-view/index.d.ts.map +1 -1
  312. package/lib/typescript/views/w3m-account-view/index.d.ts.map +1 -1
  313. package/lib/typescript/views/w3m-account-view/styles.d.ts +0 -3
  314. package/lib/typescript/views/w3m-account-view/styles.d.ts.map +1 -1
  315. package/lib/typescript/views/w3m-all-wallets-view/index.d.ts.map +1 -1
  316. package/lib/typescript/views/w3m-connect-view/components/all-wallet-list.d.ts +1 -1
  317. package/lib/typescript/views/w3m-connect-view/components/all-wallet-list.d.ts.map +1 -1
  318. package/lib/typescript/views/w3m-connect-view/index.d.ts.map +1 -1
  319. package/lib/typescript/views/w3m-connecting-external-view/index.d.ts.map +1 -1
  320. package/lib/typescript/views/w3m-connecting-social-view/index.d.ts.map +1 -1
  321. package/lib/typescript/views/w3m-connecting-view/index.d.ts.map +1 -1
  322. package/lib/typescript/views/w3m-network-switch-view/index.d.ts.map +1 -1
  323. package/lib/typescript/views/w3m-networks-view/index.d.ts.map +1 -1
  324. package/lib/typescript/views/w3m-onramp-settings-view/components/Country.d.ts +2 -1
  325. package/lib/typescript/views/w3m-onramp-settings-view/components/Country.d.ts.map +1 -1
  326. package/lib/typescript/views/w3m-onramp-settings-view/index.d.ts.map +1 -1
  327. package/lib/typescript/views/w3m-onramp-settings-view/utils.d.ts +2 -0
  328. package/lib/typescript/views/w3m-onramp-settings-view/utils.d.ts.map +1 -1
  329. package/lib/typescript/views/w3m-siwx-sign-view/index.d.ts +2 -0
  330. package/lib/typescript/views/w3m-siwx-sign-view/index.d.ts.map +1 -0
  331. package/lib/typescript/views/{w3m-connecting-siwe-view → w3m-siwx-sign-view}/styles.d.ts +0 -7
  332. package/lib/typescript/views/w3m-siwx-sign-view/styles.d.ts.map +1 -0
  333. package/lib/typescript/views/w3m-swap-view/components/select-token-modal/index.d.ts.map +1 -1
  334. package/lib/typescript/views/w3m-unsupported-chain-view/index.d.ts.map +1 -1
  335. package/lib/typescript/views/w3m-wallet-send-view/index.d.ts.map +1 -1
  336. package/package.json +10 -9
  337. package/src/AppKit.ts +161 -116
  338. package/src/AppKitContext.tsx +19 -11
  339. package/src/connectors/WalletConnectConnector.ts +47 -75
  340. package/src/hooks/useAccount.ts +15 -5
  341. package/src/hooks/useAppKit.ts +19 -13
  342. package/src/hooks/useAppKitLogs.ts +129 -0
  343. package/src/hooks/useAppKitState.ts +26 -0
  344. package/src/hooks/useProvider.ts +11 -5
  345. package/src/hooks/useWalletInfo.ts +5 -2
  346. package/src/index.ts +12 -0
  347. package/src/modal/w3m-modal/index.tsx +12 -2
  348. package/src/modal/w3m-router/index.tsx +17 -20
  349. package/src/partials/w3m-account-activity/index.tsx +1 -1
  350. package/src/partials/w3m-account-wallet-features/index.tsx +1 -1
  351. package/src/partials/w3m-all-wallets-list/components/Loading.tsx +10 -2
  352. package/src/partials/w3m-all-wallets-list/components/WalletItem.tsx +13 -3
  353. package/src/partials/w3m-all-wallets-list/components/WalletList.tsx +15 -6
  354. package/src/partials/w3m-all-wallets-list/index.tsx +21 -10
  355. package/src/partials/w3m-all-wallets-list/styles.ts +3 -0
  356. package/src/partials/w3m-all-wallets-search/index.tsx +28 -16
  357. package/src/partials/w3m-all-wallets-search/styles.ts +3 -1
  358. package/src/partials/w3m-connecting-mobile/index.tsx +24 -2
  359. package/src/partials/w3m-connecting-mobile/styles.ts +2 -1
  360. package/src/partials/w3m-connecting-qrcode/index.tsx +9 -3
  361. package/src/partials/w3m-connecting-web/index.tsx +13 -5
  362. package/src/partials/w3m-connecting-web/styles.ts +3 -0
  363. package/src/partials/w3m-header/index.tsx +7 -4
  364. package/src/partials/w3m-selector-modal/index.tsx +6 -6
  365. package/src/types.ts +7 -8
  366. package/src/utils/SIWXUtil.ts +364 -0
  367. package/src/views/w3m-account-default-view/index.tsx +6 -4
  368. package/src/views/w3m-account-view/index.tsx +1 -9
  369. package/src/views/w3m-account-view/styles.ts +1 -4
  370. package/src/views/w3m-all-wallets-view/index.tsx +11 -4
  371. package/src/views/w3m-connect-socials-view/index.tsx +2 -2
  372. package/src/views/w3m-connect-view/components/all-wallet-list.tsx +31 -22
  373. package/src/views/w3m-connect-view/index.tsx +8 -9
  374. package/src/views/w3m-connecting-external-view/index.tsx +24 -2
  375. package/src/views/w3m-connecting-external-view/styles.ts +1 -1
  376. package/src/views/w3m-connecting-social-view/index.tsx +4 -2
  377. package/src/views/w3m-connecting-view/index.tsx +16 -33
  378. package/src/views/w3m-get-wallet-view/index.tsx +1 -1
  379. package/src/views/w3m-network-switch-view/index.tsx +72 -98
  380. package/src/views/w3m-networks-view/index.tsx +20 -14
  381. package/src/views/w3m-onramp-checkout-view/index.tsx +1 -1
  382. package/src/views/w3m-onramp-loading-view/styles.ts +1 -1
  383. package/src/views/w3m-onramp-settings-view/components/Country.tsx +3 -1
  384. package/src/views/w3m-onramp-settings-view/index.tsx +13 -3
  385. package/src/views/w3m-onramp-settings-view/utils.ts +18 -0
  386. package/src/views/w3m-onramp-transaction-view/index.tsx +1 -1
  387. package/src/views/w3m-onramp-view/components/LoadingView.tsx +1 -1
  388. package/src/views/w3m-onramp-view/index.tsx +1 -1
  389. package/src/views/w3m-siwx-sign-view/index.tsx +98 -0
  390. package/src/views/{w3m-connecting-siwe-view → w3m-siwx-sign-view}/styles.ts +0 -7
  391. package/src/views/w3m-swap-preview-view/index.tsx +1 -1
  392. package/src/views/w3m-swap-view/components/select-token-modal/index.tsx +2 -4
  393. package/src/views/w3m-swap-view/index.tsx +7 -7
  394. package/src/views/w3m-unsupported-chain-view/index.tsx +5 -7
  395. package/src/views/w3m-unsupported-chain-view/styles.ts +1 -1
  396. package/src/views/w3m-upgrade-email-wallet-view/index.tsx +1 -1
  397. package/src/views/w3m-wallet-receive-view/index.tsx +1 -1
  398. package/src/views/w3m-wallet-send-preview-view/index.tsx +1 -1
  399. package/src/views/w3m-wallet-send-select-token-view/index.tsx +1 -1
  400. package/src/views/w3m-wallet-send-view/index.tsx +4 -3
  401. package/src/views/w3m-what-is-a-network-view/index.tsx +1 -1
  402. package/src/views/w3m-what-is-a-wallet-view/index.tsx +2 -2
  403. package/lib/commonjs/views/w3m-connect-view/components/custom-wallet-list.js +0 -45
  404. package/lib/commonjs/views/w3m-connect-view/components/custom-wallet-list.js.map +0 -1
  405. package/lib/commonjs/views/w3m-connect-view/components/recent-wallet-list.js +0 -41
  406. package/lib/commonjs/views/w3m-connect-view/components/recent-wallet-list.js.map +0 -1
  407. package/lib/commonjs/views/w3m-connect-view/utils.js +0 -14
  408. package/lib/commonjs/views/w3m-connect-view/utils.js.map +0 -1
  409. package/lib/commonjs/views/w3m-connecting-siwe-view/index.js +0 -145
  410. package/lib/commonjs/views/w3m-connecting-siwe-view/index.js.map +0 -1
  411. package/lib/commonjs/views/w3m-connecting-siwe-view/styles.js.map +0 -1
  412. package/lib/module/views/w3m-connect-view/components/custom-wallet-list.js +0 -41
  413. package/lib/module/views/w3m-connect-view/components/custom-wallet-list.js.map +0 -1
  414. package/lib/module/views/w3m-connect-view/components/recent-wallet-list.js +0 -37
  415. package/lib/module/views/w3m-connect-view/components/recent-wallet-list.js.map +0 -1
  416. package/lib/module/views/w3m-connect-view/utils.js +0 -9
  417. package/lib/module/views/w3m-connect-view/utils.js.map +0 -1
  418. package/lib/module/views/w3m-connecting-siwe-view/index.js +0 -140
  419. package/lib/module/views/w3m-connecting-siwe-view/index.js.map +0 -1
  420. package/lib/module/views/w3m-connecting-siwe-view/styles.js.map +0 -1
  421. package/lib/typescript/views/w3m-connect-view/components/custom-wallet-list.d.ts +0 -9
  422. package/lib/typescript/views/w3m-connect-view/components/custom-wallet-list.d.ts.map +0 -1
  423. package/lib/typescript/views/w3m-connect-view/components/recent-wallet-list.d.ts +0 -9
  424. package/lib/typescript/views/w3m-connect-view/components/recent-wallet-list.d.ts.map +0 -1
  425. package/lib/typescript/views/w3m-connect-view/utils.d.ts +0 -3
  426. package/lib/typescript/views/w3m-connect-view/utils.d.ts.map +0 -1
  427. package/lib/typescript/views/w3m-connecting-siwe-view/index.d.ts +0 -2
  428. package/lib/typescript/views/w3m-connecting-siwe-view/index.d.ts.map +0 -1
  429. package/lib/typescript/views/w3m-connecting-siwe-view/styles.d.ts.map +0 -1
  430. package/src/views/w3m-connect-view/components/custom-wallet-list.tsx +0 -51
  431. package/src/views/w3m-connect-view/components/recent-wallet-list.tsx +0 -45
  432. package/src/views/w3m-connect-view/utils.ts +0 -14
  433. package/src/views/w3m-connecting-siwe-view/index.tsx +0 -126
package/src/AppKit.ts CHANGED
@@ -14,7 +14,9 @@ import {
14
14
  CoreHelperUtil,
15
15
  SendController,
16
16
  BlockchainApiController,
17
- WalletUtil
17
+ WalletUtil,
18
+ LogController,
19
+ type RouterControllerState
18
20
  } from '@reown/appkit-core-react-native';
19
21
 
20
22
  import {
@@ -36,13 +38,20 @@ import {
36
38
  type Connection,
37
39
  type WcWallet
38
40
  } from '@reown/appkit-common-react-native';
39
- import { SIWEController } from '@reown/appkit-siwe-react-native';
40
41
 
41
42
  import { WalletConnectConnector } from './connectors/WalletConnectConnector';
42
43
  import { WcHelpersUtil } from './utils/HelpersUtil';
43
44
  import { NetworkUtil } from './utils/NetworkUtil';
44
45
  import { RouterUtil } from './utils/RouterUtil';
45
46
  import { type AppKitConfig } from './types';
47
+ import { SIWXUtil } from './utils/SIWXUtil';
48
+
49
+ const APPKIT_INSTANCE_KEY = Symbol.for('__REOWN_APPKIT_INSTANCE__');
50
+
51
+ // Type helper to access the symbol-keyed property on globalThis
52
+ interface GlobalWithAppKit {
53
+ [key: symbol]: AppKit | undefined;
54
+ }
46
55
 
47
56
  export class AppKit {
48
57
  private projectId: string;
@@ -130,8 +139,7 @@ export class AppKit {
130
139
  const approvedNamespaces = await connector.connect({
131
140
  namespaces: this.namespaces,
132
141
  defaultNetwork: chain,
133
- universalLink: targetWallet?.link_mode ?? undefined,
134
- siweConfig: this.config?.siweConfig
142
+ universalLink: targetWallet?.link_mode ?? undefined
135
143
  });
136
144
 
137
145
  this.processConnection(connector, approvedNamespaces);
@@ -144,16 +152,12 @@ export class AppKit {
144
152
  });
145
153
  }
146
154
  } catch (error) {
147
- console.warn('Connection failed:', error);
155
+ LogController.sendError(error, 'AppKit.ts', 'connect');
148
156
  throw error;
149
157
  }
150
158
  }
151
159
 
152
- private processConnection(
153
- connector: WalletConnector,
154
- namespaces?: Namespaces,
155
- shouldCloseModal: boolean = true
156
- ) {
160
+ private async processConnection(connector: WalletConnector, namespaces?: Namespaces) {
157
161
  if (!namespaces || Object.keys(namespaces).length === 0) {
158
162
  throw new Error('No namespaces provided');
159
163
  }
@@ -173,21 +177,9 @@ export class AppKit {
173
177
  this.setConnection(initializedAdapters, namespaces, walletInfo, properties);
174
178
 
175
179
  // Sync accounts
176
- this.syncAccounts(initializedAdapters);
177
-
178
- // Handle SIWE if enabled
179
- this.handleSiweConnectionIfEnabled(shouldCloseModal);
180
- }
180
+ await this.syncAccounts(initializedAdapters);
181
181
 
182
- private handleSiweConnectionIfEnabled(shouldCloseModal: boolean = true): void {
183
- if (
184
- OptionsController.state.isSiweEnabled &&
185
- ConnectionsController.state.activeNamespace === 'eip155'
186
- ) {
187
- this.handleSiweChange({ isConnection: true });
188
- } else if (shouldCloseModal) {
189
- ModalController.close();
190
- }
182
+ await SIWXUtil.initializeIfEnabled({ onDisconnect: this.disconnect, closeModal: true });
191
183
  }
192
184
 
193
185
  /**
@@ -195,7 +187,7 @@ export class AppKit {
195
187
  * @param namespace - The namespace to disconnect from.
196
188
  * @param isInternal - Whether the disconnect is internal (i.e. from the AppKit) or external (i.e. from wallet side).
197
189
  */
198
- async disconnect(namespace?: string, isInternal?: boolean): Promise<void> {
190
+ async disconnect(namespace?: ChainNamespace, isInternal?: boolean): Promise<void> {
199
191
  try {
200
192
  const activeNamespace = namespace ?? ConnectionsController.state.activeNamespace;
201
193
 
@@ -229,15 +221,19 @@ export class AppKit {
229
221
  );
230
222
  }
231
223
 
232
- if (OptionsController.state.isSiweEnabled) {
233
- await SIWEController.signOut();
224
+ if (SIWXUtil.getSIWX()?.signOutOnDisconnect) {
225
+ await SIWXUtil.clearSessions();
234
226
  }
235
227
 
236
228
  EventsController.sendEvent({
237
229
  type: 'track',
238
- event: 'DISCONNECT_SUCCESS'
230
+ event: 'DISCONNECT_SUCCESS',
231
+ properties: {
232
+ namespace: activeNamespace
233
+ }
239
234
  });
240
235
  } catch (error) {
236
+ LogController.sendError(error, 'AppKit.ts', 'disconnect');
241
237
  EventsController.sendEvent({
242
238
  type: 'track',
243
239
  event: 'DISCONNECT_ERROR'
@@ -284,15 +280,11 @@ export class AppKit {
284
280
  type: 'track',
285
281
  event: 'SWITCH_NETWORK',
286
282
  properties: {
287
- network: network.id
283
+ network: network.caipNetworkId
288
284
  }
289
285
  });
290
286
 
291
287
  ConnectionsController.setActiveNetwork(network.chainNamespace, network.caipNetworkId);
292
-
293
- if (ConnectionsController.state.activeNamespace !== network.chainNamespace) {
294
- ConnectionsController.setActiveNamespace(network.chainNamespace);
295
- }
296
288
  }
297
289
 
298
290
  open(options?: AppKitOpenOptions) {
@@ -301,19 +293,19 @@ export class AppKit {
301
293
 
302
294
  async close() {
303
295
  ModalController.close();
296
+ const isSIWXRequired = SIWXUtil.getSIWX()?.getRequired?.();
304
297
 
305
- if (OptionsController.state.isSiweEnabled && ConnectionsController.state.isConnected) {
306
- const session = await SIWEController.getSession();
307
- if (
308
- !session &&
309
- SIWEController.state.status !== 'success' &&
310
- ConnectionsController.state.activeNamespace === 'eip155' &&
311
- !!ConnectionsController.state.activeAddress
312
- ) {
313
- await this.disconnect();
298
+ if (isSIWXRequired && ConnectionsController.state.isConnected) {
299
+ const sessions = await SIWXUtil.getSessions();
300
+ if (!sessions.length) {
301
+ return await this.disconnect();
314
302
  }
315
303
  }
316
304
 
305
+ if (RouterController.state.view === 'UnsupportedChain') {
306
+ return await this.disconnect();
307
+ }
308
+
317
309
  RouterUtil.checkOnRampBack();
318
310
  RouterUtil.checkSocialLoginBack();
319
311
  }
@@ -325,6 +317,13 @@ export class AppKit {
325
317
  return RouterController.goBack();
326
318
  }
327
319
 
320
+ const isSIWXRequired = SIWXUtil.getSIWX()?.getRequired?.();
321
+
322
+ if (isSIWXRequired) {
323
+ // Don't close the modal if SIWX is required
324
+ return;
325
+ }
326
+
328
327
  return this.close();
329
328
  }
330
329
 
@@ -395,25 +394,44 @@ export class AppKit {
395
394
  * This attempts to restore previous sessions.
396
395
  */
397
396
  private async initConnectors() {
397
+ ModalController.setLoading(true);
398
+
399
+ //Always init the walletconnect connector
400
+ await this.createWalletConnectConnector();
401
+
398
402
  const connectedConnectors = await StorageUtil.getConnectedConnectors();
399
403
  if (connectedConnectors.length > 0) {
400
- ModalController.setLoading(true);
401
-
402
404
  for (const connected of connectedConnectors) {
403
405
  try {
404
406
  const connector = await this.createConnector(connected.type);
405
407
 
406
408
  const namespaces = connector.getNamespaces();
407
409
 
408
- this.processConnection(connector, namespaces, false);
410
+ await this.processConnection(connector, namespaces);
409
411
  } catch (error) {
410
- // Use console.warn for non-critical initialization failures
411
- console.warn(`Failed to initialize connector type ${connected.type}:`, error);
412
+ LogController.sendError(error, 'AppKit.ts', 'initializeConnector', {
413
+ connectorType: connected.type
414
+ });
412
415
  await StorageUtil.removeConnectedConnectors(connected.type);
413
416
  }
414
417
  }
415
- ModalController.setLoading(false);
418
+
419
+ const address = ConnectionsController.state.activeAddress;
420
+ const walletInfo = ConnectionsController.state.walletInfo;
421
+ if (address) {
422
+ EventsController.sendEvent({
423
+ type: 'track',
424
+ event: 'CONNECT_SUCCESS',
425
+ address: CoreHelperUtil.getPlainAddress(address),
426
+ properties: {
427
+ name: walletInfo?.name ?? 'Unknown',
428
+ reconnect: true
429
+ }
430
+ });
431
+ }
416
432
  }
433
+
434
+ ModalController.setLoading(false);
417
435
  }
418
436
 
419
437
  private setupAdaptersAndSubscribe(
@@ -505,12 +523,13 @@ export class AppKit {
505
523
  );
506
524
  }
507
525
  } catch (error) {
526
+ LogController.sendError(error, 'AppKit.ts', 'syncIdentity');
508
527
  // Continue processing other addresses even if one fails
509
528
  }
510
529
  }
511
530
  }
512
531
 
513
- private async refreshBalance(fetchAllBalances: boolean = false) {
532
+ private refreshBalance(fetchAllBalances: boolean = false) {
514
533
  try {
515
534
  if (fetchAllBalances) {
516
535
  ConnectionsController.fetchBalance();
@@ -523,8 +542,9 @@ export class AppKit {
523
542
  this.syncNativeBalance(adapter, network);
524
543
  }
525
544
  }
526
- } catch {
545
+ } catch (error) {
527
546
  // ignore
547
+ LogController.sendError(error, 'AppKit.ts', 'refreshBalance');
528
548
  }
529
549
  }
530
550
 
@@ -547,7 +567,6 @@ export class AppKit {
547
567
  const recomputePolling = () => {
548
568
  const open = ModalController.state.open;
549
569
  const view = RouterController.state.view;
550
-
551
570
  if (open && (view === 'Account' || view === 'AccountDefault')) {
552
571
  // fetch all balances when user is using embedded wallet
553
572
  this.startBalancePolling(view === 'Account');
@@ -555,9 +574,7 @@ export class AppKit {
555
574
  this.stopBalancePolling();
556
575
  }
557
576
  };
558
-
559
577
  recomputePolling();
560
-
561
578
  subscribeKey(RouterController.state, 'view', () => recomputePolling());
562
579
  subscribeKey(ModalController.state, 'open', () => recomputePolling());
563
580
  }
@@ -578,7 +595,8 @@ export class AppKit {
578
595
  const caipNetwork = adapter?.connector?.getChainId(namespace);
579
596
  const namespaceProperties = {
580
597
  ...properties,
581
- smartAccounts: properties?.smartAccounts?.filter(account => account.startsWith(namespace))
598
+ smartAccounts: properties?.smartAccounts?.filter(account => account.startsWith(namespace)),
599
+ canAddEvmChain: wallet?.name === 'MetaMask Wallet' // MetaMask allows adding EVM chains after connecting
582
600
  };
583
601
 
584
602
  ConnectionsController.setConnection({
@@ -605,21 +623,21 @@ export class AppKit {
605
623
  adapter.on('accountsChanged', ({ accounts }) => {
606
624
  const namespace = adapter.getSupportedNamespace();
607
625
  ConnectionsController.updateAccounts(namespace, accounts);
626
+ });
608
627
 
609
- if (namespace === 'eip155') {
610
- this.handleSiweChange({ isAccountChange: true });
628
+ adapter.on('chainChanged', async ({ chainId }) => {
629
+ const isSupported = this.networks.some(network => network.id?.toString() === chainId);
630
+ if (!isSupported) {
631
+ return this.navigate('UnsupportedChain');
611
632
  }
612
- });
613
633
 
614
- adapter.on('chainChanged', ({ chainId }) => {
615
634
  const namespace = adapter.getSupportedNamespace();
616
635
  const chain = `${namespace}:${chainId}` as CaipNetworkId;
617
636
  ConnectionsController.setActiveNetwork(namespace, chain);
637
+
618
638
  const connection = ConnectionsController.state.connections.get(namespace);
619
639
  const isAuth = !!connection?.properties?.provider;
620
640
 
621
- const activeNamespace = ConnectionsController.state.activeNamespace;
622
-
623
641
  const network = this.networks.find(n => n.id?.toString() === chainId);
624
642
  this.syncNativeBalance(adapter, network);
625
643
  SendController.resetState();
@@ -629,20 +647,14 @@ export class AppKit {
629
647
  ConnectionsController.fetchBalance();
630
648
  }
631
649
 
632
- // Refresh transactions only when the active network changes
633
- if (namespace === activeNamespace) {
634
- const address = connection?.accounts?.find(account =>
635
- account.startsWith(`${namespace}:${chainId}`)
636
- );
637
- if (address) {
638
- TransactionsController.fetchTransactions(address, true);
639
- }
650
+ const address = connection?.accounts?.find(account =>
651
+ account.startsWith(`${namespace}:${chainId}`)
652
+ );
653
+ if (address) {
654
+ TransactionsController.fetchTransactions(address, true);
640
655
  }
641
656
 
642
- // Check if user needs to sign in again
643
- if (namespace === 'eip155') {
644
- this.handleSiweChange({ isNetworkChange: true });
645
- }
657
+ SIWXUtil.initializeIfEnabled({ onDisconnect: this.disconnect, caipAddress: address });
646
658
  });
647
659
 
648
660
  adapter.on('disconnect', () => {
@@ -658,6 +670,7 @@ export class AppKit {
658
670
 
659
671
  private async initControllers(options: AppKitConfig) {
660
672
  await this.initStorageAndValues(options);
673
+ let defaultNetwork;
661
674
 
662
675
  OptionsController.setProjectId(options.projectId);
663
676
  OptionsController.setMetadata(options.metadata);
@@ -666,16 +679,26 @@ export class AppKit {
666
679
  this.setCustomWallets(options);
667
680
  OptionsController.setFeaturedWalletIds(options.featuredWalletIds);
668
681
  OptionsController.setEnableAnalytics(options.enableAnalytics);
669
- OptionsController.setDebug(options.debug);
682
+ OptionsController.setDebug(options.debug && __DEV__);
683
+
684
+ // Initialize LogController after debug option is set
685
+ LogController.initialize();
686
+ LogController.sendInfo('AppKit initialization started', 'AppKit.ts', 'initControllers', {
687
+ projectId: options.projectId,
688
+ adapters: this.adapters.map(a => a.constructor.name),
689
+ networks: this.networks.map(n => n.name),
690
+ debug: options.debug
691
+ });
692
+
670
693
  OptionsController.setFeatures(options.features);
671
694
  OptionsController.setRequestedNetworks(this.networks);
672
695
 
673
696
  if (options.defaultNetwork) {
674
- const network = NetworkUtil.formatNetwork(options.defaultNetwork, this.projectId);
675
- OptionsController.setDefaultNetwork(network);
697
+ defaultNetwork = NetworkUtil.formatNetwork(options.defaultNetwork, this.projectId);
698
+ OptionsController.setDefaultNetwork(defaultNetwork);
676
699
  }
677
700
 
678
- ThemeController.setThemeMode(options.themeMode);
701
+ ThemeController.setDefaultThemeMode(options.themeMode);
679
702
  ThemeController.setThemeVariables(options.themeVariables);
680
703
 
681
704
  OptionsController.setSdkVersion(
@@ -688,8 +711,8 @@ export class AppKit {
688
711
 
689
712
  ConnectionsController.setNetworks(this.networks);
690
713
 
691
- if (options.siweConfig) {
692
- SIWEController.setSIWEClient(options.siweConfig);
714
+ if (options.siwx) {
715
+ OptionsController.setSiwx(options.siwx);
693
716
  }
694
717
 
695
718
  if (
@@ -698,6 +721,24 @@ export class AppKit {
698
721
  ) {
699
722
  OptionsController.setIsOnRampEnabled(true);
700
723
  }
724
+
725
+ EventsController.sendEvent({
726
+ type: 'track',
727
+ event: 'INITIALIZE',
728
+ properties: {
729
+ showWallets: options.features?.showWallets,
730
+ themeMode: options.themeMode,
731
+ themeVariables: options.themeVariables,
732
+ networks: this.networks.map(network => network.caipNetworkId).filter(Boolean),
733
+ defaultNetwork: defaultNetwork?.caipNetworkId,
734
+ metadata: options.metadata,
735
+ enableAnalytics: options.enableAnalytics,
736
+ features: options.features,
737
+ adapters: this.adapters.map(adapter => adapter?.constructor?.name).filter(Boolean),
738
+ extraConnectors: this.extraConnectors.map(connector => connector?.type).filter(Boolean),
739
+ siwx: !!options.siwx
740
+ }
741
+ });
701
742
  }
702
743
 
703
744
  private async initActiveNamespace() {
@@ -784,50 +825,54 @@ export class AppKit {
784
825
  await this.initRecentWallets(options);
785
826
  }
786
827
 
787
- private onSiweNavigation = () => {
828
+ private navigate = (routeName: RouterControllerState['view']) => {
829
+ if (RouterController.state.view === routeName) {
830
+ return;
831
+ }
832
+
788
833
  if (ModalController.state.open) {
789
- RouterController.push('ConnectingSiwe');
834
+ RouterController.push(routeName);
790
835
  } else {
791
- ModalController.open({ view: 'ConnectingSiwe' });
836
+ ModalController.open({ view: routeName });
792
837
  }
793
838
  };
839
+ }
794
840
 
795
- private async handleSiweChange(params?: {
796
- isConnection?: boolean;
797
- isNetworkChange?: boolean;
798
- isAccountChange?: boolean;
799
- }) {
800
- const { isNetworkChange, isAccountChange, isConnection } = params ?? {};
801
- const { enabled, signOutOnAccountChange, signOutOnNetworkChange } =
802
- SIWEController.state._client?.options ?? {};
803
-
804
- if (enabled) {
805
- const session = await SIWEController.getSession();
806
- if (session && isAccountChange) {
807
- if (signOutOnAccountChange) {
808
- // If the address has changed and signOnAccountChange is enabled, sign out
809
- await SIWEController.signOut();
810
-
811
- return this.onSiweNavigation();
812
- }
813
- } else if (isNetworkChange) {
814
- if (signOutOnNetworkChange) {
815
- // If the network has changed and signOnNetworkChange is enabled, sign out
816
- await SIWEController.signOut();
817
-
818
- return this.onSiweNavigation();
819
- }
820
- } else if (!session) {
821
- // If it's connected but there's no session, show sign view
822
- return this.onSiweNavigation();
823
- } else if (isConnection) {
824
- // Connected with 1CA
825
- ModalController.close();
841
+ /**
842
+ * Creates or returns the existing AppKit singleton instance.
843
+ *
844
+ * @warning This function implements a singleton pattern. If an instance already exists,
845
+ * it will be returned and the provided config parameter will be IGNORED. If you need to
846
+ * change configuration, you must reload your application or clear the singleton manually.
847
+ *
848
+ * @param config - AppKit configuration options
849
+ * @returns The AppKit singleton instance
850
+ * @throws Error if configuration validation fails
851
+ */
852
+ export function createAppKit(config: AppKitConfig): AppKit {
853
+ try {
854
+ const globalWithAppKit = globalThis as GlobalWithAppKit;
855
+
856
+ if (!globalWithAppKit[APPKIT_INSTANCE_KEY]) {
857
+ if (config.debug && __DEV__) {
858
+ // using console.log to avoid possible issues with LogController not being initialized
859
+ //eslint-disable-next-line no-console
860
+ console.log('AppKit: Creating new instance - AppKit.ts:createAppKit');
826
861
  }
862
+ globalWithAppKit[APPKIT_INSTANCE_KEY] = new AppKit(config);
863
+ } else if (config.debug && __DEV__) {
864
+ //eslint-disable-next-line no-console
865
+ console.log('AppKit: Reusing existing instance - AppKit.ts:createAppKit');
827
866
  }
828
- }
829
- }
830
867
 
831
- export function createAppKit(config: AppKitConfig): AppKit {
832
- return new AppKit(config);
868
+ return globalWithAppKit[APPKIT_INSTANCE_KEY]!;
869
+ } catch (error) {
870
+ if (__DEV__) {
871
+ // using console.error to avoid possible issues with LogController not being initialized
872
+ //eslint-disable-next-line no-console
873
+ console.error('AppKit: Failed to create instance - AppKit.ts:createAppKit', error);
874
+ }
875
+
876
+ throw error;
877
+ }
833
878
  }
@@ -1,4 +1,4 @@
1
- import React, { createContext, useContext, type ReactNode } from 'react';
1
+ import React, { createContext, useContext, useMemo, type ReactNode } from 'react';
2
2
  import { AppKit } from './AppKit';
3
3
 
4
4
  interface AppKitContextType {
@@ -26,14 +26,22 @@ export const useInternalAppKit = () => {
26
26
  throw new Error('AppKit instance is not yet available in context.');
27
27
  }
28
28
 
29
- return {
30
- connect: context.appKit.connect.bind(context.appKit),
31
- disconnect: context.appKit.disconnect.bind(context.appKit),
32
- open: context.appKit.open.bind(context.appKit),
33
- close: context.appKit.close.bind(context.appKit),
34
- back: context.appKit.back.bind(context.appKit),
35
- switchNetwork: context.appKit.switchNetwork.bind(context.appKit),
36
- getProvider: context.appKit.getProvider.bind(context.appKit),
37
- switchAccountType: context.appKit.switchAccountType.bind(context.appKit)
38
- };
29
+ const stableFunctions = useMemo(() => {
30
+ if (!context.appKit) {
31
+ throw new Error('AppKit instance is not available');
32
+ }
33
+
34
+ return {
35
+ connect: context.appKit.connect.bind(context.appKit),
36
+ disconnect: context.appKit.disconnect.bind(context.appKit),
37
+ open: context.appKit.open.bind(context.appKit),
38
+ close: context.appKit.close.bind(context.appKit),
39
+ back: context.appKit.back.bind(context.appKit),
40
+ switchNetwork: context.appKit.switchNetwork.bind(context.appKit),
41
+ getProvider: context.appKit.getProvider.bind(context.appKit),
42
+ switchAccountType: context.appKit.switchAccountType.bind(context.appKit)
43
+ };
44
+ }, [context.appKit]);
45
+
46
+ return stableFunctions;
39
47
  };