@reown/appkit-core-react-native 0.0.0-chore-canary-20250722140131 → 0.0.0-chore-bump-builder-20250728194329

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 (209) hide show
  1. package/lib/commonjs/controllers/ApiController.js +27 -16
  2. package/lib/commonjs/controllers/ApiController.js.map +1 -1
  3. package/lib/commonjs/controllers/BlockchainApiController.js +173 -103
  4. package/lib/commonjs/controllers/BlockchainApiController.js.map +1 -1
  5. package/lib/commonjs/controllers/ConnectionController.js +8 -11
  6. package/lib/commonjs/controllers/ConnectionController.js.map +1 -1
  7. package/lib/commonjs/controllers/ConnectionsController.js +417 -0
  8. package/lib/commonjs/controllers/ConnectionsController.js.map +1 -0
  9. package/lib/commonjs/controllers/ModalController.js +6 -7
  10. package/lib/commonjs/controllers/ModalController.js.map +1 -1
  11. package/lib/commonjs/controllers/OnRampController.js +58 -42
  12. package/lib/commonjs/controllers/OnRampController.js.map +1 -1
  13. package/lib/commonjs/controllers/OptionsController.js +17 -3
  14. package/lib/commonjs/controllers/OptionsController.js.map +1 -1
  15. package/lib/commonjs/controllers/RouterController.js +1 -22
  16. package/lib/commonjs/controllers/RouterController.js.map +1 -1
  17. package/lib/commonjs/controllers/SendController.js +96 -96
  18. package/lib/commonjs/controllers/SendController.js.map +1 -1
  19. package/lib/commonjs/controllers/SnackController.js +29 -5
  20. package/lib/commonjs/controllers/SnackController.js.map +1 -1
  21. package/lib/commonjs/controllers/SwapController.js +151 -150
  22. package/lib/commonjs/controllers/SwapController.js.map +1 -1
  23. package/lib/commonjs/controllers/ThemeController.js +9 -1
  24. package/lib/commonjs/controllers/ThemeController.js.map +1 -1
  25. package/lib/commonjs/controllers/TransactionsController.js +22 -18
  26. package/lib/commonjs/controllers/TransactionsController.js.map +1 -1
  27. package/lib/commonjs/index.js +3 -38
  28. package/lib/commonjs/index.js.map +1 -1
  29. package/lib/commonjs/package.json +1 -0
  30. package/lib/commonjs/utils/AssetUtil.js +3 -15
  31. package/lib/commonjs/utils/AssetUtil.js.map +1 -1
  32. package/lib/commonjs/utils/ConstantsUtil.js +122 -5
  33. package/lib/commonjs/utils/ConstantsUtil.js.map +1 -1
  34. package/lib/commonjs/utils/CoreHelperUtil.js +11 -5
  35. package/lib/commonjs/utils/CoreHelperUtil.js.map +1 -1
  36. package/lib/commonjs/utils/FetchUtil.js +7 -2
  37. package/lib/commonjs/utils/FetchUtil.js.map +1 -1
  38. package/lib/commonjs/utils/StorageUtil.js +99 -71
  39. package/lib/commonjs/utils/StorageUtil.js.map +1 -1
  40. package/lib/commonjs/utils/SwapApiUtil.js +15 -21
  41. package/lib/commonjs/utils/SwapApiUtil.js.map +1 -1
  42. package/lib/commonjs/utils/TypeUtil.js +25 -0
  43. package/lib/commonjs/utils/TypeUtil.js.map +1 -1
  44. package/lib/module/controllers/ApiController.js +28 -16
  45. package/lib/module/controllers/ApiController.js.map +1 -1
  46. package/lib/module/controllers/AssetController.js +2 -0
  47. package/lib/module/controllers/AssetController.js.map +1 -1
  48. package/lib/module/controllers/BlockchainApiController.js +174 -102
  49. package/lib/module/controllers/BlockchainApiController.js.map +1 -1
  50. package/lib/module/controllers/ConnectionController.js +10 -11
  51. package/lib/module/controllers/ConnectionController.js.map +1 -1
  52. package/lib/module/controllers/ConnectionsController.js +414 -0
  53. package/lib/module/controllers/ConnectionsController.js.map +1 -0
  54. package/lib/module/controllers/EnsController.js +2 -0
  55. package/lib/module/controllers/EnsController.js.map +1 -1
  56. package/lib/module/controllers/EventsController.js +2 -0
  57. package/lib/module/controllers/EventsController.js.map +1 -1
  58. package/lib/module/controllers/ModalController.js +8 -7
  59. package/lib/module/controllers/ModalController.js.map +1 -1
  60. package/lib/module/controllers/OnRampController.js +59 -41
  61. package/lib/module/controllers/OnRampController.js.map +1 -1
  62. package/lib/module/controllers/OptionsController.js +19 -3
  63. package/lib/module/controllers/OptionsController.js.map +1 -1
  64. package/lib/module/controllers/PublicStateController.js +2 -0
  65. package/lib/module/controllers/PublicStateController.js.map +1 -1
  66. package/lib/module/controllers/RouterController.js +3 -22
  67. package/lib/module/controllers/RouterController.js.map +1 -1
  68. package/lib/module/controllers/SendController.js +98 -96
  69. package/lib/module/controllers/SendController.js.map +1 -1
  70. package/lib/module/controllers/SnackController.js +31 -5
  71. package/lib/module/controllers/SnackController.js.map +1 -1
  72. package/lib/module/controllers/SwapController.js +153 -150
  73. package/lib/module/controllers/SwapController.js.map +1 -1
  74. package/lib/module/controllers/ThemeController.js +11 -1
  75. package/lib/module/controllers/ThemeController.js.map +1 -1
  76. package/lib/module/controllers/TransactionsController.js +24 -18
  77. package/lib/module/controllers/TransactionsController.js.map +1 -1
  78. package/lib/module/index.js +3 -6
  79. package/lib/module/index.js.map +1 -1
  80. package/lib/module/utils/ApiUtil.js +2 -0
  81. package/lib/module/utils/ApiUtil.js.map +1 -1
  82. package/lib/module/utils/AssetUtil.js +5 -15
  83. package/lib/module/utils/AssetUtil.js.map +1 -1
  84. package/lib/module/utils/ConstantsUtil.js +124 -5
  85. package/lib/module/utils/ConstantsUtil.js.map +1 -1
  86. package/lib/module/utils/CoreHelperUtil.js +13 -5
  87. package/lib/module/utils/CoreHelperUtil.js.map +1 -1
  88. package/lib/module/utils/EventUtil.js +2 -0
  89. package/lib/module/utils/EventUtil.js.map +1 -1
  90. package/lib/module/utils/FetchUtil.js +9 -2
  91. package/lib/module/utils/FetchUtil.js.map +1 -1
  92. package/lib/module/utils/RouterUtil.js +2 -0
  93. package/lib/module/utils/RouterUtil.js.map +1 -1
  94. package/lib/module/utils/StorageUtil.js +103 -71
  95. package/lib/module/utils/StorageUtil.js.map +1 -1
  96. package/lib/module/utils/SwapApiUtil.js +17 -21
  97. package/lib/module/utils/SwapApiUtil.js.map +1 -1
  98. package/lib/module/utils/SwapCalculationUtil.js +2 -0
  99. package/lib/module/utils/SwapCalculationUtil.js.map +1 -1
  100. package/lib/module/utils/TypeUtil.js +25 -1
  101. package/lib/module/utils/TypeUtil.js.map +1 -1
  102. package/lib/typescript/controllers/ApiController.d.ts +3 -2
  103. package/lib/typescript/controllers/ApiController.d.ts.map +1 -1
  104. package/lib/typescript/controllers/BlockchainApiController.d.ts +30 -11
  105. package/lib/typescript/controllers/BlockchainApiController.d.ts.map +1 -1
  106. package/lib/typescript/controllers/ConnectionController.d.ts +5 -16
  107. package/lib/typescript/controllers/ConnectionController.d.ts.map +1 -1
  108. package/lib/typescript/controllers/ConnectionsController.d.ts +45 -0
  109. package/lib/typescript/controllers/ConnectionsController.d.ts.map +1 -0
  110. package/lib/typescript/controllers/ModalController.d.ts.map +1 -1
  111. package/lib/typescript/controllers/OnRampController.d.ts +1 -2
  112. package/lib/typescript/controllers/OnRampController.d.ts.map +1 -1
  113. package/lib/typescript/controllers/OptionsController.d.ts +8 -2
  114. package/lib/typescript/controllers/OptionsController.d.ts.map +1 -1
  115. package/lib/typescript/controllers/PublicStateController.d.ts +1 -1
  116. package/lib/typescript/controllers/PublicStateController.d.ts.map +1 -1
  117. package/lib/typescript/controllers/RouterController.d.ts +4 -16
  118. package/lib/typescript/controllers/RouterController.d.ts.map +1 -1
  119. package/lib/typescript/controllers/SendController.d.ts +5 -7
  120. package/lib/typescript/controllers/SendController.d.ts.map +1 -1
  121. package/lib/typescript/controllers/SnackController.d.ts +3 -3
  122. package/lib/typescript/controllers/SnackController.d.ts.map +1 -1
  123. package/lib/typescript/controllers/SwapController.d.ts +12 -11
  124. package/lib/typescript/controllers/SwapController.d.ts.map +1 -1
  125. package/lib/typescript/controllers/ThemeController.d.ts +1 -1
  126. package/lib/typescript/controllers/ThemeController.d.ts.map +1 -1
  127. package/lib/typescript/controllers/TransactionsController.d.ts +3 -3
  128. package/lib/typescript/controllers/TransactionsController.d.ts.map +1 -1
  129. package/lib/typescript/index.d.ts +1 -6
  130. package/lib/typescript/index.d.ts.map +1 -1
  131. package/lib/typescript/utils/AssetUtil.d.ts +2 -3
  132. package/lib/typescript/utils/AssetUtil.d.ts.map +1 -1
  133. package/lib/typescript/utils/ConstantsUtil.d.ts +11 -1
  134. package/lib/typescript/utils/ConstantsUtil.d.ts.map +1 -1
  135. package/lib/typescript/utils/CoreHelperUtil.d.ts +5 -4
  136. package/lib/typescript/utils/CoreHelperUtil.d.ts.map +1 -1
  137. package/lib/typescript/utils/FetchUtil.d.ts +1 -1
  138. package/lib/typescript/utils/FetchUtil.d.ts.map +1 -1
  139. package/lib/typescript/utils/StorageUtil.d.ts +18 -12
  140. package/lib/typescript/utils/StorageUtil.d.ts.map +1 -1
  141. package/lib/typescript/utils/SwapApiUtil.d.ts +3 -3
  142. package/lib/typescript/utils/SwapApiUtil.d.ts.map +1 -1
  143. package/lib/typescript/utils/TypeUtil.d.ts +44 -184
  144. package/lib/typescript/utils/TypeUtil.d.ts.map +1 -1
  145. package/package.json +7 -7
  146. package/src/controllers/ApiController.ts +28 -10
  147. package/src/controllers/BlockchainApiController.ts +152 -89
  148. package/src/controllers/ConnectionController.ts +14 -29
  149. package/src/controllers/ConnectionsController.ts +543 -0
  150. package/src/controllers/ModalController.ts +6 -7
  151. package/src/controllers/OnRampController.ts +91 -59
  152. package/src/controllers/OptionsController.ts +27 -13
  153. package/src/controllers/PublicStateController.ts +1 -1
  154. package/src/controllers/RouterController.ts +5 -54
  155. package/src/controllers/SendController.ts +122 -111
  156. package/src/controllers/SnackController.ts +31 -5
  157. package/src/controllers/SwapController.ts +174 -181
  158. package/src/controllers/ThemeController.ts +11 -2
  159. package/src/controllers/TransactionsController.ts +25 -19
  160. package/src/index.ts +3 -14
  161. package/src/utils/AssetUtil.ts +4 -20
  162. package/src/utils/ConstantsUtil.ts +126 -5
  163. package/src/utils/CoreHelperUtil.ts +34 -7
  164. package/src/utils/FetchUtil.ts +9 -3
  165. package/src/utils/StorageUtil.ts +180 -78
  166. package/src/utils/SwapApiUtil.ts +27 -38
  167. package/src/utils/TypeUtil.ts +54 -182
  168. package/lib/commonjs/controllers/AccountController.js +0 -93
  169. package/lib/commonjs/controllers/AccountController.js.map +0 -1
  170. package/lib/commonjs/controllers/ConnectorController.js +0 -49
  171. package/lib/commonjs/controllers/ConnectorController.js.map +0 -1
  172. package/lib/commonjs/controllers/NetworkController.js +0 -90
  173. package/lib/commonjs/controllers/NetworkController.js.map +0 -1
  174. package/lib/commonjs/controllers/WebviewController.js +0 -52
  175. package/lib/commonjs/controllers/WebviewController.js.map +0 -1
  176. package/lib/commonjs/utils/ConnectionUtil.js +0 -33
  177. package/lib/commonjs/utils/ConnectionUtil.js.map +0 -1
  178. package/lib/commonjs/utils/NetworkUtil.js +0 -46
  179. package/lib/commonjs/utils/NetworkUtil.js.map +0 -1
  180. package/lib/module/controllers/AccountController.js +0 -88
  181. package/lib/module/controllers/AccountController.js.map +0 -1
  182. package/lib/module/controllers/ConnectorController.js +0 -44
  183. package/lib/module/controllers/ConnectorController.js.map +0 -1
  184. package/lib/module/controllers/NetworkController.js +0 -85
  185. package/lib/module/controllers/NetworkController.js.map +0 -1
  186. package/lib/module/controllers/WebviewController.js +0 -47
  187. package/lib/module/controllers/WebviewController.js.map +0 -1
  188. package/lib/module/utils/ConnectionUtil.js +0 -27
  189. package/lib/module/utils/ConnectionUtil.js.map +0 -1
  190. package/lib/module/utils/NetworkUtil.js +0 -40
  191. package/lib/module/utils/NetworkUtil.js.map +0 -1
  192. package/lib/typescript/controllers/AccountController.d.ts +0 -33
  193. package/lib/typescript/controllers/AccountController.d.ts.map +0 -1
  194. package/lib/typescript/controllers/ConnectorController.d.ts +0 -18
  195. package/lib/typescript/controllers/ConnectorController.d.ts.map +0 -1
  196. package/lib/typescript/controllers/NetworkController.d.ts +0 -34
  197. package/lib/typescript/controllers/NetworkController.d.ts.map +0 -1
  198. package/lib/typescript/controllers/WebviewController.d.ts +0 -21
  199. package/lib/typescript/controllers/WebviewController.d.ts.map +0 -1
  200. package/lib/typescript/utils/ConnectionUtil.d.ts +0 -4
  201. package/lib/typescript/utils/ConnectionUtil.d.ts.map +0 -1
  202. package/lib/typescript/utils/NetworkUtil.d.ts +0 -8
  203. package/lib/typescript/utils/NetworkUtil.d.ts.map +0 -1
  204. package/src/controllers/AccountController.ts +0 -128
  205. package/src/controllers/ConnectorController.ts +0 -63
  206. package/src/controllers/NetworkController.ts +0 -120
  207. package/src/controllers/WebviewController.ts +0 -63
  208. package/src/utils/ConnectionUtil.ts +0 -27
  209. package/src/utils/NetworkUtil.ts +0 -33
