@reown/appkit-react-native 0.0.0-feat-multichain-20250731180941 → 0.0.0-feat-multichain-20250801190527

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 (213) hide show
  1. package/lib/commonjs/AppKit.js +46 -64
  2. package/lib/commonjs/AppKit.js.map +1 -1
  3. package/lib/commonjs/AppKitContext.js +3 -5
  4. package/lib/commonjs/AppKitContext.js.map +1 -1
  5. package/lib/commonjs/connectors/WalletConnectConnector.js +1 -1
  6. package/lib/commonjs/connectors/WalletConnectConnector.js.map +1 -1
  7. package/lib/commonjs/modal/w3m-account-button/index.js +1 -1
  8. package/lib/commonjs/modal/w3m-account-button/index.js.map +1 -1
  9. package/lib/commonjs/modal/w3m-modal/index.js +1 -1
  10. package/lib/commonjs/modal/w3m-modal/index.js.map +1 -1
  11. package/lib/commonjs/modal/w3m-network-button/index.js +1 -1
  12. package/lib/commonjs/modal/w3m-network-button/index.js.map +1 -1
  13. package/lib/commonjs/partials/w3m-account-activity/index.js +1 -1
  14. package/lib/commonjs/partials/w3m-account-activity/index.js.map +1 -1
  15. package/lib/commonjs/partials/w3m-account-tokens/index.js +1 -1
  16. package/lib/commonjs/partials/w3m-account-tokens/index.js.map +1 -1
  17. package/lib/commonjs/partials/w3m-connecting-mobile/index.js +6 -7
  18. package/lib/commonjs/partials/w3m-connecting-mobile/index.js.map +1 -1
  19. package/lib/commonjs/partials/w3m-connecting-qrcode/index.js +4 -9
  20. package/lib/commonjs/partials/w3m-connecting-qrcode/index.js.map +1 -1
  21. package/lib/commonjs/partials/w3m-connecting-web/index.js +6 -7
  22. package/lib/commonjs/partials/w3m-connecting-web/index.js.map +1 -1
  23. package/lib/commonjs/partials/w3m-header/index.js +1 -1
  24. package/lib/commonjs/partials/w3m-header/index.js.map +1 -1
  25. package/lib/commonjs/partials/w3m-selector-modal/index.js +1 -1
  26. package/lib/commonjs/partials/w3m-selector-modal/index.js.map +1 -1
  27. package/lib/commonjs/utils/HelpersUtil.js.map +1 -1
  28. package/lib/commonjs/utils/UiUtil.js +0 -14
  29. package/lib/commonjs/utils/UiUtil.js.map +1 -1
  30. package/lib/commonjs/views/w3m-account-default-view/index.js +2 -2
  31. package/lib/commonjs/views/w3m-account-default-view/index.js.map +1 -1
  32. package/lib/commonjs/views/w3m-account-view/index.js +1 -1
  33. package/lib/commonjs/views/w3m-account-view/index.js.map +1 -1
  34. package/lib/commonjs/views/w3m-all-wallets-view/index.js +3 -3
  35. package/lib/commonjs/views/w3m-all-wallets-view/index.js.map +1 -1
  36. package/lib/commonjs/views/w3m-connect-view/components/all-wallet-list.js +1 -1
  37. package/lib/commonjs/views/w3m-connect-view/components/all-wallet-list.js.map +1 -1
  38. package/lib/commonjs/views/w3m-connect-view/components/custom-wallet-list.js +1 -1
  39. package/lib/commonjs/views/w3m-connect-view/components/custom-wallet-list.js.map +1 -1
  40. package/lib/commonjs/views/w3m-connect-view/components/recent-wallet-list.js +1 -1
  41. package/lib/commonjs/views/w3m-connect-view/components/recent-wallet-list.js.map +1 -1
  42. package/lib/commonjs/views/w3m-connect-view/index.js +1 -1
  43. package/lib/commonjs/views/w3m-connect-view/index.js.map +1 -1
  44. package/lib/commonjs/views/w3m-connecting-external-view/index.js +5 -6
  45. package/lib/commonjs/views/w3m-connecting-external-view/index.js.map +1 -1
  46. package/lib/commonjs/views/w3m-connecting-siwe-view/index.js +6 -10
  47. package/lib/commonjs/views/w3m-connecting-siwe-view/index.js.map +1 -1
  48. package/lib/commonjs/views/w3m-connecting-social-view/index.js +6 -8
  49. package/lib/commonjs/views/w3m-connecting-social-view/index.js.map +1 -1
  50. package/lib/commonjs/views/w3m-connecting-view/index.js +7 -7
  51. package/lib/commonjs/views/w3m-connecting-view/index.js.map +1 -1
  52. package/lib/commonjs/views/w3m-network-switch-view/index.js +4 -3
  53. package/lib/commonjs/views/w3m-network-switch-view/index.js.map +1 -1
  54. package/lib/commonjs/views/w3m-networks-view/index.js +2 -2
  55. package/lib/commonjs/views/w3m-networks-view/index.js.map +1 -1
  56. package/lib/commonjs/views/w3m-onramp-checkout-view/index.js +1 -1
  57. package/lib/commonjs/views/w3m-onramp-checkout-view/index.js.map +1 -1
  58. package/lib/commonjs/views/w3m-onramp-view/components/Header.js +1 -1
  59. package/lib/commonjs/views/w3m-onramp-view/components/Header.js.map +1 -1
  60. package/lib/commonjs/views/w3m-onramp-view/index.js +1 -1
  61. package/lib/commonjs/views/w3m-onramp-view/index.js.map +1 -1
  62. package/lib/commonjs/views/w3m-swap-view/components/select-token-view/index.js +1 -1
  63. package/lib/commonjs/views/w3m-swap-view/components/select-token-view/index.js.map +1 -1
  64. package/lib/commonjs/views/w3m-unsupported-chain-view/index.js +2 -4
  65. package/lib/commonjs/views/w3m-unsupported-chain-view/index.js.map +1 -1
  66. package/lib/commonjs/views/w3m-wallet-compatible-networks-view/index.js +1 -1
  67. package/lib/commonjs/views/w3m-wallet-compatible-networks-view/index.js.map +1 -1
  68. package/lib/commonjs/views/w3m-wallet-receive-view/index.js +2 -2
  69. package/lib/commonjs/views/w3m-wallet-receive-view/index.js.map +1 -1
  70. package/lib/commonjs/views/w3m-wallet-send-preview-view/components/preview-send-details.js +1 -1
  71. package/lib/commonjs/views/w3m-wallet-send-preview-view/components/preview-send-details.js.map +1 -1
  72. package/lib/commonjs/views/w3m-wallet-send-select-token-view/index.js +1 -1
  73. package/lib/commonjs/views/w3m-wallet-send-select-token-view/index.js.map +1 -1
  74. package/lib/module/AppKit.js +47 -65
  75. package/lib/module/AppKit.js.map +1 -1
  76. package/lib/module/AppKitContext.js +1 -3
  77. package/lib/module/AppKitContext.js.map +1 -1
  78. package/lib/module/connectors/WalletConnectConnector.js +2 -2
  79. package/lib/module/connectors/WalletConnectConnector.js.map +1 -1
  80. package/lib/module/modal/w3m-account-button/index.js +2 -2
  81. package/lib/module/modal/w3m-account-button/index.js.map +1 -1
  82. package/lib/module/modal/w3m-modal/index.js +2 -2
  83. package/lib/module/modal/w3m-modal/index.js.map +1 -1
  84. package/lib/module/modal/w3m-network-button/index.js +2 -2
  85. package/lib/module/modal/w3m-network-button/index.js.map +1 -1
  86. package/lib/module/partials/w3m-account-activity/index.js +2 -2
  87. package/lib/module/partials/w3m-account-activity/index.js.map +1 -1
  88. package/lib/module/partials/w3m-account-tokens/index.js +2 -2
  89. package/lib/module/partials/w3m-account-tokens/index.js.map +1 -1
  90. package/lib/module/partials/w3m-connecting-mobile/index.js +7 -8
  91. package/lib/module/partials/w3m-connecting-mobile/index.js.map +1 -1
  92. package/lib/module/partials/w3m-connecting-qrcode/index.js +5 -10
  93. package/lib/module/partials/w3m-connecting-qrcode/index.js.map +1 -1
  94. package/lib/module/partials/w3m-connecting-web/index.js +7 -8
  95. package/lib/module/partials/w3m-connecting-web/index.js.map +1 -1
  96. package/lib/module/partials/w3m-header/index.js +2 -2
  97. package/lib/module/partials/w3m-header/index.js.map +1 -1
  98. package/lib/module/partials/w3m-selector-modal/index.js +2 -2
  99. package/lib/module/partials/w3m-selector-modal/index.js.map +1 -1
  100. package/lib/module/utils/HelpersUtil.js.map +1 -1
  101. package/lib/module/utils/UiUtil.js +2 -15
  102. package/lib/module/utils/UiUtil.js.map +1 -1
  103. package/lib/module/views/w3m-account-default-view/index.js +4 -4
  104. package/lib/module/views/w3m-account-default-view/index.js.map +1 -1
  105. package/lib/module/views/w3m-account-view/index.js +2 -2
  106. package/lib/module/views/w3m-account-view/index.js.map +1 -1
  107. package/lib/module/views/w3m-all-wallets-view/index.js +4 -4
  108. package/lib/module/views/w3m-all-wallets-view/index.js.map +1 -1
  109. package/lib/module/views/w3m-connect-view/components/all-wallet-list.js +2 -2
  110. package/lib/module/views/w3m-connect-view/components/all-wallet-list.js.map +1 -1
  111. package/lib/module/views/w3m-connect-view/components/custom-wallet-list.js +2 -2
  112. package/lib/module/views/w3m-connect-view/components/custom-wallet-list.js.map +1 -1
  113. package/lib/module/views/w3m-connect-view/components/recent-wallet-list.js +2 -2
  114. package/lib/module/views/w3m-connect-view/components/recent-wallet-list.js.map +1 -1
  115. package/lib/module/views/w3m-connect-view/index.js +1 -1
  116. package/lib/module/views/w3m-connect-view/index.js.map +1 -1
  117. package/lib/module/views/w3m-connecting-external-view/index.js +7 -8
  118. package/lib/module/views/w3m-connecting-external-view/index.js.map +1 -1
  119. package/lib/module/views/w3m-connecting-siwe-view/index.js +8 -12
  120. package/lib/module/views/w3m-connecting-siwe-view/index.js.map +1 -1
  121. package/lib/module/views/w3m-connecting-social-view/index.js +8 -10
  122. package/lib/module/views/w3m-connecting-social-view/index.js.map +1 -1
  123. package/lib/module/views/w3m-connecting-view/index.js +9 -9
  124. package/lib/module/views/w3m-connecting-view/index.js.map +1 -1
  125. package/lib/module/views/w3m-network-switch-view/index.js +7 -5
  126. package/lib/module/views/w3m-network-switch-view/index.js.map +1 -1
  127. package/lib/module/views/w3m-networks-view/index.js +4 -4
  128. package/lib/module/views/w3m-networks-view/index.js.map +1 -1
  129. package/lib/module/views/w3m-onramp-checkout-view/index.js +2 -2
  130. package/lib/module/views/w3m-onramp-checkout-view/index.js.map +1 -1
  131. package/lib/module/views/w3m-onramp-view/components/Header.js +2 -2
  132. package/lib/module/views/w3m-onramp-view/components/Header.js.map +1 -1
  133. package/lib/module/views/w3m-onramp-view/index.js +2 -2
  134. package/lib/module/views/w3m-onramp-view/index.js.map +1 -1
  135. package/lib/module/views/w3m-swap-view/components/select-token-view/index.js +2 -2
  136. package/lib/module/views/w3m-swap-view/components/select-token-view/index.js.map +1 -1
  137. package/lib/module/views/w3m-unsupported-chain-view/index.js +4 -6
  138. package/lib/module/views/w3m-unsupported-chain-view/index.js.map +1 -1
  139. package/lib/module/views/w3m-wallet-compatible-networks-view/index.js +2 -2
  140. package/lib/module/views/w3m-wallet-compatible-networks-view/index.js.map +1 -1
  141. package/lib/module/views/w3m-wallet-receive-view/index.js +3 -3
  142. package/lib/module/views/w3m-wallet-receive-view/index.js.map +1 -1
  143. package/lib/module/views/w3m-wallet-send-preview-view/components/preview-send-details.js +2 -2
  144. package/lib/module/views/w3m-wallet-send-preview-view/components/preview-send-details.js.map +1 -1
  145. package/lib/module/views/w3m-wallet-send-select-token-view/index.js +2 -2
  146. package/lib/module/views/w3m-wallet-send-select-token-view/index.js.map +1 -1
  147. package/lib/typescript/AppKit.d.ts +6 -3
  148. package/lib/typescript/AppKit.d.ts.map +1 -1
  149. package/lib/typescript/AppKitContext.d.ts +1 -1
  150. package/lib/typescript/AppKitContext.d.ts.map +1 -1
  151. package/lib/typescript/modal/w3m-account-button/index.d.ts.map +1 -1
  152. package/lib/typescript/modal/w3m-network-button/index.d.ts.map +1 -1
  153. package/lib/typescript/partials/w3m-account-activity/index.d.ts.map +1 -1
  154. package/lib/typescript/partials/w3m-account-tokens/index.d.ts.map +1 -1
  155. package/lib/typescript/partials/w3m-connecting-mobile/index.d.ts.map +1 -1
  156. package/lib/typescript/partials/w3m-connecting-qrcode/index.d.ts.map +1 -1
  157. package/lib/typescript/partials/w3m-connecting-web/index.d.ts.map +1 -1
  158. package/lib/typescript/utils/HelpersUtil.d.ts +3 -2
  159. package/lib/typescript/utils/HelpersUtil.d.ts.map +1 -1
  160. package/lib/typescript/utils/UiUtil.d.ts +0 -4
  161. package/lib/typescript/utils/UiUtil.d.ts.map +1 -1
  162. package/lib/typescript/views/w3m-account-default-view/index.d.ts.map +1 -1
  163. package/lib/typescript/views/w3m-account-view/index.d.ts.map +1 -1
  164. package/lib/typescript/views/w3m-connecting-external-view/index.d.ts.map +1 -1
  165. package/lib/typescript/views/w3m-connecting-siwe-view/index.d.ts.map +1 -1
  166. package/lib/typescript/views/w3m-connecting-social-view/index.d.ts.map +1 -1
  167. package/lib/typescript/views/w3m-network-switch-view/index.d.ts.map +1 -1
  168. package/lib/typescript/views/w3m-networks-view/index.d.ts.map +1 -1
  169. package/lib/typescript/views/w3m-onramp-checkout-view/index.d.ts.map +1 -1
  170. package/lib/typescript/views/w3m-onramp-view/index.d.ts.map +1 -1
  171. package/lib/typescript/views/w3m-swap-view/components/select-token-view/index.d.ts.map +1 -1
  172. package/lib/typescript/views/w3m-unsupported-chain-view/index.d.ts.map +1 -1
  173. package/lib/typescript/views/w3m-wallet-compatible-networks-view/index.d.ts.map +1 -1
  174. package/lib/typescript/views/w3m-wallet-receive-view/index.d.ts.map +1 -1
  175. package/lib/typescript/views/w3m-wallet-send-select-token-view/index.d.ts.map +1 -1
  176. package/package.json +5 -5
  177. package/src/AppKit.ts +64 -81
  178. package/src/AppKitContext.tsx +1 -2
  179. package/src/connectors/WalletConnectConnector.ts +2 -2
  180. package/src/modal/w3m-account-button/index.tsx +3 -2
  181. package/src/modal/w3m-modal/index.tsx +2 -2
  182. package/src/modal/w3m-network-button/index.tsx +2 -1
  183. package/src/partials/w3m-account-activity/index.tsx +2 -1
  184. package/src/partials/w3m-account-tokens/index.tsx +2 -1
  185. package/src/partials/w3m-connecting-mobile/index.tsx +7 -8
  186. package/src/partials/w3m-connecting-qrcode/index.tsx +5 -11
  187. package/src/partials/w3m-connecting-web/index.tsx +7 -9
  188. package/src/partials/w3m-header/index.tsx +2 -2
  189. package/src/partials/w3m-selector-modal/index.tsx +2 -2
  190. package/src/utils/HelpersUtil.ts +3 -2
  191. package/src/utils/UiUtil.ts +1 -25
  192. package/src/views/w3m-account-default-view/index.tsx +5 -4
  193. package/src/views/w3m-account-view/index.tsx +2 -1
  194. package/src/views/w3m-all-wallets-view/index.tsx +5 -5
  195. package/src/views/w3m-connect-view/components/all-wallet-list.tsx +3 -3
  196. package/src/views/w3m-connect-view/components/custom-wallet-list.tsx +3 -3
  197. package/src/views/w3m-connect-view/components/recent-wallet-list.tsx +2 -2
  198. package/src/views/w3m-connect-view/index.tsx +2 -2
  199. package/src/views/w3m-connecting-external-view/index.tsx +7 -8
  200. package/src/views/w3m-connecting-siwe-view/index.tsx +5 -9
  201. package/src/views/w3m-connecting-social-view/index.tsx +8 -10
  202. package/src/views/w3m-connecting-view/index.tsx +9 -9
  203. package/src/views/w3m-network-switch-view/index.tsx +8 -6
  204. package/src/views/w3m-networks-view/index.tsx +5 -4
  205. package/src/views/w3m-onramp-checkout-view/index.tsx +2 -1
  206. package/src/views/w3m-onramp-view/components/Header.tsx +2 -2
  207. package/src/views/w3m-onramp-view/index.tsx +3 -2
  208. package/src/views/w3m-swap-view/components/select-token-view/index.tsx +2 -1
  209. package/src/views/w3m-unsupported-chain-view/index.tsx +4 -5
  210. package/src/views/w3m-wallet-compatible-networks-view/index.tsx +2 -1
  211. package/src/views/w3m-wallet-receive-view/index.tsx +6 -2
  212. package/src/views/w3m-wallet-send-preview-view/components/preview-send-details.tsx +2 -2
  213. package/src/views/w3m-wallet-send-select-token-view/index.tsx +2 -1
