@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/types.ts CHANGED
@@ -7,10 +7,10 @@ import {
7
7
  type Metadata,
8
8
  type Network,
9
9
  type Storage,
10
- type AppKitSIWEClient,
11
10
  type ThemeMode,
12
11
  type ThemeVariables,
13
- type Tokens
12
+ type Tokens,
13
+ type SIWXConfig
14
14
  } from '@reown/appkit-common-react-native';
15
15
 
16
16
  /**
@@ -129,6 +129,7 @@ export interface AppKitConfig {
129
129
  /**
130
130
  * Optional flag to enable debug mode.
131
131
  * When enabled, additional logging and debugging information will be output.
132
+ * Only enabled in development mode.
132
133
  *
133
134
  * @see {@link https://docs.reown.com/appkit/react-native/core/options#debug | Debug Documentation}
134
135
  * @default false
@@ -154,13 +155,11 @@ export interface AppKitConfig {
154
155
  themeVariables?: ThemeVariables;
155
156
 
156
157
  /**
157
- * Optional SIWE (Sign-In with Ethereum) configuration.
158
- * Enables authentication flow using Ethereum signatures.
159
- * Must implement the AppKitSIWEClient interface.
160
- *
161
- * @see {@link https://docs.reown.com/appkit/react-native/core/siwe | SIWE Documentation}
158
+ * @experimental - This feature is not production ready.
159
+ * Enable Sign In With X (SIWX) feature.
160
+ * @default undefined
162
161
  */
163
- siweConfig?: AppKitSIWEClient;
162
+ siwx?: SIWXConfig;
164
163
 
