@reown/appkit-core 1.0.7 → 1.1.0

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 (62) hide show
  1. package/dist/esm/exports/index.js +0 -1
  2. package/dist/esm/exports/index.js.map +1 -1
  3. package/dist/esm/exports/react.js +2 -1
  4. package/dist/esm/exports/react.js.map +1 -1
  5. package/dist/esm/exports/vue.js +45 -0
  6. package/dist/esm/exports/vue.js.map +1 -0
  7. package/dist/esm/src/controllers/AccountController.js +1 -1
  8. package/dist/esm/src/controllers/AccountController.js.map +1 -1
  9. package/dist/esm/src/controllers/ApiController.js +6 -7
  10. package/dist/esm/src/controllers/ApiController.js.map +1 -1
  11. package/dist/esm/src/controllers/ChainController.js +112 -46
  12. package/dist/esm/src/controllers/ChainController.js.map +1 -1
  13. package/dist/esm/src/controllers/ConnectionController.js +10 -1
  14. package/dist/esm/src/controllers/ConnectionController.js.map +1 -1
  15. package/dist/esm/src/controllers/EnsController.js +1 -2
  16. package/dist/esm/src/controllers/EnsController.js.map +1 -1
  17. package/dist/esm/src/controllers/SendController.js +4 -4
  18. package/dist/esm/src/controllers/SendController.js.map +1 -1
  19. package/dist/esm/src/controllers/SwapController.js +4 -5
  20. package/dist/esm/src/controllers/SwapController.js.map +1 -1
  21. package/dist/esm/src/controllers/TransactionsController.js +2 -2
  22. package/dist/esm/src/controllers/TransactionsController.js.map +1 -1
  23. package/dist/esm/src/utils/AssetUtil.js +4 -4
  24. package/dist/esm/src/utils/AssetUtil.js.map +1 -1
  25. package/dist/esm/src/utils/CoreHelperUtil.js +1 -1
  26. package/dist/esm/src/utils/CoreHelperUtil.js.map +1 -1
  27. package/dist/esm/src/utils/StorageUtil.js +1 -1
  28. package/dist/esm/src/utils/StorageUtil.js.map +1 -1
  29. package/dist/esm/src/utils/SwapApiUtil.js +4 -5
  30. package/dist/esm/src/utils/SwapApiUtil.js.map +1 -1
  31. package/dist/esm/tests/controllers/ApiController.test.js +117 -50
  32. package/dist/esm/tests/controllers/ApiController.test.js.map +1 -1
  33. package/dist/esm/tests/controllers/ChainController.test.js +175 -20
  34. package/dist/esm/tests/controllers/ChainController.test.js.map +1 -1
  35. package/dist/esm/tests/controllers/ConnectionController.test.js +6 -2
  36. package/dist/esm/tests/controllers/ConnectionController.test.js.map +1 -1
  37. package/dist/esm/tests/controllers/EnsController.test.js +28 -14
  38. package/dist/esm/tests/controllers/EnsController.test.js.map +1 -1
  39. package/dist/esm/tests/controllers/SwapController.test.js +15 -8
  40. package/dist/esm/tests/controllers/SwapController.test.js.map +1 -1
  41. package/dist/esm/tests/controllers/TransactionsController.test.js +2 -1
  42. package/dist/esm/tests/controllers/TransactionsController.test.js.map +1 -1
  43. package/dist/esm/tests/hooks/react.test.js +16 -6
  44. package/dist/esm/tests/hooks/react.test.js.map +1 -1
  45. package/dist/esm/tests/utils/AssetUtil.test.js +8 -4
  46. package/dist/esm/tests/utils/AssetUtil.test.js.map +1 -1
  47. package/dist/esm/tests/utils/SwapApiUtil.test.js +40 -20
  48. package/dist/esm/tests/utils/SwapApiUtil.test.js.map +1 -1
  49. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  50. package/dist/types/exports/index.d.ts +0 -2
  51. package/dist/types/exports/react.d.ts +4 -12
  52. package/dist/types/exports/vue.d.ts +12 -0
  53. package/dist/types/src/controllers/ChainController.d.ts +23 -18
  54. package/dist/types/src/controllers/ConnectionController.d.ts +4 -0
  55. package/dist/types/src/utils/TypeUtil.d.ts +40 -2
  56. package/package.json +24 -7
  57. package/dist/esm/src/controllers/NetworkController.js +0 -191
  58. package/dist/esm/src/controllers/NetworkController.js.map +0 -1
  59. package/dist/esm/tests/controllers/NetworkController.test.js +0 -138
  60. package/dist/esm/tests/controllers/NetworkController.test.js.map +0 -1
  61. package/dist/types/src/controllers/NetworkController.d.ts +0 -40
  62. package/dist/types/tests/controllers/NetworkController.test.d.ts +0 -1
@@ -6,8 +6,6 @@ export { AccountController } from '../src/controllers/AccountController.js';
6
6
  export type { AccountControllerState } from '../src/controllers/AccountController.js';
