@reown/appkit-core-react-native 2.0.0-alpha.0 → 2.0.0-alpha.2

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 (207) hide show
  1. package/lib/commonjs/controllers/ApiController.js +16 -5
  2. package/lib/commonjs/controllers/ApiController.js.map +1 -1
  3. package/lib/commonjs/controllers/AssetController.js.map +1 -1
  4. package/lib/commonjs/controllers/BlockchainApiController.js +103 -111
  5. package/lib/commonjs/controllers/BlockchainApiController.js.map +1 -1
  6. package/lib/commonjs/controllers/ConnectionController.js +1 -10
  7. package/lib/commonjs/controllers/ConnectionController.js.map +1 -1
  8. package/lib/commonjs/controllers/ConnectionsController.js +313 -52
  9. package/lib/commonjs/controllers/ConnectionsController.js.map +1 -1
  10. package/lib/commonjs/controllers/EnsController.js +4 -4
  11. package/lib/commonjs/controllers/EnsController.js.map +1 -1
  12. package/lib/commonjs/controllers/EventsController.js +4 -4
  13. package/lib/commonjs/controllers/EventsController.js.map +1 -1
  14. package/lib/commonjs/controllers/ModalController.js +6 -7
  15. package/lib/commonjs/controllers/ModalController.js.map +1 -1
  16. package/lib/commonjs/controllers/OnRampController.js +117 -53
  17. package/lib/commonjs/controllers/OnRampController.js.map +1 -1
  18. package/lib/commonjs/controllers/OptionsController.js +14 -0
  19. package/lib/commonjs/controllers/OptionsController.js.map +1 -1
  20. package/lib/commonjs/controllers/PublicStateController.js.map +1 -1
  21. package/lib/commonjs/controllers/RouterController.js +1 -22
  22. package/lib/commonjs/controllers/RouterController.js.map +1 -1
  23. package/lib/commonjs/controllers/SendController.js +101 -101
  24. package/lib/commonjs/controllers/SendController.js.map +1 -1
  25. package/lib/commonjs/controllers/SnackController.js +29 -5
  26. package/lib/commonjs/controllers/SnackController.js.map +1 -1
  27. package/lib/commonjs/controllers/SwapController.js +140 -147
  28. package/lib/commonjs/controllers/SwapController.js.map +1 -1
  29. package/lib/commonjs/controllers/ThemeController.js.map +1 -1
  30. package/lib/commonjs/controllers/TransactionsController.js +23 -19
  31. package/lib/commonjs/controllers/TransactionsController.js.map +1 -1
  32. package/lib/commonjs/index.js +0 -35
  33. package/lib/commonjs/index.js.map +1 -1
  34. package/lib/commonjs/package.json +1 -0
  35. package/lib/commonjs/utils/ApiUtil.js.map +1 -1
  36. package/lib/commonjs/utils/AssetUtil.js +3 -14
  37. package/lib/commonjs/utils/AssetUtil.js.map +1 -1
  38. package/lib/commonjs/utils/ConstantsUtil.js +122 -426
  39. package/lib/commonjs/utils/ConstantsUtil.js.map +1 -1
  40. package/lib/commonjs/utils/CoreHelperUtil.js +13 -8
  41. package/lib/commonjs/utils/CoreHelperUtil.js.map +1 -1
  42. package/lib/commonjs/utils/EventUtil.js.map +1 -1
  43. package/lib/commonjs/utils/FetchUtil.js +34 -10
  44. package/lib/commonjs/utils/FetchUtil.js.map +1 -1
  45. package/lib/commonjs/utils/RouterUtil.js.map +1 -1
  46. package/lib/commonjs/utils/StorageUtil.js +86 -92
  47. package/lib/commonjs/utils/StorageUtil.js.map +1 -1
  48. package/lib/commonjs/utils/SwapApiUtil.js +11 -22
  49. package/lib/commonjs/utils/SwapApiUtil.js.map +1 -1
  50. package/lib/commonjs/utils/SwapCalculationUtil.js.map +1 -1
  51. package/lib/commonjs/utils/TypeUtil.js +25 -0
  52. package/lib/commonjs/utils/TypeUtil.js.map +1 -1
  53. package/lib/module/controllers/ApiController.js +18 -6
  54. package/lib/module/controllers/ApiController.js.map +1 -1
  55. package/lib/module/controllers/AssetController.js +2 -0
  56. package/lib/module/controllers/AssetController.js.map +1 -1
  57. package/lib/module/controllers/BlockchainApiController.js +104 -110
  58. package/lib/module/controllers/BlockchainApiController.js.map +1 -1
  59. package/lib/module/controllers/ConnectionController.js +3 -10
  60. package/lib/module/controllers/ConnectionController.js.map +1 -1
  61. package/lib/module/controllers/ConnectionsController.js +314 -51
  62. package/lib/module/controllers/ConnectionsController.js.map +1 -1
  63. package/lib/module/controllers/EnsController.js +4 -2
  64. package/lib/module/controllers/EnsController.js.map +1 -1
  65. package/lib/module/controllers/EventsController.js +3 -1
  66. package/lib/module/controllers/EventsController.js.map +1 -1
  67. package/lib/module/controllers/ModalController.js +8 -7
  68. package/lib/module/controllers/ModalController.js.map +1 -1
  69. package/lib/module/controllers/OnRampController.js +118 -52
  70. package/lib/module/controllers/OnRampController.js.map +1 -1
  71. package/lib/module/controllers/OptionsController.js +16 -0
  72. package/lib/module/controllers/OptionsController.js.map +1 -1
  73. package/lib/module/controllers/PublicStateController.js +2 -0
  74. package/lib/module/controllers/PublicStateController.js.map +1 -1
  75. package/lib/module/controllers/RouterController.js +3 -22
  76. package/lib/module/controllers/RouterController.js.map +1 -1
  77. package/lib/module/controllers/SendController.js +100 -98
  78. package/lib/module/controllers/SendController.js.map +1 -1
  79. package/lib/module/controllers/SnackController.js +31 -5
  80. package/lib/module/controllers/SnackController.js.map +1 -1
  81. package/lib/module/controllers/SwapController.js +142 -147
  82. package/lib/module/controllers/SwapController.js.map +1 -1
  83. package/lib/module/controllers/ThemeController.js +2 -0
  84. package/lib/module/controllers/ThemeController.js.map +1 -1
  85. package/lib/module/controllers/TransactionsController.js +23 -17
  86. package/lib/module/controllers/TransactionsController.js.map +1 -1
  87. package/lib/module/index.js +2 -5
  88. package/lib/module/index.js.map +1 -1
  89. package/lib/module/utils/ApiUtil.js +2 -0
  90. package/lib/module/utils/ApiUtil.js.map +1 -1
  91. package/lib/module/utils/AssetUtil.js +5 -14
  92. package/lib/module/utils/AssetUtil.js.map +1 -1
  93. package/lib/module/utils/ConstantsUtil.js +124 -426
  94. package/lib/module/utils/ConstantsUtil.js.map +1 -1
  95. package/lib/module/utils/CoreHelperUtil.js +14 -6
  96. package/lib/module/utils/CoreHelperUtil.js.map +1 -1
  97. package/lib/module/utils/EventUtil.js +2 -0
  98. package/lib/module/utils/EventUtil.js.map +1 -1
  99. package/lib/module/utils/FetchUtil.js +36 -10
  100. package/lib/module/utils/FetchUtil.js.map +1 -1
  101. package/lib/module/utils/RouterUtil.js +2 -0
  102. package/lib/module/utils/RouterUtil.js.map +1 -1
  103. package/lib/module/utils/StorageUtil.js +89 -91
  104. package/lib/module/utils/StorageUtil.js.map +1 -1
  105. package/lib/module/utils/SwapApiUtil.js +13 -22
  106. package/lib/module/utils/SwapApiUtil.js.map +1 -1
  107. package/lib/module/utils/SwapCalculationUtil.js +2 -0
  108. package/lib/module/utils/SwapCalculationUtil.js.map +1 -1
  109. package/lib/module/utils/TypeUtil.js +25 -1
  110. package/lib/module/utils/TypeUtil.js.map +1 -1
  111. package/lib/typescript/controllers/ApiController.d.ts +2 -1
  112. package/lib/typescript/controllers/ApiController.d.ts.map +1 -1
  113. package/lib/typescript/controllers/BlockchainApiController.d.ts +20 -13
  114. package/lib/typescript/controllers/BlockchainApiController.d.ts.map +1 -1
  115. package/lib/typescript/controllers/ConnectionController.d.ts +3 -16
  116. package/lib/typescript/controllers/ConnectionController.d.ts.map +1 -1
  117. package/lib/typescript/controllers/ConnectionsController.d.ts +26 -22
  118. package/lib/typescript/controllers/ConnectionsController.d.ts.map +1 -1
  119. package/lib/typescript/controllers/ModalController.d.ts +1 -1
  120. package/lib/typescript/controllers/ModalController.d.ts.map +1 -1
  121. package/lib/typescript/controllers/OnRampController.d.ts +3 -2
  122. package/lib/typescript/controllers/OnRampController.d.ts.map +1 -1
  123. package/lib/typescript/controllers/OptionsController.d.ts +7 -2
  124. package/lib/typescript/controllers/OptionsController.d.ts.map +1 -1
  125. package/lib/typescript/controllers/RouterController.d.ts +4 -17
  126. package/lib/typescript/controllers/RouterController.d.ts.map +1 -1
  127. package/lib/typescript/controllers/SendController.d.ts +5 -7
  128. package/lib/typescript/controllers/SendController.d.ts.map +1 -1
  129. package/lib/typescript/controllers/SnackController.d.ts +3 -3
  130. package/lib/typescript/controllers/SnackController.d.ts.map +1 -1
  131. package/lib/typescript/controllers/SwapController.d.ts +12 -11
  132. package/lib/typescript/controllers/SwapController.d.ts.map +1 -1
  133. package/lib/typescript/controllers/TransactionsController.d.ts +3 -3
  134. package/lib/typescript/controllers/TransactionsController.d.ts.map +1 -1
  135. package/lib/typescript/index.d.ts +0 -5
  136. package/lib/typescript/index.d.ts.map +1 -1
  137. package/lib/typescript/utils/AssetUtil.d.ts +2 -3
  138. package/lib/typescript/utils/AssetUtil.d.ts.map +1 -1
  139. package/lib/typescript/utils/ConstantsUtil.d.ts +7 -414
  140. package/lib/typescript/utils/ConstantsUtil.d.ts.map +1 -1
  141. package/lib/typescript/utils/CoreHelperUtil.d.ts +5 -4
  142. package/lib/typescript/utils/CoreHelperUtil.d.ts.map +1 -1
  143. package/lib/typescript/utils/FetchUtil.d.ts.map +1 -1
  144. package/lib/typescript/utils/StorageUtil.d.ts +11 -15
  145. package/lib/typescript/utils/StorageUtil.d.ts.map +1 -1
  146. package/lib/typescript/utils/SwapApiUtil.d.ts +3 -3
  147. package/lib/typescript/utils/SwapApiUtil.d.ts.map +1 -1
  148. package/lib/typescript/utils/TypeUtil.d.ts +54 -177
  149. package/lib/typescript/utils/TypeUtil.d.ts.map +1 -1
  150. package/package.json +9 -23
  151. package/src/controllers/ApiController.ts +17 -4
  152. package/src/controllers/BlockchainApiController.ts +74 -119
  153. package/src/controllers/ConnectionController.ts +5 -28
  154. package/src/controllers/ConnectionsController.ts +399 -92
  155. package/src/controllers/EnsController.ts +2 -2
  156. package/src/controllers/EventsController.ts +1 -1
  157. package/src/controllers/ModalController.ts +7 -9
  158. package/src/controllers/OnRampController.ts +178 -81
  159. package/src/controllers/OptionsController.ts +22 -9
  160. package/src/controllers/RouterController.ts +4 -54
  161. package/src/controllers/SendController.ts +124 -113
  162. package/src/controllers/SnackController.ts +31 -5
  163. package/src/controllers/SwapController.ts +165 -181
  164. package/src/controllers/TransactionsController.ts +24 -18
  165. package/src/index.ts +0 -15
  166. package/src/utils/AssetUtil.ts +4 -18
  167. package/src/utils/ConstantsUtil.ts +125 -428
  168. package/src/utils/CoreHelperUtil.ts +30 -8
  169. package/src/utils/FetchUtil.ts +37 -10
  170. package/src/utils/StorageUtil.ts +165 -106
  171. package/src/utils/SwapApiUtil.ts +25 -42
  172. package/src/utils/TypeUtil.ts +64 -171
  173. package/lib/commonjs/controllers/AccountController.js +0 -93
  174. package/lib/commonjs/controllers/AccountController.js.map +0 -1
  175. package/lib/commonjs/controllers/ConnectorController.js +0 -50
  176. package/lib/commonjs/controllers/ConnectorController.js.map +0 -1
  177. package/lib/commonjs/controllers/NetworkController.js +0 -90
  178. package/lib/commonjs/controllers/NetworkController.js.map +0 -1
  179. package/lib/commonjs/controllers/WebviewController.js +0 -52
  180. package/lib/commonjs/controllers/WebviewController.js.map +0 -1
  181. package/lib/commonjs/utils/NetworkUtil.js +0 -46
  182. package/lib/commonjs/utils/NetworkUtil.js.map +0 -1
  183. package/lib/module/controllers/AccountController.js +0 -88
  184. package/lib/module/controllers/AccountController.js.map +0 -1
  185. package/lib/module/controllers/ConnectorController.js +0 -45
  186. package/lib/module/controllers/ConnectorController.js.map +0 -1
  187. package/lib/module/controllers/NetworkController.js +0 -85
  188. package/lib/module/controllers/NetworkController.js.map +0 -1
  189. package/lib/module/controllers/WebviewController.js +0 -47
  190. package/lib/module/controllers/WebviewController.js.map +0 -1
  191. package/lib/module/utils/NetworkUtil.js +0 -40
  192. package/lib/module/utils/NetworkUtil.js.map +0 -1
  193. package/lib/typescript/controllers/AccountController.d.ts +0 -33
  194. package/lib/typescript/controllers/AccountController.d.ts.map +0 -1
  195. package/lib/typescript/controllers/ConnectorController.d.ts +0 -18
  196. package/lib/typescript/controllers/ConnectorController.d.ts.map +0 -1
  197. package/lib/typescript/controllers/NetworkController.d.ts +0 -34
  198. package/lib/typescript/controllers/NetworkController.d.ts.map +0 -1
  199. package/lib/typescript/controllers/WebviewController.d.ts +0 -21
  200. package/lib/typescript/controllers/WebviewController.d.ts.map +0 -1
  201. package/lib/typescript/utils/NetworkUtil.d.ts +0 -8
  202. package/lib/typescript/utils/NetworkUtil.d.ts.map +0 -1
  203. package/src/controllers/AccountController.ts +0 -128
  204. package/src/controllers/ConnectorController.ts +0 -64
  205. package/src/controllers/NetworkController.ts +0 -120
  206. package/src/controllers/WebviewController.ts +0 -63
  207. package/src/utils/NetworkUtil.ts +0 -33
