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

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 (514) hide show
  1. package/lib/commonjs/AppKit.js +59 -93
  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/useAppKitState.js +32 -0
  12. package/lib/commonjs/hooks/useAppKitState.js.map +1 -0
  13. package/lib/commonjs/hooks/useProvider.js +14 -8
  14. package/lib/commonjs/hooks/useProvider.js.map +1 -1
  15. package/lib/commonjs/hooks/useWalletInfo.js +6 -4
  16. package/lib/commonjs/hooks/useWalletInfo.js.map +1 -1
  17. package/lib/commonjs/index.js +14 -0
  18. package/lib/commonjs/index.js.map +1 -1
  19. package/lib/commonjs/modal/w3m-modal/index.js +16 -5
  20. package/lib/commonjs/modal/w3m-modal/index.js.map +1 -1
  21. package/lib/commonjs/modal/w3m-router/index.js +25 -21
  22. package/lib/commonjs/modal/w3m-router/index.js.map +1 -1
  23. package/lib/commonjs/partials/w3m-account-activity/index.js +1 -1
  24. package/lib/commonjs/partials/w3m-account-activity/index.js.map +1 -1
  25. package/lib/commonjs/partials/w3m-all-wallets-list/components/Loading.js +9 -97
  26. package/lib/commonjs/partials/w3m-all-wallets-list/components/Loading.js.map +1 -1
  27. package/lib/commonjs/partials/w3m-all-wallets-list/components/WalletItem.js +6 -10
  28. package/lib/commonjs/partials/w3m-all-wallets-list/components/WalletItem.js.map +1 -1
  29. package/lib/commonjs/partials/w3m-all-wallets-list/components/WalletList.js +96 -0
  30. package/lib/commonjs/partials/w3m-all-wallets-list/components/WalletList.js.map +1 -0
  31. package/lib/commonjs/partials/w3m-all-wallets-list/index.js +19 -45
  32. package/lib/commonjs/partials/w3m-all-wallets-list/index.js.map +1 -1
  33. package/lib/commonjs/partials/w3m-all-wallets-list/styles.js +10 -4
  34. package/lib/commonjs/partials/w3m-all-wallets-list/styles.js.map +1 -1
  35. package/lib/commonjs/partials/w3m-all-wallets-search/index.js +25 -49
  36. package/lib/commonjs/partials/w3m-all-wallets-search/index.js.map +1 -1
  37. package/lib/commonjs/partials/w3m-all-wallets-search/styles.js +3 -1
  38. package/lib/commonjs/partials/w3m-all-wallets-search/styles.js.map +1 -1
  39. package/lib/commonjs/partials/w3m-connecting-mobile/index.js +4 -4
  40. package/lib/commonjs/partials/w3m-connecting-mobile/index.js.map +1 -1
  41. package/lib/commonjs/partials/w3m-connecting-mobile/styles.js +2 -1
  42. package/lib/commonjs/partials/w3m-connecting-mobile/styles.js.map +1 -1
  43. package/lib/commonjs/partials/w3m-connecting-qrcode/index.js +7 -2
  44. package/lib/commonjs/partials/w3m-connecting-qrcode/index.js.map +1 -1
  45. package/lib/commonjs/partials/w3m-connecting-web/index.js +2 -1
  46. package/lib/commonjs/partials/w3m-connecting-web/index.js.map +1 -1
  47. package/lib/commonjs/partials/w3m-connecting-web/styles.js +3 -0
  48. package/lib/commonjs/partials/w3m-connecting-web/styles.js.map +1 -1
  49. package/lib/commonjs/partials/w3m-header/index.js +5 -4
  50. package/lib/commonjs/partials/w3m-header/index.js.map +1 -1
  51. package/lib/commonjs/partials/w3m-selector-modal/index.js +72 -57
  52. package/lib/commonjs/partials/w3m-selector-modal/index.js.map +1 -1
  53. package/lib/commonjs/partials/w3m-selector-modal/styles.js +9 -11
  54. package/lib/commonjs/partials/w3m-selector-modal/styles.js.map +1 -1
  55. package/lib/commonjs/utils/SIWXUtil.js +282 -0
  56. package/lib/commonjs/utils/SIWXUtil.js.map +1 -0
  57. package/lib/commonjs/views/w3m-account-default-view/index.js +3 -3
  58. package/lib/commonjs/views/w3m-account-default-view/index.js.map +1 -1
  59. package/lib/commonjs/views/w3m-account-view/index.js +2 -2
  60. package/lib/commonjs/views/w3m-account-view/index.js.map +1 -1
  61. package/lib/commonjs/views/w3m-account-view/styles.js +0 -5
  62. package/lib/commonjs/views/w3m-account-view/styles.js.map +1 -1
  63. package/lib/commonjs/views/w3m-all-wallets-view/index.js +7 -24
  64. package/lib/commonjs/views/w3m-all-wallets-view/index.js.map +1 -1
  65. package/lib/commonjs/views/w3m-connect-socials-view/index.js +2 -2
  66. package/lib/commonjs/views/w3m-connect-socials-view/index.js.map +1 -1
  67. package/lib/commonjs/views/w3m-connect-view/components/all-wallet-list.js +18 -13
  68. package/lib/commonjs/views/w3m-connect-view/components/all-wallet-list.js.map +1 -1
  69. package/lib/commonjs/views/w3m-connect-view/index.js +4 -12
  70. package/lib/commonjs/views/w3m-connect-view/index.js.map +1 -1
  71. package/lib/commonjs/views/w3m-connecting-external-view/index.js +4 -4
  72. package/lib/commonjs/views/w3m-connecting-external-view/index.js.map +1 -1
  73. package/lib/commonjs/views/w3m-connecting-external-view/styles.js +1 -1
  74. package/lib/commonjs/views/w3m-connecting-external-view/styles.js.map +1 -1
  75. package/lib/commonjs/views/w3m-connecting-social-view/index.js +35 -30
  76. package/lib/commonjs/views/w3m-connecting-social-view/index.js.map +1 -1
  77. package/lib/commonjs/views/w3m-connecting-view/index.js +11 -31
  78. package/lib/commonjs/views/w3m-connecting-view/index.js.map +1 -1
  79. package/lib/commonjs/views/w3m-get-wallet-view/index.js +1 -1
  80. package/lib/commonjs/views/w3m-get-wallet-view/index.js.map +1 -1
  81. package/lib/commonjs/views/w3m-network-switch-view/index.js +61 -80
  82. package/lib/commonjs/views/w3m-network-switch-view/index.js.map +1 -1
  83. package/lib/commonjs/views/w3m-networks-view/index.js +25 -14
  84. package/lib/commonjs/views/w3m-networks-view/index.js.map +1 -1
  85. package/lib/commonjs/views/w3m-onramp-checkout-view/index.js +160 -152
  86. package/lib/commonjs/views/w3m-onramp-checkout-view/index.js.map +1 -1
  87. package/lib/commonjs/views/w3m-onramp-loading-view/index.js +4 -4
  88. package/lib/commonjs/views/w3m-onramp-loading-view/index.js.map +1 -1
  89. package/lib/commonjs/views/w3m-onramp-loading-view/styles.js +1 -1
  90. package/lib/commonjs/views/w3m-onramp-loading-view/styles.js.map +1 -1
  91. package/lib/commonjs/views/w3m-onramp-settings-view/components/Country.js +5 -2
  92. package/lib/commonjs/views/w3m-onramp-settings-view/components/Country.js.map +1 -1
  93. package/lib/commonjs/views/w3m-onramp-settings-view/index.js +16 -7
  94. package/lib/commonjs/views/w3m-onramp-settings-view/index.js.map +1 -1
  95. package/lib/commonjs/views/w3m-onramp-settings-view/styles.js +4 -1
  96. package/lib/commonjs/views/w3m-onramp-settings-view/styles.js.map +1 -1
  97. package/lib/commonjs/views/w3m-onramp-settings-view/utils.js +17 -1
  98. package/lib/commonjs/views/w3m-onramp-settings-view/utils.js.map +1 -1
  99. package/lib/commonjs/views/w3m-onramp-transaction-view/index.js +1 -1
  100. package/lib/commonjs/views/w3m-onramp-transaction-view/index.js.map +1 -1
  101. package/lib/commonjs/views/w3m-onramp-view/components/Currency.js +3 -2
  102. package/lib/commonjs/views/w3m-onramp-view/components/Currency.js.map +1 -1
  103. package/lib/commonjs/views/w3m-onramp-view/components/Header.js +1 -1
  104. package/lib/commonjs/views/w3m-onramp-view/components/LoadingView.js +1 -1
  105. package/lib/commonjs/views/w3m-onramp-view/components/LoadingView.js.map +1 -1
  106. package/lib/commonjs/views/w3m-onramp-view/components/SelectPaymentModal.js +5 -2
  107. package/lib/commonjs/views/w3m-onramp-view/components/SelectPaymentModal.js.map +1 -1
  108. package/lib/commonjs/views/w3m-onramp-view/index.js +5 -4
  109. package/lib/commonjs/views/w3m-onramp-view/index.js.map +1 -1
  110. package/lib/commonjs/views/w3m-onramp-view/styles.js +3 -0
  111. package/lib/commonjs/views/w3m-onramp-view/styles.js.map +1 -1
  112. package/lib/commonjs/views/w3m-siwx-sign-view/index.js +109 -0
  113. package/lib/commonjs/views/w3m-siwx-sign-view/index.js.map +1 -0
  114. package/lib/commonjs/views/{w3m-connecting-siwe-view → w3m-siwx-sign-view}/styles.js +0 -7
  115. package/lib/commonjs/views/w3m-siwx-sign-view/styles.js.map +1 -0
  116. package/lib/commonjs/views/w3m-swap-preview-view/index.js +1 -1
  117. package/lib/commonjs/views/w3m-swap-preview-view/index.js.map +1 -1
  118. package/lib/commonjs/views/w3m-swap-preview-view/styles.js +0 -3
  119. package/lib/commonjs/views/w3m-swap-preview-view/styles.js.map +1 -1
  120. package/lib/commonjs/views/w3m-swap-view/components/select-token-modal/index.js +156 -0
  121. package/lib/commonjs/views/w3m-swap-view/components/select-token-modal/index.js.map +1 -0
  122. package/lib/commonjs/views/w3m-swap-view/components/{select-token-view → select-token-modal}/styles.js +6 -2
  123. package/lib/commonjs/views/w3m-swap-view/components/select-token-modal/styles.js.map +1 -0
  124. package/lib/commonjs/views/w3m-swap-view/components/select-token-modal/utils.js.map +1 -0
  125. package/lib/commonjs/views/w3m-swap-view/index.js +15 -15
  126. package/lib/commonjs/views/w3m-swap-view/index.js.map +1 -1
  127. package/lib/commonjs/views/w3m-swap-view/styles.js +0 -8
  128. package/lib/commonjs/views/w3m-swap-view/styles.js.map +1 -1
  129. package/lib/commonjs/views/w3m-unsupported-chain-view/index.js +6 -12
  130. package/lib/commonjs/views/w3m-unsupported-chain-view/index.js.map +1 -1
  131. package/lib/commonjs/views/w3m-unsupported-chain-view/styles.js +1 -1
  132. package/lib/commonjs/views/w3m-unsupported-chain-view/styles.js.map +1 -1
  133. package/lib/commonjs/views/w3m-upgrade-email-wallet-view/index.js +3 -5
  134. package/lib/commonjs/views/w3m-upgrade-email-wallet-view/index.js.map +1 -1
  135. package/lib/commonjs/views/w3m-wallet-compatible-networks-view/index.js +1 -2
  136. package/lib/commonjs/views/w3m-wallet-compatible-networks-view/index.js.map +1 -1
  137. package/lib/commonjs/views/w3m-wallet-receive-view/index.js +1 -1
  138. package/lib/commonjs/views/w3m-wallet-receive-view/index.js.map +1 -1
  139. package/lib/commonjs/views/w3m-wallet-send-preview-view/index.js +1 -1
  140. package/lib/commonjs/views/w3m-wallet-send-preview-view/index.js.map +1 -1
  141. package/lib/commonjs/views/w3m-wallet-send-select-token-view/index.js +5 -3
  142. package/lib/commonjs/views/w3m-wallet-send-select-token-view/index.js.map +1 -1
  143. package/lib/commonjs/views/w3m-wallet-send-view/index.js +11 -5
  144. package/lib/commonjs/views/w3m-wallet-send-view/index.js.map +1 -1
  145. package/lib/commonjs/views/w3m-wallet-send-view/styles.js +0 -3
  146. package/lib/commonjs/views/w3m-wallet-send-view/styles.js.map +1 -1
  147. package/lib/commonjs/views/w3m-what-is-a-network-view/index.js +1 -1
  148. package/lib/commonjs/views/w3m-what-is-a-network-view/index.js.map +1 -1
  149. package/lib/commonjs/views/w3m-what-is-a-wallet-view/index.js +1 -1
  150. package/lib/commonjs/views/w3m-what-is-a-wallet-view/index.js.map +1 -1
  151. package/lib/module/AppKit.js +59 -93
  152. package/lib/module/AppKit.js.map +1 -1
  153. package/lib/module/AppKitContext.js +17 -11
  154. package/lib/module/AppKitContext.js.map +1 -1
  155. package/lib/module/connectors/WalletConnectConnector.js +34 -62
  156. package/lib/module/connectors/WalletConnectConnector.js.map +1 -1
  157. package/lib/module/hooks/useAccount.js +9 -5
  158. package/lib/module/hooks/useAccount.js.map +1 -1
  159. package/lib/module/hooks/useAppKit.js +13 -13
  160. package/lib/module/hooks/useAppKit.js.map +1 -1
  161. package/lib/module/hooks/useAppKitState.js +27 -0
  162. package/lib/module/hooks/useAppKitState.js.map +1 -0
  163. package/lib/module/hooks/useProvider.js +13 -8
  164. package/lib/module/hooks/useProvider.js.map +1 -1
  165. package/lib/module/hooks/useWalletInfo.js +6 -4
  166. package/lib/module/hooks/useWalletInfo.js.map +1 -1
  167. package/lib/module/index.js +4 -0
  168. package/lib/module/index.js.map +1 -1
  169. package/lib/module/modal/w3m-modal/index.js +17 -6
  170. package/lib/module/modal/w3m-modal/index.js.map +1 -1
  171. package/lib/module/modal/w3m-router/index.js +26 -22
  172. package/lib/module/modal/w3m-router/index.js.map +1 -1
  173. package/lib/module/partials/w3m-account-activity/index.js +1 -1
  174. package/lib/module/partials/w3m-account-activity/index.js.map +1 -1
  175. package/lib/module/partials/w3m-all-wallets-list/components/Loading.js +10 -98
  176. package/lib/module/partials/w3m-all-wallets-list/components/Loading.js.map +1 -1
  177. package/lib/module/partials/w3m-all-wallets-list/components/WalletItem.js +6 -10
  178. package/lib/module/partials/w3m-all-wallets-list/components/WalletItem.js.map +1 -1
  179. package/lib/module/partials/w3m-all-wallets-list/components/WalletList.js +92 -0
  180. package/lib/module/partials/w3m-all-wallets-list/components/WalletList.js.map +1 -0
  181. package/lib/module/partials/w3m-all-wallets-list/index.js +19 -45
  182. package/lib/module/partials/w3m-all-wallets-list/index.js.map +1 -1
  183. package/lib/module/partials/w3m-all-wallets-list/styles.js +10 -4
  184. package/lib/module/partials/w3m-all-wallets-list/styles.js.map +1 -1
  185. package/lib/module/partials/w3m-all-wallets-search/index.js +27 -51
  186. package/lib/module/partials/w3m-all-wallets-search/index.js.map +1 -1
  187. package/lib/module/partials/w3m-all-wallets-search/styles.js +3 -1
  188. package/lib/module/partials/w3m-all-wallets-search/styles.js.map +1 -1
  189. package/lib/module/partials/w3m-connecting-mobile/index.js +4 -4
  190. package/lib/module/partials/w3m-connecting-mobile/index.js.map +1 -1
  191. package/lib/module/partials/w3m-connecting-mobile/styles.js +2 -1
  192. package/lib/module/partials/w3m-connecting-mobile/styles.js.map +1 -1
  193. package/lib/module/partials/w3m-connecting-qrcode/index.js +7 -2
  194. package/lib/module/partials/w3m-connecting-qrcode/index.js.map +1 -1
  195. package/lib/module/partials/w3m-connecting-web/index.js +2 -1
  196. package/lib/module/partials/w3m-connecting-web/index.js.map +1 -1
  197. package/lib/module/partials/w3m-connecting-web/styles.js +3 -0
  198. package/lib/module/partials/w3m-connecting-web/styles.js.map +1 -1
  199. package/lib/module/partials/w3m-header/index.js +5 -4
  200. package/lib/module/partials/w3m-header/index.js.map +1 -1
  201. package/lib/module/partials/w3m-selector-modal/index.js +74 -59
  202. package/lib/module/partials/w3m-selector-modal/index.js.map +1 -1
  203. package/lib/module/partials/w3m-selector-modal/styles.js +9 -11
  204. package/lib/module/partials/w3m-selector-modal/styles.js.map +1 -1
  205. package/lib/module/utils/SIWXUtil.js +279 -0
  206. package/lib/module/utils/SIWXUtil.js.map +1 -0
  207. package/lib/module/views/w3m-account-default-view/index.js +3 -3
  208. package/lib/module/views/w3m-account-default-view/index.js.map +1 -1
  209. package/lib/module/views/w3m-account-view/index.js +2 -2
  210. package/lib/module/views/w3m-account-view/index.js.map +1 -1
  211. package/lib/module/views/w3m-account-view/styles.js +1 -6
  212. package/lib/module/views/w3m-account-view/styles.js.map +1 -1
  213. package/lib/module/views/w3m-all-wallets-view/index.js +8 -25
  214. package/lib/module/views/w3m-all-wallets-view/index.js.map +1 -1
  215. package/lib/module/views/w3m-connect-socials-view/index.js +2 -2
  216. package/lib/module/views/w3m-connect-socials-view/index.js.map +1 -1
  217. package/lib/module/views/w3m-connect-view/components/all-wallet-list.js +19 -14
  218. package/lib/module/views/w3m-connect-view/components/all-wallet-list.js.map +1 -1
  219. package/lib/module/views/w3m-connect-view/index.js +4 -12
  220. package/lib/module/views/w3m-connect-view/index.js.map +1 -1
  221. package/lib/module/views/w3m-connecting-external-view/index.js +4 -4
  222. package/lib/module/views/w3m-connecting-external-view/index.js.map +1 -1
  223. package/lib/module/views/w3m-connecting-external-view/styles.js +1 -1
  224. package/lib/module/views/w3m-connecting-external-view/styles.js.map +1 -1
  225. package/lib/module/views/w3m-connecting-social-view/index.js +35 -30
  226. package/lib/module/views/w3m-connecting-social-view/index.js.map +1 -1
  227. package/lib/module/views/w3m-connecting-view/index.js +12 -32
  228. package/lib/module/views/w3m-connecting-view/index.js.map +1 -1
  229. package/lib/module/views/w3m-get-wallet-view/index.js +1 -1
  230. package/lib/module/views/w3m-get-wallet-view/index.js.map +1 -1
  231. package/lib/module/views/w3m-network-switch-view/index.js +65 -85
  232. package/lib/module/views/w3m-network-switch-view/index.js.map +1 -1
  233. package/lib/module/views/w3m-networks-view/index.js +25 -15
  234. package/lib/module/views/w3m-networks-view/index.js.map +1 -1
  235. package/lib/module/views/w3m-onramp-checkout-view/index.js +162 -154
  236. package/lib/module/views/w3m-onramp-checkout-view/index.js.map +1 -1
  237. package/lib/module/views/w3m-onramp-loading-view/index.js +4 -4
  238. package/lib/module/views/w3m-onramp-loading-view/index.js.map +1 -1
  239. package/lib/module/views/w3m-onramp-loading-view/styles.js +1 -1
  240. package/lib/module/views/w3m-onramp-loading-view/styles.js.map +1 -1
  241. package/lib/module/views/w3m-onramp-settings-view/components/Country.js +5 -2
  242. package/lib/module/views/w3m-onramp-settings-view/components/Country.js.map +1 -1
  243. package/lib/module/views/w3m-onramp-settings-view/index.js +17 -8
  244. package/lib/module/views/w3m-onramp-settings-view/index.js.map +1 -1
  245. package/lib/module/views/w3m-onramp-settings-view/styles.js +4 -1
  246. package/lib/module/views/w3m-onramp-settings-view/styles.js.map +1 -1
  247. package/lib/module/views/w3m-onramp-settings-view/utils.js +14 -0
  248. package/lib/module/views/w3m-onramp-settings-view/utils.js.map +1 -1
  249. package/lib/module/views/w3m-onramp-transaction-view/index.js +1 -1
  250. package/lib/module/views/w3m-onramp-transaction-view/index.js.map +1 -1
  251. package/lib/module/views/w3m-onramp-view/components/Currency.js +3 -2
  252. package/lib/module/views/w3m-onramp-view/components/Currency.js.map +1 -1
  253. package/lib/module/views/w3m-onramp-view/components/Header.js +1 -1
  254. package/lib/module/views/w3m-onramp-view/components/LoadingView.js +1 -1
  255. package/lib/module/views/w3m-onramp-view/components/LoadingView.js.map +1 -1
  256. package/lib/module/views/w3m-onramp-view/components/SelectPaymentModal.js +6 -3
  257. package/lib/module/views/w3m-onramp-view/components/SelectPaymentModal.js.map +1 -1
  258. package/lib/module/views/w3m-onramp-view/index.js +5 -4
  259. package/lib/module/views/w3m-onramp-view/index.js.map +1 -1
  260. package/lib/module/views/w3m-onramp-view/styles.js +3 -0
  261. package/lib/module/views/w3m-onramp-view/styles.js.map +1 -1
  262. package/lib/module/views/w3m-siwx-sign-view/index.js +104 -0
  263. package/lib/module/views/w3m-siwx-sign-view/index.js.map +1 -0
  264. package/lib/module/views/{w3m-connecting-siwe-view → w3m-siwx-sign-view}/styles.js +0 -7
  265. package/lib/module/views/w3m-siwx-sign-view/styles.js.map +1 -0
  266. package/lib/module/views/w3m-swap-preview-view/index.js +1 -1
  267. package/lib/module/views/w3m-swap-preview-view/index.js.map +1 -1
  268. package/lib/module/views/w3m-swap-preview-view/styles.js +0 -3
  269. package/lib/module/views/w3m-swap-preview-view/styles.js.map +1 -1
  270. package/lib/module/views/w3m-swap-view/components/select-token-modal/index.js +151 -0
  271. package/lib/module/views/w3m-swap-view/components/select-token-modal/index.js.map +1 -0
  272. package/lib/module/views/w3m-swap-view/components/{select-token-view → select-token-modal}/styles.js +6 -2
  273. package/lib/module/views/w3m-swap-view/components/select-token-modal/styles.js.map +1 -0
  274. package/lib/module/views/w3m-swap-view/components/select-token-modal/utils.js.map +1 -0
  275. package/lib/module/views/w3m-swap-view/index.js +16 -16
  276. package/lib/module/views/w3m-swap-view/index.js.map +1 -1
  277. package/lib/module/views/w3m-swap-view/styles.js +0 -8
  278. package/lib/module/views/w3m-swap-view/styles.js.map +1 -1
  279. package/lib/module/views/w3m-unsupported-chain-view/index.js +8 -14
  280. package/lib/module/views/w3m-unsupported-chain-view/index.js.map +1 -1
  281. package/lib/module/views/w3m-unsupported-chain-view/styles.js +1 -1
  282. package/lib/module/views/w3m-unsupported-chain-view/styles.js.map +1 -1
  283. package/lib/module/views/w3m-upgrade-email-wallet-view/index.js +4 -6
  284. package/lib/module/views/w3m-upgrade-email-wallet-view/index.js.map +1 -1
  285. package/lib/module/views/w3m-wallet-compatible-networks-view/index.js +1 -2
  286. package/lib/module/views/w3m-wallet-compatible-networks-view/index.js.map +1 -1
  287. package/lib/module/views/w3m-wallet-receive-view/index.js +1 -1
  288. package/lib/module/views/w3m-wallet-receive-view/index.js.map +1 -1
  289. package/lib/module/views/w3m-wallet-send-preview-view/index.js +1 -1
  290. package/lib/module/views/w3m-wallet-send-preview-view/index.js.map +1 -1
  291. package/lib/module/views/w3m-wallet-send-select-token-view/index.js +5 -3
  292. package/lib/module/views/w3m-wallet-send-select-token-view/index.js.map +1 -1
  293. package/lib/module/views/w3m-wallet-send-view/index.js +11 -5
  294. package/lib/module/views/w3m-wallet-send-view/index.js.map +1 -1
  295. package/lib/module/views/w3m-wallet-send-view/styles.js +0 -3
  296. package/lib/module/views/w3m-wallet-send-view/styles.js.map +1 -1
  297. package/lib/module/views/w3m-what-is-a-network-view/index.js +1 -1
  298. package/lib/module/views/w3m-what-is-a-network-view/index.js.map +1 -1
  299. package/lib/module/views/w3m-what-is-a-wallet-view/index.js +1 -1
  300. package/lib/module/views/w3m-what-is-a-wallet-view/index.js.map +1 -1
  301. package/lib/typescript/AppKit.d.ts +1 -3
  302. package/lib/typescript/AppKit.d.ts.map +1 -1
  303. package/lib/typescript/AppKitContext.d.ts.map +1 -1
  304. package/lib/typescript/connectors/WalletConnectConnector.d.ts.map +1 -1
  305. package/lib/typescript/hooks/useAccount.d.ts +33 -1
  306. package/lib/typescript/hooks/useAccount.d.ts.map +1 -1
  307. package/lib/typescript/hooks/useAppKit.d.ts +0 -1
  308. package/lib/typescript/hooks/useAppKit.d.ts.map +1 -1
  309. package/lib/typescript/hooks/useAppKitEvents.d.ts +6 -4
  310. package/lib/typescript/hooks/useAppKitEvents.d.ts.map +1 -1
  311. package/lib/typescript/hooks/useAppKitState.d.ts +38 -0
  312. package/lib/typescript/hooks/useAppKitState.d.ts.map +1 -0
  313. package/lib/typescript/hooks/useProvider.d.ts.map +1 -1
  314. package/lib/typescript/hooks/useWalletInfo.d.ts +1 -0
  315. package/lib/typescript/hooks/useWalletInfo.d.ts.map +1 -1
  316. package/lib/typescript/index.d.ts +4 -0
  317. package/lib/typescript/index.d.ts.map +1 -1
  318. package/lib/typescript/modal/w3m-modal/index.d.ts.map +1 -1
  319. package/lib/typescript/modal/w3m-router/index.d.ts.map +1 -1
  320. package/lib/typescript/partials/w3m-all-wallets-list/components/Loading.d.ts +4 -4
  321. package/lib/typescript/partials/w3m-all-wallets-list/components/Loading.d.ts.map +1 -1
  322. package/lib/typescript/partials/w3m-all-wallets-list/components/WalletItem.d.ts +2 -3
  323. package/lib/typescript/partials/w3m-all-wallets-list/components/WalletItem.d.ts.map +1 -1
  324. package/lib/typescript/partials/w3m-all-wallets-list/components/WalletList.d.ts +15 -0
  325. package/lib/typescript/partials/w3m-all-wallets-list/components/WalletList.d.ts.map +1 -0
  326. package/lib/typescript/partials/w3m-all-wallets-list/index.d.ts +1 -3
  327. package/lib/typescript/partials/w3m-all-wallets-list/index.d.ts.map +1 -1
  328. package/lib/typescript/partials/w3m-all-wallets-list/styles.d.ts +9 -3
  329. package/lib/typescript/partials/w3m-all-wallets-list/styles.d.ts.map +1 -1
  330. package/lib/typescript/partials/w3m-all-wallets-search/index.d.ts +1 -4
  331. package/lib/typescript/partials/w3m-all-wallets-search/index.d.ts.map +1 -1
  332. package/lib/typescript/partials/w3m-all-wallets-search/styles.d.ts +2 -0
  333. package/lib/typescript/partials/w3m-all-wallets-search/styles.d.ts.map +1 -1
  334. package/lib/typescript/partials/w3m-connecting-mobile/styles.d.ts +1 -0
  335. package/lib/typescript/partials/w3m-connecting-mobile/styles.d.ts.map +1 -1
  336. package/lib/typescript/partials/w3m-connecting-qrcode/index.d.ts.map +1 -1
  337. package/lib/typescript/partials/w3m-connecting-web/styles.d.ts +3 -0
  338. package/lib/typescript/partials/w3m-connecting-web/styles.d.ts.map +1 -1
  339. package/lib/typescript/partials/w3m-header/index.d.ts.map +1 -1
  340. package/lib/typescript/partials/w3m-selector-modal/index.d.ts +3 -1
  341. package/lib/typescript/partials/w3m-selector-modal/index.d.ts.map +1 -1
  342. package/lib/typescript/partials/w3m-selector-modal/styles.d.ts +6 -8
  343. package/lib/typescript/partials/w3m-selector-modal/styles.d.ts.map +1 -1
  344. package/lib/typescript/types.d.ts +5 -7
  345. package/lib/typescript/types.d.ts.map +1 -1
  346. package/lib/typescript/utils/SIWXUtil.d.ts +34 -0
  347. package/lib/typescript/utils/SIWXUtil.d.ts.map +1 -0
  348. package/lib/typescript/views/w3m-account-view/index.d.ts.map +1 -1
  349. package/lib/typescript/views/w3m-account-view/styles.d.ts +0 -3
  350. package/lib/typescript/views/w3m-account-view/styles.d.ts.map +1 -1
  351. package/lib/typescript/views/w3m-all-wallets-view/index.d.ts.map +1 -1
  352. package/lib/typescript/views/w3m-connect-view/components/all-wallet-list.d.ts.map +1 -1
  353. package/lib/typescript/views/w3m-connect-view/index.d.ts.map +1 -1
  354. package/lib/typescript/views/w3m-connecting-social-view/index.d.ts.map +1 -1
  355. package/lib/typescript/views/w3m-connecting-view/index.d.ts.map +1 -1
  356. package/lib/typescript/views/w3m-network-switch-view/index.d.ts.map +1 -1
  357. package/lib/typescript/views/w3m-networks-view/index.d.ts.map +1 -1
  358. package/lib/typescript/views/w3m-onramp-checkout-view/index.d.ts.map +1 -1
  359. package/lib/typescript/views/w3m-onramp-loading-view/index.d.ts.map +1 -1
  360. package/lib/typescript/views/w3m-onramp-settings-view/components/Country.d.ts +4 -1
  361. package/lib/typescript/views/w3m-onramp-settings-view/components/Country.d.ts.map +1 -1
  362. package/lib/typescript/views/w3m-onramp-settings-view/index.d.ts.map +1 -1
  363. package/lib/typescript/views/w3m-onramp-settings-view/styles.d.ts +4 -1
  364. package/lib/typescript/views/w3m-onramp-settings-view/styles.d.ts.map +1 -1
  365. package/lib/typescript/views/w3m-onramp-settings-view/utils.d.ts +2 -0
  366. package/lib/typescript/views/w3m-onramp-settings-view/utils.d.ts.map +1 -1
  367. package/lib/typescript/views/w3m-onramp-view/components/Currency.d.ts +3 -1
  368. package/lib/typescript/views/w3m-onramp-view/components/Currency.d.ts.map +1 -1
  369. package/lib/typescript/views/w3m-onramp-view/components/SelectPaymentModal.d.ts.map +1 -1
  370. package/lib/typescript/views/w3m-onramp-view/index.d.ts.map +1 -1
  371. package/lib/typescript/views/w3m-onramp-view/styles.d.ts +3 -0
  372. package/lib/typescript/views/w3m-onramp-view/styles.d.ts.map +1 -1
  373. package/lib/typescript/views/w3m-siwx-sign-view/index.d.ts +2 -0
  374. package/lib/typescript/views/w3m-siwx-sign-view/index.d.ts.map +1 -0
  375. package/lib/typescript/views/{w3m-connecting-siwe-view → w3m-siwx-sign-view}/styles.d.ts +0 -7
  376. package/lib/typescript/views/w3m-siwx-sign-view/styles.d.ts.map +1 -0
  377. package/lib/typescript/views/w3m-swap-preview-view/styles.d.ts +0 -3
  378. package/lib/typescript/views/w3m-swap-preview-view/styles.d.ts.map +1 -1
  379. package/lib/typescript/views/w3m-swap-view/components/{select-token-view → select-token-modal}/index.d.ts +2 -1
  380. package/lib/typescript/views/w3m-swap-view/components/select-token-modal/index.d.ts.map +1 -0
  381. package/lib/typescript/views/w3m-swap-view/components/{select-token-view → select-token-modal}/styles.d.ts +6 -2
  382. package/lib/typescript/views/w3m-swap-view/components/{select-token-view → select-token-modal}/styles.d.ts.map +1 -1
  383. package/lib/typescript/views/w3m-swap-view/components/select-token-modal/utils.d.ts.map +1 -0
  384. package/lib/typescript/views/w3m-swap-view/index.d.ts.map +1 -1
  385. package/lib/typescript/views/w3m-swap-view/styles.d.ts +0 -8
  386. package/lib/typescript/views/w3m-swap-view/styles.d.ts.map +1 -1
  387. package/lib/typescript/views/w3m-unsupported-chain-view/index.d.ts.map +1 -1
  388. package/lib/typescript/views/w3m-upgrade-email-wallet-view/index.d.ts.map +1 -1
  389. package/lib/typescript/views/w3m-wallet-send-view/index.d.ts.map +1 -1
  390. package/lib/typescript/views/w3m-wallet-send-view/styles.d.ts +0 -3
  391. package/lib/typescript/views/w3m-wallet-send-view/styles.d.ts.map +1 -1
  392. package/package.json +10 -9
  393. package/src/AppKit.ts +62 -107
  394. package/src/AppKitContext.tsx +19 -11
  395. package/src/connectors/WalletConnectConnector.ts +47 -75
  396. package/src/hooks/useAccount.ts +15 -5
  397. package/src/hooks/useAppKit.ts +17 -12
  398. package/src/hooks/useAppKitState.ts +26 -0
  399. package/src/hooks/useProvider.ts +11 -5
  400. package/src/hooks/useWalletInfo.ts +5 -2
  401. package/src/index.ts +11 -0
  402. package/src/modal/w3m-modal/index.tsx +13 -4
  403. package/src/modal/w3m-router/index.tsx +19 -20
  404. package/src/partials/w3m-account-activity/index.tsx +1 -1
  405. package/src/partials/w3m-all-wallets-list/components/Loading.tsx +12 -35
  406. package/src/partials/w3m-all-wallets-list/components/WalletItem.tsx +5 -12
  407. package/src/partials/w3m-all-wallets-list/components/WalletList.tsx +103 -0
  408. package/src/partials/w3m-all-wallets-list/index.tsx +25 -51
  409. package/src/partials/w3m-all-wallets-list/styles.ts +10 -4
  410. package/src/partials/w3m-all-wallets-search/index.tsx +25 -60
  411. package/src/partials/w3m-all-wallets-search/styles.ts +3 -1
  412. package/src/partials/w3m-connecting-mobile/index.tsx +8 -8
  413. package/src/partials/w3m-connecting-mobile/styles.ts +2 -1
  414. package/src/partials/w3m-connecting-qrcode/index.tsx +5 -2
  415. package/src/partials/w3m-connecting-web/index.tsx +2 -2
  416. package/src/partials/w3m-connecting-web/styles.ts +3 -0
  417. package/src/partials/w3m-header/index.tsx +7 -4
  418. package/src/partials/w3m-selector-modal/index.tsx +81 -61
  419. package/src/partials/w3m-selector-modal/styles.ts +9 -11
  420. package/src/types.ts +6 -8
  421. package/src/utils/SIWXUtil.ts +364 -0
  422. package/src/views/w3m-account-default-view/index.tsx +3 -3
  423. package/src/views/w3m-account-view/index.tsx +1 -9
  424. package/src/views/w3m-account-view/styles.ts +1 -4
  425. package/src/views/w3m-all-wallets-view/index.tsx +11 -34
  426. package/src/views/w3m-connect-socials-view/index.tsx +2 -2
  427. package/src/views/w3m-connect-view/components/all-wallet-list.tsx +28 -21
  428. package/src/views/w3m-connect-view/index.tsx +3 -7
  429. package/src/views/w3m-connecting-external-view/index.tsx +8 -8
  430. package/src/views/w3m-connecting-external-view/styles.ts +1 -1
  431. package/src/views/w3m-connecting-social-view/index.tsx +26 -28
  432. package/src/views/w3m-connecting-view/index.tsx +13 -32
  433. package/src/views/w3m-get-wallet-view/index.tsx +1 -1
  434. package/src/views/w3m-network-switch-view/index.tsx +70 -98
  435. package/src/views/w3m-networks-view/index.tsx +26 -22
  436. package/src/views/w3m-onramp-checkout-view/index.tsx +147 -143
  437. package/src/views/w3m-onramp-loading-view/index.tsx +3 -7
  438. package/src/views/w3m-onramp-loading-view/styles.ts +1 -1
  439. package/src/views/w3m-onramp-settings-view/components/Country.tsx +10 -3
  440. package/src/views/w3m-onramp-settings-view/index.tsx +17 -5
  441. package/src/views/w3m-onramp-settings-view/styles.ts +4 -1
  442. package/src/views/w3m-onramp-settings-view/utils.ts +18 -0
  443. package/src/views/w3m-onramp-transaction-view/index.tsx +1 -1
  444. package/src/views/w3m-onramp-view/components/Currency.tsx +4 -3
  445. package/src/views/w3m-onramp-view/components/Header.tsx +1 -1
  446. package/src/views/w3m-onramp-view/components/LoadingView.tsx +1 -1
  447. package/src/views/w3m-onramp-view/components/SelectPaymentModal.tsx +6 -3
  448. package/src/views/w3m-onramp-view/index.tsx +4 -3
  449. package/src/views/w3m-onramp-view/styles.ts +3 -0
  450. package/src/views/w3m-siwx-sign-view/index.tsx +96 -0
  451. package/src/views/{w3m-connecting-siwe-view → w3m-siwx-sign-view}/styles.ts +0 -7
  452. package/src/views/w3m-swap-preview-view/index.tsx +1 -1
  453. package/src/views/w3m-swap-preview-view/styles.ts +0 -3
  454. package/src/views/w3m-swap-view/components/select-token-modal/index.tsx +181 -0
  455. package/src/views/w3m-swap-view/components/{select-token-view → select-token-modal}/styles.ts +6 -2
  456. package/src/views/w3m-swap-view/index.tsx +10 -9
  457. package/src/views/w3m-swap-view/styles.ts +0 -8
  458. package/src/views/w3m-unsupported-chain-view/index.tsx +5 -7
  459. package/src/views/w3m-unsupported-chain-view/styles.ts +1 -1
  460. package/src/views/w3m-upgrade-email-wallet-view/index.tsx +4 -6
  461. package/src/views/w3m-wallet-compatible-networks-view/index.tsx +1 -1
  462. package/src/views/w3m-wallet-receive-view/index.tsx +1 -1
  463. package/src/views/w3m-wallet-send-preview-view/index.tsx +1 -1
  464. package/src/views/w3m-wallet-send-select-token-view/index.tsx +3 -3
  465. package/src/views/w3m-wallet-send-view/index.tsx +5 -4
  466. package/src/views/w3m-wallet-send-view/styles.ts +0 -3
  467. package/src/views/w3m-what-is-a-network-view/index.tsx +1 -1
  468. package/src/views/w3m-what-is-a-wallet-view/index.tsx +1 -1
  469. package/lib/commonjs/views/w3m-connect-view/components/custom-wallet-list.js +0 -45
  470. package/lib/commonjs/views/w3m-connect-view/components/custom-wallet-list.js.map +0 -1
  471. package/lib/commonjs/views/w3m-connect-view/components/recent-wallet-list.js +0 -41
  472. package/lib/commonjs/views/w3m-connect-view/components/recent-wallet-list.js.map +0 -1
  473. package/lib/commonjs/views/w3m-connect-view/utils.js +0 -14
  474. package/lib/commonjs/views/w3m-connect-view/utils.js.map +0 -1
  475. package/lib/commonjs/views/w3m-connecting-siwe-view/index.js +0 -145
  476. package/lib/commonjs/views/w3m-connecting-siwe-view/index.js.map +0 -1
  477. package/lib/commonjs/views/w3m-connecting-siwe-view/styles.js.map +0 -1
  478. package/lib/commonjs/views/w3m-swap-view/components/select-token-view/index.js +0 -145
  479. package/lib/commonjs/views/w3m-swap-view/components/select-token-view/index.js.map +0 -1
  480. package/lib/commonjs/views/w3m-swap-view/components/select-token-view/styles.js.map +0 -1
  481. package/lib/commonjs/views/w3m-swap-view/components/select-token-view/utils.js.map +0 -1
  482. package/lib/module/views/w3m-connect-view/components/custom-wallet-list.js +0 -41
  483. package/lib/module/views/w3m-connect-view/components/custom-wallet-list.js.map +0 -1
  484. package/lib/module/views/w3m-connect-view/components/recent-wallet-list.js +0 -37
  485. package/lib/module/views/w3m-connect-view/components/recent-wallet-list.js.map +0 -1
  486. package/lib/module/views/w3m-connect-view/utils.js +0 -9
  487. package/lib/module/views/w3m-connect-view/utils.js.map +0 -1
  488. package/lib/module/views/w3m-connecting-siwe-view/index.js +0 -140
  489. package/lib/module/views/w3m-connecting-siwe-view/index.js.map +0 -1
  490. package/lib/module/views/w3m-connecting-siwe-view/styles.js.map +0 -1
  491. package/lib/module/views/w3m-swap-view/components/select-token-view/index.js +0 -140
  492. package/lib/module/views/w3m-swap-view/components/select-token-view/index.js.map +0 -1
  493. package/lib/module/views/w3m-swap-view/components/select-token-view/styles.js.map +0 -1
  494. package/lib/module/views/w3m-swap-view/components/select-token-view/utils.js.map +0 -1
  495. package/lib/typescript/views/w3m-connect-view/components/custom-wallet-list.d.ts +0 -9
  496. package/lib/typescript/views/w3m-connect-view/components/custom-wallet-list.d.ts.map +0 -1
  497. package/lib/typescript/views/w3m-connect-view/components/recent-wallet-list.d.ts +0 -9
  498. package/lib/typescript/views/w3m-connect-view/components/recent-wallet-list.d.ts.map +0 -1
  499. package/lib/typescript/views/w3m-connect-view/utils.d.ts +0 -3
  500. package/lib/typescript/views/w3m-connect-view/utils.d.ts.map +0 -1
  501. package/lib/typescript/views/w3m-connecting-siwe-view/index.d.ts +0 -2
  502. package/lib/typescript/views/w3m-connecting-siwe-view/index.d.ts.map +0 -1
  503. package/lib/typescript/views/w3m-connecting-siwe-view/styles.d.ts.map +0 -1
  504. package/lib/typescript/views/w3m-swap-view/components/select-token-view/index.d.ts.map +0 -1
  505. package/lib/typescript/views/w3m-swap-view/components/select-token-view/utils.d.ts.map +0 -1
  506. package/src/views/w3m-connect-view/components/custom-wallet-list.tsx +0 -51
  507. package/src/views/w3m-connect-view/components/recent-wallet-list.tsx +0 -45
  508. package/src/views/w3m-connect-view/utils.ts +0 -14
  509. package/src/views/w3m-connecting-siwe-view/index.tsx +0 -126
  510. package/src/views/w3m-swap-view/components/select-token-view/index.tsx +0 -176
  511. /package/lib/commonjs/views/w3m-swap-view/components/{select-token-view → select-token-modal}/utils.js +0 -0
  512. /package/lib/module/views/w3m-swap-view/components/{select-token-view → select-token-modal}/utils.js +0 -0
  513. /package/lib/typescript/views/w3m-swap-view/components/{select-token-view → select-token-modal}/utils.d.ts +0 -0
  514. /package/src/views/w3m-swap-view/components/{select-token-view → select-token-modal}/utils.ts +0 -0