@@ -1,21 +0,0 @@
1
- import type { SocialProvider } from '@reown/appkit-common-react-native';
2
- export interface WebviewControllerState {
3
- frameViewVisible: boolean;
4
- webviewVisible: boolean;
5
- webviewUrl?: string;
6
- connecting?: boolean;
7
- connectingProvider?: SocialProvider;
8
- processingAuth?: boolean;
9
- }
10
- export declare const WebviewController: {
11
- state: WebviewControllerState;
12
- subscribe(callback: (newState: WebviewControllerState) => void): () => void;
13
- setFrameViewVisible(frameViewVisible: WebviewControllerState['frameViewVisible']): void;
14
- setWebviewVisible(visible: WebviewControllerState['webviewVisible']): void;
15
- setWebviewUrl(url: WebviewControllerState['webviewUrl']): void;
16
- setConnecting(connecting: WebviewControllerState['connecting']): void;
17
- setConnectingProvider(provider: WebviewControllerState['connectingProvider']): void;
18
- setProcessingAuth(processingAuth: WebviewControllerState['processingAuth']): void;
19
- reset(): void;
20
- };
21
- //# sourceMappingURL=WebviewController.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WebviewController.d.ts","sourceRoot":"","sources":["../../../src/controllers/WebviewController.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAIxE,MAAM,WAAW,sBAAsB;IACrC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kBAAkB,CAAC,EAAE,cAAc,CAAC;IACpC,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAYD,eAAO,MAAM,iBAAiB;;mCAGG,sBAAsB,KAAK,IAAI;0CAIxB,sBAAsB,CAAC,kBAAkB,CAAC;+BAIrD,sBAAsB,CAAC,gBAAgB,CAAC;uBAIhD,sBAAsB,CAAC,YAAY,CAAC;8BAI7B,sBAAsB,CAAC,YAAY,CAAC;oCAI9B,sBAAsB,CAAC,oBAAoB,CAAC;sCAI1C,sBAAsB,CAAC,gBAAgB,CAAC;;CAY3E,CAAC"}
@@ -1,4 +0,0 @@
1
- export declare const ConnectionUtil: {
2
- disconnect(): Promise<void>;
3
- };
4
- //# sourceMappingURL=ConnectionUtil.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ConnectionUtil.d.ts","sourceRoot":"","sources":["../../../src/utils/ConnectionUtil.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,cAAc;;CAmB1B,CAAC"}
@@ -1,8 +0,0 @@
1
- import type { CaipNetwork } from '../utils/TypeUtil';
2
- export declare const NetworkUtil: {
3
- handleNetworkSwitch(network: CaipNetwork): Promise<{
4
- type: string;
5
- networkId: `${string}:${string}`;
6
- } | null>;
7
- };
8
- //# sourceMappingURL=NetworkUtil.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NetworkUtil.d.ts","sourceRoot":"","sources":["../../../src/utils/NetworkUtil.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,eAAO,MAAM,WAAW;iCACa,WAAW;;;;CAuB/C,CAAC"}
@@ -1,128 +0,0 @@
1
- import { proxy } from 'valtio';
2
- import { subscribeKey as subKey } from 'valtio/utils';
3
- import type { Balance } from '@reown/appkit-common-react-native';
4
-
5
- import { CoreHelperUtil } from '../utils/CoreHelperUtil';
6
- import type { AppKitFrameAccountType, CaipAddress, 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,63 +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
- StorageUtil.setConnectedConnector(connectorType);
54
- } else {
55
- StorageUtil.removeConnectedConnector();
56
- }
57
- }
58
- },
59
-
60
- setAuthLoading(loading: ConnectorControllerState['authLoading']) {
61
- state.authLoading = loading;
62
- }
63
- };
@@ -1,120 +0,0 @@
1
- import { proxy, ref } from 'valtio';
2
- import type { CaipNetwork, CaipNetworkId } from '../utils/TypeUtil';
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,27 +0,0 @@
1
- import { AccountController } from '../controllers/AccountController';
2
- import { ConnectionController } from '../controllers/ConnectionController';
3
- import { EventsController } from '../controllers/EventsController';
4
- import { ModalController } from '../controllers/ModalController';
5
- import { RouterController } from '../controllers/RouterController';
6
- import { TransactionsController } from '../controllers/TransactionsController';
7
-
8
- export const ConnectionUtil = {
9
- async disconnect() {
10
- try {
11
- await ConnectionController.disconnect();
12
- ModalController.close();
13
- AccountController.setIsConnected(false);
14
- RouterController.reset('Connect');
15
- TransactionsController.resetTransactions();
16
- EventsController.sendEvent({
17
- type: 'track',
18
- event: 'DISCONNECT_SUCCESS'
19
- });
20
- } catch (error) {
21
- EventsController.sendEvent({
22
- type: 'track',
23
- event: 'DISCONNECT_ERROR'
24
- });
25
- }
26
- }
27
- };
@@ -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 '../utils/TypeUtil';
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
- };