@reown/appkit-react-native 2.0.0-alpha.4 → 2.0.0-alpha.5

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 (484) hide show
  1. package/lib/commonjs/AppKit.js +57 -45
  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 +12 -6
  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/useAppKitState.js +32 -0
  12. package/lib/commonjs/hooks/useAppKitState.js.map +1 -0
  13. package/lib/commonjs/hooks/useProvider.js +14 -8
  14. package/lib/commonjs/hooks/useProvider.js.map +1 -1
  15. package/lib/commonjs/hooks/useWalletInfo.js +6 -4
  16. package/lib/commonjs/hooks/useWalletInfo.js.map +1 -1
  17. package/lib/commonjs/index.js +7 -0
  18. package/lib/commonjs/index.js.map +1 -1
  19. package/lib/commonjs/modal/w3m-modal/index.js +16 -5
  20. package/lib/commonjs/modal/w3m-modal/index.js.map +1 -1
  21. package/lib/commonjs/modal/w3m-router/index.js +11 -5
  22. package/lib/commonjs/modal/w3m-router/index.js.map +1 -1
  23. package/lib/commonjs/partials/w3m-account-activity/index.js +1 -1
  24. package/lib/commonjs/partials/w3m-account-activity/index.js.map +1 -1
  25. package/lib/commonjs/partials/w3m-all-wallets-list/components/Loading.js +9 -97
  26. package/lib/commonjs/partials/w3m-all-wallets-list/components/Loading.js.map +1 -1
  27. package/lib/commonjs/partials/w3m-all-wallets-list/components/WalletItem.js +2 -8
  28. package/lib/commonjs/partials/w3m-all-wallets-list/components/WalletItem.js.map +1 -1
  29. package/lib/commonjs/partials/w3m-all-wallets-list/components/WalletList.js +94 -0
  30. package/lib/commonjs/partials/w3m-all-wallets-list/components/WalletList.js.map +1 -0
  31. package/lib/commonjs/partials/w3m-all-wallets-list/index.js +19 -45
  32. package/lib/commonjs/partials/w3m-all-wallets-list/index.js.map +1 -1
  33. package/lib/commonjs/partials/w3m-all-wallets-list/styles.js +10 -4
  34. package/lib/commonjs/partials/w3m-all-wallets-list/styles.js.map +1 -1
  35. package/lib/commonjs/partials/w3m-all-wallets-search/index.js +24 -49
  36. package/lib/commonjs/partials/w3m-all-wallets-search/index.js.map +1 -1
  37. package/lib/commonjs/partials/w3m-all-wallets-search/styles.js +3 -1
  38. package/lib/commonjs/partials/w3m-all-wallets-search/styles.js.map +1 -1
  39. package/lib/commonjs/partials/w3m-connecting-mobile/index.js +4 -4
  40. package/lib/commonjs/partials/w3m-connecting-mobile/index.js.map +1 -1
  41. package/lib/commonjs/partials/w3m-connecting-mobile/styles.js +2 -1
  42. package/lib/commonjs/partials/w3m-connecting-mobile/styles.js.map +1 -1
  43. package/lib/commonjs/partials/w3m-connecting-qrcode/index.js +7 -2
  44. package/lib/commonjs/partials/w3m-connecting-qrcode/index.js.map +1 -1
  45. package/lib/commonjs/partials/w3m-connecting-web/index.js +2 -1
  46. package/lib/commonjs/partials/w3m-connecting-web/index.js.map +1 -1
  47. package/lib/commonjs/partials/w3m-connecting-web/styles.js +3 -0
  48. package/lib/commonjs/partials/w3m-connecting-web/styles.js.map +1 -1
  49. package/lib/commonjs/partials/w3m-header/index.js +5 -4
  50. package/lib/commonjs/partials/w3m-header/index.js.map +1 -1
  51. package/lib/commonjs/partials/w3m-selector-modal/index.js +72 -57
  52. package/lib/commonjs/partials/w3m-selector-modal/index.js.map +1 -1
  53. package/lib/commonjs/partials/w3m-selector-modal/styles.js +9 -11
  54. package/lib/commonjs/partials/w3m-selector-modal/styles.js.map +1 -1
  55. package/lib/commonjs/views/w3m-account-default-view/index.js +3 -3
  56. package/lib/commonjs/views/w3m-account-default-view/index.js.map +1 -1
  57. package/lib/commonjs/views/w3m-account-view/index.js +2 -2
  58. package/lib/commonjs/views/w3m-account-view/index.js.map +1 -1
  59. package/lib/commonjs/views/w3m-account-view/styles.js +0 -5
  60. package/lib/commonjs/views/w3m-account-view/styles.js.map +1 -1
  61. package/lib/commonjs/views/w3m-all-wallets-view/index.js +7 -24
  62. package/lib/commonjs/views/w3m-all-wallets-view/index.js.map +1 -1
  63. package/lib/commonjs/views/w3m-connect-socials-view/index.js +2 -2
  64. package/lib/commonjs/views/w3m-connect-socials-view/index.js.map +1 -1
  65. package/lib/commonjs/views/w3m-connect-view/components/all-wallet-list.js +18 -13
  66. package/lib/commonjs/views/w3m-connect-view/components/all-wallet-list.js.map +1 -1
  67. package/lib/commonjs/views/w3m-connect-view/index.js +4 -12
  68. package/lib/commonjs/views/w3m-connect-view/index.js.map +1 -1
  69. package/lib/commonjs/views/w3m-connecting-external-view/index.js +4 -4
  70. package/lib/commonjs/views/w3m-connecting-external-view/index.js.map +1 -1
  71. package/lib/commonjs/views/w3m-connecting-external-view/styles.js +1 -1
  72. package/lib/commonjs/views/w3m-connecting-external-view/styles.js.map +1 -1
  73. package/lib/commonjs/views/w3m-connecting-siwe-view/index.js +55 -54
  74. package/lib/commonjs/views/w3m-connecting-siwe-view/index.js.map +1 -1
  75. package/lib/commonjs/views/w3m-connecting-siwe-view/styles.js +0 -7
  76. package/lib/commonjs/views/w3m-connecting-siwe-view/styles.js.map +1 -1
  77. package/lib/commonjs/views/w3m-connecting-social-view/index.js +35 -30
  78. package/lib/commonjs/views/w3m-connecting-social-view/index.js.map +1 -1
  79. package/lib/commonjs/views/w3m-get-wallet-view/index.js +1 -1
  80. package/lib/commonjs/views/w3m-get-wallet-view/index.js.map +1 -1
  81. package/lib/commonjs/views/w3m-network-switch-view/index.js +61 -80
  82. package/lib/commonjs/views/w3m-network-switch-view/index.js.map +1 -1
  83. package/lib/commonjs/views/w3m-networks-view/index.js +25 -14
  84. package/lib/commonjs/views/w3m-networks-view/index.js.map +1 -1
  85. package/lib/commonjs/views/w3m-onramp-checkout-view/index.js +160 -152
  86. package/lib/commonjs/views/w3m-onramp-checkout-view/index.js.map +1 -1
  87. package/lib/commonjs/views/w3m-onramp-loading-view/index.js +4 -4
  88. package/lib/commonjs/views/w3m-onramp-loading-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 -2
  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 +15 -7
  94. package/lib/commonjs/views/w3m-onramp-settings-view/index.js.map +1 -1
  95. package/lib/commonjs/views/w3m-onramp-settings-view/styles.js +4 -1
  96. package/lib/commonjs/views/w3m-onramp-settings-view/styles.js.map +1 -1
  97. package/lib/commonjs/views/w3m-onramp-settings-view/utils.js +17 -1
  98. package/lib/commonjs/views/w3m-onramp-settings-view/utils.js.map +1 -1
  99. package/lib/commonjs/views/w3m-onramp-transaction-view/index.js +1 -1
  100. package/lib/commonjs/views/w3m-onramp-transaction-view/index.js.map +1 -1
  101. package/lib/commonjs/views/w3m-onramp-view/components/Currency.js +3 -2
  102. package/lib/commonjs/views/w3m-onramp-view/components/Currency.js.map +1 -1
  103. package/lib/commonjs/views/w3m-onramp-view/components/Header.js +1 -1
  104. package/lib/commonjs/views/w3m-onramp-view/components/LoadingView.js +1 -1
  105. package/lib/commonjs/views/w3m-onramp-view/components/LoadingView.js.map +1 -1
  106. package/lib/commonjs/views/w3m-onramp-view/components/SelectPaymentModal.js +5 -2
  107. package/lib/commonjs/views/w3m-onramp-view/components/SelectPaymentModal.js.map +1 -1
  108. package/lib/commonjs/views/w3m-onramp-view/index.js +5 -4
  109. package/lib/commonjs/views/w3m-onramp-view/index.js.map +1 -1
  110. package/lib/commonjs/views/w3m-onramp-view/styles.js +3 -0
  111. package/lib/commonjs/views/w3m-onramp-view/styles.js.map +1 -1
  112. package/lib/commonjs/views/w3m-swap-preview-view/index.js +1 -1
  113. package/lib/commonjs/views/w3m-swap-preview-view/index.js.map +1 -1
  114. package/lib/commonjs/views/w3m-swap-preview-view/styles.js +0 -3
  115. package/lib/commonjs/views/w3m-swap-preview-view/styles.js.map +1 -1
  116. package/lib/commonjs/views/w3m-swap-view/components/select-token-modal/index.js +156 -0
  117. package/lib/commonjs/views/w3m-swap-view/components/select-token-modal/index.js.map +1 -0
  118. package/lib/commonjs/views/w3m-swap-view/components/{select-token-view → select-token-modal}/styles.js +6 -2
  119. package/lib/commonjs/views/w3m-swap-view/components/select-token-modal/styles.js.map +1 -0
  120. package/lib/commonjs/views/w3m-swap-view/components/select-token-modal/utils.js.map +1 -0
  121. package/lib/commonjs/views/w3m-swap-view/index.js +15 -15
  122. package/lib/commonjs/views/w3m-swap-view/index.js.map +1 -1
  123. package/lib/commonjs/views/w3m-swap-view/styles.js +0 -8
  124. package/lib/commonjs/views/w3m-swap-view/styles.js.map +1 -1
  125. package/lib/commonjs/views/w3m-unsupported-chain-view/index.js +6 -12
  126. package/lib/commonjs/views/w3m-unsupported-chain-view/index.js.map +1 -1
  127. package/lib/commonjs/views/w3m-unsupported-chain-view/styles.js +1 -1
  128. package/lib/commonjs/views/w3m-unsupported-chain-view/styles.js.map +1 -1
  129. package/lib/commonjs/views/w3m-upgrade-email-wallet-view/index.js +3 -5
  130. package/lib/commonjs/views/w3m-upgrade-email-wallet-view/index.js.map +1 -1
  131. package/lib/commonjs/views/w3m-wallet-compatible-networks-view/index.js +1 -2
  132. package/lib/commonjs/views/w3m-wallet-compatible-networks-view/index.js.map +1 -1
  133. package/lib/commonjs/views/w3m-wallet-receive-view/index.js +1 -1
  134. package/lib/commonjs/views/w3m-wallet-receive-view/index.js.map +1 -1
  135. package/lib/commonjs/views/w3m-wallet-send-preview-view/index.js +1 -1
  136. package/lib/commonjs/views/w3m-wallet-send-preview-view/index.js.map +1 -1
  137. package/lib/commonjs/views/w3m-wallet-send-select-token-view/index.js +5 -3
  138. package/lib/commonjs/views/w3m-wallet-send-select-token-view/index.js.map +1 -1
  139. package/lib/commonjs/views/w3m-wallet-send-view/index.js +11 -5
  140. package/lib/commonjs/views/w3m-wallet-send-view/index.js.map +1 -1
  141. package/lib/commonjs/views/w3m-wallet-send-view/styles.js +0 -3
  142. package/lib/commonjs/views/w3m-wallet-send-view/styles.js.map +1 -1
  143. package/lib/commonjs/views/w3m-what-is-a-network-view/index.js +1 -1
  144. package/lib/commonjs/views/w3m-what-is-a-network-view/index.js.map +1 -1
  145. package/lib/commonjs/views/w3m-what-is-a-wallet-view/index.js +1 -1
  146. package/lib/commonjs/views/w3m-what-is-a-wallet-view/index.js.map +1 -1
  147. package/lib/module/AppKit.js +57 -45
  148. package/lib/module/AppKit.js.map +1 -1
  149. package/lib/module/AppKitContext.js +17 -11
  150. package/lib/module/AppKitContext.js.map +1 -1
  151. package/lib/module/connectors/WalletConnectConnector.js +12 -6
  152. package/lib/module/connectors/WalletConnectConnector.js.map +1 -1
  153. package/lib/module/hooks/useAccount.js +9 -5
  154. package/lib/module/hooks/useAccount.js.map +1 -1
  155. package/lib/module/hooks/useAppKit.js +13 -13
  156. package/lib/module/hooks/useAppKit.js.map +1 -1
  157. package/lib/module/hooks/useAppKitState.js +27 -0
  158. package/lib/module/hooks/useAppKitState.js.map +1 -0
  159. package/lib/module/hooks/useProvider.js +13 -8
  160. package/lib/module/hooks/useProvider.js.map +1 -1
  161. package/lib/module/hooks/useWalletInfo.js +6 -4
  162. package/lib/module/hooks/useWalletInfo.js.map +1 -1
  163. package/lib/module/index.js +1 -0
  164. package/lib/module/index.js.map +1 -1
  165. package/lib/module/modal/w3m-modal/index.js +17 -6
  166. package/lib/module/modal/w3m-modal/index.js.map +1 -1
  167. package/lib/module/modal/w3m-router/index.js +12 -6
  168. package/lib/module/modal/w3m-router/index.js.map +1 -1
  169. package/lib/module/partials/w3m-account-activity/index.js +1 -1
  170. package/lib/module/partials/w3m-account-activity/index.js.map +1 -1
  171. package/lib/module/partials/w3m-all-wallets-list/components/Loading.js +10 -98
  172. package/lib/module/partials/w3m-all-wallets-list/components/Loading.js.map +1 -1
  173. package/lib/module/partials/w3m-all-wallets-list/components/WalletItem.js +2 -8
  174. package/lib/module/partials/w3m-all-wallets-list/components/WalletItem.js.map +1 -1
  175. package/lib/module/partials/w3m-all-wallets-list/components/WalletList.js +90 -0
  176. package/lib/module/partials/w3m-all-wallets-list/components/WalletList.js.map +1 -0
  177. package/lib/module/partials/w3m-all-wallets-list/index.js +19 -45
  178. package/lib/module/partials/w3m-all-wallets-list/index.js.map +1 -1
  179. package/lib/module/partials/w3m-all-wallets-list/styles.js +10 -4
  180. package/lib/module/partials/w3m-all-wallets-list/styles.js.map +1 -1
  181. package/lib/module/partials/w3m-all-wallets-search/index.js +26 -51
  182. package/lib/module/partials/w3m-all-wallets-search/index.js.map +1 -1
  183. package/lib/module/partials/w3m-all-wallets-search/styles.js +3 -1
  184. package/lib/module/partials/w3m-all-wallets-search/styles.js.map +1 -1
  185. package/lib/module/partials/w3m-connecting-mobile/index.js +4 -4
  186. package/lib/module/partials/w3m-connecting-mobile/index.js.map +1 -1
  187. package/lib/module/partials/w3m-connecting-mobile/styles.js +2 -1
  188. package/lib/module/partials/w3m-connecting-mobile/styles.js.map +1 -1
  189. package/lib/module/partials/w3m-connecting-qrcode/index.js +7 -2
  190. package/lib/module/partials/w3m-connecting-qrcode/index.js.map +1 -1
  191. package/lib/module/partials/w3m-connecting-web/index.js +2 -1
  192. package/lib/module/partials/w3m-connecting-web/index.js.map +1 -1
  193. package/lib/module/partials/w3m-connecting-web/styles.js +3 -0
  194. package/lib/module/partials/w3m-connecting-web/styles.js.map +1 -1
  195. package/lib/module/partials/w3m-header/index.js +5 -4
  196. package/lib/module/partials/w3m-header/index.js.map +1 -1
  197. package/lib/module/partials/w3m-selector-modal/index.js +74 -59
  198. package/lib/module/partials/w3m-selector-modal/index.js.map +1 -1
  199. package/lib/module/partials/w3m-selector-modal/styles.js +9 -11
  200. package/lib/module/partials/w3m-selector-modal/styles.js.map +1 -1
  201. package/lib/module/views/w3m-account-default-view/index.js +3 -3
  202. package/lib/module/views/w3m-account-default-view/index.js.map +1 -1
  203. package/lib/module/views/w3m-account-view/index.js +2 -2
  204. package/lib/module/views/w3m-account-view/index.js.map +1 -1
  205. package/lib/module/views/w3m-account-view/styles.js +1 -6
  206. package/lib/module/views/w3m-account-view/styles.js.map +1 -1
  207. package/lib/module/views/w3m-all-wallets-view/index.js +8 -25
  208. package/lib/module/views/w3m-all-wallets-view/index.js.map +1 -1
  209. package/lib/module/views/w3m-connect-socials-view/index.js +2 -2
  210. package/lib/module/views/w3m-connect-socials-view/index.js.map +1 -1
  211. package/lib/module/views/w3m-connect-view/components/all-wallet-list.js +19 -14
  212. package/lib/module/views/w3m-connect-view/components/all-wallet-list.js.map +1 -1
  213. package/lib/module/views/w3m-connect-view/index.js +4 -12
  214. package/lib/module/views/w3m-connect-view/index.js.map +1 -1
  215. package/lib/module/views/w3m-connecting-external-view/index.js +4 -4
  216. package/lib/module/views/w3m-connecting-external-view/index.js.map +1 -1
  217. package/lib/module/views/w3m-connecting-external-view/styles.js +1 -1
  218. package/lib/module/views/w3m-connecting-external-view/styles.js.map +1 -1
  219. package/lib/module/views/w3m-connecting-siwe-view/index.js +57 -56
  220. package/lib/module/views/w3m-connecting-siwe-view/index.js.map +1 -1
  221. package/lib/module/views/w3m-connecting-siwe-view/styles.js +0 -7
  222. package/lib/module/views/w3m-connecting-siwe-view/styles.js.map +1 -1
  223. package/lib/module/views/w3m-connecting-social-view/index.js +35 -30
  224. package/lib/module/views/w3m-connecting-social-view/index.js.map +1 -1
  225. package/lib/module/views/w3m-get-wallet-view/index.js +1 -1
  226. package/lib/module/views/w3m-get-wallet-view/index.js.map +1 -1
  227. package/lib/module/views/w3m-network-switch-view/index.js +65 -85
  228. package/lib/module/views/w3m-network-switch-view/index.js.map +1 -1
  229. package/lib/module/views/w3m-networks-view/index.js +25 -15
  230. package/lib/module/views/w3m-networks-view/index.js.map +1 -1
  231. package/lib/module/views/w3m-onramp-checkout-view/index.js +162 -154
  232. package/lib/module/views/w3m-onramp-checkout-view/index.js.map +1 -1
  233. package/lib/module/views/w3m-onramp-loading-view/index.js +4 -4
  234. package/lib/module/views/w3m-onramp-loading-view/index.js.map +1 -1
  235. package/lib/module/views/w3m-onramp-loading-view/styles.js +1 -1
  236. package/lib/module/views/w3m-onramp-loading-view/styles.js.map +1 -1
  237. package/lib/module/views/w3m-onramp-settings-view/components/Country.js +3 -2
  238. package/lib/module/views/w3m-onramp-settings-view/components/Country.js.map +1 -1
  239. package/lib/module/views/w3m-onramp-settings-view/index.js +16 -8
  240. package/lib/module/views/w3m-onramp-settings-view/index.js.map +1 -1
  241. package/lib/module/views/w3m-onramp-settings-view/styles.js +4 -1
  242. package/lib/module/views/w3m-onramp-settings-view/styles.js.map +1 -1
  243. package/lib/module/views/w3m-onramp-settings-view/utils.js +14 -0
  244. package/lib/module/views/w3m-onramp-settings-view/utils.js.map +1 -1
  245. package/lib/module/views/w3m-onramp-transaction-view/index.js +1 -1
  246. package/lib/module/views/w3m-onramp-transaction-view/index.js.map +1 -1
  247. package/lib/module/views/w3m-onramp-view/components/Currency.js +3 -2
  248. package/lib/module/views/w3m-onramp-view/components/Currency.js.map +1 -1
  249. package/lib/module/views/w3m-onramp-view/components/Header.js +1 -1
  250. package/lib/module/views/w3m-onramp-view/components/LoadingView.js +1 -1
  251. package/lib/module/views/w3m-onramp-view/components/LoadingView.js.map +1 -1
  252. package/lib/module/views/w3m-onramp-view/components/SelectPaymentModal.js +6 -3
  253. package/lib/module/views/w3m-onramp-view/components/SelectPaymentModal.js.map +1 -1
  254. package/lib/module/views/w3m-onramp-view/index.js +5 -4
  255. package/lib/module/views/w3m-onramp-view/index.js.map +1 -1
  256. package/lib/module/views/w3m-onramp-view/styles.js +3 -0
  257. package/lib/module/views/w3m-onramp-view/styles.js.map +1 -1
  258. package/lib/module/views/w3m-swap-preview-view/index.js +1 -1
  259. package/lib/module/views/w3m-swap-preview-view/index.js.map +1 -1
  260. package/lib/module/views/w3m-swap-preview-view/styles.js +0 -3
  261. package/lib/module/views/w3m-swap-preview-view/styles.js.map +1 -1
  262. package/lib/module/views/w3m-swap-view/components/select-token-modal/index.js +151 -0
  263. package/lib/module/views/w3m-swap-view/components/select-token-modal/index.js.map +1 -0
  264. package/lib/module/views/w3m-swap-view/components/{select-token-view → select-token-modal}/styles.js +6 -2
  265. package/lib/module/views/w3m-swap-view/components/select-token-modal/styles.js.map +1 -0
  266. package/lib/module/views/w3m-swap-view/components/select-token-modal/utils.js.map +1 -0
  267. package/lib/module/views/w3m-swap-view/index.js +16 -16
  268. package/lib/module/views/w3m-swap-view/index.js.map +1 -1
  269. package/lib/module/views/w3m-swap-view/styles.js +0 -8
  270. package/lib/module/views/w3m-swap-view/styles.js.map +1 -1
  271. package/lib/module/views/w3m-unsupported-chain-view/index.js +8 -14
  272. package/lib/module/views/w3m-unsupported-chain-view/index.js.map +1 -1
  273. package/lib/module/views/w3m-unsupported-chain-view/styles.js +1 -1
  274. package/lib/module/views/w3m-unsupported-chain-view/styles.js.map +1 -1
  275. package/lib/module/views/w3m-upgrade-email-wallet-view/index.js +4 -6
  276. package/lib/module/views/w3m-upgrade-email-wallet-view/index.js.map +1 -1
  277. package/lib/module/views/w3m-wallet-compatible-networks-view/index.js +1 -2
  278. package/lib/module/views/w3m-wallet-compatible-networks-view/index.js.map +1 -1
  279. package/lib/module/views/w3m-wallet-receive-view/index.js +1 -1
  280. package/lib/module/views/w3m-wallet-receive-view/index.js.map +1 -1
  281. package/lib/module/views/w3m-wallet-send-preview-view/index.js +1 -1
  282. package/lib/module/views/w3m-wallet-send-preview-view/index.js.map +1 -1
  283. package/lib/module/views/w3m-wallet-send-select-token-view/index.js +5 -3
  284. package/lib/module/views/w3m-wallet-send-select-token-view/index.js.map +1 -1
  285. package/lib/module/views/w3m-wallet-send-view/index.js +11 -5
  286. package/lib/module/views/w3m-wallet-send-view/index.js.map +1 -1
  287. package/lib/module/views/w3m-wallet-send-view/styles.js +0 -3
  288. package/lib/module/views/w3m-wallet-send-view/styles.js.map +1 -1
  289. package/lib/module/views/w3m-what-is-a-network-view/index.js +1 -1
  290. package/lib/module/views/w3m-what-is-a-network-view/index.js.map +1 -1
  291. package/lib/module/views/w3m-what-is-a-wallet-view/index.js +1 -1
  292. package/lib/module/views/w3m-what-is-a-wallet-view/index.js.map +1 -1
  293. package/lib/typescript/AppKit.d.ts +1 -1
  294. package/lib/typescript/AppKit.d.ts.map +1 -1
  295. package/lib/typescript/AppKitContext.d.ts.map +1 -1
  296. package/lib/typescript/connectors/WalletConnectConnector.d.ts.map +1 -1
  297. package/lib/typescript/hooks/useAccount.d.ts +33 -1
  298. package/lib/typescript/hooks/useAccount.d.ts.map +1 -1
  299. package/lib/typescript/hooks/useAppKit.d.ts +0 -1
  300. package/lib/typescript/hooks/useAppKit.d.ts.map +1 -1
  301. package/lib/typescript/hooks/useAppKitState.d.ts +38 -0
  302. package/lib/typescript/hooks/useAppKitState.d.ts.map +1 -0
  303. package/lib/typescript/hooks/useProvider.d.ts.map +1 -1
  304. package/lib/typescript/hooks/useWalletInfo.d.ts.map +1 -1
  305. package/lib/typescript/index.d.ts +1 -0
  306. package/lib/typescript/index.d.ts.map +1 -1
  307. package/lib/typescript/modal/w3m-modal/index.d.ts.map +1 -1
  308. package/lib/typescript/modal/w3m-router/index.d.ts.map +1 -1
  309. package/lib/typescript/partials/w3m-all-wallets-list/components/Loading.d.ts +4 -4
  310. package/lib/typescript/partials/w3m-all-wallets-list/components/Loading.d.ts.map +1 -1
  311. package/lib/typescript/partials/w3m-all-wallets-list/components/WalletItem.d.ts +1 -3
  312. package/lib/typescript/partials/w3m-all-wallets-list/components/WalletItem.d.ts.map +1 -1
  313. package/lib/typescript/partials/w3m-all-wallets-list/components/WalletList.d.ts +14 -0
  314. package/lib/typescript/partials/w3m-all-wallets-list/components/WalletList.d.ts.map +1 -0
  315. package/lib/typescript/partials/w3m-all-wallets-list/index.d.ts +1 -3
  316. package/lib/typescript/partials/w3m-all-wallets-list/index.d.ts.map +1 -1
  317. package/lib/typescript/partials/w3m-all-wallets-list/styles.d.ts +9 -3
  318. package/lib/typescript/partials/w3m-all-wallets-list/styles.d.ts.map +1 -1
  319. package/lib/typescript/partials/w3m-all-wallets-search/index.d.ts +1 -4
  320. package/lib/typescript/partials/w3m-all-wallets-search/index.d.ts.map +1 -1
  321. package/lib/typescript/partials/w3m-all-wallets-search/styles.d.ts +2 -0
  322. package/lib/typescript/partials/w3m-all-wallets-search/styles.d.ts.map +1 -1
  323. package/lib/typescript/partials/w3m-connecting-mobile/styles.d.ts +1 -0
  324. package/lib/typescript/partials/w3m-connecting-mobile/styles.d.ts.map +1 -1
  325. package/lib/typescript/partials/w3m-connecting-qrcode/index.d.ts.map +1 -1
  326. package/lib/typescript/partials/w3m-connecting-web/styles.d.ts +3 -0
  327. package/lib/typescript/partials/w3m-connecting-web/styles.d.ts.map +1 -1
  328. package/lib/typescript/partials/w3m-header/index.d.ts.map +1 -1
  329. package/lib/typescript/partials/w3m-selector-modal/index.d.ts +3 -1
  330. package/lib/typescript/partials/w3m-selector-modal/index.d.ts.map +1 -1
  331. package/lib/typescript/partials/w3m-selector-modal/styles.d.ts +6 -8
  332. package/lib/typescript/partials/w3m-selector-modal/styles.d.ts.map +1 -1
  333. package/lib/typescript/views/w3m-account-view/index.d.ts.map +1 -1
  334. package/lib/typescript/views/w3m-account-view/styles.d.ts +0 -3
  335. package/lib/typescript/views/w3m-account-view/styles.d.ts.map +1 -1
  336. package/lib/typescript/views/w3m-all-wallets-view/index.d.ts.map +1 -1
  337. package/lib/typescript/views/w3m-connect-view/components/all-wallet-list.d.ts.map +1 -1
  338. package/lib/typescript/views/w3m-connect-view/index.d.ts.map +1 -1
  339. package/lib/typescript/views/w3m-connecting-siwe-view/index.d.ts.map +1 -1
  340. package/lib/typescript/views/w3m-connecting-siwe-view/styles.d.ts +0 -7
  341. package/lib/typescript/views/w3m-connecting-siwe-view/styles.d.ts.map +1 -1
  342. package/lib/typescript/views/w3m-connecting-social-view/index.d.ts.map +1 -1
  343. package/lib/typescript/views/w3m-network-switch-view/index.d.ts.map +1 -1
  344. package/lib/typescript/views/w3m-networks-view/index.d.ts.map +1 -1
  345. package/lib/typescript/views/w3m-onramp-checkout-view/index.d.ts.map +1 -1
  346. package/lib/typescript/views/w3m-onramp-loading-view/index.d.ts.map +1 -1
  347. package/lib/typescript/views/w3m-onramp-settings-view/components/Country.d.ts +3 -1
  348. package/lib/typescript/views/w3m-onramp-settings-view/components/Country.d.ts.map +1 -1
  349. package/lib/typescript/views/w3m-onramp-settings-view/index.d.ts.map +1 -1
  350. package/lib/typescript/views/w3m-onramp-settings-view/styles.d.ts +4 -1
  351. package/lib/typescript/views/w3m-onramp-settings-view/styles.d.ts.map +1 -1
  352. package/lib/typescript/views/w3m-onramp-settings-view/utils.d.ts +2 -0
  353. package/lib/typescript/views/w3m-onramp-settings-view/utils.d.ts.map +1 -1
  354. package/lib/typescript/views/w3m-onramp-view/components/Currency.d.ts +3 -1
  355. package/lib/typescript/views/w3m-onramp-view/components/Currency.d.ts.map +1 -1
  356. package/lib/typescript/views/w3m-onramp-view/components/SelectPaymentModal.d.ts.map +1 -1
  357. package/lib/typescript/views/w3m-onramp-view/index.d.ts.map +1 -1
  358. package/lib/typescript/views/w3m-onramp-view/styles.d.ts +3 -0
  359. package/lib/typescript/views/w3m-onramp-view/styles.d.ts.map +1 -1
  360. package/lib/typescript/views/w3m-swap-preview-view/styles.d.ts +0 -3
  361. package/lib/typescript/views/w3m-swap-preview-view/styles.d.ts.map +1 -1
  362. package/lib/typescript/views/w3m-swap-view/components/{select-token-view → select-token-modal}/index.d.ts +2 -1
  363. package/lib/typescript/views/w3m-swap-view/components/select-token-modal/index.d.ts.map +1 -0
  364. package/lib/typescript/views/w3m-swap-view/components/{select-token-view → select-token-modal}/styles.d.ts +6 -2
  365. package/lib/typescript/views/w3m-swap-view/components/{select-token-view → select-token-modal}/styles.d.ts.map +1 -1
  366. package/lib/typescript/views/w3m-swap-view/components/select-token-modal/utils.d.ts.map +1 -0
  367. package/lib/typescript/views/w3m-swap-view/index.d.ts.map +1 -1
  368. package/lib/typescript/views/w3m-swap-view/styles.d.ts +0 -8
  369. package/lib/typescript/views/w3m-swap-view/styles.d.ts.map +1 -1
  370. package/lib/typescript/views/w3m-unsupported-chain-view/index.d.ts.map +1 -1
  371. package/lib/typescript/views/w3m-upgrade-email-wallet-view/index.d.ts.map +1 -1
  372. package/lib/typescript/views/w3m-wallet-send-view/index.d.ts.map +1 -1
  373. package/lib/typescript/views/w3m-wallet-send-view/styles.d.ts +0 -3
  374. package/lib/typescript/views/w3m-wallet-send-view/styles.d.ts.map +1 -1
  375. package/package.json +10 -8
  376. package/src/AppKit.ts +66 -52
  377. package/src/AppKitContext.tsx +19 -11
  378. package/src/connectors/WalletConnectConnector.ts +15 -7
  379. package/src/hooks/useAccount.ts +15 -5
  380. package/src/hooks/useAppKit.ts +17 -12
  381. package/src/hooks/useAppKitState.ts +26 -0
  382. package/src/hooks/useProvider.ts +11 -5
  383. package/src/hooks/useWalletInfo.ts +5 -2
  384. package/src/index.ts +1 -0
  385. package/src/modal/w3m-modal/index.tsx +13 -4
  386. package/src/modal/w3m-router/index.tsx +8 -6
  387. package/src/partials/w3m-account-activity/index.tsx +1 -1
  388. package/src/partials/w3m-all-wallets-list/components/Loading.tsx +12 -35
  389. package/src/partials/w3m-all-wallets-list/components/WalletItem.tsx +3 -12
  390. package/src/partials/w3m-all-wallets-list/components/WalletList.tsx +100 -0
  391. package/src/partials/w3m-all-wallets-list/index.tsx +25 -51
  392. package/src/partials/w3m-all-wallets-list/styles.ts +10 -4
  393. package/src/partials/w3m-all-wallets-search/index.tsx +25 -60
  394. package/src/partials/w3m-all-wallets-search/styles.ts +3 -1
  395. package/src/partials/w3m-connecting-mobile/index.tsx +8 -8
  396. package/src/partials/w3m-connecting-mobile/styles.ts +2 -1
  397. package/src/partials/w3m-connecting-qrcode/index.tsx +5 -2
  398. package/src/partials/w3m-connecting-web/index.tsx +2 -2
  399. package/src/partials/w3m-connecting-web/styles.ts +3 -0
  400. package/src/partials/w3m-header/index.tsx +7 -4
  401. package/src/partials/w3m-selector-modal/index.tsx +81 -61
  402. package/src/partials/w3m-selector-modal/styles.ts +9 -11
  403. package/src/views/w3m-account-default-view/index.tsx +3 -3
  404. package/src/views/w3m-account-view/index.tsx +1 -9
  405. package/src/views/w3m-account-view/styles.ts +1 -4
  406. package/src/views/w3m-all-wallets-view/index.tsx +11 -34
  407. package/src/views/w3m-connect-socials-view/index.tsx +2 -2
  408. package/src/views/w3m-connect-view/components/all-wallet-list.tsx +28 -21
  409. package/src/views/w3m-connect-view/index.tsx +3 -7
  410. package/src/views/w3m-connecting-external-view/index.tsx +8 -8
  411. package/src/views/w3m-connecting-external-view/styles.ts +1 -1
  412. package/src/views/w3m-connecting-siwe-view/index.tsx +44 -42
  413. package/src/views/w3m-connecting-siwe-view/styles.ts +0 -7
  414. package/src/views/w3m-connecting-social-view/index.tsx +26 -28
  415. package/src/views/w3m-get-wallet-view/index.tsx +1 -1
  416. package/src/views/w3m-network-switch-view/index.tsx +70 -98
  417. package/src/views/w3m-networks-view/index.tsx +26 -22
  418. package/src/views/w3m-onramp-checkout-view/index.tsx +147 -143
  419. package/src/views/w3m-onramp-loading-view/index.tsx +3 -7
  420. package/src/views/w3m-onramp-loading-view/styles.ts +1 -1
  421. package/src/views/w3m-onramp-settings-view/components/Country.tsx +8 -3
  422. package/src/views/w3m-onramp-settings-view/index.tsx +16 -5
  423. package/src/views/w3m-onramp-settings-view/styles.ts +4 -1
  424. package/src/views/w3m-onramp-settings-view/utils.ts +18 -0
  425. package/src/views/w3m-onramp-transaction-view/index.tsx +1 -1
  426. package/src/views/w3m-onramp-view/components/Currency.tsx +4 -3
  427. package/src/views/w3m-onramp-view/components/Header.tsx +1 -1
  428. package/src/views/w3m-onramp-view/components/LoadingView.tsx +1 -1
  429. package/src/views/w3m-onramp-view/components/SelectPaymentModal.tsx +6 -3
  430. package/src/views/w3m-onramp-view/index.tsx +4 -3
  431. package/src/views/w3m-onramp-view/styles.ts +3 -0
  432. package/src/views/w3m-swap-preview-view/index.tsx +1 -1
  433. package/src/views/w3m-swap-preview-view/styles.ts +0 -3
  434. package/src/views/w3m-swap-view/components/select-token-modal/index.tsx +181 -0
  435. package/src/views/w3m-swap-view/components/{select-token-view → select-token-modal}/styles.ts +6 -2
  436. package/src/views/w3m-swap-view/index.tsx +10 -9
  437. package/src/views/w3m-swap-view/styles.ts +0 -8
  438. package/src/views/w3m-unsupported-chain-view/index.tsx +5 -7
  439. package/src/views/w3m-unsupported-chain-view/styles.ts +1 -1
  440. package/src/views/w3m-upgrade-email-wallet-view/index.tsx +4 -6
  441. package/src/views/w3m-wallet-compatible-networks-view/index.tsx +1 -1
  442. package/src/views/w3m-wallet-receive-view/index.tsx +1 -1
  443. package/src/views/w3m-wallet-send-preview-view/index.tsx +1 -1
  444. package/src/views/w3m-wallet-send-select-token-view/index.tsx +3 -3
  445. package/src/views/w3m-wallet-send-view/index.tsx +5 -4
  446. package/src/views/w3m-wallet-send-view/styles.ts +0 -3
  447. package/src/views/w3m-what-is-a-network-view/index.tsx +1 -1
  448. package/src/views/w3m-what-is-a-wallet-view/index.tsx +1 -1
  449. package/lib/commonjs/views/w3m-connect-view/components/custom-wallet-list.js +0 -45
  450. package/lib/commonjs/views/w3m-connect-view/components/custom-wallet-list.js.map +0 -1
  451. package/lib/commonjs/views/w3m-connect-view/components/recent-wallet-list.js +0 -41
  452. package/lib/commonjs/views/w3m-connect-view/components/recent-wallet-list.js.map +0 -1
  453. package/lib/commonjs/views/w3m-connect-view/utils.js +0 -14
  454. package/lib/commonjs/views/w3m-connect-view/utils.js.map +0 -1
  455. package/lib/commonjs/views/w3m-swap-view/components/select-token-view/index.js +0 -145
  456. package/lib/commonjs/views/w3m-swap-view/components/select-token-view/index.js.map +0 -1
  457. package/lib/commonjs/views/w3m-swap-view/components/select-token-view/styles.js.map +0 -1
  458. package/lib/commonjs/views/w3m-swap-view/components/select-token-view/utils.js.map +0 -1
  459. package/lib/module/views/w3m-connect-view/components/custom-wallet-list.js +0 -41
  460. package/lib/module/views/w3m-connect-view/components/custom-wallet-list.js.map +0 -1
  461. package/lib/module/views/w3m-connect-view/components/recent-wallet-list.js +0 -37
  462. package/lib/module/views/w3m-connect-view/components/recent-wallet-list.js.map +0 -1
  463. package/lib/module/views/w3m-connect-view/utils.js +0 -9
  464. package/lib/module/views/w3m-connect-view/utils.js.map +0 -1
  465. package/lib/module/views/w3m-swap-view/components/select-token-view/index.js +0 -140
  466. package/lib/module/views/w3m-swap-view/components/select-token-view/index.js.map +0 -1
  467. package/lib/module/views/w3m-swap-view/components/select-token-view/styles.js.map +0 -1
  468. package/lib/module/views/w3m-swap-view/components/select-token-view/utils.js.map +0 -1
  469. package/lib/typescript/views/w3m-connect-view/components/custom-wallet-list.d.ts +0 -9
  470. package/lib/typescript/views/w3m-connect-view/components/custom-wallet-list.d.ts.map +0 -1
  471. package/lib/typescript/views/w3m-connect-view/components/recent-wallet-list.d.ts +0 -9
  472. package/lib/typescript/views/w3m-connect-view/components/recent-wallet-list.d.ts.map +0 -1
  473. package/lib/typescript/views/w3m-connect-view/utils.d.ts +0 -3
  474. package/lib/typescript/views/w3m-connect-view/utils.d.ts.map +0 -1
  475. package/lib/typescript/views/w3m-swap-view/components/select-token-view/index.d.ts.map +0 -1
  476. package/lib/typescript/views/w3m-swap-view/components/select-token-view/utils.d.ts.map +0 -1
  477. package/src/views/w3m-connect-view/components/custom-wallet-list.tsx +0 -51
  478. package/src/views/w3m-connect-view/components/recent-wallet-list.tsx +0 -45
  479. package/src/views/w3m-connect-view/utils.ts +0 -14
  480. package/src/views/w3m-swap-view/components/select-token-view/index.tsx +0 -176
  481. /package/lib/commonjs/views/w3m-swap-view/components/{select-token-view → select-token-modal}/utils.js +0 -0
  482. /package/lib/module/views/w3m-swap-view/components/{select-token-view → select-token-modal}/utils.js +0 -0
  483. /package/lib/typescript/views/w3m-swap-view/components/{select-token-view → select-token-modal}/utils.d.ts +0 -0
  484. /package/src/views/w3m-swap-view/components/{select-token-view → select-token-modal}/utils.ts +0 -0