@@ -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
+ } from '@reown/appkit-core-react-native';
18
+ import { Alert } from 'react-native';
19
+
20
+ /**
21
+ * SIWXUtil holds the methods to interact with the SIWX plugin and must be called internally on AppKit.
22
+ */
23
+
24
+ export const SIWXUtil = {
25
+ getSIWX() {
26
+ return OptionsController.state.siwx;
27
+ },
28
+
29
+ async initializeIfEnabled({
30
+ onDisconnect,
31
+ caipAddress = ConnectionsController.state.activeAddress,
32
+ closeModal = false
33
+ }: {
34
+ onDisconnect: () => Promise<void>;
35
+ caipAddress?: string;
36
+ closeModal?: boolean;
37
+ }) {
38
+ const siwx = OptionsController.state.siwx;
39
+
40
+ if (!siwx || !caipAddress) {
41
+ if (closeModal) {
42
+ ModalController.close();
43
+ }
44
+
45
+ return;
46
+ }
47
+
48
+ const [namespace, chainId, address] = caipAddress.split(':') as [
49
+ ChainNamespace,
50
+ string,
51
+ string
52
+ ];
53
+
54
+ const isSupportedNetwork = ConnectionsController.getAvailableNetworks().find(
55
+ network => network.caipNetworkId === `${namespace}:${chainId}`
56
+ );
57
+
58
+ if (!isSupportedNetwork) {
59
+ return;
60
+ }
61
+
62
+ try {
63
+ const sessions = await siwx.getSessions(`${namespace}:${chainId}`, address);
64
+
65
+ if (sessions.length) {
66
+ ModalController.close();
67
+
68
+ return;
69
+ }
70
+
71
+ if (ModalController.state.open) {
72
+ RouterController.push('SIWXSignMessage');
73
+ } else {
74
+ ModalController.open({ view: 'SIWXSignMessage' });
75
+ }
76
+ } catch (error: unknown) {
77
+ // eslint-disable-next-line no-console
78
+ console.error('SIWXUtil:initializeIfEnabled error', error);
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
+ };
@@ -193,7 +193,7 @@ export function AccountDefaultView() {
193
193
  testID="header-close"
194
194
  />
195
195
  <ScrollView bounces={false} fadingEdgeLength={20} style={{ paddingHorizontal: padding }}>
196
- <FlexView alignItems="center" padding={['3xl', 's', '3xl', 's']}>
196
+ <FlexView alignItems="center" padding={['3xl', 's', 's', 's']}>
197
197
  <Avatar imageSrc={identity?.avatar} address={account ?? ''} />
198
198
  <FlexView flexDirection="row" alignItems="center" margin={['s', '0', '0', '0']}>
199
199
  <Text variant="medium-title-600">
@@ -278,7 +278,7 @@ export function AccountDefaultView() {
278
278
  testID="button-onramp"
279
279
  style={styles.actionButton}
280
280
  >
281
- <Text color="fg-100">Buy crypto</Text>
281
+ <Text color="fg-100">Buy Crypto</Text>
282
282
  </ListItem>
283
283
  ) : null}
284
284
  {showSend ? (
@@ -332,7 +332,7 @@ export function AccountDefaultView() {
332
332
  loading={loading}
333
333
  >
334
334
  <Text color="fg-100">{`Switch to your ${
335
- accountType === 'eoa' ? 'smart account' : 'EOA'
335
+ accountType === 'eoa' ? 'Smart Account' : 'EOA'
336
336
  }`}</Text>
337
337
  </ListItem>
338
338
  ) : null}
@@ -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',
@@ -5,7 +5,6 @@ import {
5
5
  FlexView,
6
6
  IconLink,
7
7
  SearchBar,
8
- Spacing,
9
8
  useTheme,
10
9
  useCustomDimensions
11
10
  } from '@reown/appkit-ui-react-native';
@@ -15,30 +14,20 @@ import { useDebounceCallback } from '../../hooks/useDebounceCallback';
15
14
  import { AllWalletsList } from '../../partials/w3m-all-wallets-list';
16
15
  import { AllWalletsSearch } from '../../partials/w3m-all-wallets-search';
17
16
  import { WcHelpersUtil } from '../../utils/HelpersUtil';
18
- import type { LayoutChangeEvent } from 'react-native';
19
17
 
20
18
  export function AllWalletsView() {
21
19
  const Theme = useTheme();
22
20
  const [searchQuery, setSearchQuery] = useState<string>('');
23
- const { maxWidth } = useCustomDimensions();
24
- const [headerHeight, setHeaderHeight] = useState<number>(0);
25
- const numColumns = 4;
26
- const usableWidth = maxWidth - Spacing['s'] * 2;
27
- const itemWidth = Math.abs(Math.trunc(usableWidth / numColumns));
21
+ const { padding } = useCustomDimensions();
28
22
 
29
23
  const { debouncedCallback: onInputChange } = useDebounceCallback({ callback: setSearchQuery });
30
24
 
31
- const onHeaderLayout = (event: LayoutChangeEvent) => {
32
- const { height } = event.nativeEvent.layout;
33
- setHeaderHeight(height);
34
- };
35
-
36
25
  const onWalletPress = (wallet: WcWallet) => {
37
26
  const isExternal = WcHelpersUtil.isExternalWallet(wallet);
38
27
  if (isExternal) {
39
28
  RouterController.push('ConnectingExternal', { wallet });
40
29
  } else {
41
- RouterController.push('ConnectingWalletConnect', { wallet });
30
+ RouterController.push('WalletConnect', { wallet });
42
31
  }
43
32
 
44
33
  EventsController.sendEvent({
@@ -51,7 +40,7 @@ export function AllWalletsView() {
51
40
  const onQrCodePress = () => {
52
41
  WcController.removePressedWallet();
53
42
  WcController.removeWcLinking();
54
- RouterController.push('ConnectingWalletConnect');
43
+ RouterController.push('WalletConnect');
55
44
 
56
45
  EventsController.sendEvent({
57
46
  type: 'track',
@@ -63,13 +52,16 @@ export function AllWalletsView() {
63
52
  const headerTemplate = () => {
64
53
  return (
65
54
  <FlexView
66
- padding={['s', 'l', 'xs', 'l']}
55
+ padding={['s', 'l', '4xs', 'l']}
67
56
  flexDirection="row"
68
- onLayout={onHeaderLayout}
69
57
  alignItems="center"
70
58
  style={[
71
59
  styles.header,
72
- { backgroundColor: Theme['bg-100'], shadowColor: Theme['bg-100'], width: maxWidth }
60
+ {
61
+ backgroundColor: Theme['bg-100'],
62
+ shadowColor: Theme['bg-100'],
63
+ marginHorizontal: padding
64
+ }
73
65
  ]}
74
66
  >
75
67
  <SearchBar
@@ -93,25 +85,10 @@ export function AllWalletsView() {
93
85
 
94
86
  const listTemplate = () => {
95
87
  if (searchQuery) {
96
- return (
97
- <AllWalletsSearch
98
- columns={numColumns}
99
- itemWidth={itemWidth}
100
- searchQuery={searchQuery}
101
- onItemPress={onWalletPress}
102
- headerHeight={headerHeight}
103
- />
104
- );
88
+ return <AllWalletsSearch searchQuery={searchQuery} onItemPress={onWalletPress} />;
105
89
  }
106
90
 
107
- return (
108
- <AllWalletsList
109
- columns={numColumns}
110
- itemWidth={itemWidth}
111
- onItemPress={onWalletPress}
112
- headerHeight={headerHeight}
113
- />
114
- );
91
+ return <AllWalletsList onItemPress={onWalletPress} />;
115
92
  };
116
93
 
117
94
  return (
@@ -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,13 +4,13 @@ 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>;
@@ -19,22 +19,23 @@ interface Props {
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,22 @@ 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 => {
51
+ const isRecent = recentWallets?.some(recentWallet => recentWallet.id === wallet.id);
52
+
53
+ return (
54
+ <ListWallet
55
+ key={wallet?.id}
56
+ imageSrc={AssetUtil.getWalletImage(wallet, walletImages)}
57
+ imageHeaders={imageHeaders}
58
+ name={wallet?.name ?? 'Unknown'}
59
+ onPress={() => onWalletPress(wallet)}
60
+ tagLabel={isRecent ? 'Recent' : undefined}
61
+ tagVariant={isRecent ? 'shade' : undefined}
62
+ style={itemStyle}
63
+ installed={!!installed.find(installedWallet => installedWallet.id === wallet.id)}
64
+ />
65
+ );
66
+ })
60
67
  );
61
68
  }
@@ -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';
@@ -40,7 +38,7 @@ export function ConnectView() {
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);
@@ -62,7 +60,7 @@ export function ConnectView() {
62
60
 
63
61
  return (
64
62
  <ScrollView style={{ paddingHorizontal: padding }} bounces={false}>
65
- <FlexView padding={['xs', '0', '2xl', '0']}>
63
+ <FlexView padding={['xs', '0', 'xs', '0']}>
66
64
  {isSocialEnabled ? (
67
65
  <>
68
66
  <SocialLoginList options={features?.socials} />
@@ -70,7 +68,7 @@ export function ConnectView() {
70
68
  </>
71
69
  ) : null}
72
70
 
73
- <FlexView padding={['0', 's', 'xs', 's']}>
71
+ <FlexView padding={['0', 's', '0', 's']}>
74
72
  {showConnectWalletsButton ? (
75
73
  <ListItem contentStyle={styles.connectWalletButton} onPress={onViewAllPress}>
76
74
  <Icon name="wallet" size="lg" />
@@ -94,9 +92,7 @@ export function ConnectView() {
94
92
  ) : null}
95
93
  {showList ? (
96
94
  <>
97
- <RecentWalletList itemStyle={styles.item} onWalletPress={onWalletPress} />
98
95
  <AllWalletList itemStyle={styles.item} onWalletPress={onWalletPress} />
99
- <CustomWalletList itemStyle={styles.item} onWalletPress={onWalletPress} />
100
96
  <AllWalletsButton itemStyle={styles.item} onPress={onViewAllPress} />
101
97
  </>
102
98
  ) : null}