@@ -13,7 +13,8 @@ import {
13
13
  SwapController,
14
14
  OnRampController,
15
15
  ConnectionsController,
16
- AssetController
16
+ AssetController,
17
+ AssetUtil
17
18
  } from '@reown/appkit-core-react-native';
18
19
  // import { ConstantsUtil as CommonConstantsUtil } from '@reown/appkit-common-react-native';
19
20
  import {
@@ -27,14 +28,14 @@ import {
27
28
  ListItem
28
29
  } from '@reown/appkit-ui-react-native';
29
30
 
30
- import { useAppKit } from '../../AppKitContext';
31
+ import { useInternalAppKit } from '../../AppKitContext';
31
32
 
32
33
  import { useCustomDimensions } from '../../hooks/useCustomDimensions';
33
34
  import { AuthButtons } from './components/auth-buttons';
34
35
  import styles from './styles';
35
36
 
36
37
  export function AccountDefaultView() {
37
- const { switchAccountType, disconnect } = useAppKit();
38
+ const { switchAccountType, disconnect } = useInternalAppKit();
38
39
  const { loading } = useSnapshot(ModalController.state);
39
40
  const {
40
41
  activeAddress: address,
@@ -50,7 +51,7 @@ export function AccountDefaultView() {
50
51
  const { features, isOnRampEnabled } = useSnapshot(OptionsController.state);
51
52
  const { history } = useSnapshot(RouterController.state);
52
53
  const { networkImages } = useSnapshot(AssetController.state);
53
- const networkImage = activeNetwork ? networkImages[activeNetwork.id] : undefined;
54
+ const networkImage = AssetUtil.getNetworkImage(activeNetwork, networkImages);
54
55
  const showCopy = OptionsController.isClipboardAvailable();
55
56
  const isAuth = !!connection?.properties?.provider;
56
57
  const showBalance = balance && !isAuth;
@@ -12,6 +12,7 @@ import {
12
12
  import {
13
13
  ApiController,
14
14
  AssetController,
15
+ AssetUtil,
15
16
  ConnectionsController,
16
17
  CoreHelperUtil,
17
18
  EventsController,
@@ -31,7 +32,7 @@ export function AccountView() {
31
32
  const { activeNetwork, activeAddress, identity } = useSnapshot(ConnectionsController.state);
32
33
  const { networkImages } = useSnapshot(AssetController.state);
33
34
  const address = CoreHelperUtil.getPlainAddress(activeAddress);
34
- const networkImage = activeNetwork ? networkImages[activeNetwork.id] : undefined;
35
+ const networkImage = AssetUtil.getNetworkImage(activeNetwork, networkImages);
35
36
 
36
37
  const onProfilePress = () => {
37
38
  RouterController.push('AccountDefault');
@@ -1,6 +1,6 @@
1
1
  import { useState } from 'react';
2
2
  import {
3
- ConnectionController,
3
+ WcController,
4
4
  EventsController,
5
5
  RouterController,
6
6
  type WcWallet
@@ -26,8 +26,8 @@ export function AllWalletsView() {
26
26
 
27
27
  const onWalletPress = (wallet: WcWallet) => {
28
28
  const isExternal =
29
- wallet.id === ConstantsUtil.PHANTOM_EXPLORER_ID ||
30
- wallet.id === ConstantsUtil.COINBASE_EXPLORER_ID;
29
+ wallet.id === ConstantsUtil.PHANTOM_CUSTOM_WALLET.id ||
30
+ wallet.id === ConstantsUtil.COINBASE_CUSTOM_WALLET.id;
31
31
  if (isExternal) {
32
32
  RouterController.push('ConnectingExternal', { wallet });
33
33
  } else {
@@ -42,8 +42,8 @@ export function AllWalletsView() {
42
42
  };
43
43
 
44
44
  const onQrCodePress = () => {
45
- ConnectionController.removePressedWallet();
46
- ConnectionController.removeWcLinking();
45
+ WcController.removePressedWallet();
46
+ WcController.removeWcLinking();
47
47
  RouterController.push('ConnectingWalletConnect');
48
48
 
49
49
  EventsController.sendEvent({
@@ -3,8 +3,8 @@ import { useSnapshot } from 'valtio';
3
3
  import {
4
4
  ApiController,
5
5
  AssetUtil,
6
- ConnectionController,
7
- type ConnectionControllerState,
6
+ WcController,
7
+ type WcControllerState,
8
8
  type WcWallet
9
9
  } from '@reown/appkit-core-react-native';
10
10
  import { ListItemLoader, ListWallet } from '@reown/appkit-ui-react-native';
@@ -18,7 +18,7 @@ interface Props {
18
18
 
19
19
  export function AllWalletList({ itemStyle, onWalletPress }: Props) {
20
20
  const { installed, featured, recommended, prefetchLoading } = useSnapshot(ApiController.state);
21
- const { recentWallets } = useSnapshot(ConnectionController.state) as ConnectionControllerState;
21
+ const { recentWallets } = useSnapshot(WcController.state) as WcControllerState;
22
22
  const imageHeaders = ApiController._getApiHeaders();
23
23
  const RECENT_COUNT = recentWallets?.length && installed.length ? 1 : recentWallets?.length ?? 0;
24
24
 
@@ -5,8 +5,8 @@ import {
5
5
  type CustomWallet,
6
6
  type OptionsControllerState,
7
7
  ApiController,
8
- ConnectionController,
9
- type ConnectionControllerState,
8
+ WcController,
9
+ type WcControllerState,
10
10
  AssetUtil
11
11
  } from '@reown/appkit-core-react-native';
12
12
  import { ListWallet } from '@reown/appkit-ui-react-native';
@@ -20,7 +20,7 @@ interface Props {
20
20
  export function CustomWalletList({ itemStyle, onWalletPress }: Props) {
21
21
  const { installed } = useSnapshot(ApiController.state);
22
22
  const imageHeaders = ApiController._getApiHeaders();
23
- const { recentWallets } = useSnapshot(ConnectionController.state) as ConnectionControllerState;
23
+ const { recentWallets } = useSnapshot(WcController.state) as WcControllerState;
24
24
  const { customWallets } = useSnapshot(OptionsController.state) as OptionsControllerState;
25
25
  const RECENT_COUNT = recentWallets?.length && installed.length ? 1 : recentWallets?.length ?? 0;
26
26
 
@@ -3,7 +3,7 @@ import {
3
3
  ApiController,
4
4
  AssetUtil,
5
5
  type WcWallet,
6
- ConnectionController
6
+ WcController
7
7
  } from '@reown/appkit-core-react-native';
8
8
  import { ListWallet } from '@reown/appkit-ui-react-native';
9
9
  import type { StyleProp, ViewStyle } from 'react-native';
@@ -15,7 +15,7 @@ interface Props {
15
15
 
16
16
  export function RecentWalletList({ itemStyle, onWalletPress }: Props) {
17
17
  const installed = ApiController.state.installed;
18
- const { recentWallets } = useSnapshot(ConnectionController.state);
18
+ const { recentWallets } = useSnapshot(WcController.state);
19
19
  const imageHeaders = ApiController._getApiHeaders();
20
20
  const RECENT_COUNT = recentWallets?.length && installed.length ? 1 : recentWallets?.length ?? 0;
21
21
 
@@ -31,8 +31,8 @@ export function ConnectView() {
31
31
 
32
32
  const onWalletPress = (wallet: WcWallet, isInstalled?: boolean) => {
33
33
  const isExternal =
34
- wallet.id === ConstantsUtil.PHANTOM_EXPLORER_ID ||
35
- wallet.id === ConstantsUtil.COINBASE_EXPLORER_ID;
34
+ wallet.id === ConstantsUtil.PHANTOM_CUSTOM_WALLET.id ||
35
+ wallet.id === ConstantsUtil.COINBASE_CUSTOM_WALLET.id;
36
36
  if (isExternal) {
37
37
  RouterController.push('ConnectingExternal', { wallet });
38
38
  } else {
@@ -5,7 +5,7 @@ import {
5
5
  RouterController,
6
6
  ApiController,
7
7
  EventsController,
8
- ConnectionController,
8
+ WcController,
9
9
  AssetUtil
10
10
  } from '@reown/appkit-core-react-native';
11
11
  import {
@@ -19,13 +19,12 @@ import {
19
19
  import { useCustomDimensions } from '../../hooks/useCustomDimensions';
20
20
  import { ConnectingBody, getMessage, type BodyErrorType } from '../../partials/w3m-connecting-body';
21
21
  import styles from './styles';
22
- import { useAppKit } from '../../AppKitContext';
22
+ import { useInternalAppKit } from '../../AppKitContext';
23
23
  import { ConstantsUtil } from '@reown/appkit-common-react-native';
24
- import { UiUtil } from '../../utils/UiUtil';
25
24
 
26
25
  export function ConnectingExternalView() {
27
26
  const { data } = useSnapshot(RouterController.state);
28
- const { connect } = useAppKit();
27
+ const { connect } = useInternalAppKit();
29
28
  const { maxWidth: width } = useCustomDimensions();
30
29
  const [errorType, setErrorType] = useState<BodyErrorType>();
31
30
  const bodyMessage = getMessage({ walletName: data?.wallet?.name, errorType });
@@ -39,16 +38,16 @@ export function ConnectingExternalView() {
39
38
  try {
40
39
  const wallet = RouterController.state.data?.wallet;
41
40
  if (wallet) {
42
- if (wallet.id === ConstantsUtil.PHANTOM_EXPLORER_ID) {
41
+ if (wallet.id === ConstantsUtil.PHANTOM_CUSTOM_WALLET.id) {
43
42
  await connect('phantom');
44
- } else if (wallet.id === ConstantsUtil.COINBASE_EXPLORER_ID) {
43
+ } else if (wallet.id === ConstantsUtil.COINBASE_CUSTOM_WALLET.id) {
45
44
  await connect('coinbase');
46
45
  } else {
47
46
  // All other wallets are handled by WalletConnect connector
48
47
  return;
49
48
  }
50
- UiUtil.storeRecentWallet(wallet);
51
- ConnectionController.setPressedWallet(wallet);
49
+ WcController.addRecentWallet(wallet);
50
+ WcController.setPressedWallet(wallet);
52
51
  EventsController.sendEvent({
53
52
  type: 'track',
54
53
  event: 'CONNECT_SUCCESS',
@@ -9,8 +9,6 @@ import {
9
9
  Text
10
10
  } from '@reown/appkit-ui-react-native';
11
11
  import {
12
- AssetUtil,
13
- ConnectionController,
14
12
  ConnectionsController,
15
13
  EventsController,
16
14
  OptionsController,
@@ -19,20 +17,19 @@ import {
19
17
  } from '@reown/appkit-core-react-native';
20
18
  import { SIWEController } from '@reown/appkit-siwe-react-native';
21
19
 
22
- import { useAppKit } from '../../AppKitContext';
20
+ import { useInternalAppKit } from '../../AppKitContext';
23
21
  import styles from './styles';
24
22
 
25
23
  export function ConnectingSiweView() {
26
- const { disconnect } = useAppKit();
24
+ const { disconnect } = useInternalAppKit();
27
25
  const { metadata } = useSnapshot(OptionsController.state);
28
- const { connectedWalletImageUrl, pressedWallet } = useSnapshot(ConnectionController.state);
29
- const { activeAddress } = useSnapshot(ConnectionsController.state);
26
+ const { activeAddress, identity, walletInfo } = useSnapshot(ConnectionsController.state);
30
27
  const [isSigning, setIsSigning] = useState(false);
31
28
  const [isDisconnecting, setIsDisconnecting] = useState(false);
32
29
 
33
30
  const dappName = metadata?.name || 'Dapp';
34
31
  const dappIcon = metadata?.icons[0] || '';
35
- const walletIcon = AssetUtil.getWalletImage(pressedWallet) || connectedWalletImageUrl;
32
+ const walletIcon = walletInfo?.icon;
36
33
  const isSmartAccount = ConnectionsController.state.accountType === 'smartAccount';
37
34
  const network = ConnectionsController.state.activeNetwork?.caipNetworkId || '';
38
35
 
@@ -83,7 +80,6 @@ export function ConnectingSiweView() {
83
80
  });
84
81
  };
85
82
 
86
- //TODO: Add profile image in Avatar
87
83
  return (
88
84
  <FlexView padding={['2xl', 's', '3xl', 's']}>
89
85
  <IconLink
@@ -101,7 +97,7 @@ export function ConnectingSiweView() {
101
97
  leftImage={dappIcon}
102
98
  rightImage={walletIcon}
103
99
  renderRightPlaceholder={() => (
104
- <Avatar imageSrc={undefined} address={activeAddress} size={60} borderWidth={0} />
100
+ <Avatar imageSrc={identity?.avatar} address={activeAddress} size={60} borderWidth={0} />
105
101
  )}
106
102
  rightItemStyle={!walletIcon && styles.walletAvatar}
107
103
  />
@@ -1,7 +1,7 @@
1
1
  import { useSnapshot } from 'valtio';
2
2
  import { useCallback, useEffect, useState } from 'react';
3
3
  import {
4
- ConnectionController,
4
+ WcController,
5
5
  CoreHelperUtil,
6
6
  EventsController,
7
7
  RouterController,
@@ -11,15 +11,14 @@ import { FlexView, LoadingThumbnail, IconBox, Logo, Text } from '@reown/appkit-u
11
11
  import { ConstantsUtil, StringUtil } from '@reown/appkit-common-react-native';
12
12
 
13
13
  import { useCustomDimensions } from '../../hooks/useCustomDimensions';
14
- import { useAppKit } from '../../AppKitContext';
15
- import { UiUtil } from '../../utils/UiUtil';
14
+ import { useInternalAppKit } from '../../AppKitContext';
16
15
  import styles from './styles';
17
16
 
18
17
  export function ConnectingSocialView() {
19
18
  const { maxWidth: width } = useCustomDimensions();
20
- const { connect } = useAppKit();
19
+ const { connect } = useInternalAppKit();
21
20
  const { data } = useSnapshot(RouterController.state);
22
- const { wcUri } = useSnapshot(ConnectionController.state);
21
+ const { wcUri } = useSnapshot(WcController.state);
23
22
  const [error, setError] = useState(false);
24
23
 
25
24
  const onConnect = useCallback(async () => {
@@ -31,11 +30,10 @@ export function ConnectingSocialView() {
31
30
  RouterController.state.data?.socialProvider
32
31
  );
33
32
  const wcLinking = { name: 'Reown Wallet', href };
34
- ConnectionController.setWcLinking(wcLinking);
33
+ WcController.setWcLinking(wcLinking);
35
34
  await CoreHelperUtil.openLink(redirect);
36
- await ConnectionController.state.wcPromise;
37
- //todo: rename this. its not just UI
38
- UiUtil.storeConnectedWallet(wcLinking);
35
+ await WcController.state.wcPromise;
36
+ WcController.setConnectedWallet(wcLinking);
39
37
  EventsController.sendEvent({
40
38
  type: 'track',
41
39
  event: 'SOCIAL_LOGIN_SUCCESS',
@@ -55,7 +53,7 @@ export function ConnectingSocialView() {
55
53
 
56
54
  const initializeConnection = useCallback(async () => {
57
55
  const connectPromise = connect('walletconnect');
58
- ConnectionController.setWcPromise(connectPromise);
56
+ WcController.setWcPromise(connectPromise);
59
57
  }, [connect]);
60
58
 
61
59
  useEffect(() => {
@@ -1,7 +1,7 @@
1
1
  import { useSnapshot } from 'valtio';
2
2
  import { useEffect, useState } from 'react';
3
3
  import {
4
- ConnectionController,
4
+ WcController,
5
5
  ConstantsUtil,
6
6
  CoreHelperUtil,
7
7
  RouterController,
@@ -11,7 +11,7 @@ import {
11
11
  ApiController,
12
12
  EventsController
13
13
  } from '@reown/appkit-core-react-native';
14
- import { useAppKit } from '../../AppKitContext';
14
+ import { useInternalAppKit } from '../../AppKitContext';
15
15
  import { ConnectingQrCode } from '../../partials/w3m-connecting-qrcode';
16
16
  import { ConnectingMobile } from '../../partials/w3m-connecting-mobile';
17
17
  import { ConnectingWeb } from '../../partials/w3m-connecting-web';
@@ -19,7 +19,7 @@ import { ConnectingHeader } from '../../partials/w3m-connecting-header';
19
19
  import { UiUtil } from '../../utils/UiUtil';
20
20
 
21
21
  export function ConnectingView() {
22
- const { connect } = useAppKit();
22
+ const { connect } = useInternalAppKit();
23
23
  const { installed } = useSnapshot(ApiController.state);
24
24
  const { data } = RouterController.state;
25
25
  const [lastRetry, setLastRetry] = useState(Date.now());
@@ -32,7 +32,7 @@ export function ConnectingView() {
32
32
  const onRetry = () => {
33
33
  if (CoreHelperUtil.isAllowedRetry(lastRetry)) {
34
34
  setLastRetry(Date.now());
35
- ConnectionController.clearUri();
35
+ WcController.clearUri();
36
36
  initializeConnection(true);
37
37
  } else {
38
38
  SnackController.showError('Please wait a second before retrying');
@@ -41,19 +41,19 @@ export function ConnectingView() {
41
41
 
42
42
  const initializeConnection = async (retry = false) => {
43
43
  try {
44
- const { wcPairingExpiry } = ConnectionController.state;
44
+ const { wcPairingExpiry } = WcController.state;
45
45
  const { data: routeData } = RouterController.state;
46
46
  if (retry || CoreHelperUtil.isPairingExpired(wcPairingExpiry)) {
47
- ConnectionController.setWcError(false);
47
+ WcController.setWcError(false);
48
48
 
49
49
  const connectPromise = connect('walletconnect', {
50
50
  universalLink: routeData?.wallet?.link_mode ?? undefined
51
51
  });
52
- ConnectionController.setWcPromise(connectPromise);
52
+ WcController.setWcPromise(connectPromise);
53
53
  }
54
54
  } catch (error) {
55
- ConnectionController.setWcError(true);
56
- ConnectionController.clearUri();
55
+ WcController.setWcError(true);
56
+ WcController.clearUri();
57
57
  SnackController.showError('Declined');
58
58
  if (isQr && CoreHelperUtil.isAllowedRetry(lastRetry)) {
59
59
  setLastRetry(Date.now());
@@ -3,10 +3,11 @@ import { useEffect, useState } from 'react';
3
3
  import {
4
4
  ApiController,
5
5
  AssetController,
6
- ConnectionController,
6
+ WcController,
7
7
  ConnectionsController,
8
8
  RouterController,
9
- RouterUtil
9
+ RouterUtil,
10
+ AssetUtil
10
11
  } from '@reown/appkit-core-react-native';
11
12
  import {
12
13
  Button,
@@ -16,20 +17,21 @@ import {
16
17
  NetworkImage,
17
18
  Text
18
19
  } from '@reown/appkit-ui-react-native';
19
- import { useAppKit } from '../../AppKitContext';
20
+ import { useInternalAppKit } from '../../AppKitContext';
20
21
  import styles from './styles';
21
22
 
23
+ //TODO: is this used?
22
24
  export function NetworkSwitchView() {
23
- const { switchNetwork } = useAppKit();
25
+ const { switchNetwork } = useInternalAppKit();
24
26
  const { data } = useSnapshot(RouterController.state);
25
- const { recentWallets } = useSnapshot(ConnectionController.state);
27
+ const { recentWallets } = useSnapshot(WcController.state);
26
28
  const { activeNetwork } = useSnapshot(ConnectionsController.state);
27
29
  const { networkImages } = useSnapshot(AssetController.state);
28
30
  const [error, setError] = useState<boolean>(false);
29
31
  const [showRetry, setShowRetry] = useState<boolean>(false);
30
32
  const network = data?.network;
31
33
  const wallet = recentWallets?.[0];
32
- const networkImage = network ? networkImages[network.id] : undefined;
34
+ const networkImage = AssetUtil.getNetworkImage(network, networkImages);
33
35
 
34
36
  const onSwitchNetwork = async () => {
35
37
  try {
@@ -14,12 +14,13 @@ import {
14
14
  EventsController,
15
15
  ConnectionsController,
16
16
  OptionsController,
17
- AssetController
17
+ AssetController,
18
+ AssetUtil
18
19
  } from '@reown/appkit-core-react-native';
19
20
  import type { AppKitNetwork } from '@reown/appkit-common-react-native';
20
21
  import { useCustomDimensions } from '../../hooks/useCustomDimensions';
21
22
  import styles from './styles';
22
- import { useAppKit } from '../../AppKitContext';
23
+ import { useInternalAppKit } from '../../AppKitContext';
23
24
  import { useSnapshot } from 'valtio';
24
25
 
25
26
  export function NetworksView() {
@@ -33,7 +34,7 @@ export function NetworksView() {
33
34
  const itemGap = Math.abs(
34
35
  Math.trunc((usableWidth - numColumns * CardSelectWidth) / numColumns) / 2
35
36
  );
36
- const { switchNetwork, back } = useAppKit();
37
+ const { switchNetwork, back } = useInternalAppKit();
37
38
 
38
39
  const networkList = isConnected ? ConnectionsController.getConnectedNetworks() : networks;
39
40
 
@@ -53,7 +54,7 @@ export function NetworksView() {
53
54
  ? ConnectionsController.state.activeCaipNetworkId === network.caipNetworkId
54
55
  : OptionsController.state.defaultNetwork?.caipNetworkId === network.caipNetworkId;
55
56
  // eslint-disable-next-line valtio/state-snapshot-rule
56
- const networkImage = network ? networkImages[network.id] : undefined;
57
+ const networkImage = AssetUtil.getNetworkImage(network, networkImages);
57
58
 
58
59
  return (
59
60
  <View
@@ -1,5 +1,6 @@
1
1
  import {
2
2
  AssetController,
3
+ AssetUtil,
3
4
  ConnectionsController,
4
5
  OnRampController,
5
6
  RouterController,
@@ -29,7 +30,7 @@ export function OnRampCheckoutView() {
29
30
  );
30
31
 
31
32
  const { activeNetwork } = useSnapshot(ConnectionsController.state);
32
- const networkImage = activeNetwork ? networkImages[activeNetwork.id] : undefined;
33
+ const networkImage = AssetUtil.getNetworkImage(activeNetwork, networkImages);
33
34
 
34
35
  const value = NumberUtil.roundNumber(selectedQuote?.destinationAmount ?? 0, 6, 5);
35
36
  const symbol = selectedQuote?.destinationCurrencyCode;
@@ -1,13 +1,13 @@
1
1
  import { StyleSheet } from 'react-native';
2
2
  import { IconLink, Text, FlexView } from '@reown/appkit-ui-react-native';
3
- import { useAppKit } from '../../../AppKitContext';
3
+ import { useInternalAppKit } from '../../../AppKitContext';
4
4
 
5
5
  interface HeaderProps {
6
6
  onSettingsPress: () => void;
7
7
  }
8
8
 
9
9
  export function Header({ onSettingsPress }: HeaderProps) {
10
- const { back } = useAppKit();
10
+ const { back } = useInternalAppKit();
11
11
 
12
12
  const handleGoBack = () => {
13
13
  back();
@@ -10,7 +10,8 @@ import {
10
10
  SnackController,
11
11
  ConstantsUtil,
12
12
  ConnectionsController,
13
- AssetController
13
+ AssetController,
14
+ AssetUtil
14
15
  } from '@reown/appkit-core-react-native';
15
16
  import {
16
17
  Button,
@@ -56,7 +57,7 @@ export function OnRampView() {
56
57
  const [isPaymentMethodModalVisible, setIsPaymentMethodModalVisible] = useState(false);
57
58
  const purchaseCurrencyCode =
58
59
  purchaseCurrency?.currencyCode?.split('_')[0] ?? purchaseCurrency?.currencyCode;
59
- const networkImage = activeNetwork ? networkImages[activeNetwork.id] : undefined;
60
+ const networkImage = AssetUtil.getNetworkImage(activeNetwork, networkImages);
60
61
 
61
62
  const getQuotes = useCallback(() => {
62
63
  if (OnRampController.canGenerateQuote()) {
@@ -22,6 +22,7 @@ import {
22
22
 
23
23
  import {
24
24
  AssetController,
25
+ AssetUtil,
25
26
  ConnectionsController,
26
27
  SwapController,
27
28
  type SwapControllerState,
@@ -49,7 +50,7 @@ export function SwapSelectTokenView({ onClose, type, style }: Props) {
49
50
  SwapController.state
50
51
  ) as SwapControllerState;
51
52
 
52
- const networkImage = activeNetwork ? networkImages[activeNetwork.id] : undefined;
53
+ const networkImage = AssetUtil.getNetworkImage(activeNetwork, networkImages);
53
54
  const [tokenSearch, setTokenSearch] = useState<string>('');
54
55
  const isSourceToken = type === 'sourceToken';
55
56
 
@@ -5,21 +5,20 @@ import { Icon, ListItem, Separator, Text } from '@reown/appkit-ui-react-native';
5
5
  import {
6
6
  ApiController,
7
7
  AssetController,
8
+ AssetUtil,
8
9
  ConnectionsController
9
10
  } from '@reown/appkit-core-react-native';
10
11
  import type { AppKitNetwork } from '@reown/appkit-common-react-native';
11
- import { useAppKit } from '../../AppKitContext';
12
+ import { useInternalAppKit } from '../../AppKitContext';
12
13
  import styles from './styles';
13
14
 
14
15
  export function UnsupportedChainView() {
15
16
  const { activeNetwork } = useSnapshot(ConnectionsController.state);
16
17
  const { networkImages } = useSnapshot(AssetController.state);
17
18
  const [disconnecting, setDisconnecting] = useState(false);
18
- //TODO: should show requested networks disabled
19
- // const networks = CoreHelperUtil.sortNetworks(approvedCaipNetworkIds, requestedCaipNetworks);
20
19
  const networks = ConnectionsController.getConnectedNetworks();
21
20
  const imageHeaders = ApiController._getApiHeaders();
22
- const { disconnect, switchNetwork } = useAppKit();
21
+ const { disconnect, switchNetwork } = useInternalAppKit();
23
22
 
24
23
  const onNetworkPress = async (network: AppKitNetwork) => {
25
24
  switchNetwork(network);
@@ -48,7 +47,7 @@ export function UnsupportedChainView() {
48
47
  key={item.id}
49
48
  icon="networkPlaceholder"
50
49
  iconBackgroundColor="gray-glass-010"
51
- imageSrc={networkImages[item.id]}
50
+ imageSrc={AssetUtil.getNetworkImage(item, networkImages)}
52
51
  imageHeaders={imageHeaders}
53
52
  onPress={() => onNetworkPress(item)}
54
53
  testID="button-network"
@@ -4,6 +4,7 @@ import { FlexView, Text, Banner, NetworkImage } from '@reown/appkit-ui-react-nat
4
4
  import {
5
5
  ApiController,
6
6
  AssetController,
7
+ AssetUtil,
7
8
  ConnectionsController
8
9
  } from '@reown/appkit-core-react-native';
9
10
  import { useCustomDimensions } from '../../hooks/useCustomDimensions';
@@ -35,7 +36,7 @@ export function WalletCompatibleNetworks() {
35
36
  padding={['s', 's', 's', 's']}
36
37
  >
37
38
  <NetworkImage
38
- imageSrc={networkImages[network.id]}
39
+ imageSrc={AssetUtil.getNetworkImage(network, networkImages)}
39
40
  imageHeaders={imageHeaders}
40
41
  size="sm"
41
42
  style={styles.image}
@@ -12,6 +12,7 @@ import {
12
12
  import {
13
13
  ApiController,
14
14
  AssetController,
15
+ AssetUtil,
15
16
  ConnectionsController,
16
17
  CoreHelperUtil,
17
18
  OptionsController,
@@ -26,7 +27,7 @@ export function WalletReceiveView() {
26
27
  ConnectionsController.state
27
28
  );
28
29
  const address = CoreHelperUtil.getPlainAddress(activeAddress);
29
- const networkImage = activeNetwork ? networkImages[activeNetwork.id] : undefined;
30
+ const networkImage = AssetUtil.getNetworkImage(activeNetwork, networkImages);
30
31
  const { padding } = useCustomDimensions();
31
32
  const canCopy = OptionsController.isClipboardAvailable();
32
33
  const isSmartAccount = accountType === 'smartAccount';
@@ -40,7 +41,10 @@ export function WalletReceiveView() {
40
41
  const imagesArray = approvedNetworks
41
42
  .filter(network => network?.id)
42
43
  .slice(0, 5)
43
- .map(network => AssetController.state.networkImages[network.id])
44
+ .map(
45
+ network =>
46
+ network.imageUrl ?? AssetUtil.getNetworkImage(network, AssetController.state.networkImages)
47
+ )
44
48
  .filter(Boolean) as string[];
45
49
 
46
50
  const label = UiUtil.getTruncateString({
@@ -1,4 +1,4 @@
1
- import { AssetController } from '@reown/appkit-core-react-native';
1
+ import { AssetController, AssetUtil } from '@reown/appkit-core-react-native';
2
2
  import type { AppKitNetwork } from '@reown/appkit-common-react-native';
3
3
  import {
4
4
  BorderRadius,
@@ -43,7 +43,7 @@ export function PreviewSendDetails({
43
43
  truncate: 'middle'
44
44
  });
45
45
 
46
- const networkImage = activeNetwork ? networkImages[activeNetwork.id] : undefined;
46
+ const networkImage = AssetUtil.getNetworkImage(activeNetwork, networkImages);
47
47
 
48
48
  return (
49
49
  <FlexView
@@ -4,6 +4,7 @@ import { ScrollView } from 'react-native';
4
4
  import { FlexView, InputText, ListToken, Text } from '@reown/appkit-ui-react-native';
5
5
  import {
6
6
  AssetController,
7
+ AssetUtil,
7
8
  ConnectionsController,
8
9
  RouterController,
9
10
  SendController
@@ -18,7 +19,7 @@ export function WalletSendSelectTokenView() {
18
19
  const { padding } = useCustomDimensions();
19
20
  const { activeNetwork, balances } = useSnapshot(ConnectionsController.state);
20
21
  const { networkImages } = useSnapshot(AssetController.state);
21
- const networkImage = activeNetwork ? networkImages[activeNetwork.id] : undefined;
22
+ const networkImage = AssetUtil.getNetworkImage(activeNetwork, networkImages);
22
23
  const [tokenSearch, setTokenSearch] = useState<string>('');
23
24
  const [filteredTokens, setFilteredTokens] = useState(balances ?? []);
24
25