@@ -1,128 +0,0 @@
1
- import { proxy } from 'valtio';
2
- import { subscribeKey as subKey } from 'valtio/utils';
3
- import type { Balance, CaipAddress } from '@reown/appkit-common-react-native';
4
-
5
- import { CoreHelperUtil } from '../utils/CoreHelperUtil';
6
- import type { AppKitFrameAccountType, ConnectedWalletInfo } from '../utils/TypeUtil';
7
- import { NetworkController } from './NetworkController';
8
- import { BlockchainApiController } from './BlockchainApiController';
9
- import { SnackController } from './SnackController';
10
-
11
- // -- Types --------------------------------------------- //
12
- export interface AccountControllerState {
13
- isConnected: boolean;
14
- caipAddress?: CaipAddress;
15
- address?: string;
16
- balance?: string;
17
- balanceSymbol?: string;
18
- tokenBalance?: Balance[];
19
- profileName?: string;
20
- profileImage?: string;
21
- addressExplorerUrl?: string;
22
- connectedWalletInfo?: ConnectedWalletInfo;
23
- preferredAccountType?: AppKitFrameAccountType;
24
- smartAccountDeployed?: boolean;
25
- }
26
-
27
- type StateKey = keyof AccountControllerState;
28
-
29
- // -- State --------------------------------------------- //
30
- const state = proxy<AccountControllerState>({
31
- isConnected: false,
32
- tokenBalance: [],
33
- smartAccountDeployed: false,
34
- preferredAccountType: 'eoa'
35
- });
36
-
37
- // -- Controller ---------------------------------------- //
38
- export const AccountController = {
39
- state,
40
-
41
- subscribeKey<K extends StateKey>(key: K, callback: (value: AccountControllerState[K]) => void) {
42
- return subKey(state, key, callback);
43
- },
44
-
45
- setIsConnected(isConnected: AccountControllerState['isConnected']) {
46
- state.isConnected = isConnected;
47
- },
48
-
49
- setCaipAddress(caipAddress: AccountControllerState['caipAddress']) {
50
- const address = caipAddress ? CoreHelperUtil.getPlainAddress(caipAddress) : undefined;
51
- state.caipAddress = caipAddress;
52
- state.address = address;
53
- },
54
-
55
- setBalance(
56
- balance: AccountControllerState['balance'],
57
- balanceSymbol: AccountControllerState['balanceSymbol']
58
- ) {
59
- state.balance = balance;
60
- state.balanceSymbol = balanceSymbol;
61
- },
62
-
63
- setTokenBalance(tokenBalance: AccountControllerState['tokenBalance']) {
64
- state.tokenBalance = tokenBalance;
65
- },
66
-
67
- setProfileName(profileName: AccountControllerState['profileName']) {
68
- state.profileName = profileName;
69
- },
70
-
71
- setProfileImage(profileImage: AccountControllerState['profileImage']) {
72
- state.profileImage = profileImage;
73
- },
74
-
75
- setConnectedWalletInfo(connectedWalletInfo: AccountControllerState['connectedWalletInfo']) {
76
- state.connectedWalletInfo = connectedWalletInfo;
77
- },
78
-
79
- setAddressExplorerUrl(explorerUrl: AccountControllerState['addressExplorerUrl']) {
80
- state.addressExplorerUrl = explorerUrl;
81
- },
82
-
83
- setPreferredAccountType(accountType: AccountControllerState['preferredAccountType']) {
84
- state.preferredAccountType = accountType;
85
- },
86
-
87
- setSmartAccountDeployed(smartAccountDeployed: AccountControllerState['smartAccountDeployed']) {
88
- state.smartAccountDeployed = smartAccountDeployed;
89
- },
90
-
91
- async fetchTokenBalance() {
92
- const chainId = NetworkController.state.caipNetwork?.id;
93
- const address = AccountController.state.address;
94
-
95
- try {
96
- if (address && chainId) {
97
- const response = await BlockchainApiController.getBalance(address, chainId);
98
-
99
- if (!response) {
100
- throw new Error('Failed to fetch token balance');
101
- }
102
-
103
- const filteredBalances = response.balances.filter(
104
- balance => balance.quantity.decimals !== '0'
105
- );
106
-
107
- this.setTokenBalance(filteredBalances);
108
- }
109
- } catch (error) {
110
- SnackController.showError('Failed to fetch token balance');
111
- }
112
- },
113
-
114
- resetAccount() {
115
- state.isConnected = false;
116
- state.caipAddress = undefined;
117
- state.address = undefined;
118
- state.balance = undefined;
119
- state.balanceSymbol = undefined;
120
- state.profileName = undefined;
121
- state.profileImage = undefined;
122
- state.addressExplorerUrl = undefined;
123
- state.tokenBalance = [];
124
- state.connectedWalletInfo = undefined;
125
- state.preferredAccountType = 'eoa';
126
- state.smartAccountDeployed = false;
127
- }
128
- };
@@ -1,64 +0,0 @@
1
- import type { ConnectorType } from '@reown/appkit-common-react-native';
2
- import { subscribeKey as subKey } from 'valtio/utils';
3
- import { proxy, ref } from 'valtio';
4
- import type { Connector } from '../utils/TypeUtil';
5
- import { StorageUtil } from '../utils/StorageUtil';
6
-
7
- // -- Types --------------------------------------------- //
8
- export interface ConnectorControllerState {
9
- connectors: Connector[];
10
- connectedConnector?: ConnectorType;
11
- authLoading?: boolean;
12
- }
13
-
14
- type StateKey = keyof ConnectorControllerState;
15
-
16
- // -- State --------------------------------------------- //
17
- const state = proxy<ConnectorControllerState>({
18
- connectors: []
19
- });
20
-
21
- // -- Controller ---------------------------------------- //
22
- export const ConnectorController = {
23
- state,
24
-
25
- subscribeKey<K extends StateKey>(key: K, callback: (value: ConnectorControllerState[K]) => void) {
26
- return subKey(state, key, callback);
27
- },
28
-
29
- setConnectors(connectors: ConnectorControllerState['connectors']) {
30
- state.connectors = connectors.map(c => ref(c));
31
- },
32
-
33
- addConnector(connector: Connector) {
34
- state.connectors = [...state.connectors, ref(connector)];
35
- },
36
-
37
- getConnectors() {
38
- return state.connectors;
39
- },
40
-
41
- getAuthConnector() {
42
- return state.connectors.find(c => c.type === 'AUTH');
43
- },
44
-
45
- setConnectedConnector(
46
- connectorType: ConnectorControllerState['connectedConnector'],
47
- saveStorage = true
48
- ) {
49
- state.connectedConnector = connectorType;
50
-
51
- if (saveStorage) {
52
- if (connectorType) {
53
- //TODO: Check this
54
- StorageUtil.setConnectedConnector(connectorType);
55
- } else {
56
- StorageUtil.removeConnectedConnector();
57
- }
58
- }
59
- },
60
-
61
- setAuthLoading(loading: ConnectorControllerState['authLoading']) {
62
- state.authLoading = loading;
63
- }
64
- };
@@ -1,120 +0,0 @@
1
- import { proxy, ref } from 'valtio';
2
- import type { CaipNetwork, CaipNetworkId } from '@reown/appkit-common-react-native';
3
- import { PublicStateController } from './PublicStateController';
4
- import { NetworkUtil } from '@reown/appkit-common-react-native';
5
- import { ConstantsUtil } from '../utils/ConstantsUtil';
6
-
7
- // -- Types --------------------------------------------- //
8
- export interface NetworkControllerClient {
9
- switchCaipNetwork: (network: NetworkControllerState['caipNetwork']) => Promise<void>;
10
- getApprovedCaipNetworksData: () => Promise<{
11
- approvedCaipNetworkIds: NetworkControllerState['approvedCaipNetworkIds'];
12
- supportsAllNetworks: NetworkControllerState['supportsAllNetworks'];
13
- }>;
14
- }
15
-
16
- export interface NetworkControllerState {
17
- supportsAllNetworks: boolean;
18
- isDefaultCaipNetwork: boolean;
19
- _client?: NetworkControllerClient;
20
- caipNetwork?: CaipNetwork;
21
- requestedCaipNetworks?: CaipNetwork[];
22
- approvedCaipNetworkIds?: CaipNetworkId[];
23
- smartAccountEnabledNetworks: number[];
24
- }
25
-
26
- // -- State --------------------------------------------- //
27
- const state = proxy<NetworkControllerState>({
28
- supportsAllNetworks: true,
29
- isDefaultCaipNetwork: false,
30
- smartAccountEnabledNetworks: []
31
- });
32
-
33
- // -- Controller ---------------------------------------- //
34
- export const NetworkController = {
35
- state,
36
-
37
- _getClient() {
38
- if (!state._client) {
39
- throw new Error('NetworkController client not set');
40
- }
41
-
42
- return state._client;
43
- },
44
-
45
- setClient(client: NetworkControllerClient) {
46
- state._client = ref(client);
47
- },
48
-
49
- setCaipNetwork(caipNetwork: NetworkControllerState['caipNetwork']) {
50
- state.caipNetwork = caipNetwork;
51
- PublicStateController.set({ selectedNetworkId: caipNetwork?.id });
52
- },
53
-
54
- setDefaultCaipNetwork(caipNetwork: NetworkControllerState['caipNetwork']) {
55
- state.caipNetwork = caipNetwork;
56
- state.isDefaultCaipNetwork = true;
57
- PublicStateController.set({ selectedNetworkId: caipNetwork?.id });
58
- },
59
-
60
- setRequestedCaipNetworks(requestedNetworks: NetworkControllerState['requestedCaipNetworks']) {
61
- state.requestedCaipNetworks = requestedNetworks;
62
- },
63
-
64
- setSmartAccountEnabledNetworks(
65
- smartAccountEnabledNetworks: NetworkControllerState['smartAccountEnabledNetworks']
66
- ) {
67
- state.smartAccountEnabledNetworks = smartAccountEnabledNetworks;
68
- },
69
-
70
- checkIfSmartAccountEnabled() {
71
- const networkId = NetworkUtil.caipNetworkIdToNumber(state.caipNetwork?.id);
72
-
73
- if (!networkId) {
74
- return false;
75
- }
76
-
77
- return Boolean(state.smartAccountEnabledNetworks?.includes(Number(networkId)));
78
- },
79
-
80
- async getApprovedCaipNetworksData() {
81
- const data = await this._getClient().getApprovedCaipNetworksData();
82
- state.supportsAllNetworks = data.supportsAllNetworks;
83
- state.approvedCaipNetworkIds = data.approvedCaipNetworkIds;
84
- },
85
-
86
- getApprovedCaipNetworks() {
87
- return state.approvedCaipNetworkIds
88
- ?.map(id => state.requestedCaipNetworks?.find(network => network.id === id))
89
- .filter(Boolean) as CaipNetwork[];
90
- },
91
-
92
- getSmartAccountEnabledNetworks() {
93
- return this.getApprovedCaipNetworks().filter(
94
- network =>
95
- state.smartAccountEnabledNetworks?.find(networkId => network.id === `eip155:${networkId}`)
96
- );
97
- },
98
-
99
- getActiveNetworkTokenAddress() {
100
- const chainId = this.state.caipNetwork?.id || 'eip155:1';
101
- const address = ConstantsUtil.NATIVE_TOKEN_ADDRESS;
102
-
103
- return `${chainId}:${address}`;
104
- },
105
-
106
- async switchActiveNetwork(network: NetworkControllerState['caipNetwork']) {
107
- await this._getClient().switchCaipNetwork(network);
108
- state.caipNetwork = network;
109
- PublicStateController.set({ selectedNetworkId: network?.id });
110
- },
111
-
112
- resetNetwork() {
113
- if (!state.isDefaultCaipNetwork) {
114
- state.caipNetwork = undefined;
115
- }
116
- state.approvedCaipNetworkIds = undefined;
117
- state.supportsAllNetworks = true;
118
- state.smartAccountEnabledNetworks = [];
119
- }
120
- };
@@ -1,63 +0,0 @@
1
- import type { SocialProvider } from '@reown/appkit-common-react-native';
2
- import { proxy, subscribe as sub } from 'valtio';
3
-
4
- // -- Types --------------------------------------------- //
5
- export interface WebviewControllerState {
6
- frameViewVisible: boolean;
7
- webviewVisible: boolean;
8
- webviewUrl?: string;
9
- connecting?: boolean;
10
- connectingProvider?: SocialProvider;
11
- processingAuth?: boolean;
12
- }
13
-
14
- // -- State --------------------------------------------- //
15
- const state = proxy<WebviewControllerState>({
16
- frameViewVisible: false,
17
- webviewVisible: false,
18
- connecting: false,
19
- connectingProvider: undefined,
20
- processingAuth: false
21
- });
22
-
23
- // -- Controller ---------------------------------------- //
24
- export const WebviewController = {
25
- state,
26
-
27
- subscribe(callback: (newState: WebviewControllerState) => void) {
28
- return sub(state, () => callback(state));
29
- },
30
-
31
- setFrameViewVisible(frameViewVisible: WebviewControllerState['frameViewVisible']) {
32
- state.frameViewVisible = frameViewVisible;
33
- },
34
-
35
- setWebviewVisible(visible: WebviewControllerState['webviewVisible']) {
36
- state.webviewVisible = visible;
37
- },
38
-
39
- setWebviewUrl(url: WebviewControllerState['webviewUrl']) {
40
- state.webviewUrl = url;
41
- },
42
-
43
- setConnecting(connecting: WebviewControllerState['connecting']) {
44
- state.connecting = connecting;
45
- },
46
-
47
- setConnectingProvider(provider: WebviewControllerState['connectingProvider']) {
48
- state.connectingProvider = provider;
49
- },
50
-
51
- setProcessingAuth(processingAuth: WebviewControllerState['processingAuth']) {
52
- state.processingAuth = processingAuth;
53
- },
54
-
55
- reset() {
56
- state.frameViewVisible = false;
57
- state.webviewVisible = false;
58
- state.connecting = false;
59
- state.connectingProvider = undefined;
60
- state.processingAuth = false;
61
- state.webviewUrl = undefined;
62
- }
63
- };
@@ -1,33 +0,0 @@
1
- import { RouterUtil } from './RouterUtil';
2
- import { RouterController } from '../controllers/RouterController';
3
- import { NetworkController } from '../controllers/NetworkController';
4
- import { AccountController } from '../controllers/AccountController';
5
- import { ConnectorController } from '../controllers/ConnectorController';
6
- import { SwapController } from '../controllers/SwapController';
7
- import { type CaipNetwork } from '@reown/appkit-common-react-native';
8
-
9
- export const NetworkUtil = {
10
- async handleNetworkSwitch(network: CaipNetwork) {
11
- const { isConnected } = AccountController.state;
12
- const { caipNetwork, approvedCaipNetworkIds, supportsAllNetworks } = NetworkController.state;
13
- const isAuthConnected = ConnectorController.state.connectedConnector === 'AUTH';
14
- let eventData = null;
15
-
16
- if (isConnected && caipNetwork?.id !== network.id) {
17
- if (approvedCaipNetworkIds?.includes(network.id) && !isAuthConnected) {
18
- await NetworkController.switchActiveNetwork(network);
19
- RouterUtil.navigateAfterNetworkSwitch(['ConnectingSiwe']);
20
- eventData = { type: 'SWITCH_NETWORK', networkId: network.id };
21
- } else if (supportsAllNetworks || isAuthConnected) {
22
- RouterController.push('SwitchNetwork', { network });
23
- }
24
- } else if (!isConnected) {
25
- NetworkController.setCaipNetwork(network);
26
- RouterController.push('Connect');
27
- }
28
-
29
- SwapController.resetState();
30
-
31
- return eventData;
32
- }
33
- };