165
164
  /**
166
165
  * Optional default network to use when no specific network is selected.
@@ -0,0 +1,364 @@
1
+ import UniversalProvider from '@walletconnect/universal-provider';
2
+
3
+ import {
4
+ type CaipNetworkId,
5
+ type ChainNamespace,
6
+ type SIWXSession
7
+ } from '@reown/appkit-common-react-native';
8
+
9
+ import {
10
+ ModalController,
11
+ OptionsController,
12
+ RouterController,
13
+ SnackController,
14
+ CoreHelperUtil,
15
+ ConnectionsController,
16
+ EventsController,
17
+ LogController
18
+ } from '@reown/appkit-core-react-native';
19
+ import { Alert } from 'react-native';
20
+
21
+ /**
22
+ * SIWXUtil holds the methods to interact with the SIWX plugin and must be called internally on AppKit.
23
+ */
24
+
25
+ export const SIWXUtil = {
26
+ getSIWX() {
27
+ return OptionsController.state.siwx;
28
+ },
29
+
30
+ async initializeIfEnabled({
31
+ onDisconnect,
32
+ caipAddress = ConnectionsController.state.activeAddress,
33
+ closeModal = false
34
+ }: {
35
+ onDisconnect: () => Promise<void>;
36
+ caipAddress?: string;
37
+ closeModal?: boolean;
38
+ }) {
39
+ const siwx = OptionsController.state.siwx;
40
+
41
+ if (!siwx || !caipAddress) {
42
+ if (closeModal) {
43
+ ModalController.close();
44
+ }
45
+
46
+ return;
47
+ }
48
+
49
+ const [namespace, chainId, address] = caipAddress.split(':') as [
50
+ ChainNamespace,
51
+ string,
52
+ string
53
+ ];
54
+
55
+ const isSupportedNetwork = ConnectionsController.getAvailableNetworks().find(
56
+ network => network.caipNetworkId === `${namespace}:${chainId}`
57
+ );
58
+
59
+ if (!isSupportedNetwork) {
60
+ return;
61
+ }
62
+
63
+ try {
64
+ const sessions = await siwx.getSessions(`${namespace}:${chainId}`, address);
65
+
66
+ if (sessions.length) {
67
+ ModalController.close();
68
+
69
+ return;
70
+ }
71
+
72
+ if (ModalController.state.open) {
73
+ RouterController.push('SIWXSignMessage');
74
+ } else {
75
+ ModalController.open({ view: 'SIWXSignMessage' });
76
+ }
77
+ } catch (error: unknown) {
78
+ LogController.sendError(error, 'SIWXUtil.ts', 'initializeIfEnabled');
79
+
80
+ EventsController.sendEvent({
81
+ type: 'track',
82
+ event: 'SIWX_AUTH_ERROR',
83
+ properties: this.getSIWXEventProperties(error)
84
+ });
85
+
86
+ await onDisconnect();
87
+ SnackController.showError('A problem occurred while trying initialize authentication');
88
+ }
89
+ },
90
+ async requestSignMessage() {
91
+ EventsController.sendEvent({
92
+ type: 'track',
93
+ event: 'CLICK_SIGN_SIWX_MESSAGE',
94
+ properties: this.getSIWXEventProperties()
95
+ });
96
+
97
+ const siwx = OptionsController.state.siwx;
98
+
99
+ const address = ConnectionsController.state.activeAddress;
100
+ const plainAddress = CoreHelperUtil.getPlainAddress(address);
101
+ const network = ConnectionsController.state.activeNetwork;
102
+
103
+ if (!siwx) {
104
+ throw new Error('SIWX is not enabled');
105
+ }
106
+
107
+ if (!address || !plainAddress) {
108
+ throw new Error('No ActiveCaipAddress found');
109
+ }
110
+
111
+ if (!network) {
112
+ throw new Error('No ActiveCaipNetwork or client found');
113
+ }
114
+
115
+ try {
116
+ const siwxMessage = await siwx.createMessage({
117
+ chainId: network.caipNetworkId,
118
+ accountAddress: plainAddress
119
+ });
120
+
121
+ const message = siwxMessage.toString();
122
+
123
+ const signature = await ConnectionsController.signMessage(address, message);
124
+
125
+ if (!signature) {
126
+ throw new Error('Error signing message');
127
+ }
128
+
129
+ SnackController.showLoading('Authenticating...', true);
130
+
131
+ // Add a small delay to allow the app to fully restore network connectivity
132
+ // after returning from background (wallet redirect)
133
+ await new Promise(resolve => setTimeout(resolve, 500));
134
+
135
+ await siwx.addSession({
136
+ data: siwxMessage,
137
+ message,
138
+ signature
139
+ });
140
+
141
+ SnackController.hide();
142
+
143
+ ModalController.close();
144
+
145
+ EventsController.sendEvent({
146
+ type: 'track',
147
+ event: 'SIWX_AUTH_SUCCESS',
148
+ properties: this.getSIWXEventProperties()
149
+ });
150
+ } catch (error) {
151
+ if (!ModalController.state.open) {
152
+ await ModalController.open({
153
+ view: 'SIWXSignMessage'
154
+ });
155
+ }
156
+
157
+ // @ts-ignore
158
+ Alert.alert('Error signing message', error?.message ?? error);
159
+
160
+ SnackController.showError('Error signing message');
161
+ EventsController.sendEvent({
162
+ type: 'track',
163
+ event: 'SIWX_AUTH_ERROR',
164
+ properties: this.getSIWXEventProperties(error)
165
+ });
166
+
167
+ // eslint-disable-next-line no-console
168
+ console.error('SIWXUtil:requestSignMessage', error);
169
+ }
170
+ },
171
+ async cancelSignMessage(onDisconnect: () => Promise<void>) {
172
+ try {
173
+ const siwx = this.getSIWX();
174
+ const isRequired = siwx?.getRequired?.();
175
+ if (isRequired) {
176
+ await onDisconnect();
177
+ } else {
178
+ ModalController.close();
179
+ }
180
+
181
+ EventsController.sendEvent({
182
+ event: 'CLICK_CANCEL_SIWX',
183
+ type: 'track',
184
+ properties: this.getSIWXEventProperties()
185
+ });
186
+ } catch (error) {
187
+ // eslint-disable-next-line no-console
188
+ console.error('SIWXUtil:cancelSignMessage', error);
189
+ }
190
+ },
191
+ async getAllSessions() {
192
+ const siwx = this.getSIWX();
193
+ const allRequestedCaipNetworks = ConnectionsController.state.networks;
194
+ const sessions = [] as SIWXSession[];
195
+ await Promise.all(
196
+ allRequestedCaipNetworks.map(async caipNetwork => {
197
+ const session = await siwx?.getSessions(
198
+ caipNetwork.caipNetworkId,
199
+ CoreHelperUtil.getPlainAddress(ConnectionsController.state.activeAddress) || ''
200
+ );
201
+ if (session) {
202
+ sessions.push(...session);
203
+ }
204
+ })
205
+ );
206
+
207
+ return sessions;
208
+ },
209
+ async getSessions(args?: { address?: string; caipNetworkId?: CaipNetworkId }) {
210
+ const siwx = OptionsController.state.siwx;
211
+ let address = args?.address;
212
+ if (!address) {
213
+ const activeCaipAddress = ConnectionsController.state.activeAddress;
214
+ address = CoreHelperUtil.getPlainAddress(activeCaipAddress);
215
+ }
216
+
217
+ let network = args?.caipNetworkId;
218
+ if (!network) {
219
+ const activeCaipNetwork = ConnectionsController.state.activeNetwork;
220
+ network = activeCaipNetwork?.caipNetworkId;
221
+ }
222
+
223
+ if (!siwx || !address || !network) {
224
+ return [];
225
+ }
226
+
227
+ return siwx.getSessions(network, address);
228
+ },
229
+ async isSIWXCloseDisabled() {
230
+ const siwx = this.getSIWX();
231
+
232
+ if (siwx) {
233
+ const isSiwxSignMessage = RouterController.state.view === 'SIWXSignMessage';
234
+
235
+ if (isSiwxSignMessage) {
236
+ return siwx.getRequired?.() && (await this.getSessions()).length === 0;
237
+ }
238
+ }
239
+
240
+ return false;
241
+ },
242
+
243
+ async universalProviderAuthenticate({
244
+ universalProvider,
245
+ chains,
246
+ methods,
247
+ universalLink
248
+ }: {
249
+ universalProvider: UniversalProvider;
250
+ chains: CaipNetworkId[];
251
+ methods: string[];
252
+ universalLink?: string;
253
+ }) {
254
+ const siwx = SIWXUtil.getSIWX();
255
+ const namespaces = new Set(chains.map(chain => chain.split(':')[0] as ChainNamespace));
256
+
257
+ if (!siwx || namespaces.size !== 1 || !namespaces.has('eip155')) {
258
+ return undefined;
259
+ }
260
+
261
+ // Ignores chainId and account address to get other message data
262
+ const siwxMessage = await siwx.createMessage({
263
+ chainId: OptionsController.state.defaultNetwork?.caipNetworkId || ('' as CaipNetworkId),
264
+ accountAddress: ''
265
+ });
266
+
267
+ let messageChains = chains;
268
+
269
+ if (OptionsController.state.defaultNetwork?.caipNetworkId) {
270
+ // The first chainId is what is used for universal provider to build the message
271
+ messageChains = [
272
+ OptionsController.state.defaultNetwork?.caipNetworkId,
273
+ ...chains.filter(chain => chain !== OptionsController.state.defaultNetwork?.caipNetworkId)
274
+ ];
275
+ }
276
+
277
+ const result = await universalProvider.authenticate(
278
+ {
279
+ nonce: siwxMessage.nonce,
280
+ domain: siwxMessage.domain,
281
+ uri: siwxMessage.uri,
282
+ exp: siwxMessage.expirationTime,
283
+ iat: siwxMessage.issuedAt,
284
+ nbf: siwxMessage.notBefore,
285
+ requestId: siwxMessage.requestId,
286
+ version: siwxMessage.version,
287
+ resources: siwxMessage.resources,
288
+ statement: siwxMessage.statement,
289
+ chainId: siwxMessage.chainId,
290
+ methods,
291
+ chains: messageChains
292
+ },
293
+ universalLink
294
+ );
295
+
296
+ SnackController.showLoading('Authenticating...', true);
297
+
298
+ if (result?.auths?.length) {
299
+ const sessions = result.auths.map<SIWXSession>(cacao => {
300
+ const message = universalProvider.client.formatAuthMessage({
301
+ request: cacao.p,
302
+ iss: cacao.p.iss
303
+ });
304
+
305
+ return {
306
+ data: {
307
+ ...cacao.p,
308
+ accountAddress: cacao.p.iss.split(':').slice(-1).join(''),
309
+ chainId: cacao.p.iss.split(':').slice(2, 4).join(':') as CaipNetworkId,
310
+ uri: cacao.p.aud,
311
+ version: cacao.p.version || siwxMessage.version,
312
+ expirationTime: cacao.p.exp,
313
+ issuedAt: cacao.p.iat,
314
+ notBefore: cacao.p.nbf
315
+ },
316
+ message,
317
+ signature: cacao.s.s,
318
+ cacao
319
+ };
320
+ });
321
+
322
+ try {
323
+ await siwx.setSessions(sessions);
324
+
325
+ EventsController.sendEvent({
326
+ type: 'track',
327
+ event: 'SIWX_AUTH_SUCCESS',
328
+ properties: SIWXUtil.getSIWXEventProperties()
329
+ });
330
+ } catch (error) {
331
+ // eslint-disable-next-line no-console
332
+ console.error('SIWX:universalProviderAuth - failed to set sessions', error);
333
+
334
+ EventsController.sendEvent({
335
+ type: 'track',
336
+ event: 'SIWX_AUTH_ERROR',
337
+ properties: SIWXUtil.getSIWXEventProperties(error)
338
+ });
339
+
340
+ // eslint-disable-next-line no-console
341
+ await universalProvider.disconnect().catch(console.error);
342
+ throw error;
343
+ } finally {
344
+ SnackController.hide();
345
+ }
346
+ }
347
+
348
+ return result?.session;
349
+ },
350
+ getSIWXEventProperties(error?: unknown) {
351
+ return {
352
+ network: ConnectionsController.state.activeNetwork?.caipNetworkId,
353
+ isSmartAccount: ConnectionsController.state.accountType === 'smartAccount',
354
+ message: error ? CoreHelperUtil.parseError(error) : undefined
355
+ };
356
+ },
357
+ async clearSessions() {
358
+ const siwx = this.getSIWX();
359
+
360
+ if (siwx) {
361
+ await siwx.setSessions([]);
362
+ }
363
+ }
364
+ };
@@ -14,7 +14,8 @@ import {
14
14
  OnRampController,
15
15
  ConnectionsController,
16
16
  AssetController,
17
- AssetUtil
17
+ AssetUtil,
18
+ LogController
18
19
  } from '@reown/appkit-core-react-native';