package/src/AppKit.ts CHANGED
@@ -14,7 +14,8 @@ import {
14
14
  CoreHelperUtil,
15
15
  SendController,
16
16
  BlockchainApiController,
17
- WalletUtil
17
+ WalletUtil,
18
+ type RouterControllerState
18
19
  } from '@reown/appkit-core-react-native';
19
20
 
20
21
  import {
@@ -149,7 +150,7 @@ export class AppKit {
149
150
  }
150
151
  }
151
152
 
152
- private processConnection(
153
+ private async processConnection(
153
154
  connector: WalletConnector,
154
155
  namespaces?: Namespaces,
155
156
  shouldCloseModal: boolean = true
@@ -173,7 +174,7 @@ export class AppKit {
173
174
  this.setConnection(initializedAdapters, namespaces, walletInfo, properties);
174
175
 
175
176
  // Sync accounts
176
- this.syncAccounts(initializedAdapters);
177
+ await this.syncAccounts(initializedAdapters);
177
178
 
178
179
  // Handle SIWE if enabled
179
180
  this.handleSiweConnectionIfEnabled(shouldCloseModal);
@@ -289,10 +290,6 @@ export class AppKit {
289
290
  });
290
291
 
291
292
  ConnectionsController.setActiveNetwork(network.chainNamespace, network.caipNetworkId);
292
-
293
- if (ConnectionsController.state.activeNamespace !== network.chainNamespace) {
294
- ConnectionsController.setActiveNamespace(network.chainNamespace);
295
- }
296
293
  }
297
294
 
298
295
  open(options?: AppKitOpenOptions) {
@@ -310,10 +307,14 @@ export class AppKit {
310
307
  ConnectionsController.state.activeNamespace === 'eip155' &&
311
308
  !!ConnectionsController.state.activeAddress
312
309
  ) {
313
- await this.disconnect();
310
+ return await this.disconnect();
314
311
  }
315
312
  }
316
313
 
314
+ if (RouterController.state.view === 'UnsupportedChain') {
315
+ return await this.disconnect();
316
+ }
317
+
317
318
  RouterUtil.checkOnRampBack();
318
319
  RouterUtil.checkSocialLoginBack();
319
320
  }