7
7
  export { ChainController } from '../src/controllers/ChainController.js';
8
8
  export type { ChainControllerState } from '../src/controllers/ChainController.js';
9
- export { NetworkController } from '../src/controllers/NetworkController.js';
10
- export type { NetworkControllerClient, NetworkControllerState } from '../src/controllers/NetworkController.js';
11
9
  export { OnRampController } from '../src/controllers/OnRampController.js';
12
10
  export type { OnRampControllerState, OnRampProvider } from '../src/controllers/OnRampController.js';
13
11
  export { ConnectionController } from '../src/controllers/ConnectionController.js';
@@ -1,16 +1,8 @@
1
+ import type { CaipNetwork, CaipNetworkId } from '@reown/appkit-common';
1
2
  export declare function useAppKitNetwork(): {
2
- caipNetwork: {
3
- readonly id: `eip155:${string}` | `eip155:${number}` | `solana:${string}` | `solana:${number}` | `polkadot:${string}` | `polkadot:${number}`;
4
- readonly chainId: import("@reown/appkit-common").ChainId;
5
- readonly chainNamespace: import("@reown/appkit-common").ChainNamespace;
6
- readonly name: string;
7
- readonly currency: string;
8
- readonly explorerUrl: string;
9
- readonly rpcUrl: string;
10
- readonly imageUrl?: string | undefined;
11
- readonly imageId?: string | undefined;
12
- } | undefined;
13
- chainId: import("@reown/appkit-common").ChainId | undefined;
3
+ caipNetwork: CaipNetwork | undefined;
4
+ chainId: number | string | undefined;
5
+ caipNetworkId: CaipNetworkId | undefined;
14
6
  };
