@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
@@ -1,5 +1,5 @@
1
1
  import { useSnapshot } from 'valtio';
2
- import { useEffect, useLayoutEffect, useMemo } from 'react';
2
+ import { 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';
@@ -10,7 +10,7 @@ import { ConnectSocialsView } from '../../views/w3m-connect-socials-view';
10
10
  import { ConnectingView } from '../../views/w3m-connecting-view';
11
11
  import { ConnectingExternalView } from '../../views/w3m-connecting-external-view';
12
12
  import { ConnectingSocialView } from '../../views/w3m-connecting-social-view';
13
- import { ConnectingSiweView } from '../../views/w3m-connecting-siwe-view';
13
+ import { SIWXSignMessageView } from '../../views/w3m-siwx-sign-view';
14
14
  import { GetWalletView } from '../../views/w3m-get-wallet-view';
15
15
  import { NetworksView } from '../../views/w3m-networks-view';
16
16
  import { NetworkSwitchView } from '../../views/w3m-network-switch-view';
@@ -31,8 +31,8 @@ import { WalletSendPreviewView } from '../../views/w3m-wallet-send-preview-view'
31
31
  import { WalletSendSelectTokenView } from '../../views/w3m-wallet-send-select-token-view';
32
32
  import { WhatIsANetworkView } from '../../views/w3m-what-is-a-network-view';
33
33
  import { WhatIsAWalletView } from '../../views/w3m-what-is-a-wallet-view';
34
- import { UiUtil } from '../../utils/UiUtil';
35
- import { useRouteTransition } from '../../hooks/useRouteTransition';
34
+ // import { UiUtil } from '../../utils/UiUtil';
35
+ // import { useRouteTransition } from '../../hooks/useRouteTransition';
36
36
 
37
37
  import { Animated } from 'react-native';
38
38
  import { useCustomDimensions } from '@reown/appkit-ui-react-native';
@@ -40,18 +40,15 @@ import { useCustomDimensions } from '@reown/appkit-ui-react-native';
40
40
  export function AppKitRouter() {
41
41
  const { view } = useSnapshot(RouterController.state);
42
42
  const { maxHeight } = useCustomDimensions();
43
- const { animateTransition, getAnimatedStyle } = useRouteTransition({
44
- duration: 300,
45
- useNativeDriver: true
46
- });
43
+ // const { animateTransition, getAnimatedStyle } = useRouteTransition();
47
44
 
48
- useEffect(() => {
49
- UiUtil.setRouteTransition(animateTransition);
50
- }, [animateTransition]);
45
+ // useEffect(() => {
46
+ // UiUtil.setRouteTransition(animateTransition);
47
+ // }, [animateTransition]);
51
48
 
52
- useLayoutEffect(() => {
53
- UiUtil.createViewTransition();
54
- }, [view]);
49
+ // useEffect(() => {
50
+ // UiUtil.createViewTransition();
51
+ // }, [view]);
55
52
 
56
53
  const ViewComponent = useMemo(() => {
57
54
  switch (view) {
@@ -67,11 +64,11 @@ export function AppKitRouter() {
67
64
  return ConnectSocialsView;
68
65
  case 'ConnectingExternal':
69
66
  return ConnectingExternalView;
70
- case 'ConnectingSiwe':
71
- return ConnectingSiweView;
67
+ case 'SIWXSignMessage':
68
+ return SIWXSignMessageView;
72
69
  case 'ConnectingSocial':
73
70
  return ConnectingSocialView;
74
- case 'ConnectingWalletConnect':
71
+ case 'WalletConnect':
75
72
  return ConnectingView;
76
73
  case 'GetWallet':
77
74
  return GetWalletView;
@@ -85,14 +82,14 @@ export function AppKitRouter() {
85
82
  return OnRampSettingsView;
86
83
  case 'OnRampLoading':
87
84
  return OnRampLoadingView;
88
- case 'SwitchNetwork':
89
- return NetworkSwitchView;
90
85
  case 'OnRampTransaction':
91
86
  return OnRampTransactionView;
92
87
  case 'Swap':
93
88
  return SwapView;
94
89
  case 'SwapPreview':
95
90
  return SwapPreviewView;
91
+ case 'SwitchNetwork':
92
+ return NetworkSwitchView;
96
93
  case 'Transactions':
97
94
  return TransactionsView;
98
95
  case 'UnsupportedChain':
@@ -119,7 +116,7 @@ export function AppKitRouter() {
119
116
  }, [view]);
120
117
 
121
118
  return (
122
- <Animated.View style={[getAnimatedStyle(), { maxHeight }]}>
119
+ <Animated.View style={{ maxHeight }}>
123
120
  <ViewComponent />
124
121
  </Animated.View>
125
122
  );
@@ -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}
@@ -21,7 +21,7 @@ export function AccountWalletFeatures() {
21
21
  const { features, isOnRampEnabled } = useSnapshot(OptionsController.state);
22
22
  const { activeNetwork, balances, activeNamespace } = useSnapshot(ConnectionsController.state);
23
23
  const balance = CoreHelperUtil.calculateAndFormatBalance(balances as BalanceType[]);
24
- const network = ConnectionsController.state.activeNetwork?.caipNetworkId || '';
24
+ const network = ConnectionsController.state.activeNetwork?.caipNetworkId;
25
25
  const isSmartAccount = ConnectionsController.state.accountType === 'smartAccount';
26
26
  const showSend =
27
27
  activeNamespace && ConstantsUtil.SEND_SUPPORTED_NAMESPACES.includes(activeNamespace);
@@ -1,13 +1,21 @@
1
1
  import { memo } from 'react';
2
2
  import { WalletList } from './WalletList';
3
+ import type { StyleProp, ViewStyle } from 'react-native';
3
4
 
4
5
  interface LoadingProps {
5
6
  loadingItems?: number;
7
+ style?: StyleProp<ViewStyle>;
6
8
  }
7
9
 
8
- function _Loading({ loadingItems = 20 }: LoadingProps) {
10
+ function _Loading({ loadingItems = 20, style }: LoadingProps) {
9
11
  return (
10
- <WalletList data={[]} onItemPress={() => {}} isLoading={true} loadingItems={loadingItems} />
12
+ <WalletList
13
+ data={[]}
14
+ onItemPress={() => {}}
15
+ isLoading={true}
16
+ loadingItems={loadingItems}
17
+ style={style}
18
+ />
11
19
  );
12
20
  }
13
21
 
@@ -7,12 +7,21 @@ import { memo } from 'react';
7
7
 
8
8
  interface WalletItemProps {
9
9
  item: WcWallet;
10
+ displayIndex: number;
10
11
  imageHeaders?: Record<string, string>;
11
- onItemPress: (wallet: WcWallet) => void;
12
+ onItemPress: (wallet: WcWallet, displayIndex: number) => void;
12
13
  style?: StyleProp<ViewStyle>;
14
+ testID?: string;
13
15
  }
14
16
 
15
- export function WalletItem({ item, imageHeaders, onItemPress, style }: WalletItemProps) {
17
+ export function WalletItem({
18
+ item,
19
+ displayIndex,
20
+ imageHeaders,
21
+ onItemPress,
22
+ style,
23
+ testID
24
+ }: WalletItemProps) {
16
25
  const { walletImages } = useSnapshot(AssetController.state);
17
26
  const isInstalled = ApiController.state.installed.find(wallet => wallet?.id === item?.id);
18
27
  const imageSrc = AssetUtil.getWalletImage(item, walletImages);
@@ -27,8 +36,9 @@ export function WalletItem({ item, imageHeaders, onItemPress, style }: WalletIte
27
36
  style={style}
28
37
  imageHeaders={imageHeaders}
29
38
  name={item?.name ?? 'Unknown'}
30
- onPress={() => onItemPress(item)}
39
+ onPress={() => onItemPress(item, displayIndex)}
31
40
  installed={!!isInstalled}
41
+ testID={testID}
32
42
  />
33
43
  );
34
44
  }
@@ -1,4 +1,4 @@
1
- import { FlatList, StyleSheet } from 'react-native';
1
+ import { FlatList, StyleSheet, type StyleProp, type ViewStyle } from 'react-native';
2
2
  import { WalletItem } from './WalletItem';
3
3
  import {
4
4
  CardSelectHeight,
@@ -18,11 +18,13 @@ const ITEM_HEIGHT_WITH_GAP = ITEM_HEIGHT + Spacing['3xs'];
18
18
 
19
19
  interface Props {
20
20
  data: WcWallet[];
21
- onItemPress: (wallet: WcWallet) => void;
21
+ onItemPress: (wallet: WcWallet, displayIndex: number) => void;
22
22
  onEndReached?: () => void;
23
23
  onEndReachedThreshold?: number;
24
24
  isLoading?: boolean;
25
25
  loadingItems?: number;
26
+ style?: StyleProp<ViewStyle>;
27
+ testIDKey?: string;
26
28
  }
27
29
 
28
30
  export function WalletList({
@@ -31,7 +33,9 @@ export function WalletList({
31
33
  onEndReached,
32
34
  onEndReachedThreshold,
33
35
  isLoading = false,
34
- loadingItems = 20
36
+ loadingItems = 20,
37
+ testIDKey,
38
+ style
35
39
  }: Props) {
36
40
  const { padding, maxHeight } = useCustomDimensions();
37
41
 
@@ -46,9 +50,9 @@ export function WalletList({
46
50
  bounces={false}
47
51
  numColumns={4}
48
52
  data={displayData}
49
- style={[styles.list, { height: maxHeight }]}
53
+ style={[styles.list, { height: maxHeight }, style]}
50
54
  columnWrapperStyle={styles.columnWrapperStyle}
51
- renderItem={({ item }) => {
55
+ renderItem={({ item, index }) => {
52
56
  if (isLoading) {
53
57
  return <CardSelectLoader style={styles.itemContainer} />;
54
58
  }
@@ -57,12 +61,17 @@ export function WalletList({
57
61
  <WalletItem
58
62
  item={item}
59
63
  imageHeaders={imageHeaders}
64
+ displayIndex={index}
60
65
  onItemPress={onItemPress}
61
66
  style={styles.itemContainer}
67
+ testID={testIDKey ? `${testIDKey}-${item?.id}` : undefined}
62
68
  />
63
69
  );
64
70
  }}
65
71
  contentContainerStyle={[styles.contentContainer, { paddingHorizontal: padding }]}
72
+ initialNumToRender={32}
73
+ maxToRenderPerBatch={12}
74
+ windowSize={10}
66
75
  onEndReached={onEndReached}
67
76
  onEndReachedThreshold={onEndReachedThreshold}
68
77
  keyExtractor={(item, index) => item?.id ?? `item-${index}`}
@@ -80,7 +89,7 @@ const styles = StyleSheet.create({
80
89
  paddingTop: Spacing['3xs']
81
90
  },
82
91
  contentContainer: {
83
- paddingBottom: Spacing['4xl'],
92
+ paddingBottom: Spacing['xs'],
84
93
  paddingTop: Spacing['3xs'],
85
94
  gap: Spacing['3xs'],
86
95
  alignItems: 'center'
@@ -2,6 +2,7 @@ import { useEffect, useState } from 'react';
2
2
  import { useSnapshot } from 'valtio';
3
3
  import {
4
4
  ApiController,
5
+ LogController,
5
6
  OptionsController,
6
7
  SnackController,
7
8
  type OptionsControllerState
@@ -14,7 +15,7 @@ import { Loading } from './components/Loading';
14
15
  import { WalletList } from './components/WalletList';
15
16
 
16
17
  interface AllWalletsListProps {
17
- onItemPress: (wallet: WcWallet) => void;
18
+ onItemPress: (wallet: WcWallet, displayIndex: number) => void;
18
19
  headerHeight?: number;
19
20
  }
20
21
 
@@ -25,13 +26,22 @@ export function AllWalletsList({ onItemPress }: AllWalletsListProps) {
25
26
  const { installed, featured, recommended, wallets } = useSnapshot(ApiController.state);
26
27
  const { customWallets } = useSnapshot(OptionsController.state) as OptionsControllerState;
27
28
 
28
- const combinedWallets = [
29
- ...(customWallets ?? []),
30
- ...installed,
31
- ...featured,
32
- ...recommended,
33
- ...wallets
34
- ];
29
+ let combinedWallets = [...installed, ...featured, ...recommended, ...wallets];
30
+
31
+ // Show custom wallets after certified wallets.
32
+ const certifiedIndex = combinedWallets.findLastIndex(wallet => wallet.badge_type === 'certified');
33
+ if (certifiedIndex > -1) {
34
+ const nonCertifiedWallets = combinedWallets.splice(certifiedIndex + 1);
35
+ combinedWallets = combinedWallets.concat(customWallets ?? [], nonCertifiedWallets);
36
+ } else {
37
+ combinedWallets = [
38
+ ...installed,
39
+ ...featured,
40
+ ...recommended,
41
+ ...(customWallets ?? []),
42
+ ...wallets
43
+ ];
44
+ }
35
45
 
36
46
  // Deduplicate by wallet ID
37
47
  const uniqueWallets = Array.from(
@@ -52,6 +62,7 @@ export function AllWalletsList({ onItemPress }: AllWalletsListProps) {
52
62
  await ApiController.fetchWallets({ page: 1 });
53
63
  setLoading(false);
54
64
  } catch (error) {
65
+ LogController.sendError(error, 'AllWalletsList.tsx', 'initialFetch');
55
66
  SnackController.showError('Failed to load wallets');
56
67
  setLoading(false);
57
68
  setLoadingError(true);
@@ -61,7 +72,7 @@ export function AllWalletsList({ onItemPress }: AllWalletsListProps) {
61
72
  const fetchNextPage = async () => {
62
73
  try {
63
74
  if (
64
- walletList.length < ApiController.state.count &&
75
+ walletList.length - (customWallets ?? []).length < ApiController.state.count &&
65
76
  !pageLoading &&
66
77
  !loading &&
67
78
  ApiController.state.page > 0
@@ -83,7 +94,7 @@ export function AllWalletsList({ onItemPress }: AllWalletsListProps) {
83
94
  }, []);
84
95
 
85
96
  if (loading) {
86
- return <Loading loadingItems={20} />;
97
+ return <Loading loadingItems={12} style={styles.loadingContainer} />;
87
98
  }
88
99
 
89
100
  if (loadingError) {
@@ -23,5 +23,8 @@ export default StyleSheet.create({
23
23
  placeholderContainer: {
24
24
  flex: 0,
25
25
  height: '90%'
26
+ },
27
+ loadingContainer: {
28
+ height: 320
26
29
  }
27
30
  });
@@ -1,5 +1,11 @@
1
+ import { useSnapshot } from 'valtio';
1
2
  import { useCallback, useEffect, useState } from 'react';
2
- import { ApiController, SnackController } from '@reown/appkit-core-react-native';
3
+ import {
4
+ ApiController,
5
+ LogController,
6
+ OptionsController,
7
+ SnackController
8
+ } from '@reown/appkit-core-react-native';
3
9
  import { type WcWallet } from '@reown/appkit-common-react-native';
4
10
  import { useCustomDimensions } from '@reown/appkit-ui-react-native';
5
11
  import { Placeholder } from '../w3m-placeholder';
@@ -9,33 +15,33 @@ import { Loading } from '../w3m-all-wallets-list/components/Loading';
9
15
  import { WalletList } from '../w3m-all-wallets-list/components/WalletList';
10
16
 
11
17
  export interface AllWalletsSearchProps {
12
- onItemPress: (wallet: WcWallet) => void;
18
+ onItemPress: (wallet: WcWallet, displayIndex: number) => void;
13
19
  searchQuery?: string;
14
20
  }
15
21
 
16
22
  export function AllWalletsSearch({ searchQuery, onItemPress }: AllWalletsSearchProps) {
23
+ const { search } = useSnapshot(ApiController.state);
24
+ const { customWallets } = useSnapshot(OptionsController.state);
17
25
  const [loading, setLoading] = useState<boolean>(false);
18
26
  const [loadingError, setLoadingError] = useState<boolean>(false);
19
27
  const [prevSearchQuery, setPrevSearchQuery] = useState<string>('');
20
28
  const { isLandscape } = useCustomDimensions();
21
29
 
22
- const emptyTemplate = () => {
23
- return (
24
- <Placeholder
25
- icon="walletPlaceholder"
26
- description="No results found"
27
- style={[styles.emptyContainer, isLandscape && styles.emptyLandscape]}
28
- />
29
- );
30
- };
30
+ const customWalletResults = (customWallets ?? []).filter(wallet =>
31
+ wallet.name.toLowerCase().includes(searchQuery?.toLowerCase() ?? '')
32
+ );
33
+
34
+ const results = [...search, ...customWalletResults];
31
35
 
32
36
  const searchFetch = useCallback(async () => {
33
37
  try {
34
38
  setLoading(true);
35
39
  setLoadingError(false);
40
+ // eslint-disable-next-line valtio/state-snapshot-rule
36
41
  await ApiController.searchWallet({ search: searchQuery });
37
42
  setLoading(false);
38
43
  } catch (error) {
44
+ LogController.sendError(error, 'AllWalletsSearch.tsx', 'searchFetch');
39
45
  SnackController.showError('Failed to load wallets');
40
46
  setLoading(false);
41
47
  setLoadingError(true);
@@ -50,7 +56,7 @@ export function AllWalletsSearch({ searchQuery, onItemPress }: AllWalletsSearchP
50
56
  }, [searchQuery, prevSearchQuery, searchFetch]);
51
57
 
52
58
  if (loading) {
53
- return <Loading loadingItems={20} />;
59
+ return <Loading loadingItems={12} />;
54
60
  }
55
61
 
56
62
  if (loadingError) {
@@ -62,15 +68,21 @@ export function AllWalletsSearch({ searchQuery, onItemPress }: AllWalletsSearchP
62
68
  description={`This might be due to a temporary network issue.\nPlease try reloading to see if that helps.`}
63
69
  actionIcon="refresh"
64
70
  actionPress={searchFetch}
65
- style={styles.placeholderContainer}
71
+ style={[styles.placeholderContainer]}
66
72
  actionTitle="Retry"
67
73
  />
68
74
  );
69
75
  }
70
76
 
71
- if (ApiController.state.search.length === 0) {
72
- return emptyTemplate();
77
+ if (results.length === 0) {
78
+ return (
79
+ <Placeholder
80
+ icon="walletPlaceholder"
81
+ description="No results found"
82
+ style={[styles.emptyContainer, isLandscape && styles.emptyLandscape]}
83
+ />
84
+ );
73
85
  }
74
86
 
75
- return <WalletList onItemPress={onItemPress} data={ApiController.state.search} />;
87
+ return <WalletList onItemPress={onItemPress} data={results} testIDKey="wallet-search-item" />;
76
88
  }
@@ -3,7 +3,7 @@ import { StyleSheet } from 'react-native';
3
3
 
4
4
  export default StyleSheet.create({
5
5
  contentContainer: {
6
- paddingBottom: Spacing['4xl']
6
+ paddingBottom: Spacing['xs']
7
7
  },
8
8
  placeholderContainer: {
9
9
  flex: 0,
@@ -11,6 +11,8 @@ export default StyleSheet.create({
11
11
  },
12
12
  emptyContainer: {
13
13
  flex: 0,
14
+ justifyContent: 'flex-start',
15
+ paddingTop: Spacing['4xl'],
14
16
  height: '90%'
15
17
  },
16
18
  emptyLandscape: {
@@ -10,7 +10,9 @@ import {
10
10
  OptionsController,
11
11
  EventsController,
12
12
  ConstantsUtil,
13
- AssetController
13
+ AssetController,
14
+ LogController,
15
+ ConnectionsController
14
16
  } from '@reown/appkit-core-react-native';
15
17
  import {
16
18
  Button,
@@ -60,6 +62,21 @@ export function ConnectingMobile({ onRetry, onCopyUri, isInstalled }: Props) {
60
62
  const onStorePress = () => {
61
63
  if (storeUrl) {
62
64
  CoreHelperUtil.openLink(storeUrl);
65
+ EventsController.sendEvent({
66
+ type: 'track',
67
+ event: 'GET_WALLET',
68
+ properties: {
69
+ name: data?.wallet?.name ?? 'Unknown',
70
+ link: storeUrl,
71
+ linkType: Platform.select({
72
+ ios: 'appstore',
73
+ android: 'playstore',
74
+ default: undefined
75
+ }),
76
+ explorerId: data?.wallet?.id,
77
+ walletRank: data?.wallet?.order
78
+ }
79
+ });
63
80
  }
64
81
  };
65
82
 
@@ -74,17 +91,22 @@ export function ConnectingMobile({ onRetry, onCopyUri, isInstalled }: Props) {
74
91
  await CoreHelperUtil.openLink(redirect);
75
92
  await WcController.state.wcPromise;
76
93
  WcController.setConnectedWallet(wcLinking, data?.wallet);
94
+ const address = ConnectionsController.state.activeAddress;
95
+ const caipNetworkId = ConnectionsController.state.activeNetwork?.caipNetworkId;
77
96
  EventsController.sendEvent({
78
97
  type: 'track',
79
98
  event: 'CONNECT_SUCCESS',
99
+ address: CoreHelperUtil.getPlainAddress(address),
80
100
  properties: {
81
101
  method: 'mobile',
82
102
  name: data?.wallet?.name ?? 'Unknown',
83
- explorer_id: data?.wallet?.id
103
+ explorerId: data?.wallet?.id,
104
+ caipNetworkId
84
105
  }
85
106
  });
86
107
  }
87
108
  } catch (error: any) {
109
+ LogController.sendError(error, 'ConnectingMobile.tsx', 'onConnect');
88
110
  if (error.message.includes(ConstantsUtil.LINKING_ERROR)) {
89
111
  setErrorType('not_installed');
90
112
  } else {
@@ -3,7 +3,8 @@ import { Spacing } from '@reown/appkit-ui-react-native';
3
3
 
4
4
  export default StyleSheet.create({
5
5
  container: {
6
- paddingBottom: Spacing['3xl']
6
+ paddingBottom: Spacing['xs'],
7
+ minHeight: '30%'
7
8
  },
8
9
  retryButton: {
9
10
  marginTop: Spacing.m
@@ -4,7 +4,9 @@ import {
4
4
  WcController,
5
5
  EventsController,
6
6
  OptionsController,
7
- SnackController
7
+ SnackController,
8
+ ConnectionsController,
9
+ CoreHelperUtil
8
10
  } from '@reown/appkit-core-react-native';
9
11
  import {
10
12
  FlexView,
@@ -35,13 +37,17 @@ export function ConnectingQrCode() {
35
37
 
36
38
  const onConnect = async () => {
37
39
  await WcController.state.wcPromise;
40
+ const address = ConnectionsController.state.activeAddress;
41
+ const caipNetworkId = ConnectionsController.state.activeNetwork?.caipNetworkId;
38
42
 
39
43
  EventsController.sendEvent({
40
44
  type: 'track',
41
45
  event: 'CONNECT_SUCCESS',
46
+ address: CoreHelperUtil.getPlainAddress(address),
42
47
  properties: {
43
48
  method: 'qrcode',
44
- name: 'WalletConnect'
49
+ name: 'WalletConnect',
50
+ caipNetworkId
45
51
  }
46
52
  });
47
53
  };
@@ -57,7 +63,7 @@ export function ConnectingQrCode() {
57
63
  alignItems="center"
58
64
  justifyContent="center"
59
65
  flexDirection={isPortrait ? 'column' : 'row'}
60
- padding="xl"
66
+ padding={['xl', 'xl', 'xs', 'xl']}
61
67
  >
62
68
  <QrCode size={qrSize} uri={wcUri} testID="qr-code" />
63
69
  <FlexView alignItems="center" margin="m">
@@ -9,7 +9,9 @@ import {
9
9
  CoreHelperUtil,
10
10
  OptionsController,
11
11
  EventsController,
12
- AssetController
12
+ AssetController,
13
+ LogController,
14
+ ConnectionsController
13
15
  } from '@reown/appkit-core-react-native';
14
16
  import {
15
17
  Button,
@@ -50,23 +52,29 @@ export function ConnectingWeb({ onCopyUri }: ConnectingWebProps) {
50
52
  await Linking.openURL(redirect);
51
53
  await WcController.state.wcPromise;
52
54
  WcController.setConnectedWallet(wcLinking, data?.wallet);
55
+ const address = ConnectionsController.state.activeAddress;
56
+ const caipNetworkId = ConnectionsController.state.activeNetwork?.caipNetworkId;
53
57
 
54
58
  EventsController.sendEvent({
55
59
  type: 'track',
56
60
  event: 'CONNECT_SUCCESS',
61
+ address: CoreHelperUtil.getPlainAddress(address),
57
62
  properties: {
58
63
  method: 'web',
59
64
  name: data?.wallet?.name ?? 'Unknown',
60
- explorer_id: data?.wallet?.id
65
+ explorerId: data?.wallet?.id,
66
+ caipNetworkId
61
67
  }
62
68
  });
63
69
  }
64
- } catch {}
70
+ } catch (error) {
71
+ LogController.sendError(error, 'ConnectingWeb.tsx', 'onConnect');
72
+ }
65
73
  }, [data?.wallet, wcUri]);
66
74
 
67
75
  return (
68
- <ScrollView bounces={false} fadingEdgeLength={20}>
69
- <FlexView alignItems="center" padding={['2xl', 'm', '3xl', 'm']}>
76
+ <ScrollView bounces={false} fadingEdgeLength={20} contentContainerStyle={styles.container}>
77
+ <FlexView alignItems="center" padding={['2xl', 'm', 'xs', 'm']}>
70
78
  <LoadingThumbnail paused={wcError}>
71
79
  <WalletImage
72
80
  size="xl"
@@ -2,6 +2,9 @@ import { Spacing } from '@reown/appkit-ui-react-native';
2
2
  import { StyleSheet } from 'react-native';
3
3
 
4
4
  export default StyleSheet.create({
5
+ container: {
6
+ minHeight: '30%'
7
+ },
5
8
  openButton: {
6
9
  marginTop: Spacing.m
7
10
  },
@@ -32,9 +32,9 @@ export function Header() {
32
32
  Connect: 'Connect wallet',
33
33
  ConnectSocials: 'All socials',
34
34
  ConnectingExternal: walletName ?? 'Connect wallet',
35
- ConnectingSiwe: undefined,
35
+ SIWXSignMessage: 'Sign in',
36
36
  ConnectingSocial: socialName ?? 'Connecting Social',
37
- ConnectingWalletConnect: walletName ?? 'WalletConnect',
37
+ WalletConnect: walletName ?? 'WalletConnect',
38
38
  GetWallet: 'Get a wallet',
39
39
  Networks: 'Select network',
40
40
  OnRamp: undefined,
@@ -58,7 +58,8 @@ export function Header() {
58
58
  }[_view];
59
59
  };
60
60
 
61
- const noCloseViews = ['OnRampSettings'];
61
+ const noCloseViews = ['OnRampSettings', 'SIWXSignMessage'];
62
+ const noBackViews = ['UnsupportedChain', 'SIWXSignMessage'];
62
63
  const showClose = !noCloseViews.includes(view);
63
64
  const header = headings(data, view);
64
65
 
@@ -71,7 +72,9 @@ export function Header() {
71
72
  };
72
73
 
73
74
  const dynamicButtonTemplate = () => {
74
- const showBack = RouterController.state.history.length > 1;
75
+ const showBack =
76
+ RouterController.state.history.length > 1 &&
77
+ !noBackViews.includes(RouterController.state.view);
75
78
  const showHelp = RouterController.state.view === 'Connect';
76
79
 
77
80
  if (showHelp) {
@@ -28,6 +28,8 @@ interface SelectorModalProps {
28
28
  itemHeight?: number;
29
29
  showNetwork?: boolean;
30
30
  searchPlaceholder?: string;
31
+ emptyTitle?: string;
32
+ emptyDescription?: string;
31
33
  }
32
34
 
33
35
  const SEPARATOR_HEIGHT = Spacing.s;
@@ -43,7 +45,9 @@ export function SelectorModal({
43
45
  searchPlaceholder,
44
46
  keyExtractor,
45
47
  itemHeight,
46
- showNetwork
48
+ showNetwork,
49
+ emptyTitle = 'No tokens found',
50
+ emptyDescription = "There's no available tokens for this network"
47
51
  }: SelectorModalProps) {
48
52
  const Theme = useTheme();
49
53
  const { maxHeight } = useCustomDimensions();
@@ -67,11 +71,7 @@ export function SelectorModal({
67
71
  style={[styles.container, { backgroundColor: Theme['bg-100'], maxHeight }]}
68
72
  ListHeaderComponentStyle={styles.header}
69
73
  ListEmptyComponent={
70
- <Placeholder
71
- icon="coinPlaceholder"
72
- title="No tokens found"
73
- description="There's no available tokens for this network"
74
- />
74
+ <Placeholder icon="coinPlaceholder" title={emptyTitle} description={emptyDescription} />
75
75
  }
76
76
  ListHeaderComponent={
77
77
  <>