19
20
  // import { ConstantsUtil as CommonConstantsUtil } from '@reown/appkit-common-react-native';
20
21
  import {
@@ -94,6 +95,7 @@ export function AccountDefaultView() {
94
95
  switchAccountType(namespace, newType, network);
95
96
  }
96
97
  } catch (error) {
98
+ LogController.sendError(error, 'AccountDefaultView.tsx', 'onSwitchAccountType');
97
99
  SnackController.showError('Error switching account type');
98
100
  }
99
101
  };
@@ -120,7 +122,7 @@ export function AccountDefaultView() {
120
122
  type: 'track',
121
123
  event: 'OPEN_SWAP',
122
124
  properties: {
123
- network: ConnectionsController.state.activeNetwork?.caipNetworkId || '',
125
+ network: ConnectionsController.state.activeNetwork?.caipNetworkId,
124
126
  isSmartAccount: false
125
127
  }
126
128
  });
@@ -156,7 +158,7 @@ export function AccountDefaultView() {
156
158
  };
157
159
 
158
160
  const onSendPress = () => {
159
- const network = ConnectionsController.state.activeNetwork?.caipNetworkId || '';
161
+ const network = ConnectionsController.state.activeNetwork?.caipNetworkId;
160
162
  const isSmartAccount = ConnectionsController.state.accountType === 'smartAccount';
161
163
 
162
164
  EventsController.sendEvent({
@@ -193,7 +195,7 @@ export function AccountDefaultView() {
193
195
  testID="header-close"
194
196
  />
195
197
  <ScrollView bounces={false} fadingEdgeLength={20} style={{ paddingHorizontal: padding }}>
196
- <FlexView alignItems="center" padding={['3xl', 's', '3xl', 's']}>
198
+ <FlexView alignItems="center" padding={['3xl', 's', 's', 's']}>
197
199
  <Avatar imageSrc={identity?.avatar} address={account ?? ''} />
198
200
  <FlexView flexDirection="row" alignItems="center" margin={['s', '0', '0', '0']}>
199
201
  <Text variant="medium-title-600">
@@ -50,15 +50,7 @@ export function AccountView() {
50
50
  }, []);
51
51
 
52
52
  return (
53
- <ScrollView
54
- bounces={false}
55
- contentContainerStyle={[
56
- styles.contentContainer,
57
- {
58
- paddingHorizontal: padding
59
- }
60
- ]}
61
- >
53
+ <ScrollView bounces={false} contentContainerStyle={{ paddingHorizontal: padding }}>
62
54
  <NetworkButton
63
55
  imageSrc={networkImage}
64
56
  imageHeaders={ApiController._getApiHeaders()}
@@ -1,10 +1,7 @@
1
1
  import { Spacing } from '@reown/appkit-ui-react-native';
2
- import { Platform, StyleSheet } from 'react-native';
2
+ import { StyleSheet } from 'react-native';
3
3
 
4
4
  export default StyleSheet.create({
5
- contentContainer: {
6
- paddingBottom: Platform.select({ ios: Spacing.s })
7
- },
8
5
  networkIcon: {
9
6
  alignSelf: 'flex-start',
10
7
  position: 'absolute',
@@ -22,25 +22,32 @@ export function AllWalletsView() {
22
22
 
23
23
  const { debouncedCallback: onInputChange } = useDebounceCallback({ callback: setSearchQuery });
24
24
 
25
- const onWalletPress = (wallet: WcWallet) => {
25
+ const onWalletPress = (wallet: WcWallet, displayIndex: number) => {
26
26
  const isExternal = WcHelpersUtil.isExternalWallet(wallet);
27
27
  if (isExternal) {
28
28
  RouterController.push('ConnectingExternal', { wallet });
29
29
  } else {
30
- RouterController.push('ConnectingWalletConnect', { wallet });
30
+ RouterController.push('WalletConnect', { wallet });
31
31
  }
32
32
 
33
33
  EventsController.sendEvent({
34
34
  type: 'track',
35
35
  event: 'SELECT_WALLET',
36
- properties: { name: wallet.name ?? 'Unknown', platform: 'mobile', explorer_id: wallet.id }
36
+ properties: {
37
+ name: wallet.name ?? 'Unknown',
38
+ platform: 'mobile',
39
+ explorerId: wallet.id,
40
+ walletRank: wallet.order,
41
+ displayIndex,
42
+ view: 'AllWallets'
43
+ }
37
44
  });
38
45
  };
39
46
 
40
47
  const onQrCodePress = () => {
41
48
  WcController.removePressedWallet();
42
49
  WcController.removeWcLinking();
43
- RouterController.push('ConnectingWalletConnect');
50
+ RouterController.push('WalletConnect');
44
51
 
45
52
  EventsController.sendEvent({
46
53
  type: 'track',
@@ -1,12 +1,12 @@
1
1
  import { useSnapshot } from 'valtio';
2
2
  import { ScrollView } from 'react-native';
3
3
  import { StringUtil, type SocialProvider } from '@reown/appkit-common-react-native';
4
+ import { FlexView, ListSocial, Text, useCustomDimensions } from '@reown/appkit-ui-react-native';
4
5
  import {
5
6
  EventsController,
6
7
  OptionsController,
7
8
  RouterController
8
9
  } from '@reown/appkit-core-react-native';
9
- import { FlexView, ListSocial, Text, useCustomDimensions } from '@reown/appkit-ui-react-native';
10
10
 
11
11
  import styles from './styles';
12
12
 
@@ -27,7 +27,7 @@ export function ConnectSocialsView() {
27
27
 
28
28
  return (
29
29
  <ScrollView style={{ paddingHorizontal: padding }} bounces={false}>
30
- <FlexView padding={['xs', 'm', '2xl', 'm']}>
30
+ <FlexView padding={['xs', 'm', '0', 'm']}>
31
31
  {socialProviders.map(provider => (
32
32
  <ListSocial
33
33
  key={provider}
@@ -4,37 +4,38 @@ import {
4
4
  ApiController,
5
5
  AssetController,
6
6
  AssetUtil,
7
+ OptionsController,
7
8
  WcController,
8
9
  type WcControllerState
9
10
  } from '@reown/appkit-core-react-native';
10
11
  import { type WcWallet } from '@reown/appkit-common-react-native';
11
12
  import { ListItemLoader, ListWallet } from '@reown/appkit-ui-react-native';
12
13
  import { UiUtil } from '../../../utils/UiUtil';
13
- import { filterOutRecentWallets } from '../utils';
14
14
 
15
15
  interface Props {
16
16
  itemStyle: StyleProp<ViewStyle>;
17
- onWalletPress: (wallet: WcWallet) => void;
17
+ onWalletPress: (wallet: WcWallet, displayIndex: number, isInstalled?: boolean) => void;
18
18
  }
19
19
 
20
20
  export function AllWalletList({ itemStyle, onWalletPress }: Props) {
21
21
  const { installed, featured, recommended, prefetchLoading } = useSnapshot(ApiController.state);
22
+ const { customWallets } = useSnapshot(OptionsController.state);
22
23
  const { recentWallets } = useSnapshot(WcController.state) as WcControllerState;
23
24
  const { walletImages } = useSnapshot(AssetController.state);
24
25
  const imageHeaders = ApiController._getApiHeaders();
25
- const RECENT_COUNT = recentWallets?.length && installed.length ? 1 : recentWallets?.length ?? 0;
26
26
 
27
- const combinedWallets = [...installed, ...featured, ...recommended];
27
+ const combinedWallets = [
28
+ ...(recentWallets?.slice(0, 1) ?? []),
29
+ ...installed,
30
+ ...featured,
31
+ ...recommended,
32
+ ...(customWallets ?? [])
33
+ ];
28
34
 
29
35
  // Deduplicate by wallet ID
30
- const uniqueWallets = Array.from(
36
+ const list = Array.from(
31
37
  new Map(combinedWallets.map(wallet => [wallet.id, wallet])).values()
32
- );
33
-
34
- const list = filterOutRecentWallets(recentWallets, uniqueWallets, RECENT_COUNT).slice(
35
- 0,
36
- UiUtil.TOTAL_VISIBLE_WALLETS - RECENT_COUNT
37
- );
38
+ ).slice(0, UiUtil.TOTAL_VISIBLE_WALLETS);
38
39
 
39
40
  if (!list?.length) {
40
41
  return null;
@@ -46,16 +47,24 @@ export function AllWalletList({ itemStyle, onWalletPress }: Props) {
46
47
  <ListItemLoader style={itemStyle} />
47
48
  </>
48
49
  ) : (
49
- list.map(wallet => (
50
- <ListWallet
51
- key={wallet?.id}
52
- imageSrc={AssetUtil.getWalletImage(wallet, walletImages)}
53
- imageHeaders={imageHeaders}
54
- name={wallet?.name ?? 'Unknown'}
55
- onPress={() => onWalletPress(wallet)}
56
- style={itemStyle}
57
- installed={!!installed.find(installedWallet => installedWallet.id === wallet.id)}
58
- />
59
- ))
50
+ list.map((wallet, index) => {
51
+ const isRecent = recentWallets?.some(recentWallet => recentWallet.id === wallet.id);
52
+ //eslint-disable-next-line valtio/state-snapshot-rule
53
+ const isInstalled = !!installed.find(installedWallet => installedWallet.id === wallet.id);
54
+
55
+ return (
56
+ <ListWallet
57
+ key={wallet?.id}
58
+ imageSrc={AssetUtil.getWalletImage(wallet, walletImages)}
59
+ imageHeaders={imageHeaders}
60
+ name={wallet?.name ?? 'Unknown'}
61
+ onPress={() => onWalletPress(wallet, index, isInstalled)}
62
+ tagLabel={isRecent ? 'Recent' : undefined}
63
+ tagVariant={isRecent ? 'shade' : undefined}
64
+ style={itemStyle}
65
+ installed={isInstalled}
66
+ />
67
+ );
68
+ })
60
69
  );
61
70
  }
@@ -17,10 +17,8 @@ import {
17
17
  useCustomDimensions
18
18
  } from '@reown/appkit-ui-react-native';
19
19
  import { Placeholder } from '../../partials/w3m-placeholder';
20
- import { CustomWalletList } from './components/custom-wallet-list';
21
20
  import { AllWalletsButton } from './components/all-wallets-button';
22
21
  import { AllWalletList } from './components/all-wallet-list';
23
- import { RecentWalletList } from './components/recent-wallet-list';
24
22
  import { SocialLoginList } from './components/social-login-list';
25
23
  import styles from './styles';
26
24
  import { WcHelpersUtil } from '../../utils/HelpersUtil';
@@ -35,12 +33,12 @@ export function ConnectView() {
35
33
  const showLoadingError = !showConnectWalletsButton && prefetchError;
36
34
  const showList = !showConnectWalletsButton && !showLoadingError;
37
35
 
38
- const onWalletPress = (wallet: WcWallet, isInstalled?: boolean) => {
36
+ const onWalletPress = (wallet: WcWallet, displayIndex: number, isInstalled?: boolean) => {
39
37
  const isExternal = WcHelpersUtil.isExternalWallet(wallet);
40
38
  if (isExternal) {
41
39
  RouterController.push('ConnectingExternal', { wallet });
42
40
  } else {
43
- RouterController.push('ConnectingWalletConnect', { wallet });
41
+ RouterController.push('WalletConnect', { wallet });
44
42
  }
45
43
 
46
44
  const platform = EventUtil.getWalletPlatform(wallet, isInstalled);
@@ -50,7 +48,10 @@ export function ConnectView() {
50
48
  properties: {
51
49
  name: wallet.name ?? 'Unknown',
52
50
  platform,
53
- explorer_id: wallet.id
51
+ explorerId: wallet.id,
52
+ walletRank: wallet.order,
53
+ displayIndex,
54
+ view: 'Connect'
54
55
  }
55
56
  });
56
57
  };
@@ -62,7 +63,7 @@ export function ConnectView() {
62
63
 
63
64
  return (
64
65
  <ScrollView style={{ paddingHorizontal: padding }} bounces={false}>
65
- <FlexView padding={['xs', '0', 's', '0']}>
66
+ <FlexView padding={['xs', '0', 'xs', '0']}>
66
67
  {isSocialEnabled ? (
67
68
  <>
68
69
  <SocialLoginList options={features?.socials} />
@@ -70,7 +71,7 @@ export function ConnectView() {
70
71
  </>
71
72
  ) : null}
72
73
 
73
- <FlexView padding={['0', 's', 'xs', 's']}>
74
+ <FlexView padding={['0', 's', '0', 's']}>
74
75
  {showConnectWalletsButton ? (
75
76
  <ListItem contentStyle={styles.connectWalletButton} onPress={onViewAllPress}>
76
77
  <Icon name="wallet" size="lg" />
@@ -94,9 +95,7 @@ export function ConnectView() {
94
95
  ) : null}
95
96
  {showList ? (
96
97
  <>
97
- <RecentWalletList itemStyle={styles.item} onWalletPress={onWalletPress} />
98
98
  <AllWalletList itemStyle={styles.item} onWalletPress={onWalletPress} />
99
- <CustomWalletList itemStyle={styles.item} onWalletPress={onWalletPress} />
100
99
  <AllWalletsButton itemStyle={styles.item} onPress={onViewAllPress} />
101
100
  </>
102
101
  ) : null}