@@ -332,11 +333,16 @@ export class AppKit {
332
333
  const adapter = this.getAdapterByNamespace(namespace);
333
334
  if (!adapter) throw new Error('No active adapter');
334
335
 
335
- ConnectionsController.setAccountType(namespace, type);
336
+ const address = ConnectionsController.setAccountType(namespace, type);
336
337
 
337
338
  // Get balances from API
338
339
  ConnectionsController.fetchBalance();
339
340
 
341
+ // Fetch transactions for the new account
342
+ if (address) {
343
+ TransactionsController.fetchTransactions(address, true);
344
+ }
345
+
340
346
  // Sync balances from adapter
341
347
  this.syncNativeBalance(adapter, network);
342
348
 
@@ -400,7 +406,7 @@ export class AppKit {
400
406
 
401
407
  const namespaces = connector.getNamespaces();
402
408
 
403
- this.processConnection(connector, namespaces, false);
409
+ await this.processConnection(connector, namespaces, false);
404
410
  } catch (error) {
405
411
  // Use console.warn for non-critical initialization failures
406
412
  console.warn(`Failed to initialize connector type ${connected.type}:`, error);
@@ -505,7 +511,7 @@ export class AppKit {
505
511
  }
506
512
  }
507
513
 
508
- private async refreshBalance(fetchAllBalances: boolean = false) {
514
+ private refreshBalance(fetchAllBalances: boolean = false) {
509
515
  try {
510
516
  if (fetchAllBalances) {
511
517
  ConnectionsController.fetchBalance();
@@ -542,7 +548,6 @@ export class AppKit {
542
548
  const recomputePolling = () => {
543
549
  const open = ModalController.state.open;
544
550
  const view = RouterController.state.view;
545
-
546
551
  if (open && (view === 'Account' || view === 'AccountDefault')) {
547
552
  // fetch all balances when user is using embedded wallet
548
553
  this.startBalancePolling(view === 'Account');
@@ -550,9 +555,7 @@ export class AppKit {
550
555
  this.stopBalancePolling();
551
556
  }
552
557
  };
553
-
554
558
  recomputePolling();
555
-
556
559
  subscribeKey(RouterController.state, 'view', () => recomputePolling());
557
560
  subscribeKey(ModalController.state, 'open', () => recomputePolling());
558
561
  }
@@ -573,7 +576,8 @@ export class AppKit {
573
576
  const caipNetwork = adapter?.connector?.getChainId(namespace);
574
577
  const namespaceProperties = {
575
578
  ...properties,
576
- smartAccounts: properties?.smartAccounts?.filter(account => account.startsWith(namespace))
579
+ smartAccounts: properties?.smartAccounts?.filter(account => account.startsWith(namespace)),
580
+ canAddEvmChain: wallet?.name === 'MetaMask Wallet' // MetaMask allows adding EVM chains after connecting
577
581
  };
578
582
 
579
583
  ConnectionsController.setConnection({
@@ -599,22 +603,26 @@ export class AppKit {
599
603
  private subscribeToAdapterEvents(adapter: BlockchainAdapter): void {
600
604
  adapter.on('accountsChanged', ({ accounts }) => {
601
605
  const namespace = adapter.getSupportedNamespace();
602
- ConnectionsController.updateAccounts(namespace, accounts);
606
+ const hasChanged = ConnectionsController.updateAccounts(namespace, accounts);
603
607
 
604
- if (namespace === 'eip155') {
608
+ if (hasChanged && namespace === 'eip155') {
605
609
  this.handleSiweChange({ isAccountChange: true });
606
610
  }
607
611
  });
608
612
 
609
- adapter.on('chainChanged', ({ chainId }) => {
613
+ adapter.on('chainChanged', async ({ chainId }) => {
614
+ const isSupported = this.networks.some(network => network.id?.toString() === chainId);
615
+ if (!isSupported) {
616
+ return this.navigate('UnsupportedChain');
617
+ }
618
+
610
619
  const namespace = adapter.getSupportedNamespace();
611
620
  const chain = `${namespace}:${chainId}` as CaipNetworkId;
612
621
  ConnectionsController.setActiveNetwork(namespace, chain);
622
+
613
623
  const connection = ConnectionsController.state.connections.get(namespace);
614
624
  const isAuth = !!connection?.properties?.provider;
615
625
 
616
- const activeNamespace = ConnectionsController.state.activeNamespace;
617
-
618
626
  const network = this.networks.find(n => n.id?.toString() === chainId);
619
627
  this.syncNativeBalance(adapter, network);
620
628
  SendController.resetState();
@@ -624,14 +632,11 @@ export class AppKit {
624
632
  ConnectionsController.fetchBalance();
625
633
  }
626
634
 
627
- // Refresh transactions only when the active network changes
628
- if (namespace === activeNamespace) {
629
- const address = connection?.accounts?.find(account =>
630
- account.startsWith(`${namespace}:${chainId}`)
631
- );
632
- if (address) {
633
- TransactionsController.fetchTransactions(address, true);
634
- }
635
+ const address = connection?.accounts?.find(account =>
636
+ account.startsWith(`${namespace}:${chainId}`)
637
+ );
638
+ if (address) {
639
+ TransactionsController.fetchTransactions(address, true);
635
640
  }
636
641
 
637
642
  // Check if user needs to sign in again
@@ -670,7 +675,7 @@ export class AppKit {
670
675
  OptionsController.setDefaultNetwork(network);
671
676
  }
672
677
 
673
- ThemeController.setThemeMode(options.themeMode);
678
+ ThemeController.setDefaultThemeMode(options.themeMode);
674
679
  ThemeController.setThemeVariables(options.themeVariables);
675
680
 
676
681
  OptionsController.setSdkVersion(
@@ -685,6 +690,7 @@ export class AppKit {
685
690
 
686
691
  if (options.siweConfig) {
687
692
  SIWEController.setSIWEClient(options.siweConfig);
693
+ OptionsController.setIsSiweEnabled(options.siweConfig.options.enabled);
688
694
  }
689
695
 
690
696
  if (
@@ -779,11 +785,15 @@ export class AppKit {
779
785
  await this.initRecentWallets(options);
780
786
  }
781
787
 
782
- private onSiweNavigation = () => {
788
+ private navigate = (routeName: RouterControllerState['view']) => {
789
+ if (RouterController.state.view === routeName) {
790
+ return;
791
+ }
792
+
783
793
  if (ModalController.state.open) {
784
- RouterController.push('ConnectingSiwe');
794
+ RouterController.push(routeName);
785
795
  } else {
786
- ModalController.open({ view: 'ConnectingSiwe' });
796
+ ModalController.open({ view: routeName });
787
797
  }
788
798
  };
789
799
 
@@ -796,29 +806,33 @@ export class AppKit {
796
806
  const { enabled, signOutOnAccountChange, signOutOnNetworkChange } =
797
807
  SIWEController.state._client?.options ?? {};
798
808
 
799
- if (enabled) {
800
- const session = await SIWEController.getSession();
801
- if (session && isAccountChange) {
802
- if (signOutOnAccountChange) {
803
- // If the address has changed and signOnAccountChange is enabled, sign out
804
- await SIWEController.signOut();
809
+ if (!enabled || RouterController.state.view === 'ConnectingSiwe') {
810
+ // Do nothing if view is connecting siwe or siwe is not enabled
811
+ return;
812
+ }
805
813
 
806
- return this.onSiweNavigation();
807
- }
808
- } else if (isNetworkChange) {
809
- if (signOutOnNetworkChange) {
810
- // If the network has changed and signOnNetworkChange is enabled, sign out
811
- await SIWEController.signOut();
814
+ const session = await SIWEController.getSession();
815
+ if (session && isAccountChange) {
816
+ if (signOutOnAccountChange) {
817
+ // If the address has changed and signOnAccountChange is enabled, sign out
818
+ await SIWEController.signOut();
812
819
 
813
- return this.onSiweNavigation();
814
- }
815
- } else if (!session) {
816
- // If it's connected but there's no session, show sign view
817
- return this.onSiweNavigation();
818
- } else if (isConnection) {
819
- // Connected with 1CA
820
- ModalController.close();
820
+ return this.navigate('ConnectingSiwe');
821
821
  }
822
+ } else if (session && isNetworkChange) {
823
+ if (signOutOnNetworkChange) {
824
+ // If the network has changed and signOnNetworkChange is enabled, sign out
825
+ await SIWEController.signOut();
826
+
827
+ return this.navigate('ConnectingSiwe');
828
+ }
829
+ } else if (!session) {
830
+ // If it's connected but there's no session, show sign view
831
+
832
+ return this.navigate('ConnectingSiwe');
833
+ } else if (isConnection) {
834
+ // Already connected with 1CA
835
+ ModalController.close();
822
836
  }
823
837
  }
824
838
  }
@@ -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
  };
@@ -199,7 +199,7 @@ export class WalletConnectConnector extends WalletConnector {
199
199
 
200
200
  provider.off('display_uri', onUri);
201
201
 
202
- return this.namespaces;
202
+ return (session?.namespaces as Namespaces) ?? {};
203
203
  }
204
204
 
205
205
  override getProvider(namespace?: ChainNamespace): Provider {
@@ -207,13 +207,16 @@ export class WalletConnectConnector extends WalletConnector {
207
207
  throw new Error('WalletConnectConnector: Provider not initialized. Call init() first.');
208
208
  }
209
209
 
210
- const provider = this.provider as IUniversalProvider;
210
+ const provider = this.provider;
211
211
 
212
212
  if (namespace) {
213
- // @ts-ignore
214
213
  return {
215
- ...provider,
216
- request: (args: RequestArguments, chainId?: CaipNetworkId) => {
214
+ ...this.provider,
215
+ connect: async (params?: any) => provider.connect(params) as Promise<any>,
216
+ disconnect: provider.disconnect.bind(provider),
217
+ on: provider.on.bind(provider),
218
+ off: provider.off.bind(provider),
219
+ request: async (args: RequestArguments, chainId?: CaipNetworkId) => {
217
220
  const _chainId = this.getChainId(namespace);
218
221
 
219
222
  return provider.request(args, chainId || _chainId);
@@ -225,7 +228,11 @@ export class WalletConnectConnector extends WalletConnector {
225
228
  }
226
229
 
227
230
  override getNamespaces(): Namespaces {
228
- return this.namespaces ?? {};
231
+ const namespaces =
232
+ ((this.provider as IUniversalProvider)?.session?.namespaces as Namespaces) ?? {};
233
+ this.namespaces = namespaces;
234
+
235
+ return namespaces;
229
236
  }
230
237
 
231
238
  override getProperties(): ConnectionProperties | undefined {
@@ -247,7 +254,8 @@ export class WalletConnectConnector extends WalletConnector {
247
254
  }
248
255
 
249
256
  override getChainId(namespace: ChainNamespace): CaipNetworkId | undefined {
250
- if (!this.namespaces || !this.namespaces[namespace]) {
257
+ const namespaces = this.getNamespaces();
258
+ if (!namespaces || !namespaces[namespace]) {
251
259
  return undefined;
252
260
  }
253
261
 
@@ -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,4 @@
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';
4
2
 
5
3
  import type { AppKit } from '../AppKit';
6
4
  import { AppKitContext } from '../AppKitContext';
@@ -10,26 +8,33 @@ interface UseAppKitReturn {
10
8
  close: AppKit['close'];
11
9
  disconnect: (namespace?: string) => void;
12
10
  switchNetwork: AppKit['switchNetwork'];
13
- isOpen: boolean;
14
11
  }
15
12
 
16
13
  export const useAppKit = (): UseAppKitReturn => {
17
14
  const context = useContext(AppKitContext);
18
- const { open } = useSnapshot(ModalController.state);
19
15
 
20
16
  if (context === undefined) {
21
17
  throw new Error('useAppKit must be used within an AppKitProvider');
22
18
  }
19
+
23
20
  if (!context.appKit) {
24
21
  // This might happen if the provider is rendered before AppKit is initialized
25
22
  throw new Error('AppKit instance is not yet available in context.');
26
23
  }
27
24
 
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
- };
25
+ const stableFunctions = useMemo(() => {
26
+ if (!context.appKit) {
27
+ throw new Error('AppKit instance is not available');
28
+ }
29
+
30
+ return {
31
+ open: context.appKit.open.bind(context.appKit),
32
+ close: context.appKit.close.bind(context.appKit),
33
+ disconnect: (namespace?: string) =>
34
+ context.appKit!.disconnect.bind(context.appKit!)(namespace),
35
+ switchNetwork: context.appKit.switchNetwork.bind(context.appKit)
36
+ };
37
+ }, [context.appKit]);
38
+
39
+ return stableFunctions;
35
40
  };
@@ -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
@@ -25,6 +25,7 @@ export { useProvider } from './hooks/useProvider';
25
25
  export { useAccount } from './hooks/useAccount';
26
26
  export { useWalletInfo } from './hooks/useWalletInfo';
27
27
  export { useAppKitEvents, useAppKitEventSubscription } from './hooks/useAppKitEvents';
28
+ export { useAppKitState } from './hooks/useAppKitState';
28
29
 
29
30
  /********** Networks **********/
30
31
  export { solana, solanaDevnet, solanaTestnet } from '@reown/appkit-common-react-native';
@@ -1,6 +1,7 @@
1
1
  import { useSnapshot } from 'valtio';
2
2
  import { useCallback, useEffect } from 'react';
3
- import { Card, Modal, ThemeProvider, useCustomDimensions } from '@reown/appkit-ui-react-native';
3
+ import { useColorScheme } from 'react-native';
4
+ import { Card, Modal, ThemeProvider } from '@reown/appkit-ui-react-native';
4
5
  import {
5
6
  ApiController,
6
7
  EventsController,
@@ -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,11 +19,12 @@ 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
- const { maxHeight } = useCustomDimensions();
25
28
 
26
29
  const handleBackPress = () => {
27
30
  if (RouterController.state.history.length > 1) {
@@ -31,6 +34,12 @@ export function AppKit() {
31
34
  return handleModalClose();
32
35
  };
33
36
 
37
+ useEffect(() => {
38
+ if (theme && !defaultThemeMode) {
39
+ ThemeController.setThemeMode(theme);
40
+ }
41
+ }, [theme, defaultThemeMode]);
42
+
34
43
  const prefetch = useCallback(async () => {
35
44
  await ApiController.prefetch();
36
45
  EventsController.sendEvent({ type: 'track', event: 'MODAL_LOADED' });
@@ -54,7 +63,7 @@ export function AppKit() {
54
63
  onBackdropPress={handleModalClose}
55
64
  testID="w3m-modal"
56
65
  >
57
- <Card style={[styles.card, { maxHeight }]}>
66
+ <Card style={[styles.card, { paddingBottom: bottom, marginTop: top }]}>
58
67
  <Header />
59
68
  <AppKitRouter />
60
69
  <Snackbar />
@@ -1,5 +1,5 @@
1
1
  import { useSnapshot } from 'valtio';
2
- import { useEffect, useLayoutEffect, useMemo } from 'react';
2
+ import { useEffect, useMemo } from 'react';
3
3
  import { RouterController } from '@reown/appkit-core-react-native';
4
4
 
5
5
  import { AccountDefaultView } from '../../views/w3m-account-default-view';
@@ -35,9 +35,11 @@ import { UiUtil } from '../../utils/UiUtil';
35
35
  import { useRouteTransition } from '../../hooks/useRouteTransition';
36
36
 
37
37
  import { Animated } from 'react-native';
38
+ import { useCustomDimensions } from '@reown/appkit-ui-react-native';
38
39
 
39
40
  export function AppKitRouter() {
40
41
  const { view } = useSnapshot(RouterController.state);
42
+ const { maxHeight } = useCustomDimensions();
41
43
  const { animateTransition, getAnimatedStyle } = useRouteTransition({
42
44
  duration: 300,
43
45
  useNativeDriver: true
@@ -47,7 +49,7 @@ export function AppKitRouter() {
47
49
  UiUtil.setRouteTransition(animateTransition);
48
50
  }, [animateTransition]);
49
51
 
50
- useLayoutEffect(() => {
52
+ useEffect(() => {
51
53
  UiUtil.createViewTransition();
52
54
  }, [view]);
53
55
 
@@ -69,7 +71,7 @@ export function AppKitRouter() {
69
71
  return ConnectingSiweView;
70
72
  case 'ConnectingSocial':
71
73
  return ConnectingSocialView;
72
- case 'ConnectingWalletConnect':
74
+ case 'WalletConnect':
73
75
  return ConnectingView;
74
76
  case 'GetWallet':
75
77
  return GetWalletView;
@@ -83,14 +85,14 @@ export function AppKitRouter() {
83
85
  return OnRampSettingsView;
84
86
  case 'OnRampLoading':
85
87
  return OnRampLoadingView;
86
- case 'SwitchNetwork':
87
- return NetworkSwitchView;
88
88
  case 'OnRampTransaction':
89
89
  return OnRampTransactionView;
90
90
  case 'Swap':
91
91
  return SwapView;
92
92
  case 'SwapPreview':
93
93
  return SwapPreviewView;
94
+ case 'SwitchNetwork':
95
+ return NetworkSwitchView;
94
96
  case 'Transactions':
95
97
  return TransactionsView;
96
98
  case 'UnsupportedChain':
@@ -117,7 +119,7 @@ export function AppKitRouter() {
117
119
  }, [view]);
118
120
 
119
121
  return (
120
- <Animated.View style={[getAnimatedStyle()]}>
122
+ <Animated.View style={[getAnimatedStyle(), { maxHeight }]}>
121
123
  <ViewComponent />
122
124
  </Animated.View>
123
125
  );
@@ -123,7 +123,7 @@ export function AccountActivity({ style }: Props) {
123
123
  <ScrollView
124
124
  style={[styles.container, style]}
125
125
  fadingEdgeLength={20}
126
- contentContainerStyle={[styles.contentContainer]}
126
+ contentContainerStyle={styles.contentContainer}
127
127
  refreshControl={
128
128
  <RefreshControl
129
129
  refreshing={refreshing}