15
7
  export declare function useAppKitAccount(): {
16
8
  caipAddress: `eip155:${string}:${string}` | `eip155:${number}:${string}` | `solana:${string}:${string}` | `solana:${number}:${string}` | `polkadot:${string}:${string}` | `polkadot:${number}:${string}` | undefined;
@@ -0,0 +1,12 @@
1
+ import type { CaipNetwork, CaipNetworkId } from '@reown/appkit-common';
2
+ export declare function useAppKitNetwork(): {
3
+ caipNetwork: CaipNetwork | undefined;
4
+ chainId: number | string | undefined;
5
+ caipNetworkId: CaipNetworkId | undefined;
6
+ };
7
+ export declare function useAppKitAccount(): {
8
+ caipAddress: `eip155:${string}:${string}` | `eip155:${number}:${string}` | `solana:${string}:${string}` | `solana:${number}:${string}` | `polkadot:${string}:${string}` | `polkadot:${number}:${string}` | undefined;
9
+ address: string | undefined;
10
+ isConnected: boolean;
11
+ status: "reconnecting" | "connected" | "disconnected" | "connecting" | undefined;
12
+ };
@@ -1,7 +1,6 @@
1
- import type { ChainAdapter, Connector } from '../utils/TypeUtil.js';
2
- import { type NetworkControllerState } from './NetworkController.js';
1
+ import type { AdapterNetworkState, ChainAdapter, Connector } from '../utils/TypeUtil.js';
3
2
  import { type AccountControllerState } from './AccountController.js';
4
- import { type CaipAddress, type CaipNetwork, type ChainNamespace } from '@reown/appkit-common';
3
+ import { type CaipAddress, type CaipNetwork, type CaipNetworkId, type ChainNamespace } from '@reown/appkit-common';
5
4
  export interface ChainControllerState {
6
5
  activeChain: ChainNamespace | undefined;
7
6
  activeCaipAddress: CaipAddress | undefined;
@@ -14,31 +13,37 @@ export interface ChainControllerState {
14
13
  type ChainsInitializerAdapter = Pick<ChainAdapter, 'connectionControllerClient' | 'networkControllerClient' | 'defaultNetwork' | 'chainNamespace' | 'adapterType' | 'caipNetworks'>;
15
14
  export declare const ChainController: {
16
15
  state: ChainControllerState;
16
+ subscribe(callback: (value: ChainControllerState) => void): () => void;
17
17
  subscribeKey<K extends keyof ChainControllerState>(key: K, callback: (value: ChainControllerState[K]) => void): () => void;
18
18
  subscribeChainProp<K_1 extends keyof ChainAdapter>(property: K_1, callback: (value: ChainAdapter[K_1] | undefined) => void, chain?: ChainNamespace): () => void;
19
19
  initialize(adapters: ChainsInitializerAdapter[]): void;
20
20
  initializeUniversalAdapter(adapter: ChainsInitializerAdapter, adapters: ChainsInitializerAdapter[]): void;
21
- setChainNetworkData(chain: ChainNamespace | undefined, props: Partial<NetworkControllerState>, replaceState?: boolean): void;
21
+ setAdapterNetworkState(chain: ChainNamespace, props: Partial<AdapterNetworkState>): void;
22
22
  setChainAccountData(chain: ChainNamespace | undefined, accountProps: Partial<AccountControllerState>, replaceState?: boolean): void;
23
23
  setAccountProp(prop: keyof AccountControllerState, value: AccountControllerState[keyof AccountControllerState], chain: ChainNamespace | undefined, replaceState?: boolean): void;
24
24
  setActiveNamespace(chain: ChainNamespace | undefined): void;
25
- setActiveCaipNetwork(caipNetwork: NetworkControllerState['caipNetwork']): void;
26
- /**
27
- * The setCaipNetwork function is being called for different purposes and it needs to be controlled if it should replace the NetworkController state or not.
28
- * While we initializing the adapters, we need to set the caipNetwork without replacing the state.
29
- * But when we switch the network, we need to replace the state.
30
- * @param chain
31
- * @param caipNetwork
32
- * @param shouldReplace - if true, it will replace the NetworkController state
33
- */
34
- setCaipNetwork(chain: ChainNamespace | undefined, caipNetwork: NetworkControllerState['caipNetwork'], shouldReplace?: boolean): void;
25
+ setActiveCaipNetwork(caipNetwork: AdapterNetworkState['caipNetwork']): void;
26
+ switchActiveNetwork(network: CaipNetwork): Promise<void>;
35
27
  setActiveConnector(connector: ChainControllerState['activeConnector']): void;
36
- getNetworkControllerClient(chainNamespace?: ChainNamespace): import("./NetworkController.js").NetworkControllerClient;
28
+ getNetworkControllerClient(chainNamespace?: ChainNamespace): import("../utils/TypeUtil.js").NetworkControllerClient;
37
29
  getConnectionControllerClient(_chain?: ChainNamespace): import("./ConnectionController.js").ConnectionControllerClient;
38
30
  getAccountProp<K_2 extends keyof AccountControllerState>(key: K_2, _chain?: ChainNamespace): AccountControllerState[K_2] | undefined;
39
- getNetworkProp<K_3 extends keyof NetworkControllerState>(key: K_3, _chain?: ChainNamespace): NetworkControllerState[K_3] | undefined;
40
- getAllRequestedCaipNetworks(): NetworkControllerState['requestedCaipNetworks'];
41
- getAllApprovedCaipNetworks(): NetworkControllerState['approvedCaipNetworkIds'];
31
+ getNetworkProp<K_3 extends keyof AdapterNetworkState>(key: K_3, namespace: ChainNamespace): AdapterNetworkState[K_3] | undefined;
32
+ getRequestedCaipNetworks(chainToFilter: ChainNamespace): CaipNetwork[];
33
+ getAllRequestedCaipNetworks(): CaipNetwork[];
34
+ setRequestedCaipNetworks(requestedNetworks: CaipNetwork[], chain: ChainNamespace): void;
35
+ getAllApprovedCaipNetworkIds(): CaipNetworkId[];
36
+ getActiveCaipNetwork(): CaipNetwork | undefined;
37
+ getActiveCaipAddress(): `eip155:${string}:${string}` | `eip155:${number}:${string}` | `solana:${string}:${string}` | `solana:${number}:${string}` | `polkadot:${string}:${string}` | `polkadot:${number}:${string}` | undefined;
38
+ getApprovedCaipNetworkIds(namespace: ChainNamespace): CaipNetworkId[];
39
+ setApprovedCaipNetworksData(namespace: ChainNamespace): Promise<void>;
40
+ checkIfSupportedNetwork(namespace: ChainNamespace): boolean;
41
+ setSmartAccountEnabledNetworks(smartAccountEnabledNetworks: number[], chain: ChainNamespace): void;
42
+ checkIfSmartAccountEnabled(): boolean;
43
+ getActiveNetworkTokenAddress(): string;
44
+ showUnsupportedChainUI(): void;
45
+ checkIfNamesSupported(): boolean;
46
+ resetNetwork(namespace: ChainNamespace): void;
42
47
  resetAccount(chain: ChainNamespace | undefined): void;
43
48
  };
44
49
  export {};
@@ -21,6 +21,8 @@ export interface ConnectionControllerClient {
21
21
  writeContract: (args: WriteContractArgs) => Promise<`0x${string}` | null>;
22
22
  getEnsAddress: (value: string) => Promise<false | string>;
23
23
  getEnsAvatar: (value: string) => Promise<false | string>;
24
+ grantPermissions: (params: readonly unknown[] | object) => Promise<unknown>;
25
+ getCapabilities: (params: string) => Promise<unknown>;
24
26
  }
25
27
  export interface ConnectionControllerState {
26
28
  _client?: ConnectionControllerClient;
@@ -48,6 +50,8 @@ export declare const ConnectionController: {
48
50
  parseUnits(value: string, decimals: number): bigint;
49
51
  formatUnits(value: bigint, decimals: number): string;
50
52
  sendTransaction(args: SendTransactionArgs): Promise<string | null>;
53
+ getCapabilities(params: string): Promise<unknown>;
54
+ grantPermissions(params: object | readonly unknown[]): Promise<unknown>;
51
55
  estimateGas(args: EstimateGasTransactionArgs): Promise<bigint>;
52
56
  writeContract(args: WriteContractArgs): Promise<`0x${string}` | null>;
53
57
  getEnsAddress(value: string): Promise<string | false>;
@@ -1,6 +1,5 @@
1
1
  import type { W3mFrameProvider, W3mFrameTypes } from '@reown/appkit-wallet';
2
2
  import type { Balance, Transaction, CaipNetworkId, CaipNetwork, ChainNamespace, CaipAddress, AdapterType, SdkFramework, AppKitSdkVersion } from '@reown/appkit-common';
3
- import type { NetworkControllerClient, NetworkControllerState } from '../controllers/NetworkController.js';
4
3
  import type { ConnectionControllerClient } from '../controllers/ConnectionController.js';
5
4
  import type { AccountControllerState } from '../controllers/AccountController.js';
6
5
  import type { OnRampProviderOption } from '../controllers/OnRampController.js';
@@ -665,11 +664,50 @@ export interface WriteContractArgs {
665
664
  method: 'send' | 'transfer' | 'call';
666
665
  abi: any;
667
666
  }
667
+ export interface NetworkControllerClient {
668
+ switchCaipNetwork: (network: CaipNetwork) => Promise<void>;
669
+ getApprovedCaipNetworksData: () => Promise<{
670
+ approvedCaipNetworkIds: CaipNetworkId[];
671
+ supportsAllNetworks: boolean;
672
+ }>;
673
+ }
674
+ export type AdapterNetworkState = {
675
+ supportsAllNetworks: boolean;
676
+ isUnsupportedChain?: boolean;
677
+ _client?: NetworkControllerClient;
678
+ caipNetwork?: CaipNetwork;
679
+ requestedCaipNetworks?: CaipNetwork[];
680
+ approvedCaipNetworkIds?: CaipNetworkId[];
681
+ allowUnsupportedCaipNetwork?: boolean;
682
+ smartAccountEnabledNetworks?: number[];
683
+ };
684
+ export type AdapterAccountState = {
685
+ currentTab: number;
686
+ caipAddress?: CaipAddress;
687
+ address?: string;
688
+ addressLabels: Map<string, string>;
689
+ allAccounts: AccountType[];
690
+ balance?: string;
691
+ balanceSymbol?: string;
692
+ profileName?: string | null;
693
+ profileImage?: string | null;
694
+ addressExplorerUrl?: string;
695
+ smartAccountDeployed?: boolean;
696
+ socialProvider?: SocialProvider;
697
+ tokenBalance?: Balance[];
698
+ shouldUpdateToAddress?: string;
699
+ connectedWalletInfo?: ConnectedWalletInfo;
700
+ preferredAccountType?: W3mFrameTypes.AccountType;
701
+ socialWindow?: Window;
702
+ farcasterUrl?: string;
703
+ status?: 'reconnecting' | 'connected' | 'disconnected' | 'connecting';
704
+ siweStatus?: 'uninitialized' | 'ready' | 'loading' | 'success' | 'rejected' | 'error';
705
+ };
668
706
  export type ChainAdapter = {
669
707
  connectionControllerClient?: ConnectionControllerClient;
670
708
  networkControllerClient?: NetworkControllerClient;
671
709
  accountState?: AccountControllerState;
672
- networkState?: NetworkControllerState;
710
+ networkState?: AdapterNetworkState;
673
711
  defaultNetwork?: CaipNetwork;
674
712
  chainNamespace: ChainNamespace;
675
713
  isUniversalAdapterClient?: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reown/appkit-core",
3
- "version": "1.0.7",
3
+ "version": "1.1.0",
4
4
  "type": "module",
5
5
  "main": "./dist/esm/exports/index.js",
6
6
  "types": "./dist/types/exports/index.d.ts",
@@ -18,28 +18,45 @@
18
18
  "types": "./dist/types/exports/react.d.ts",
19
19
  "import": "./dist/esm/exports/react.js",
20
20
  "default": "./dist/esm/exports/react.js"
21
+ },
22
+ "./vue": {
23
+ "types": "./dist/types/exports/vue.d.ts",
24
+ "import": "./dist/esm/exports/vue.js",
25
+ "default": "./dist/esm/exports/vue.js"
26
+ }
27
+ },
28
+ "typesVersions": {
29
+ "*": {
30
+ "react": [
31
+ "./dist/types/exports/react.d.ts"
32
+ ],
33
+ "vue": [
34
+ "./dist/types/exports/vue.d.ts"
35
+ ]
21
36
  }
22
37
  },
23
38
  "dependencies": {
24
39
  "@walletconnect/universal-provider": "2.17.0",
25
40
  "valtio": "1.11.2",
26
- "@reown/appkit-common": "1.0.7",
27
- "@reown/appkit-wallet": "1.0.7"
41
+ "viem": "2.x",
42
+ "@reown/appkit-common": "1.1.0",
43
+ "@reown/appkit-wallet": "1.1.0"
28
44
  },
45
+ "peerDependencies": {},
29
46
  "devDependencies": {
30
47
  "vitest": "2.0.5",
31
48
  "@vitest/coverage-v8": "2.0.5",
32
- "viem": "2.21.4"
49
+ "vue": "3.x"
33
50
  },
34
51
  "author": "Reown <support@reown.com> (https://reown.com)",
35
52
  "license": "Apache-2.0",
36
- "homepage": "https://github.com/WalletConnect/web3modal",
53
+ "homepage": "https://github.com/reown-com/appkit",
37
54
  "repository": {
38
55
  "type": "git",
39
- "url": "git+https://github.com/WalletConnect/web3modal.git"
56
+ "url": "git+https://github.com/reown-com/appkit.git"
40
57
  },
41
58
  "bugs": {
42
- "url": "https://github.com/WalletConnect/web3modal/issues"
59
+ "url": "https://github.com/reown-com/appkit/issues"
43
60
  },
44
61
  "scripts": {
45
62
  "build:clean": "rm -rf dist",
@@ -1,191 +0,0 @@
1
- import { proxy, ref } from 'valtio/vanilla';
2
- import { EventsController } from './EventsController.js';
3
- import { ModalController } from './ModalController.js';
4
- import { CoreHelperUtil } from '../utils/CoreHelperUtil.js';
5
- import { NetworkUtil } from '@reown/appkit-common';
6
- import { ChainController } from './ChainController.js';
7
- import { ConstantsUtil } from '../utils/ConstantsUtil.js';
8
- // -- State --------------------------------------------- //
9
- const state = proxy({
10
- supportsAllNetworks: true,
11
- smartAccountEnabledNetworks: []
12
- });
13
- // -- Controller ---------------------------------------- //
14
- export const NetworkController = {
15
- state,
16
- replaceState(newState) {
17
- if (!newState) {
18
- return;
19
- }
20
- Object.assign(state, ref(newState));
21
- },
22
- subscribeKey(property, callback) {
23
- let prev = undefined;
24
- return ChainController.subscribeChainProp('networkState', networkState => {
25
- if (networkState) {
26
- const nextValue = networkState[property];
27
- if (prev !== nextValue) {
28
- prev = nextValue;
29
- callback(nextValue);
30
- }
31
- }
32
- });
33
- },
34
- _getClient() {
35
- return ChainController.getNetworkControllerClient();
36
- },
37
- setActiveCaipNetwork(caipNetwork) {
38
- if (!caipNetwork) {
39
- return;
40
- }
41
- ChainController.setActiveCaipNetwork(caipNetwork);
42
- const isSupported = this.checkIfSupportedNetwork();
43
- if (!isSupported) {
44
- this.showUnsupportedChainUI();
45
- }
46
- },
47
- setCaipNetwork(caipNetwork) {
48
- if (!caipNetwork) {
49
- return;
50
- }
51
- if (!caipNetwork?.chainNamespace) {
52
- throw new Error('chain is required to set active network');
53
- }
54
- ChainController.setCaipNetwork(caipNetwork?.chainNamespace, caipNetwork);
55
- },
56
- setRequestedCaipNetworks(requestedNetworks, chain) {
57
- ChainController.setChainNetworkData(chain, { requestedCaipNetworks: requestedNetworks });
58
- },
59
- setAllowUnsupportedChain(allowUnsupportedCaipNetwork, chain) {
60
- ChainController.setChainNetworkData(chain || ChainController.state.activeChain, {
61
- allowUnsupportedCaipNetwork
62
- });
63
- },
64
- setSmartAccountEnabledNetworks(smartAccountEnabledNetworks, chain) {
65
- ChainController.setChainNetworkData(chain, { smartAccountEnabledNetworks });
66
- },
67
- getRequestedCaipNetworks(chainToFilter) {
68
- let chainAdapters = undefined;
69
- if (!ChainController.state.activeChain) {
70
- throw new Error('activeChain is required to get requested networks');
71
- }
72
- if (chainToFilter) {
73
- const chain = chainToFilter;
74
- if (!chain) {
75
- throw new Error('chain is required to get requested networks');
76
- }
77
- chainAdapters = [chain];
78
- }
79
- else {
80
- const chains = [...ChainController.state.chains.keys()];
81
- chainAdapters = chains;
82
- }
83
- const approvedIds = [];
84
- const requestedNetworks = [];
85
- chainAdapters.forEach((chn) => {
86
- if (ChainController.state.chains.get(chn)?.networkState?.approvedCaipNetworkIds) {
87
- approvedIds.push(...(ChainController.state.chains.get(chn)?.networkState?.approvedCaipNetworkIds || []));
88
- }
89
- if (ChainController.state.chains.get(chn)?.networkState?.requestedCaipNetworks) {
90
- requestedNetworks.push(...(ChainController.state.chains.get(chn)?.networkState?.requestedCaipNetworks || []));
91
- }
92
- });
93
- const sortedNetworks = CoreHelperUtil.sortRequestedNetworks(approvedIds, requestedNetworks);
94
- return sortedNetworks;
95
- },
96
- async switchActiveNetwork(network) {
97
- const networkControllerClient = ChainController.getNetworkControllerClient(network?.chainNamespace);
98
- if (networkControllerClient) {
99
- await networkControllerClient.switchCaipNetwork(network);
100
- }
101
- ChainController.setActiveCaipNetwork(network);
102
- if (network) {
103
- EventsController.sendEvent({
104
- type: 'track',
105
- event: 'SWITCH_NETWORK',
106
- properties: { network: network.id }
107
- });
108
- }
109
- },
110
- getApprovedCaipNetworkIds(chainToFilter) {
111
- if (chainToFilter) {
112
- const chain = chainToFilter;
113
- if (!chain) {
114
- throw new Error('chain is required to get approved network IDs');
115
- }
116
- return ChainController.state.chains.get(chain)?.networkState?.approvedCaipNetworkIds;
117
- }
118
- const allCaipNetworkIds = [];
119
- Object.values(ChainController.state.chains).forEach(adapter => {
120
- if (adapter.networkState.approvedCaipNetworkIds) {
121
- allCaipNetworkIds.push(...(adapter.networkState?.approvedCaipNetworkIds || []));
122
- }
123
- });
124
- return allCaipNetworkIds;
125
- },
126
- async setApprovedCaipNetworksData(chain) {
127
- if (!chain) {
128
- throw new Error('chain is required to set approved network data');
129
- }
130
- const networkControllerClient = ChainController.getNetworkControllerClient();
131
- const data = await networkControllerClient?.getApprovedCaipNetworksData();
132
- ChainController.setChainNetworkData(chain, data);
133
- },
134
- checkIfSupportedNetwork() {
135
- const chain = ChainController.state.activeChain;
136
- if (!chain) {
137
- return false;
138
- }
139
- const activeCaipNetwork = ChainController.state.activeCaipNetwork;
140
- const requestedCaipNetworks = this.getRequestedCaipNetworks(chain);
141
- if (!requestedCaipNetworks.length) {
142
- return true;
143
- }
144
- return requestedCaipNetworks?.some(network => network.id === activeCaipNetwork?.id);
145
- },
146
- checkIfSmartAccountEnabled() {
147
- const networkId = NetworkUtil.caipNetworkIdToNumber(ChainController.state.activeCaipNetwork?.id);
148
- const activeChain = ChainController.state.activeChain;
149
- if (!activeChain) {
150
- throw new Error('activeChain is required to check if smart account is enabled');
151
- }
152
- if (!networkId) {
153
- return false;
154
- }
155
- const smartAccountEnabledNetworks = ChainController.getNetworkProp('smartAccountEnabledNetworks');
156
- return Boolean(smartAccountEnabledNetworks?.includes(Number(networkId)));
157
- },
158
- checkIfNamesSupported() {
159
- const activeCaipNetwork = ChainController.state.activeCaipNetwork;
160
- return (activeCaipNetwork?.chainNamespace &&
161
- ConstantsUtil.NAMES_SUPPORTED_CHAIN_NAMESPACES.includes(activeCaipNetwork.chainNamespace));
162
- },
163
- resetNetwork() {
164
- const chain = ChainController.state.activeChain;
165
- if (!chain) {
166
- throw new Error('chain is required to reset network');
167
- }
168
- ChainController.setChainNetworkData(chain, {
169
- approvedCaipNetworkIds: undefined,
170
- supportsAllNetworks: true,
171
- smartAccountEnabledNetworks: []
172
- });
173
- },
174
- getSupportsAllNetworks() {
175
- const chain = ChainController.state.activeChain;
176
- if (!chain) {
177
- throw new Error('chain is required to check if network supports all networks');
178
- }
179
- return ChainController.state.chains.get(chain)?.networkState?.supportsAllNetworks;
180
- },
181
- showUnsupportedChainUI() {
182
- setTimeout(() => {
183
- ModalController.open({ view: 'UnsupportedChain' });
184
- }, 300);
185
- },
186
- getActiveNetworkTokenAddress() {
187
- const address = ConstantsUtil.NATIVE_TOKEN_ADDRESS[ChainController.state.activeCaipNetwork?.chainNamespace || 'eip155'];
188
- return `${ChainController.state.activeCaipNetwork?.id || 'eip155:1'}:${address}`;
189
- }
190
- };
191
- //# sourceMappingURL=NetworkController.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NetworkController.js","sourceRoot":"","sources":["../../../../src/controllers/NetworkController.ts"],"names":[],"mappings":"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"}
@@ -1,138 +0,0 @@
1
- import { describe, expect, it, vi } from 'vitest';
2
- import { ChainController, NetworkController } from '../../exports/index.js';
3
- import { ConstantsUtil } from '@reown/appkit-common';
4
- // -- Setup --------------------------------------------------------------------
5
- const caipNetwork = {
6
- id: 'eip155:1',
7
- name: 'Ethereum',
8
- chainNamespace: ConstantsUtil.CHAIN.EVM,
9
- chainId: 1,
10
- currency: 'ETH',
11
- explorerUrl: 'https://etherscan.io',
12
- rpcUrl: 'https://rpc.infura.com/v1/'
13
- };
14
- const solanaCaipNetwork = {
15
- id: 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp',
16
- name: 'Solana',
17
- chainNamespace: ConstantsUtil.CHAIN.SOLANA,
18
- chainId: '5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp',
19
- currency: 'SOL',
20
- explorerUrl: 'https://solscan.io',
21
- rpcUrl: 'https://rpc.infura.com/v1/'
22
- };
23
- const requestedCaipNetworks = [
24
- {
25
- id: 'eip155:1',
26
- name: 'Ethereum',
27
- chainNamespace: ConstantsUtil.CHAIN.EVM,
28
- chainId: 1,
29
- currency: 'ETH',
30
- explorerUrl: 'https://etherscan.io',
31
- rpcUrl: 'https://rpc.infura.com/v1/'
32
- },
33
- {
34
- id: 'eip155:42161',
35
- name: 'Arbitrum One',
36
- chainNamespace: ConstantsUtil.CHAIN.EVM,
37
- chainId: 42161,
38
- currency: 'ETH',
39
- explorerUrl: 'https://etherscan.io',
40
- rpcUrl: 'https://rpc.infura.com/v1/'
41
- },
42
- {
43
- id: 'eip155:43114',
44
- name: 'Avalanche C-Chain',
45
- chainNamespace: ConstantsUtil.CHAIN.EVM,
46
- chainId: 43114,
47
- currency: 'ETH',
48
- explorerUrl: 'https://etherscan.io',
49
- rpcUrl: 'https://rpc.infura.com/v1/'
50
- }
51
- ];
52
- const approvedCaipNetworkIds = ['eip155:1', 'eip155:42161'];
53
- const chain = ConstantsUtil.CHAIN.EVM;
54
- const client = {
55
- switchCaipNetwork: async (_caipNetwork) => Promise.resolve(),
56
- getApprovedCaipNetworksData: async () => Promise.resolve({ approvedCaipNetworkIds, supportsAllNetworks: false })
57
- };
58
- // -- Tests --------------------------------------------------------------------
59
- describe('NetworkController', () => {
60
- it('should throw if client not set', () => {
61
- expect(NetworkController._getClient).toThrow('Chain is required to get network controller client');
62
- ChainController.initialize([
63
- {
64
- chainNamespace: ConstantsUtil.CHAIN.EVM,
65
- caipNetworks: []
66
- }
67
- ]);
68
- expect(NetworkController._getClient).toThrow('NetworkController client not set');
69
- });
70
- it('should have valid default state', () => {
71
- ChainController.initialize([
72
- {
73
- chainNamespace: ConstantsUtil.CHAIN.EVM,
74
- networkControllerClient: client,
75
- caipNetworks: []
76
- }
77
- ]);
78
- expect(NetworkController.state).toEqual({
79
- supportsAllNetworks: true,
80
- smartAccountEnabledNetworks: []
81
- });
82
- });
83
- it('should update state correctly on setRequestedCaipNetworks()', () => {
84
- NetworkController.setRequestedCaipNetworks(requestedCaipNetworks, chain);
85
- expect(NetworkController.state.requestedCaipNetworks).toEqual(requestedCaipNetworks);
86
- });
87
- it('should update state correctly on setCaipNetwork()', () => {
88
- NetworkController.setActiveCaipNetwork(caipNetwork);
89
- expect(ChainController.state.activeCaipNetwork).toEqual(caipNetwork);
90
- });
91
- it('should update state correctly on getApprovedCaipNetworkIds()', async () => {
92
- await NetworkController.setApprovedCaipNetworksData(chain);
93
- expect(NetworkController.state.approvedCaipNetworkIds).toEqual(approvedCaipNetworkIds);
94
- });
95
- it('should reset state correctly on resetNetwork()', () => {
96
- NetworkController.resetNetwork();
97
- expect(NetworkController.state.approvedCaipNetworkIds).toEqual(undefined);
98
- expect(NetworkController.state.requestedCaipNetworks).toEqual(requestedCaipNetworks);
99
- expect(NetworkController.state.smartAccountEnabledNetworks).toEqual([]);
100
- });
101
- it('should check correctly if smart accounts are enabled on the network', () => {
102
- NetworkController.setActiveCaipNetwork(caipNetwork);
103
- NetworkController.setSmartAccountEnabledNetworks([1], chain);
104
- expect(NetworkController.checkIfSmartAccountEnabled()).toEqual(true);
105
- NetworkController.setSmartAccountEnabledNetworks([], chain);
106
- expect(NetworkController.checkIfSmartAccountEnabled()).toEqual(false);
107
- NetworkController.setSmartAccountEnabledNetworks([2], chain);
108
- expect(NetworkController.checkIfSmartAccountEnabled()).toEqual(false);
109
- NetworkController.setActiveCaipNetwork({
110
- id: 'eip155:2',
111
- name: 'Ethereum',
112
- chainNamespace: ConstantsUtil.CHAIN.EVM,
113
- chainId: 2,
114
- currency: 'ETH',
115
- explorerUrl: 'https://etherscan.io',
116
- rpcUrl: 'https://rpc.infura.com/v1/'
117
- });
118
- });
119
- it('should check if network supports names feature', () => {
120
- NetworkController.resetNetwork();
121
- NetworkController.setActiveCaipNetwork(caipNetwork);
122
- expect(NetworkController.checkIfNamesSupported()).toEqual(true);
123
- NetworkController.setActiveCaipNetwork(solanaCaipNetwork);
124
- expect(NetworkController.checkIfNamesSupported()).toEqual(false);
125
- });
126
- it('should get correct active network token address', () => {
127
- let mock = vi
128
- .spyOn(ChainController.state, 'activeCaipNetwork', 'get')
129
- .mockReturnValue(undefined);
130
- expect(NetworkController.getActiveNetworkTokenAddress()).toEqual('eip155:1:0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee');
131
- mock.mockReturnValue(caipNetwork);
132
- expect(NetworkController.getActiveNetworkTokenAddress()).toEqual('eip155:1:0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee');
133
- mock.mockReturnValue(solanaCaipNetwork);
134
- expect(NetworkController.getActiveNetworkTokenAddress()).toEqual('solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp:So11111111111111111111111111111111111111111');
135
- mock.mockRestore();
136
- });
137
- });
138
- //# sourceMappingURL=NetworkController.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NetworkController.test.js","sourceRoot":"","sources":["../../../../tests/controllers/NetworkController.test.ts"],"names":[],"mappings":"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"}
@@ -1,40 +0,0 @@
1
- import { type CaipNetwork, type CaipNetworkId, type ChainNamespace } from '@reown/appkit-common';
2
- export interface NetworkControllerClient {
3
- switchCaipNetwork: (network: NetworkControllerState['caipNetwork']) => Promise<void>;
4
- getApprovedCaipNetworksData: () => Promise<{
5
- approvedCaipNetworkIds: NetworkControllerState['approvedCaipNetworkIds'];
6
- supportsAllNetworks: NetworkControllerState['supportsAllNetworks'];
7
- }>;
8
- }
9
- export interface NetworkControllerState {
10
- supportsAllNetworks: boolean;
11
- isUnsupportedChain?: boolean;
12
- _client?: NetworkControllerClient;
13
- caipNetwork?: CaipNetwork;
14
- requestedCaipNetworks?: CaipNetwork[];
15
- approvedCaipNetworkIds?: CaipNetworkId[];
16
- allowUnsupportedCaipNetwork?: boolean;
17
- smartAccountEnabledNetworks?: number[];
18
- }
19
- export declare const NetworkController: {
20
- state: NetworkControllerState;
21
- replaceState(newState: NetworkControllerState | undefined): void;
22
- subscribeKey<K extends keyof NetworkControllerState>(property: K, callback: (val: NetworkControllerState[K]) => void): () => void;
23
- _getClient(): NetworkControllerClient;
24
- setActiveCaipNetwork(caipNetwork: NetworkControllerState['caipNetwork']): void;
25
- setCaipNetwork(caipNetwork: NetworkControllerState['caipNetwork']): void;
26
- setRequestedCaipNetworks(requestedNetworks: NetworkControllerState['requestedCaipNetworks'], chain: ChainNamespace | undefined): void;
27
- setAllowUnsupportedChain(allowUnsupportedCaipNetwork: NetworkControllerState['allowUnsupportedCaipNetwork'], chain: ChainNamespace | undefined): void;
28
- setSmartAccountEnabledNetworks(smartAccountEnabledNetworks: NetworkControllerState['smartAccountEnabledNetworks'], chain: ChainNamespace | undefined): void;
29
- getRequestedCaipNetworks(chainToFilter?: ChainNamespace): CaipNetwork[];
30
- switchActiveNetwork(network: NetworkControllerState['caipNetwork']): Promise<void>;
31
- getApprovedCaipNetworkIds(chainToFilter?: ChainNamespace): (`eip155:${string}` | `eip155:${number}` | `solana:${string}` | `solana:${number}` | `polkadot:${string}` | `polkadot:${number}`)[] | undefined;
32
- setApprovedCaipNetworksData(chain: ChainNamespace | undefined): Promise<void>;
33
- checkIfSupportedNetwork(): boolean;
34
- checkIfSmartAccountEnabled(): boolean;
35
- checkIfNamesSupported(): boolean | undefined;
36
- resetNetwork(): void;
37
- getSupportsAllNetworks(): boolean | undefined;
38
- showUnsupportedChainUI(): void;
39
- getActiveNetworkTokenAddress(): string;
40
- };